标题 | 基于Python语言的串行通信实现方法分析 |
范文 | 史记征 崔俊 摘要:在单片机、嵌入式等课程的教学过程中,串行通信是最基础、最重要的知识点之一。在以往的教学中,常使用串口调试助手作为联调工具,由于其源代码不开源,不利于学生对串行通信原理的理解。该文利用Python语言第三方库设计、开发串口调试上位机,并实现与CC2530单片机进行串行通信,有利于老师的教学和学生对串行通信知识的掌握。 关键词:串行通信;Python语言;CC2530单片机 中图分类号:TP393? ? ?文献标识码:A 文章编号:1009-3044(2019)16-0024-03 开放科学(资源服务)标识码(OSID): 串行通信是指使用一条数据线,按二进制位对数据进行依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信,在电子类课程中有较为广泛的应用。 1 Python语言中串行通信背景 1.1 Python语言的特点 吉多·范罗苏姆( Guido Van Rossum)作为Python语言的设计发明者,于1990年发布了Python的第一个版本。作为一种计算机高级程序设计语言,Python具有如下特点: 1)易于学习 Python的编程思维简单,注重逻辑、轻于语法,库资源丰富,保留字较少、易于理解。 2)易于阅读 Python代码没有使用其他语言通常用来访问变量、定义代码块和进行模式匹配的命令式符号,而是采用强制缩进的编码方式,具有极佳的可读性。 3)免费、开源 Python是FLOSS (自由/开放源码软件)之一。使用Python是免费的,甚至可以对它做改动。 4)高级语言 使用Python语言编程时,无须考虑诸如管理程序内存等底层的细节,只需集中精力关注程序的主要逻辑即可。 5)可移植性 由于Python语言具有开源的特点,Python代码的移植非常方便,可以在各种不同的操作系统上运行。 6)面向对象 Python不但支持面向过程编程,也支持面向对象编程 7)解释性 Python作为一种解释型编程语言,在开发过程中不存在编译环节。 8)可扩展可嵌入性 在Python中,部分程序可以使用其他语言编写,如C/C++。 1.2 Python语言版本 Python发展至今,经历了多个版本的更迭,目前仍然保留的版本主要是基于Python2.X和Python3.X。Python3.X 是未来的趋势,有许多重要的类库都已经停止对Python2.X的更新,只保留对Python3.X的更新。 1.3 串行通信API Python进行串行通信主要使用serial库和tkinter库。serial库封装了对串口的访问,在支持的平台上有统一的接口,支持不同的字节大小、停止位、校验位和流控设置。tkinter是Python的标准GUI库,使用tkinter可以快速的创建GUI应用程序。本文利用tkinter库进行串口通信上位机界面开发。 2 Python语言在串行通信中的应用 2.1 第三方库安装 Python第三方库最常用的安装方式是通过pip命令。作为Python的内置命令,pip需要通过命令行执行。本文所需库的安装命令如下:pip install serial。 2.2 上位机程序代码 利用Python语言编写串行通信上位机代码,以实现如图1所示界面,通过界面上的组件与下位机进行联调。 2.3 下位机CC2530程序代码 2.4 系统联调结果分析 联调数据的格式为“灯编号开|关#”,D3灯编号是1,D4灯编号是2,D5灯编号是3,D6灯编号是4,0代表关灯,1代表开灯。如打开D3灯的命令是“11#”,关闭D3灯的命令是“10#”。在图1上位机界面的联调数据输入框中输入“XY#”,X的取值范围是1、2、3、4,Y的取值范围0、1,然后依次点击打开串口、发送数据按钮即可控制开发板上四个LED燈的亮灭。 3 结束语 本文利用Python语言第三方库、CC2530开发板,实现了串口通信上位机开发、系统联调等功能。基于Python语言的串口通信系统具有易于编程、操作简单、通信误码率低等优点,在单片机相关课程的教学过程中加以应用,有助于学习者对串口通信原理的理解。 参考文献: [1] 李全利. 单片机原理及接口技术[M]. 北京: 高等教育出版社, 2009: 182-186. [2] 王弘博, 孙传庆. Mark Summerfield.Python3程序开发指南[M]. 2版. 北京: 人民邮电出版社, 2015. [3] 曾维鹏, 蔡莉莎, 林尔敏. 基于VC++及Proteus的上、下位机串口通信仿真技术[J]. 镇江高专学报, 2013(10): 74-76. [4] 金海琴, 陈兴, 翟林鹏. 基于Modbus协议的串行通信的应用[J]. 电子设计工程, 2013, 21(8): 157-160. 【通联编辑:谢媛媛】 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。