当前位置: 东星资源网 > 作文大全 > 四年级作文 > 正文

单片机串口通信【基于LabVIEW的计算机与单片机串口通信系统】

时间:2019-01-08 来源:东星资源网 本文已影响 手机版

  摘 要 计算机被广泛运用到测试领域,虚拟仪器技术的分布式测试系统是这一领域的主流。基于LabVIEW的计算机串口与MCS51串口通信系统利用计算机强大的数据处理功能和现有的串口通信协议,从而使复杂的工作简易化。
  关键词 虚拟仪器;LabVIEW;MCS51;串口通信协议
  中图分类号:TP311.52 文献标识码:B 文章编号:1671-489X(2012)06-0114-02
  LabVIEW-based Computer and Microcontroller Serial Communication System Design//Liu Wenjun
  Abstract The computer has been widely applied to the test area, based on virtual instrument technology for distributed test system is the mainstream in this field. LabVIEW-based computer serial port and serial communication system using computer MCS51 powerful data processing capabilities and the existing serial communication protocol, so that complex task easier.
  Key words virtual instrument; LabVIEW; MCS51; serial communication protocol
  Author’s address Rizhao Radio and TV University, Rizhao, Shandong, China 276826
  
  通讯即是不同的设备通过线路互相交换数据,其主要目的在于将数据从某端传送到另一端,实现数据的交换。通常有并行和串行两种方式,并行传输方式在数据电压传送的过程中容易因线路的因素而使得电压准位发生变化(衰减、线路互相干扰)。串行通信是一种古老但目前仍常用的通讯方式,早期的仪器、PC机等均使用串口与单片机进行通讯,在工业应用中绝大多数使用串行通讯。
  串行通信中存在一个问题是,在数据传送过程中如何使接收者和发送者保持一致。串口可以将接收到的数据放入输入缓存,但输入缓存的容量是有限的,当输入缓存满时,设备就会忽略送来的新数据,直至从输入缓存中读出数据为新数据腾出足够的空间为止,这样就造成数据的丢失。握手协议可以帮助避免缓存溢出。通过握手,发送者和接收者可以在缓存将满时相互通报,发送者停止发送新的数据,直至接收者做好接收新数据的准备。
  在LabVIEW中,有软件和硬件两种握手协议。用SERIAL PORT INIT节点可以设置握手协议的各种参数。XON/XOFF是软件握手协议,可以用来避免串口缓存的溢出。当输入缓存快满时,接收者就会发送XOFF信号,通知发送者停止发送数据;当输入缓存完全清空时,接收者发送XON信号,通知发送者继续发送数据。
  1 LabVIEW部分设计
  1.1 串行通信节点的位置
  LabVIEW共有5个串行通信节点,分别实现串口设置、串口写、串口读、检测串口缓存、中断等功能,这些节点位于功能模板INSTRUMENT I/O子模板中。
  1.2 串行通信节点的使用方法
  串行通信节点的使用方法比较简单,且易于理解,下面介绍各节点的参数定义、用法及功能。
  1)初始化串口(serial port init.vi)。如图1所示,该节点可以设置串口的波特率、数据位、停止位、奇偶校验位、缓存大小及流量控制等参数。该节点用于初始化串口,在利用计算机控制串口仪器设备时,会经常用到这个节点。在进行串口通信前,首先要配置好串口,也即先初始化串口,使计算机串口的各种参数设置与仪器设备的串口保持一致,这样才能够正确地通信。
  2)串口写(serial port write.vi)。如图2所示,该节点将需要送出的数据发送至串口的输出缓存。
  3)检测串口输入缓存中的字节数(bytes at serial port.vi)。如图3所示,在使用serial port read节点读串口前,先用该节点检测当前串口输入缓存中已存在的字节数,然后由此指定serial port read节点从串口输入缓存中读出的字节数,可以保证一次就将串口输入缓存中的数据全部读出。
  4)串口读(serial port read.vi)。如图4所示,从串口缓存中读出由requested byte count端口指定长度的数据。
  5)串口中断(serial port break.vi)。如图5所示,将端口中断一段时间,该时间由delay端口指定,单位为ms。
  1.3 串行通信设计
  1)流程图设计如图6所示。
  2)面板设计:①port number端口,设置串口通信的串口号;②baud rate端口,设置串口通信的波特率;③data bits端口,设置串口通信的数据位;④stop bits端口,设置串口通信的停止位;⑤parity端口,设置串口通信的奇偶校验位;⑥command sended to 51端口,属性为Control,指令输入端口;⑦message from 51端口,属性为Indicator,用于显示51单片机反馈的信息。
  2 单片机部分设计
  2.1 单片机串口通讯系统接线图(图7)
  2.2 硬件部分
  MCS51单片机内部有一个功能很强的全双工串行口,该串行口有4种工作方式,波特率可用软件设置,由片内的定时器/计数器产生。接收、发送均可触发中断系统,使用十分方便。有2个物理上的独立的接收、发送缓冲器SBUF,对外也有两条独立的收、发信号线RXD(P3.0)和TXD(P3.1)。
  本系统采用RS232串行接口标准,在电气特性上,RS232采用负逻辑,要求高低两信号间有较大的幅度,标准为:逻辑“1”在-5 V~-15 V之间,逻辑“0”在+5 V~+15 V之间,通常采用-10 V左右为逻辑1,+10 V左右为逻辑0。由于MCS51系统的信号输入输出为TTL电平,逻辑1为3.8 V左右,逻辑0为0.4 V左右,因此,必须外接电路实现TTL电平到RS232电平的转换。本系统采用MAX232E实现此转换。
  2.3 软件部分
  框1给出单片机串口通信软件的主要程序,波特率设置为9600,用定时器1设定波特率,串口工作在方式1,无奇偶校验。定时器0设定采样的时间间隔。
  3 小结
  LabVIEW是开发虚拟仪器的强大工具,图形化的编程界面使开发者可方便地开发出理想的虚拟仪器程序,同时LabVIEW提供了强大的网络功能,使利用LabVIEW开发基于网络的分布式测试系统更为方便快捷。该系统要求两机的波特率、数据位、奇偶校验位要一致,因此,对于单片机编程要严格按照两机的通信协议,这样才能使两机进行无误的通信。
  参考文献
  [1]杨乐平,李海涛.LabVIEW高级程序设计[M].北京:清华大学出版社,2007.
  [2]孙育才.MCS―51系列单片微型计算机及其应用[M].南京:东南大学出版社,2004.
  [3]陈粤初.单片机应用系统设计与实践[M].北京:北京航空航天大学出版社,1991.
  [4]杨乐平,李海涛,肖相生,等.LabVIEW程序设计与应用[M].北京:电子工业出版社,2001.
  [5]胡汉才.单片机原理及系统设计[M].北京:清华大学出版社,2002.

标签:串口 单片机 通信系统 计算机