串口通讯-同步通信方式
1 、同步通信方式的特点:
采用同步通信时,将许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙.在同步传输过程中,一个字符可以对应 5 ~ 8 位.当然,对同一个传输过程,所有字符对应同样的数位,比如说 n 位.这样,传输时,按每 n 位划分为一个时间片,发送端在一个时间片中发送一个字符,接收端则在一个时间片中接收一个字符.
同步传输时,一个信息帧中包含许多字符,每个信息帧用同步字符作为开始,一般将同步字符和空字符用同一个代码.在整个系统中,由一个统一的时钟控制发送端的发送和空字符用同一个代码.接收端当然是应该能识别同步字符的,当检测到有一串数位和同步字符相匹配时,就认为开始一个信息帧,于是,把此后的数位作为实际传输信息来处理.
2 、面向字符的同步协议( IBM 的 BSC 协议)
该协议规定了 10 个特殊字符(称为控制字符)作为信息传输的标志.其格式为
SYN
SOH
标题
STX
数据块
ETB/ETX
块校验
SYN :同步字符( Synchronous character ),每帧可加 1 个(单同步)或 2 个(双同步)同步字符.
SOH :标题开始( Start of Header ).
标题: Header ,包含源地址(发送方地址)、目的地址(接收方地址)、路由指示.
STX :正文开始( Start of Text ).
数据块:正文( Text ),由多个字符组成.
ETB: 块传输结束( end of transmission block ), 标识本数据块结束.
ETX :全文结束( end of text ),(全文分为若干块传输).
块校验:对从 SOH 开始,直到 ETB/ETX 字段的检验码.
3 、面向 bit 的同步协议( ISO 的 HDLC )
一帧信息可以是任意位,用位组合标识帧的开始和结束. 帧格式为:
F 场
AF 场
C 场
I 场
FC 场
F 场
F 场:标志场 ; 作为一帧的开始和结束,标志字符为 8 位, 01111110 .
A 场:地址场,规定接收方地址,可为 8 的整倍位.接收方检查每个地址字节的第 1 位,如果为 "0" ,则后边跟着另一个地址字节.若为 "1" ,则该字节为最后一个地址字节.
C 场:控制场.指示信息场的类型, 8 位或 16 位.若第 1 字节的第 1 位为 0 ,则还有第 2 个字节也是控制场.
I 场:信息场.要传送的数据.
FC 场:帧校验场. 16 位循环冗余校验码 CRC .除 F 场和自动插入的 "0" 位外,均参加 CRC 计算.
4 、同步通信的 "0 位插入和删除技术 "
在同步通信中,一帧信息以一个(或几个)特殊字符开始,例如, F 场 =01111110B .
但在信息帧的其他位置,完全可能出现这些特殊字符,为了避免接收方把这些特殊字符误认为帧的开始,发送方采用了 "0 位插入技术 " ,相应地,接收方采用 "0 位删除技术 " .
发送方的 0 位插入:除了起始字符外,当连续出现 5 个 1 时,发送方自动插入一个 0 .使得在整个信息帧中,只有起始字符含有连续的 6 个 1 .
接收方的 "0 位删除技术 " :接收方收到连续 6 个 1 ,作为帧的起始,把连续出现 5 个 1 后的 0 自动删除.
5 、同步通信的 " 字节填充技术 "
设需要传送的原始信息帧为:
SOT
DATA
EOT
节填充技术采用字符替换方式,使信息帧的 DATA 中不出现起始字符 SOT 和结束字符 EOT .
设按下表方式进行替换:
DATA 中的原字符
替换为
SOT
ESC X
EOT
ESC Y
ESC
ESC Z
其中, ESC=1AH , X 、 Y 、 Z 可指定为任意字符(除 SOT 、 EOT 、 ESC 外).
发送方按约定方式对需要发送的原始帧进行替换,并把替换后的新的帧发送给接收方.
接收方按约定方式进行相反替换,可以获得原始帧信息.
6 、异步通信和同步通信的比较
( 1 )异步通信简单,双方时钟可允许一定误差.同步通信较复杂,双方时钟的允许误差较小.
( 2 )异步通信只适用于点 <--> 点,同步通信可用于点 <--> 多.
( 3 )通信效率:异步通信低,同步通信高.