串口通信的分类
串口通信可以分为同步通信和异步通信两类。同步通信是按照软件识别同步字符来实现数据的发送和接收,异步通信是一种利用字符的再同步技术的通信方式。
2.1同步通信
同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。如图:
单同步字符帧结构
+-----+------+-------+------+-----+--------+-------+-------+
|同步|数据 |数据 |数据|...|数据|CRC1|CRC2|
|字符|字符1|字符2|字符3||字符N|||
+-----+------+-------+------+-----+--------+-------+-------+
双同步字符帧结构
+-----+--------+------+-------+---+-------+-------+--------+
|同步|同步 |数据|数据 | ...|数据 |CRC1|CRC2|
|字符1|字符2|字符1|字符2||字符N|||
+-----+--------+------+-------+---+-------+-------+--------+
它们均由同步字符、数据字符和校验字符(CRC)组成。其中同步字符位于帧开头,用于确认数据字符的开始。数据字符在同步字符之后,个数没有限制,由所需传输的数据块长度来决定;校验字符有1到2个,用于接收端对接收到的字符序列进行正确性的校验。
同步通信的缺点是要求发送时钟和接收时钟保持严格的同步。
2.2异步通信
异步通信中,数据通常以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。
接收端检测到传输线上发送过来的低电平逻辑"0"(即字符帧起始位)时,确定发送端已开始发送数据,每当接收端收到字符帧中的停止位时,就知道一帧字符已经发送完毕。
在异步通行中有两个比较重要的指标:字符帧格式和波特率。
(1)字符帧,由起始位、数据位、奇偶校验位和停止位组成。如图:
无空闲位字符帧
+--+---+---+---+---+--+--+--+--+--+--+--+---+---+---+--+--+
|D7|0/1| 1 | 0 |D0|D1|D2|D3|D4|D5|D6|D7|0/1| 1 | 0|D0|D1|
+--+---+---+---+--+--+--+--+--+--+--+--+---+---+---+--+--+
奇偶停起奇偶 停 起
校验止始校验 止 始
位位位 位
有空闲位字符帧
+---+---+--+--+--+--+--+--+--+--+---+---+---+---+---+---+--+
| 1 | 0 |D0|D1|D2|D3|D4|D5|D6|D7|0/1| 1 | 1 | 1 | 1| 0 |D0|
+---+---+--+--+--+--+--+--+--+--+---+---+---+---+---+---+--+
空起奇偶 停 空闲 位 起
闲始校验止始
位位位位
1.起始位:位于字符帧开头,占1位,始终为逻辑0电平,用于向接收设备表示发送端开始发送一帧信息。
2.数据位:紧跟在起始位之后,可以设置为5位、6位、7位、8位,低位在前高位在后。
3.奇偶校验位:位于数据位之后,仅占一位,用于表示串行通信中采用奇校验还是偶校验。
(2)波特率,波特率是每秒钟传送二进制数码的位数,单位是b/s。
异步通信的优点是不需要传送同步脉冲,字符帧长度也不受到限制。缺点是字符帧中因为包含了起始位和停止位,因此降低了有效数据的传输速率。