串行通信的工作原理

2019-04-26 05:21侯光辉
电子技术与软件工程 2019年6期
关键词:数据位波特率下位

文/侯光辉

在工业应用中,新设备的开发都需要有说服力的理论依据和足够的实验数据来支撑,而实际开发过程中会遇到多样的困难,这就需要前期的系统仿真,来验证方案的正确性、可行性以及可能会存在的风险。本文以串行接口RS-232 为例阐述串行通信的工作过程。

1 系统概述

系统分为上位机与下位机两部分,上位机是通过LabVIEW 完成控制命令的下发,以及读取下位机回传的状态,并显示在窗口;下位机为电机控制系统,通过Proteus 仿真实现,该系统以单片机AT89S52 为控制器,ULN2003A 为电机驱动器,完成上位机命令的接收过程以及反馈电机的运动状态,系统框架如图1所示。

表1:串口管脚说明

图1:系统流程示意图

图2:串口连线图

2 通信原理

串行接口(Serial Interface)简称串口,其传递方式为数据逐位按顺序传送。根据信息的传送方向以及时间关系,串行通讯可以进一步分为单工、半双工和全双工三种。

串行接口按电气标准及协议来分,包括RS-232-C、RS-422、RS485 等。RS-232 为 标准串口,是最常用的一种串行通讯接口,比较常见的为9 芯D 型插座(DB9),信号管脚如表1所示。RS-422 标准全称是“平衡电压数字接口电路的电气特性”,典型的RS-422 是四线接口,RS-485 与RS-422 相仿。

串行通信连线规则:数据接收针脚与数据发送针脚彼此交叉相连,信号地对应相接。当使用一个串口时只需将2 线与3 线连接,可完成自发自收的过程,如图2中a 所示;使用一对串口时(包含同一台计算机或分别在不同计算机上),连接方法为2-3 交叉相连,5 线直连,如图2中b 所示。

图3:LabVIEW 上位机界面

图4:电机仿真系统

串口通信参数包含:波特率、数据位、停止位和奇偶校验等。其中波特率是衡量符号传输速率的参数,数据位是衡量通信中实际数据位的参数,停止位用于表示单个包的最后一位,奇偶校验位是在串口通信中一种简单的检错方式。

3 串口的使用

为解决串口资源不足的问题,可借助于软件创建虚拟串口,和实际的串口工作机制一致。使用串口测试工具,测试串口的通信是否正常时需要注意以下两点:

(1)通信的对应端口,需要保持其波特率、数据位、校验位、停止位、流控制等设置一致。

(2)通信过程中,发送设置应该与显示设置保持一致,不然会出现收发内容不一致的现象。

4 上位机软件设计

LabVIEW 是由美国国家仪器公司开发的图形化程序开发平台。采用数据流编程方式,数据流向决定了程序的执行顺序。LabVIEW通过VISA 模块能与大多数仪器总线连接,包括GPIB、USB、串口、PXI、VXI 和以太网等,因此被广泛地应用于汽车、航空、半导体、电子设计生产、过程控制和生物医学等各个领域。

利用LabVIEW 中VISA 模块中的串口函数,编写串口测试程序相对比较简单,一般流程为:VISA 配置串口、VISA 写入、VISA 读取、VISA 关闭。

上位机界面如图3所示,左侧是控制电机的状态,右侧是读取电机的实时状态。程序采用双线程方式,在实时读取下位机回传状态的同时,满足电机设置状态的命令下发。需要注意的是在数据读取的时候,需要对数据帧头进行判断,只有帧头正确的前提下才能读取并解析数据字节。

5 电机调速仿真系统

Proteus 软件是英国Labcenter Electronics公司出版的EDA 工具软件。常用于单片机等数字电路仿真,在编译方面,支持IAR、Keil和MPLAB 等多种编译器。

该仿真系统中以单片机AT89S52 为核心控制芯片,ULN2003A 为步进电机的驱动芯片,如图4所示。其中P1 为Proteus 中的串口模块,芯片AT89S52 由美国Atmel 公司生产的一款低功耗、高性能的8 位单片机,具有 32个外部双向I/O 口,以及全双工串行口等特点。ULN2003A 是一个7 路反向器电路,常用于电机、继电器、显示以及照明电路中的驱动部分。

6 联合调试

同时运行Proteus 仿真文件与LabVIEW上位机文件。在上位机中设置好圈数后,点击“正转”或“反转”,设置状态的命令将会通过串口传递到下位机,在下位机中可以看到电机开始运转,指示灯指示相应的状态,“VIRTUAL TERMINAL”中看到数据的传递,同时上位机的右侧“读取状态”中会有相应的状态变化。状态的实际变化与理论上的一致。

7 结语

本文通过应用LabVIEW编写上位机软件,借助串口控制步进电机的过程,验证工业中串行通信数据交换的传输过程,以及实现的方法。其中串口的连接部分是通过虚拟串口,其作用和实际串口一致。为应对现代化设备的高速率更新,以及项目前期的快速推进提供了一种快捷高效的论证结果的方法。

猜你喜欢
数据位波特率下位
A320飞机大气数据的采集和计算在排故中的应用
发射机房监控系统之下位机
一种用于FPGA的片上可配置SRAM设计
基于FPGA的异步串行通信波特率容错设计
一种适用于FPGA系统中的变速箱电路设计
景洪电厂监控系统下位机数据传输网络改造
减少调度自动化设备通讯串口丢包率的措施
CAN总线并发通信时下位机应用软件设计
C*Core芯片SCI串口波特率容限优化
计算机多设备接口波特率不匹配的研究