APP下载

基于LabVIEW的单片机图形调试平台的设计与应用

2020-10-21白玉邱敏于光华

机电信息 2020年8期
关键词:串口单片机课程改革

白玉 邱敏 于光华

摘要:根据学校多年组织大学生参加“全国大学生机器人大赛”的经验,利用LabVIEW软件搭建了一个单片机图形调试平台,该平台修改方便、应用灵活,可以使更多没有参赛经历的学生能够更好地提高动手能力。

关键词:LabVIEW;单片机;课程改革;串口

0 引言

我校多年来组织大学生参加了“全国大学生机器人大赛”,绝大部分经过大赛历练的队员都能成为工程实践能力强、创新能力强、团队协作能力强、具有国际竞争力的高素质复合型人才。在设计开发机器人过程中,单片机在机器人控制部分占据了主导地位,我们通过长期的实践探索发现,在设计和调试单片机控制系统时,图像化显示各中间环节调试的数据将给系统开发带来极大的好处。本文以STC系列单片机为例,其通过串口与计算机相连,设计了一款基于LabVIEW软件的图形化数据显示工具。

1 LabVIEW的串口通信

LabVIEW是美国国家仪器(NI)公司研发的一款实用工具软件,其基于图形化的编辑语言和简单实用的组件使用方式,可以幫助我们快速构建各种应用所需的工具,提高开发效率。

单片机与计算机的连接有多种方式,如USB、CAN、JTAG等,但串口通信仍是目前最简单、最实用的连接方式。在LabVIEW软件中,若要使用串口,需先安装VISA驱动。

2 通信协议设计

16进制字符传递信息多,效率较高,但单片机在处理16进制字符串的收发时相对较复杂。字符数据通信时,所有信息以特定字符开头的字符串表示,虽然效率有所降低,但可以直接使用标准格式输入输出函数sprintf()、sscanf()等,使用方便,开发效率高。本设计中采用的通信协议为:起始符$+命令标示符1+参数1+……,命令标示符2+参数2+……+*+校验码。

3 下位机程序设计

3.1    字符发送

单片机在串口设置完成后,可以直接使用printf()函数将变量以字符形式输出到串口,此时串口为查询状态,即字符发送时单片机一直处于查询是否发送完成的状态,无法执行其他指令,效率太低。

为提高效率,建立了一个数组作为发送数据的缓冲区,利用sprintf()函数将待发送的数据按特定格式以字符的形式存储到缓冲区,当打开串口中断时可以逐个传输,还可以通过vsprintf()函数实现自定义printf()函数。

3.2    字符接收

串口处在中断状态,将收到的每个字符存入接收缓冲区。当接收到一个完整的数据包时设置相应标志,在主函数中对数据包进行处理。

3.3    上位机程序设计

3.3.1    串口设置

LabVIEW软件的串口设置由VISA Configure Serial Port VI(图1)实现,通过该节点可以设置串口的基本信息,包括波特率、串口号、数据位、校验位、停止位等。

通过VISA读取节点可以实现串口接收,如图2所示。

通过VISA写入节点可以实现串口的发送功能,如图3所示。

3.3.2    串口发送

串口发送部分的程序框图如图4所示,当按下确定按钮时即会把字符串中的信息发送入串口。信息发送只需在字符串模块中输入需要发送的字符信息即可。

3.3.3    串口接收

LabVIEW的串口通信节点的工作方式为:查询串口的接收缓冲区,如果缓冲区中有数据就读取数据进行处理,若缓冲区内没有数据则在此等待,直到数据到来或超时退出。因此,在使用时需要根据实际数据情况设置数据读取时间间隔和超时时间,才能使系统稳定运行。

在发送端数据发送速率基本稳定时,为提高效率,可以将数据读取间隔时间设为下位机发送一组完整数据包的时间。否则,会造成缓冲区溢出或等待时间过长导致程序出错。

因数据以字符形式传送,可以通过字符串操作的函数对数据进行处理。在寻找数据头时,可采用“搜索/拆分字符串(函数)”(图5)的方式,将特征字符送入搜索字符串处,即可得到以此开头的特定字符串,将“匹配+剩余字符串”作为输出结果送入字符串转数值模块,配合适当的偏移量进行处理,即可得到相应的数值和剩余的字符串。若需要对实际数据进行计算还可以通过加入函数计算环节来实现。分数/指数字符串至数值转换如图6所示。

为了能把接收到的数据以图形的方式显示出来,采用波形图表作为数据显示控件。若需要显示多组数据,可使用“捆绑(函数)”将各组独立数据组合为簇,共同显示于波型图表上。系统的完整程序框图如图7所示。

系统界面如图8所示。

至此构建了一个单片机与计算机间的通用调试平台,通过此平台,可以向单片机发送串口指令、修改运行参数。同时,还可将单片机的运行状态、变量信息以图表和仪表的方式实时显示出来。

4 结语

本文结合我校学生参加“全国大学生机器人大赛”的实践经验,应用LabVIEW软件搭建了一个单片机图形调试平台,其构建简单,修改方便,应用灵活,虽然LabVIEW的串口通信工作效率不是很高,但对于大部分单片机系统来说已经足够。与利用C#等软件开发上位机相比,此平台开发门槛更低,开发速度更快,使更多没有参赛经历的学生能够更好地提高动手能力,起到推进单片机课程体系改革的作用。

[参考文献]

[1] 吕向锋,高洪林,马亮,等.基于LabVIEW串口通信的研究[J].国外电子测量技术,2009(12):27-30.

[2] 胡发焕,刘祚时,朱花.以机器人大赛为契机探索大学生创新能力培养模式[J].中国电力教育,2013(28):53-54.

[3] 张素萍,李朝强,高照阳.基于RS485和LabVIEW的电参数测量仪数据采集系统[J].仪表技术与传感器,2015(6):24-27.

收稿日期:2020-03-06

作者简介:白玉(1979-),男,山东梁山人,副教授,研究方向:数字信号处理。

猜你喜欢

串口单片机课程改革
MCS—51单片机中的多串口通讯技术的应用
“双创”形势下高职财务管理课程改革探索
基于创意的对口单招色彩课程改革突破点研究
校企协同实施高职专业课程改革的实践研究
C8051F020与80C51单片机的异同点
全国计算机等级考试机房准备工作探讨
微机串口的测试诊断
基于VC串口通信的实现
单片机I/O口模拟串行通讯的C51实现方法
单片机调试方法的探讨