图14、 串口数据转换数据流图
图15、操作界面
图16、单片机C程序
2.2、字符串型数据的处理方法:
我们在处理过程当中,传输的数据可能具有一定格式或协议,比如一个完整的数据帧包括起始段、数据段、校验段等等,而每一段往往又有几个部分组成,这几个部分的类型和长度可能又不尽相同,可能是数值型的,可能是字符型的,也可能是布尔型的,单字节或者是多字节。此时我们往往都采用统一的字符形式来处理这些数据,因此有时候我们说,字符是LabVIEW里最方便的数据类型。
经过打包的字符数据要经过串口发送需要进行必要的转换,否则传输将出错。比如我们打包过后需要发送的的字符串为:34 12 56 78 94(空格为了区分),如果直接将其赋给VISA Write发送,串口上的数据将是:33 34 31 32 35 36 37 38 39 34。正确的转换程序如下。
图17、字符型数据处理
数据接收:
从计算机串口接收到的数据是16进制的ASCII码,要转换成对应的数值型数据,可以使用String To Byte Array或者Type Cast。
三、LabVIEW串口VI不能使用中断方式传输。
串行通讯
终端与计算机之间或者计算机与计算机之间进行交换信息时,除了采用并行通讯方式之外,还经常采用串行通讯方式。并行通讯是指数据的各位同时进行传送,其有点是传送数据速度快,缺点是有多少位数据就需要多少根传输线,这在数据位数较多,传送距离较远时就不宜采用。串行通讯是指数据一位一位地按顺序传送,其突出优点是只需一根传输线,特别适应于远距离传输,缺点是传送速度较慢。
在微机测量,控制系统中,目前串行数据的传输大多采用异步通讯的方式。
1. 同步通讯和异步通讯
串行通讯分为同步传送和异步传送两种方式。
o ? 同步传送方式要求通信双方以相同的速率进行,而且要准确地协调。它通过共享一个单个时钟或定时脉
冲源以保证发送方和接受方准确同步。其特点是允许连续发送一组字符序列(而非单个字符),每个字符数据位数相同,没有起始位和停止位,效率高。
o ? 异步传送方式不要求通信双方同步,发送方和接受方可以有各自的时钟源。为了能够实现通信,双方必
须都遵循异步通信协议。在异步通信中,通信双方必须规定两件事:一是字符格式,即规定字符各部分所占的位数,是否采用奇偶校验,以及校验的方式;二是采用的波特率,以及时钟率与波特率之间的比例关系。由此可见,异步通信方式的传输效率比同步通信方式低,但它对通信双方的同步要求大大降低,因而成本也比同步通信方式低。
2. DTE和DCE
在串行通讯中,用于发送和接收数据的设备称为数据终端设备(Data Terminal Equipment 简写为DTE)。DTE既可以是一台计算机,也可以是一台只接收数据的打印机。用于连接DTE与数据通信网络的设备称为数据通信设备(Data Communications Equipment 简写为DCE),或称为数据电路终接设备。DCE既可以是一个调制解调器,也可以是简单的线路驱动器。
3. 波特率
在串行通讯中还有一个重要的指标——波特率(又称调制速率)。波特率定义为每秒钟传送二进制数码的位数,以位/秒(bit/s)为单位,亦称“波特”。在异步通讯中,波特率为每秒传送的字符数和每个字符位数的乘积,例如每秒传送的速率为120字符/秒,而每个字符又包含10位(1位起始位,7位数据位,1位奇偶校验位,1位停止位),则波特率为:
120字符/秒×10位/字符=1200位/秒=1200波特
注意:波特率与时钟频率不是一回事,时钟频率比波特率要高得多,通常在高16倍或64倍。由于异步通讯双方各用自己的时钟源采用较高频率的时钟,在一位数据内就有16位或64个时钟,捕捉正确的信号就可以得到保证,若时钟频率就是波特率,则频率稍有偏差就会发生接收错误。
LabVIEW中的串行通讯选板
安装完labVIEW8.2后,还需要安装VISA的驱动程序才能使用串口,驱动程序的下载地址为:
ftp://ftp.ni.com/support/visa/drivers/win32/4.0/visa400full.exe
LabVIEW中有关串口的函数选板如图,它位于函数→仪器I/O→串口
下面举一个例子来说明串口是如何进行通讯的
例:双机通讯
1. 功能描述
双机通信是在两台计算机之间进行串口通讯。一台计算机作为服务器,通过RS-232串口向外发送数据;另一台计算机作为客户机,接收由服务器发送来的数据。
2. 串口引脚连接
两台计算机的串口之间通过一根RS-232电缆线连接起来,串口电缆线采用三线制,它只使用发送数据(TxD),接收数据(RxD)和信号地(SG)三根信号线。
3. 服务器程序设计
其程序设计如下:
㈠新建一个VI,在前面板上放置4个输入控件:“端口号”,“波特率”,“数据比特”和“停止位”。另外,放置一个字符串输入控件,在其内部输入向外发送的字符串数据。添加程序文本标签“串口服务器”。
㈡在程序框图中放置一个层叠式顺序结构,创建两个分支。在第0分支中,放置一个“Serial Port Init.vi”函数,并添加一个顺序局部变量;在第1分支中,放置一个“Serial Port Write.vi”函数,它们位于labVIEW8.2→vi.lib→Instr→serial。连线如图:
前面板如图:
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库在LabVIEW中使用串口(2)在线全文阅读。
相关推荐: