目录
一、引言
本文主要介绍一下通信总线、通信协议、通信接口之间的关系和通信的方式。
二、通信总线(BUS)
1. 定义:是一组传输通道,在各种逻辑器件构成的传输数据的通道,一般由数据线、地址线和控制线构成。
2. 分类:
(1)按传输特点:并行总线和串行总线;
(2)按功能:内部总线、系统总线和I/O总线;
(3)按时序控制方式:同步总线和异步总线。
三、通信协议
1. 定义:通信协议就是传输数据的规则。eg:UART.
协议即总体框架,定义接口设备、器件及信号、总线及通道之间需要满足的关系。要实现信号的传输,所有这些组成成员必须各自满足协议要求的各种必要条件。
2. 协议栈(Protocol stack):是协议的具体实现方式,通俗讲就是用代码实现的库函数,从而方便开发人员的调用;是网络中各层协议的总和,其形象的反映了一个网络中文件传输的过程,由上层协议到底层协议,再由底层协议到上层协议。
3. 协议与协议栈的关系:协议是个标准,是约定;协议栈是协议的实现,可以理解为代码、函数库、供上层应用调用。协议栈就是给你写好了底层的代码,符合协议标准,提供一个功能模块供你调用。你需要关心的就是你的应用逻辑,数据从哪里到哪里,怎么存储,处理还有系统里的设备之间的通信顺序什么的,不需要关心它是怎么写的。
四、通信接口
1. 定义:接口指的是输入输出的硬件接口。是一种连接标准,又常被称为物理接口。例如SATA接口。
2. 接口与总线的关系:接口和总线都有连接的含义,但前者强调的是两个部件之间的连接,而后者更注重于多个部件的互连;前者强调信号和数据形式的转换,后者更注重可扩展性、灵活性、规范化,许多总线都有相应的规范和标准。接口与总线有时也不加区分,合称为总线接口或接口总线等。
五、通信方式
1. 定义:通信双方之间的工作方式或者信号传输方式。
2. 分类:
(1)根据传输方式:串行通信和并行通信;
(2)根据数据的同步方式:同步通信和异步通信;
(3)根据数据的传输方向与时间关系:单工通信、半双工通信、全双工通信。
![](https://i-blog.csdnimg.cn/blog_migrate/ac96d3e7ebe87bd5d41c3c81f9638f2b.png)
(一) 串行通信
1. 定义:利用一条传输线一位一位的传输数据。
2. 优缺点:
(1)优点:占用引脚资源少;
(2)缺点:速度相对较慢。
3.同步通信:收发双方均会使用一根信号线表示时钟信号,用来确定传输过程中每一位的位置。如图2所示。eg:SPI、I2C。
(1)同步通信在传输数据时把许多字符组成一个信息组,字符一个接一个地传输,但是,在每组信息(通常称为信息帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。
(2)同步通信优缺点:
a优点:时效性较强,执行效率较低,但有利于对流程进行的控制;
同步流程对结果处理通常更为简单,可以就近处理;
对结果的处理始终和前文保持在一个上下文内;
可以很容易捕获、处理异常;
最天然的控制过程顺序执行的方式。
b缺点:性能和吞吐能力下降;
有级联失败问题。
(3)同步通信使用场景:不使用异步通信的时候。
4. 异步通信:不使用时钟信号进行传输数据。例如:RS232 。
- 两个数据字符之间的传输间隔是任意的,所以,每个数据字符的前后都要用一些位来作为分隔位。数据线在不传输信号时,在逻辑上处于“1”;当有信号需要传输时,先发送“起始位”,然后是“数据位”,接下来是可有可无的“奇偶校验位”,最后是“停止位”,如图3所示。
![](https://i-blog.csdnimg.cn/blog_migrate/cda7ec0162c5c6292445e20bfd8db994.png)
- 异步通信优缺点:
(1)优点:执行效率较高,节省时间;
故障隔离:服务没有直接调用,不存在级联失败问题;
(2)缺点:但是占用的资源比较多,不利于对进程的控制。
(3)异步通信使用场景:
不涉及共享资源,或对共享资源只读,即非互斥操作;
没有时序上的严格关系;
不需要原子操作,或可以通过其他方式控制原子性;
常用于IO操作等耗时操作,因为比较影响客户体验和使用性能;
不影响主线程逻辑。
5. 单工通信:单工通信只有一根数据线,通信只在一个方向上进行。
6. 半双工通信:半双工通信也只有一根数据线,它也单工的区别是这根数据线既可作发送又可作发接收,虽然数据可在两个方向上传送,但通信双方不能同时收发数据。eg:I2C。
7. 全双工通信:数据的发送和接收用两根不同的数据线,通信双方在同一时刻都能进行发送和接收。通信双方都有发送器和接收器,发送和接收可同时进行,没有时间延迟。eg:RS232、SPI。
(二)并行通信
1. 定义:利用多条传输线将一个数据的各位同时传送。
2. 优缺点:
(1)优点:速度快;
(2)缺点:占用引脚资源较多。
(三)异步与同步通信
1.异步通信也可以理解为通信过程中发送方和接收方没有同步的时序限制,即它们可以独立于对方进行操作。
2.在异步通信中,为了保证数据传输的可靠性,通常需要采用一些差错控制措施,如校验码、重传等。
3.异步通信适用于低速、近距离的通信场景,如计算机内部的通信、打印机与计算机之间的通信等。
4.区别
(1)时钟同步:同步通信要求发送端和接收端的时钟频率保持一致,而异步通信则不需要。
(2)传输方式:同步通信以连续的比特流方式进行传输,而异步通信则以字符为单位进行传输。
(3)传输效率:同步通信的传输效率高,适用于大量数据的传输,而异步通信的传输效率较低,适用于少量数据的传输。
(4)错误处理:同步通信采用循环冗余校验(CRC)或奇偶校验等方式进行错误处理,而异步通信则采用起始位和停止位等方式进行错误处理(例如UART)。
(5)传输协议:同步通信采用面向比特的同步协议,如SDH、SONET等,而异步通信则采用面向字符的异步协议,如RS-232、RS-485等。
声明:[笔记整理] 内容整理自网络,如有错误欢迎指正,版权归原作者所有,若有侵权请联系删除。