串行通讯
终端与计算机之间或者计算机与计算机之间进行交换信息时,除了采用并行通讯方式之外,还经常采用串行通讯方式。并行通讯是指数据的各位同时进行传送,其有点是传送数据速度快,缺点是有多少位数据就需要多少根传输线,这在数据位数较多,传送距离较远时就不宜采用。串行通讯是指数据一位一位地按顺序传送,其突出优点是只需一根传输线,特别适应于远距离传输,缺点是传送速度较慢。
在微机测量,控制系统中,目前串行数据的传输大多采用异步通讯的方式。
- 同步通讯和异步通讯
串行通讯分为同步传送和异步传送两种方式。
- ? 同步传送方式要求通信双方以相同的速率进行,而且要准确地协调。它通过共享一个单个时钟或定时脉冲源以保证发送方和接受方准确同步。其特点是允许连续发送一组字符序列(而非单个字符),每个字符数据位数相同,没有起始位和停止位,效率高。
- ? 异步传送方式不要求通信双方同步,发送方和接受方可以有各自的时钟源。为了能够实现通信,双方必须都遵循异步通信协议。在异步通信中,通信双方必须规定两件事:一是字符格式,即规定字符各部分所占的位数,是否采用奇偶校验,以及校验的方式;二是采用的波特率,以及时钟率与波特率之间的比例关系。由此可见,异步通信方式的传输效率比同步通信方式低,但它对通信双方的同步要求大大降低,因而成本也比同步通信方式低。
- DTE和DCE
在串行通讯中,用于发送和接收数据的设备称为数据终端设备(Data Terminal Equipment 简写为DTE)。DTE既可以是一台计算机,也可以是一台只接收数据的打印机。用于连接DTE与数据通信网络的设备称为数据通信设备(Data Communications Equipment 简写为DCE),或称为数据电路终接设备。DCE既可以是一个调制解调器,也可以是简单的线路驱动器。
- 波特率
在串行通讯中还有一个重要的指标——波特率(又称调制速率)。波特率定义为每秒钟传送二进制数码的位数,以位/秒(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。连线如图:
前面板如图:
4.客户机程序设计与服务器程序类似,其中使用了“Bytes At Serial Port.vi”函数和“Serial Port Read.vi”它们都在前文所提到的路径中,客户机程序框图如图:
前面板如图: