串口通讯—同步通信方式
来源:互联网 发布:广州淘宝摄影基地推荐 编辑:程序博客网 时间:2024/04/29 05:59
串口通讯—同步通信方式
1. 同步通信方式的特点:
采用同步通信时,将许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。在同步传输过程中,一个字符可以对应5~8位。当然,对同一个传输过程,所有字符对应同样的数位,比如说n位。这样,传输时,按每n位划分为一个时间片,发送端在一个时间片中发送一个字符,接收端则在一个时间片中接收一个字符。
同步传输时,一个信息帧中包含许多字符,每个信息帧用同步字符作为开始,一般将同步字符和空字符用同一个代码。在整个系统中,由一个统一的时钟控制发送端的发送和空字符用同一个代码。接收端当然是应该能识别同步字符的,当检测到有一串数位和同步字符相匹配时,就认为开始一个信息帧,于是,把此后的数位作为实际传输信息来处理。
2. 面向字符的同步协议(IBM的BSC协议)
图 1 BSC协议
该协议规定了10个特殊字符(称为控制字符)作为信息传输的标志。其格式为
SYN
SOH
标题
STX
数据块
ETB/ETX
块校验
(1) SYN:同步字符(Synchronous character),每帧可加1个(单同步)或2个(双同步)同步字符。
(2) SOH:标题开始(Start of Header)。
(3) 标题:Header,包含源地址(发送方地址)、目的地址(接收方地址)、路由指示。
(4) STX:正文开始(Start of Text)。
(5) 数据块:正文(Text),由多个字符组成。
(6) ETB:块传输结束(end of transmission block),标识本数据块结束。
(7) ETX:全文结束(end of text),(全文分为若干块传输)。
(8) 块校验:对从SOH开始,直到ETB/ETX字段的检验码。
3. 面向bit的同步协议(ISO的HDLC)
图2 HDLC协议
一帧信息可以是任意位,用位组合标识帧的开始和结束。帧格式为:
F场
A场
C场
I场
FC场
F场
(1) F场:标志场,作为一帧的开始和结束,标志字符为8位,01111110。
(2) A场:地址场,规定接收方地址,可为8的整倍位。接收方检查每个地址字节的第1位,如果为“0”,则后边跟着另一个地址字节。若为“1”,则该字节为最后一个地址字节。
(3) C场:控制场,指示信息场的类型,8位或16位。若第1字节的第1位为0,则还有第2个字节也是控制场。
(4) I场:信息场,要传送的数据。
(5) 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) 通信效率:异步通信低,同步通信高。
- 串口通讯—同步通信方式
- 串口通讯—同步通信方式
- 串口通讯—异步通信方式
- 串口通讯—异步通信方式
- 串口通讯—异步通信方式
- 串口通讯—异步通信方式
- 串口通讯—异步通信方式
- 串口通讯—异步通信方式
- 串口通讯--同步通讯方式
- C++ 串口编程 写串口 同步通信方式
- 通信 ≠ 通讯,串口通信概念,同步与异步的区别
- delphi串口通信——delphi继电器输出通讯协议
- JAVA通信编程(一)——串口通讯
- 串口通讯方式1编程
- 串口通讯的高级方式
- 串口通信方式2
- 串口通信-异步通信方式
- Win 32同步与异步串口通讯
- ASP+VML实现立体曲线统计图
- JSF+CSS网址收集(不断更新中)
- 用HttpHandler实现asp.net 的验证码功能
- mysql的连接使用
- Hibernate持久化对象的生命周期详解
- 串口通讯—同步通信方式
- COPY的好处和坏处
- 关于Word在方框(□)中打勾的方法
- 我学习SVN的一点总结
- jQuery获取Select选择的Text和 Value
- 第一个博客
- Pl/Sql如何保存定制界面(转)
- Ubuntu 修复GRUB
- List 排序解决方法