基于LabVIEW的PC机与单片机串行通信研究

2022-09-12

目前以计算机为上位机和以单片机为下位机的集散式控制系统被广泛的应用于工业检测和控制系统中。由于PC机的分析处理能力强, 处理速度快, 而单片机价格低廉、体积小、使用灵活方便, 所以主机一般采用PC机, 而从机则采用单片机。通过PC机的RS-232串行接口与单片机之间串行通信是主要的通信手段。本文设计了以单片机作为前端的键盘输入信号采集和液晶及数码显示模块输出控制的小系统来代替数据采集板卡, 通过Lab VIEW提供的串口子V I将采集到的数据传送到P C机, 在Lab VIEW环境下实现对按键、液晶和数码显示的数据进行实时处理、分析、存储和显示的系统。

1 系统硬件结构

本系统采用AT89C52单片机作为下位机, PC机作为上位机, 二者通过RS-232串口接收或发送数据和指令。传输介质为二芯屏蔽电缆。系统还包括:键盘、液晶、数码显示模块, PC机和Lab VIEW软件环境构成了数据接收、分析及处理单元。

目前的PC机至少都有一个串行通信端口RS-232, RS-232端口是PC机与其他设备沟通的最常用的接口, 不但操作简单, 而且价格便宜, 它可以用于上、下位机之间进行通信。PC机和单片机之间使用MAX232[1]将串口的电平与单片机的TTL电平进行转换, 采用3线制双工通信连接方式。

2 系统软件设计

2.1 通信协议

要想保证通信成功, 通信双方必须有一系列的约定, 即对数据传送方式的规定, 包括数据格式定义和数据位定义等, 这种约定就叫做通信协议, 它必须在编程之前确定下来。

本系统PC机作为主控机, 承担着对下位单片机的控制以及对下位机发送上来的数据的存储与处理等任务, 程序用Lab VIEW编写, 下位单片机承担着对按键的检测与液晶和数码显示控制任务, 程序采用C语言编写。通信时, 要求PC机和单片机的通信协议相同, 即通信波特率、起止位数、字长选择以及校验方式等一致。

本系统的通信协议为:采用RS-232异步通信方式, 数据传送的格式采用10bit, lbit起始位, 8bit数据位, 1bit停止位, 波特率为9600bit/s。

2.2 Lab VIEW下的串口通讯的实现[3]

本设计采用了VISA的串行通讯子V I来开发串行通信软件。VISA (Virtual Instrument Software Archiecture) 一种虚拟仪器软件规范, 是用于仪器编程的标准I/O函数库及其相关规范的总称。VISA库驻留在计算机系统中, 完成计算机与仪器之间的连接, 用以实现对仪器的程序控制。VISA本身不具有编程能力, 它是一个高层次API。通过调用低层驱动程序来实现对仪器的编程。VISA的I/O控制适用于VXI仪器、GPIB仪器、RS-232串行仪器等类型。

当系统启动时, 通过VISAWrite向单片机发送“发送请求命令”, 由于Lab VIEW的串行通信子V1只允许对字符串读写, 因此在数据处理时, 必须进行字符串与数字的转换, 我们采用字符串到数字的转换函数来实现。另外在接到计算机发送来的请求信号后, 单片机则回应应答信号, 计算机通过VISARead.vi节点读取单片机的应答信号, 并且判断是否收到来控制顺序结构中的While循环, 若计算机没有收到单片机的应答信号则重发“发送请求命令”, 若收到应答信号则顺序执行下面的程序, 即通过VISARead.vi节点读取数据。最后对取得的数据进行处理并控制、显示。

2.3 下位机串行通信程序设计[4]

AT89C52单片机内的串行通信接口是一个能同时发送和接收的全双工接口, 它既可用于通用异步接收和发送 (简称UART) , 又能用作同步移位寄存器。波特率和帧格式能通过编程自由设置。

下位机通信任务主要完成的工作是接收上位机的命令并执行。为了可以安全、有效的进行数据的传送和接收, 制定一些收发的规定。

(1) 只有上位机能够主动发命令。也就是说在下位机接收到上位机的命令后, 才进行发数据或进行相关的动作, 它不能主动向上位机发送数据。

(2) 单片机在接收到上位机的命令后, 如果发现命令无效 (接收时, 发生硬件错误或这个命令本身无意义) , 则向上位机发送命令错误信号, 以要求上位机重发命令。

(3) 单片机在接收到上位机的命令后, 接受到有效命令, 便进行发数据或进行相关的动作, 任务完成后, 再向上位机发送一个任务已完成的信号。

下位机通信软件流程图如1所示。

3 结语

串口通信技术是一项非常实用的技术, 在许多测控领域都有应用。Lab VIEW是一种功能强大的虚拟仪器图形化编程语言, 本文采用单片机作为下位机进行按键数据采集和数码及液晶显示控制, 在Lab VIEW软件平台上通过RS-232串口实现与PC机的串行通信。本方案被成功用于某型飞机模拟器武器火控数显及按键部分的工程实践, 实践证明应用先进的虚拟仪器软件 (LABVIEW) , 大大降低了单片机与计算机之间的通讯复杂程度, 减小了软件设计的工作量, 与采用Lab Vl EW配套数据采集板卡设备相比, 大大降低了投资成本。

摘要:本文介绍了利用LabVIEW语言来实现PC机与单片机之间通信的方法, 给出了系统通信协议, 并从软、硬件两个方面阐述了设计思想。

关键词:LabVIEW,串行通信,通信协议

参考文献

[1] 李朝青, 刘艳玲, 沈怡琳.单片机与PC机网络通信技术[M].北京:北京航空航天大学出版社, 2007.

[2] 杨乐平.LabVIEW程序设计与应用[M].北京:电子工业出版社, 2001.

[3] 王水鱼, 李宁, 胡树燕.基于LabVIEW实现PC机与单片机的串行通信[J].中国新通信, 2007 (12) :11~14.

[4] 喻宗泉, 喻晗, 李建民.单片机原理与应用技术[J].西安:西安电子科技大学出版社, 2006.

上一篇:浅析“营改增”背景下房地产企业土地成本进项扺扣问题下一篇:糖尿病患者饮食护理常见问题与对策