欢迎访问有用文档网!

当前位置: 有用文档网 > 作文大全 >

一种基于C语言和LabVIEW的串口通讯程序的设计

| 浏览次数:


打开文本图片集

摘要:本文主要通过串口通讯原理,对单片机和计算机之间通讯进行分析和研究,设计了一种基于C语言和LabVIEW实现串口通讯的方法,实现数据由单片机向PC机的传输。此方法已在实际应用中得到证明,设计简单,使用方便可靠。

关键词:串口通讯;单片机;LabVIEW

中图分类号:TP273  文献标识码:A    文章编号:1003-2177(201816-0000-00

在工业控制与信息采集等领域,经常需要单片机和PC机的共同完成指定工作。PC机运算速度快、容量大,单片机控制能力强[1]。很多工作需要单片机采集数据,PC机处理数据。所以单片机与PC机之间的数据通讯必不可少,多数情况是单片机向PC机传输数据。

本文设计的串口通讯程序包括下位机、上位机以及数据传输通道。软件设计中下位机以Keil uVision4作为开发平台,采用C语言对单片机进行编程,C语言在功能上、可读性、可维护性上优势明显,易学易用。上位机以LabVIEW作为开发平台,在工业和学术中LabVIEW是被应用最广泛的虚拟仪器开发平台。其编程简单,只需要通过交互式图形前面板进行系统控制和结果显示,再通过程序框图进行功能模块的组合和操作来制定各种功能[2]

1 串行通讯的实现方法

串口是计算机上一种通信协议,大多是计算机包含两个基于RS-232的串口[3]。单片机与上位机一般用RS-232串口通讯,RS-232(ANSI/EIA-232)是IBM-PC及兼容机上的串行连接标准,是PC机与通信工业中应用最广泛的一种串行接口[4]。其接口示意图如图1所示。

RS-232九芯接口共有9个接口。本设计只需连接三线:TXD、RXD和地线GND即可。TXD(pin 2):串口数据输出(Transmit Data);RXD(pin 3):串口数据输入(Receive Data); GND(pin 5):地线。

串口通信主要参数有:波特率、数据位、停止位和奇偶校验。

波特率是衡量計算机串口通信速度的指标[5],它表示每秒传送位的个数,其单位是b/s(位/秒),例如500波特率表示每秒发送500个bit;数据位是衡量计算机串口通信中时间数据位的指标。在RS-232通信协议中,实际传送数据顺序是:1位起始位、数据0、...、数据7、1位奇偶校验、1位停止位;停止位用于标志单个信息包的最后一位,停止位不仅仅是表示传输的结束,并且提供了矫正时钟同步的机会[6];奇偶校验位是在串口通信中一种简单的检错方式。当然没有校验位也是可以的。

2 下位机通讯程序设计

下位机基于ADuC845单片机通过Keil开发平台进行编写,下位机串口通讯程序对应的流程图如图2所示。

2.1串口初始化

串口初始化是数据通信程序中十分重要的一部分,初始化设置正确与否,将直接决定数据发送是否正确。串口初始化主要是对串口波特率的选择。由于串口的触发是由定时器3控制的,即通过定时器3设定波特率,设定好发送频率,当达到定时间隔时,程序就会进入发送状态。两个专用寄存器T3CON和T3FD用于设置定时器3。

T3CON是波特率控制寄存器[5],用于设置UART(通用串口)的波特率和二进制分频器(DIV)的分频数。写入DIV2~DIV0的数可用式(1)计算

(1)

其中,是由专用寄存器PLLCON所定义的内核频率,计算得到的DIV值需要取整。T3FD是所需波特率的一个分数分频,其值由式(2)计算

(2)

计算得到的T3FD的值需要取最接近他的整数。波特率可由式(3)计算

(3)

2.2发送数据

当完成串口初始化,并到达定时间隔后,就可以将数据传送给串行数据缓冲器(SBUF)。然后数据就会按照RS-232串口通信协议传递到计算机中,从而被上位机接收处理。

由于串口是按位发送的,所以程序在数据发送前要先进行拆分处理,方便串口传输。发送数据是数据通信程序最重要的部分,只有完整有序的将数据发往上位机,才能得到正确的数值。

2.3清除标志位

由于每次发完一次数据,硬件会自动将TI标志位置1,所以需要软件在每次发完后将其清零,否则将无法进行下一次的数据发送。此操作虽然简单,但是在串口程序中很重要,很多时候就是因为对其处理不当,导致数据发送有误。所以,准确及时的清除TI标志位十分重要。

对于以上设置部分程序代码如下:

T3CON=0x85;            //初始化设置,串口通讯 9600

T3FD=0X12;

SCON=0X52;             //8位UART,波特率可变,接收

SBUF=data;              //发送数据

while(TI==0);            //清除標志位

TI=0;

通过下位机程序实现了对数据的实时发送,接下来就需要上位机程序对数据进行接收。

3 上位机通讯程序设计

为使下位机采集的信息能上传到上位机,必须设计通讯接口程序。由于计算机和下位机采用的RS-232串口通信协议,所以上位机也要采用串口通信。其大致结构与下位机数据通信程序相同,其不同在于下位机是发送数据,上位机是接收数据。

上位机编程所用的软件是LabVIEW,其采用的是图形化编程,要编制串口通讯程序就需要对串口功能模块VISA进行配置和连接。VISA是虚拟仪器软件结构框架(virtual instrumentation software architecture)的简称,是一个调用底层代码来控制硬件的高层API(应用程序接口)[7]。VISA常用的函数由以下四个:

(1)VISA配置串口,如图3所示。

功能:设定波特率、数据位、停止位、奇偶校验位等参数,将VISA资源名称指定的串口按特定设置初始化。

(2)VISA写入,如图4所示。

功能:将“写入缓冲区”的数据写入VISA资源名称指定的串口。

(3)VISA读取,如图5所示。

功能:从VISA资源名称指定的串口中读取指定字节的数据,并将数据返回至读取缓冲区。

(4)VISA关闭,如图6所示。

功能:关闭VISA资源名称指定的串口会话或事件对象。

上位机通讯接口程序流程图如图7所示。

按照流程图,利用VISA函数模块,将对应的数据线进行连接设置,图8为部分VISA接线图,图9为LabVIEW的前面板,也就是上位机的人机界面。

4 结语

单片机与计算机通讯在工业和日常生活中发挥着巨大作用,本文设计了一种利用C语言和LabVIEW实现单片机与计算机串口通讯方法。软件设计遵循模块化设计方法,提高了程序的执行效率和易读性,运行简单方便。在上位机中只要对LabVIEW稍加扩展便可实现计算机对数据的转换、存储等数据处理操作。

参考文献

[1] 成志东,吕善伟.浅谈单片机与微机串行通讯的多语言编程实现[J].金卡工程,2005,(1):40-42.

[2] 王英红,秦化渤,闫芳,康伟.LabVIEW虚拟仪器开发平台及其应用分析[J].辽宁工学院学报(自然科学版),2004,(5):16-18.

[3] 张婷婷.基于.NET的RS-232高效串口调试程序设计与实现[J].计算机光盘软件与应用,2012,(17):197-198.

[4] 王公仆,王文成.计算机与单片机的串口通讯程序设计[J].轻工机械,2007,(3):103-105.

[5] ADI.MicroConverter® Multichannel 24-/16-Bit ADCs with Embedded 62kB Flash and Single-Cycle MCU ADuC845/ADuC847/ADuC848 Data Sheet[EB/OL],,2004.

[6] 付新华,王健.虚拟仪器软件标准及编程方法概述[J].电测与仪表,2005,(2):4-8.

作者简介:李雪妍(1982—)女,汉族,山东淄博人,电子科技大学硕士,淄博职业学院信息工程系,讲师,研究方向:计算机应用技术

推荐访问:串口 语言 通讯 程序 设计

热门排行Top Ranking

支部组织生活方面存在问题清单和整改措施 党组织生活个人问题整改清单

下面是小编为大家精心整理的支部组织生活方面存在问题清单和整改措施党组织生活个人问题整改清单文章,供大家阅读参考

2021年党员个人问题清单及整改措施 党组织生活个人问题整改清单

下面是小编为大家精心整理的2021年党员个人问题清单及整改措施党组织生活个人问题整改清单文章,供大家阅读参考。

浅析军队战斗力损耗的新变化

关键词:军队;战斗力损耗;新变化军队战斗力的结构,是战斗力各要素间的结合方式和相互关系。军队战斗力的

小学六年级毕业演讲稿100字左右9篇

小学六年级毕业演讲稿100字左右9篇小学六年级毕业演讲稿100字左右篇1敬爱的老师,亲爱的同学们:大

问题及整改措施 (2) 药房个人存在问题及整改措施

下面是小编为大家精心整理的问题及整改措施(2)药房个人存在问题及整改措施文章,供大家阅读参考。精品文章《问题及

个人问题清单及整改措施(最新) 能力作风建设个人问题清单及整改措施

下面是小编为大家精心整理的个人问题清单及整改措施(最新)能力作风建设个人问题清单及整改措施文章,供大家阅读参考。在认真

疫情防控赞美警察诗朗诵 关于警察的诗朗诵

下面是小编为大家精心整理的疫情防控赞美警察诗朗诵关于警察的诗朗诵文章,供大家阅读参考。疫情防控赞美警

纳税人满意度调查存在不足及对策探讨 提升纳税人满意度的方式方法有哪些

下面是小编为大家精心整理的纳税人满意度调查存在不足及对策探讨提升纳税人满意度的方式方法有哪些文章,供大家阅读参考。纳

小学思想品德教育面临的问题及对策

摘要:小学思想品德课程是小学教育教学过程中不可或缺的一门综合性课程,它对学生良好品德的形成具有重要影

2020党支部班子查摆问题清单及整改措施 农村党支部问题清单

下面是小编为大家精心整理的2020党支部班子查摆问题清单及整改措施农村党支部问题清单文章,供大家阅读参

消防安全检查简报 派出所校园消防安全检查简报

下面是小编为大家精心整理的消防安全检查简报派出所校园消防安全检查简报文章,供大家阅读参考。简报第2期申扎县中学

2021教师党员年度个人总结8篇

2021教师党员年度个人总结8篇2021教师党员年度个人总结篇1敬爱的党组织:我是一个普通年轻的人民