同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。
采用同步通信时,将许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。在同步传输过程中,一个字符可以对应5~8位。当然,对同一个传输过程,所有字符对应同样的数位,比如说n位。这样,传输时,按每n位划分为一个时间片,发送端在一个时间片中发送一个字符,接收端则在一个时间片中接收一个字符。
同步传输时,一个信息帧中包含许多字符,每个信息帧用同步字符作为开始,一般将同步字符和空字符用同一个代码。在整个系统中,由一个统一的时钟控制发送端的发送和空字符用同一个代码。接收端当然是应该能识别同步字符的,当检测到有一串数位和同步字符相匹配时,就认为开始一个信息帧,于是,把此后的数位作为实际传输信息来处理。
同步通信协议:
1.面向字符的同步协议(IBM的BSC协议)
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字段的检验码。
2.面向bit的同步协议(ISO的HDLC)
一帧信息可以是任意位,用位组合标识帧的开始和结束。 帧格式为:
F场:标志场;作为一帧的开始和结束,标志字符为8位,01111110。
A场:地址场,规定接收方地址,可为8的整倍位。接收方检查每个地址字节的第1位,如果为"0",则后边跟着另一个地址字节。若为"1",则该字节为最后一个地址字节。
C场:控制场。指示信息场的类型,8位或16位。若第1字节的第1位为0,则还有第2个字节也是控制场。
I场:信息场。要传送的数据。 FC场:帧校验场。16位循环冗余校验码CRC。除F场和自动插入的"0"位外,均参加CRC计算。同步通信相关技术:
1.同步通信的"0位插入和删除技术"
在同步通信中,一帧信息以一个(或几个)特殊字符开始,例如,F场=01111110B。但在信息帧的其他位置,完全可能出现这些特殊字符,为了避免接收方把这些特殊字符误认为帧的开始,发送方采用“0位插入技术",相应地,接收方采用"0位删除技术"。发送方的0位插入:除了起始字符外,当连续出现5个1时,发送方自动插入一个0。使得在整个信息帧中,只有起始字符含有连续的6个1。
接收方的"0位删除技术":接收方收到连续6个1,作为帧的起始,把连续出现5个1后的0自动删除。
2.同步通信的"字节填充技术"
设需要传送的原始信息帧为:
SOT DATA EOT
字节填充技术采用字符替换方式,使信息帧的DATA中不出现起始字符SOT和结束字符EOT。
假设按下表方式进行替换:
其中,ESC=1AH,X、Y、Z可指定为任意字符(除SOT、EOT、ESC外)。
发送方按约定方式对需要发送的原始帧进行替换,并把替换后的新的帧发送给接收方。例如图所示:
接收方按约定方式进行相反替换,可以获得原始帧信息。
相关芯片
专用USRT和UART接口芯片
支持USART的芯片
现在多数的Microcontroller和DSP芯片内部都配置有USART,可以同时支持同步传输和异步传输,主要厂商的Microcontroller如下:
TI:MSP430 系列
芯片文档链接
http://focus.ti.com.cn/cn/general/docs/lit/getliterature.tsp?genericPartNumber=msp430f447
Philips :XA-H3/H4系列
芯片文档链接
http://www.semiconductors.philips.com/acrobat/datasheets/XA-H4_1.pdf
Freescale:MPC823 系列
芯片文档链接
Synchronous Communications同步通信
当设备进行数据交换时,在两个设备间将存在信息流。在任何数据传输中,发送方和接收方必须有办法提取信息的单个字符或块(帧)。字符在连续的比特流中到达,因此,需要有一种方法能将一个比特块与其他的比特块分开。在异步通信中,每个字符都由标记隔开,所以可以确切地知道字符的位置。而在同步通信中,发送方和接收方都通过时钟或编码到数据流中的信号进行同步。
在同步通信中,在发送数据之前发送方和接收方必须互相同步。同步通信把许多字符组成一个信息组,或称为信息帧,每帧的开始用同步字符来指示。由于发送和接收的双方采用同一时钟,所以在传送数据的同时还要传送时钟信号,以便接收方可以用时钟信号来确定每个信息位。为维持长期的时钟同步,在数字信号中嵌入了帮助维持发送方和接收方之间同步的专用比特转移模式。一种嵌入定时信息的方法是所谓的双极性编码,如图S-14所示。在这种方法中,比特流(显示在图的顶部)与时钟脉冲(显示在图的中部)配合来产生传输信号(显示在图的底部)。
面向比特的同步通信主要用于二进制数据的传输。它不依靠任何特定的字符集,并且帧的内容也不需要含有多个8bit。一个惟一的8bit模式(01111110)用作帧的的开始标记。
图S-14 用来进行同步通信的双级编码
同步通信要求在传输线路上始终保持连续的字符位流,若计算机没有数据传输,则线路上要用专用的“空闲”字符或同步字符填充。同步通信传送信息的位数几乎不受限制,通常一次通信传的数据有几十到几千个字节,通信效率较高。但它要求在通信中保持精确的同步时钟,所以其发送器和接收器比较复杂,成本也较高,一般用于传送速率要求较高的场合。
在聊天和即时消息传送中,人们可以看到一种完全不同的同步通信形式。如同话音电话呼叫那样,聊天或即时消息传送会话是实时的,每位用户都实时响应对方。相反,讨论论坛和电子邮件则属于异步通信。用户可能在若干时间过后才响应消息。在讨论论坛中,用户可以在任何时候阅读和响应那些位于信息队列中的信息,或者直到信息从信息队列中消失。任何Internet用户从几乎任何与Web相连的系统都可以访问这两种形式的通信,这也许正是Internet的意义最为深远的方面,它促发了一种新的形式来进行全球即时通信和协作。在讨论论坛和电子邮件中,延迟通信可以让响应者在响应之前有时间考虑如何响应和从其他地方收集信息。