串行通讯主要用于单片机与外部其他计算机系统和外设之间的数据传输,以形成一个集检测、控制、管理为一体的计算机控制网络。串行通讯通常使用3根线完成:地线、发送线和接收线。串口通讯最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。
1.波特率
串行通信的数据是按位进行传送的,一般将机器每秒钟传送的二进制数码的位数称为波特率,单位为bps,即位/秒,比如1秒钟传送1位,就是1波特。用于说明数据传送的快慢。
串行通信常用的标准波特率常用的为600、1200、2400、4800、9600、19200等等。若数据传送速率为120字符/秒,而每一个字符帧已规定为10个数据位,则传输速率为120×10=1200位/秒,即波特率为1200,每一位数据传送的时间为波特率的倒数:
T=1/1200=0.833ms
2.异步通讯和同步通讯
在数据通讯中,要保证发送的信号在接收端能被正确地接收,必须采用同步技术。常用的同步技术有两种方式,异步通讯和同步通讯。
(1)异步通讯
异步通信是以字符为单位组成字符帧传送的。发送端和接收端可以由各自的时钟来控制发送和接收,这两个时钟彼此独立,不需同步。如图1所示。
图1 异步通讯示意图
在单片机中使用的是异步方式。每一字符帧由起始位、数据位、奇偶校验位和停止位组成,异步通讯的数据格式如图2所示。
图2 异步通讯数据格式
起始位:起始位通常用“0”表示,位于字符帧开头。
数据位:数据位通常包括5~8位数据,紧跟在起始位之后,先发送低位,后发送高位。
奇偶校验位:奇偶校验位用来检验数据传输过程中的正误,位于数据位之后,只占一位。
停止位:停止位通常用“1”表示,便于接收端辨识下一帧数据的起始位。
(2)同步通讯
同步通讯的基本形式包括2种,如图3所示。
图3 同步通讯的基本形式
用同步通讯方式传输数据块时,将需要传送的字符顺序连接起来组成一个数据块,在数据块前面加上特殊的同步字符作为数据块的起始符号,接收端接收到同步字符后,开始接收数据块,使收/发双方同步。其数据格式如图4。
图4 同步通讯数据格式
3.串行通讯的制式
串行通讯中包含三种制式:单工方式、半双工方式、全双工方式。这三种制式可以通过图5来观察。其中着重注意全双工方式,即双向数据通讯方式。
图5 串行通讯的制式