一、什么是串口通讯(Serial Communication)?
1.1串口通讯(Serial Communication)是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送,通过数据信号线、地线等,按位进行传输数据的一种通讯方式。使用串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0,串口通信特点是慢、少、远,这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。
串口是一种接口标准,它规定了接口的电气标准,没有规定接口插件电缆以及使用的协议。典型的串口通讯标准常见有如下三种。
EIA RS232(通常简称“RS232”): 1962年由美国电子工业协会(EIA)制定。
EIA RS485(通常简称“RS485”): 1983年由美国电子工业协会(EIA)制定。
EIA RS422(通常简称“RS422”): 1924年由美国电子工业协会(EIA)制定。
1.2并行通信的通信原理是数据的各位同时传送,特点是快、多(数据线)、近;在计算机和终端之间的数据传输通常是靠电缆或信道上的电流或电压变化实现的。如果一组数据的各数据位在多条线上同时被传输,这种传输方式称为并行通信。计算机或PLC各种内部总线就是以并行方式传送数据的。
串口通讯与并行通信的示意图:
二、串行通讯方式
串行通信方式分为单工(Simplex Communication)、半双工模式(Half Duplex)、全双工模式(Full Duplex)三种工作方式。
(a)单工模式(Simplex Communication)的数据传输是单向的。在通信双方中,一方固定为发送端,另一方则固定为接收端。信息只能沿一个方向传输,使用一根传输线,具体如上图的(a)的单工通信方式。
(b)半双工模式(Half Duplex)通信使用同一根传输线,既可以发送数据又可以接收数据,但不能同时进行发送和接收。数据传输允许数据在两个方向上传输,但是,在任何时刻只能由其中的一方发送数据,另一方接收数据。因此半双工模式既可以使用一条数据线,也可以使用两条数据线。半双工通信中每端需有一个收发切换电子开关,通过切换来决定数据向哪个方向传输。因为有切换,所以会产生时间延迟,信息传输效率低些。
(c)全双工模式(Full Duplex)通信允许数据同时在两个方向上传输。因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。在全双工模式中,每一端都有发送器和接收器,有两条传输线,信息传输效率高。
显然,在其它参数都一样的情况下,全双工比半双工传输速度要快,效率要高。
三、串行通信的分类串行通信可以分为同步通信和异步通信两类。同步通信是按照软件识别同步字符来实现数据的发送和接收,异步通信是一种利用字符的再同步技术的通信方式。
3.1同步通信
同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。它们均由同步字符、数据字符和校验字符(CRC)组成。其中同步字符位于帧开头,用于确认数据字符的开始。数据字符在同步字符之后,个数没有限制,由所需传输的数据块长度来决定,校验字符有1到2个,用于接收端对接收到的字符序列进行止确性的校验。同步通信的缺点是要求发送时钟和接收时钟保持严格的同步。
3.2异步通信
异步通信中,在异步通行中有两个比较重要的指标:字符帧格式和波特率。数据通常以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。接收端检测到传输线上发送过来的低电平逻辑"0"(即字符帧起始位)时,确定发送端已开始发送数据,每当接收端收到字符帧中的停止位时,就知道一帧字符己经发送完毕。