1.什么是通信协议?
2.串行Serial,并行 parallel通信区别?
3.同步synchronous,异步asynchronous的区别?
4.单工(Simplex),半双工(Half Duplex),全双工(Full Duplex)的区别?
5.波特率,比特率区别?
1. 什么是通信协议?
协议是通信双方为实现通信而设计的约定或通话规则。
我们常用的协议一般都得到了行业和专业组织或者标准化组织的认可,那么就成为了一个“行业标准” 。
简单说,就是通信的双方要约定 1、 0序列代表什么含义,就像可以用“ 三长两短” 代表危险一样。 如果我们是自己使用两片单片机进行通信,那么我们爱怎么规定数据流的含义就怎么规定,谁也管不着。但是,自定义的通讯协议有两个缺点。
1. 自编通讯协议的效率不高,会有 bug。成熟的通讯协议都是人类智慧的结晶。
2. 不是通用协议的话,不能与“ 别人” 进行通信。协议这个东西,和霸王条款差不多。
3. 成熟的通信协议有相应的硬件支持,可以在通信时减轻 CPU的负担,增强性能
2. 串行Serial,并行 parallel通信区别?
最基本的原理来讲: 串并信号转换的核心单元就是数字电子技术中的移位寄存器。串行数据, 移位寄存后,统一送出,就完成串入转并出。并行数据经移位寄存器依次送出,也就完成了并入串出的原理
2.1.1 串行特点:
2.1.2 串行通信需要几根数据线?
行是不是只需要 1根线就行呢?当然有这种情况,比如,海上用信号灯的亮灭来传递信号(通信距离 3-4海里)。 1根线通信最大的问题就是慢,非常慢,虽然串行通信是为了省信号线,但也不意味着光省钱不用过日子了。所以,适当增加信号线,可以在性能和价钱上找到一定的平衡点,即性价比。
1线通信(如:One-Wire BUS)。只有 1根信号线进行通信的情况称为 1线通信, 这种通信显然是异步通信, 最多是半双工。 很多自然界信号的变化是非常缓慢的,所以一些传感器可以使用 1线通信。 例如测温, 称重, 不需要 太高的通信速率。对比前面提到的并行通信,可以想象1线通信会有多慢。在真正传输 “ 有用信号前” , 需要先确定信号的流向(读还是写)。由于没有同步时钟,每1位数据的间隔必须足够大以容忍时钟 的频差和相差。 1线通信器件多机连结图如下:
2线通信(uart , iic)。当增加一根信号线时,我们就有了 2种选择。
选择一:可以加一根同步时钟线,这样一来,虽然也得麻烦地判断信号流向,但是每位数据的间隔可以很小(波特率高)。如下图中:2线同步通信的多机连接, 1根线为公共时钟线,由主机控制。另一根线为双向数据线,由数据发送方控制。哪台设备当主机,谁发送数据则由一整套通信协议规范来实现.
选择二: 增加数据线, 一根负责收, 一根负责发, 构成全双工通信, 这样也能成倍提高效率, 如下图所示,收发端的数据方向恒定不变,两设备交叉连线。
3线通信(spi)。有了 3根线,就可以有 1根时钟线, 1根数据发送线, 1根数据接收线了。这样的速度又可以加快了。如下所示,需规定主机从机,同步时钟由主机控制。
总结:全双工时,往往不宜多机对等通信, 最多是 1主多从( 除非给每个主机增加使能控制线)。 而半双工时, 则很容易“ 并联”成多机通信,通过总线仲裁和地址广播等办法来实现任意设备之间的通信。
2.1.3 串行通信协议的分类:
我们常见的串行通信协议有 UART、 SPI、 I2C,为什么会有UART、 SPI、 I2C这 3种典型的串行通信呢?
UART、 SPI、 I2C实际就是上面两个因素取部分优点的结果。
2.2.1 并口特点:
1. 并行通信传输中有多个数据位,同时在两个设备之间传输。发送设备将这些数据位通过对应的数据线传送给接收设备,还可附加一位数据校位。并行接口,也叫并口,也称LPT接口。
2. 传输速率快:标准并口传输速率为1Mbps
3. 通信成本较高:每一个位就需要一个信道,传输一个字符需要8个信道。
4. 适合短距离传输,不适合长距离传输:如计算机内部总线。
2.2.2 并行通信需要几根数据线
一种并行通信的硬件接口如上图,它由以下几部分组成:
2.2.3 并口行通信协议的分类:
6800又叫moto总线,8080总线又叫Intel总线。
具体见 我的博文 《协议之常见接口概述》
2.3 . 总结:
- 通俗地讲,并行传输的通路犹如一条多车道的宽阔大道,而串行传输则是仅能允许一辆汽车通过的乡间公路。
- 从原理来看,并行传输方式其实优于串行传输方式。
- 从技术发展的情况来看,串行传输方式大有彻底取代并行传输方式的势头,USB取代IEEE 1284,SATA取代PATA,PCI Express取代PCI……主要由于其通信成本低,支持长距离传输。
3. 同步synchronous,异步asynchronous的区别?
异步通信, 是指通信双方按照事前约定好的时钟速率(波特率)来进行通信,因为没有公共的时钟线,所以通信双方的数据必须“ 整齐划一”。 所以, 异步通信数据流应该是( a)。 而同步通信的双方拥有公共时钟, 按时钟信号来更新数据,所以数据流不一定要“ 整齐划一”
3.1 异步通信
传输方式
串行异步通信方式是以字符为单位进行传输的,异步通信所采用的数据格式是以一组可变“位数” 的数组成的。第一位称起始位,它的宽度为1bit,低电平;接着传送一个数据5~8bit,以高电平为“1”,低电平 为“0”;在传输时,按低位在前,高位在后的顺序传送。也可有一位奇偶校验位;后是停止位,宽度可以是1bit、1.5bit或2bit,在两个数据位之间可有空闲位。
3.2 同步通信
同步通信传送信息的位数几乎不受限制,通常一次通信传的数据有几十到几千个字节,通信效率较高。但它要求在通信中保持精确的同步时钟,所以其发送器和接收器比较复杂,成本也较高,一般用于传送速率要求较高的场合。
传输方式
同步通信方式在每个数据前后不加起始位和停止位,而是将数据顺序连接起来,以一个数据块为传输单位,每个数据块附加一个或二个同步字符,最后 以校验字符结束。同步通信速率很高,因此适用于传送信息量大,要求传送速率很高的系统中。
总结:
4. 单工(Simplex),半双工(Half Duplex),全双工(Full Duplex)的区别?
能同时收发就是全双工,比如打电话,双方可以“ 对吼”。
结构:
数据的发送和接收分别由两根传输线传送,通信双方都能在同一时刻进行发送和接收操作。通信双方的每一端都设置了发送器和接收器,能够同时控制数据在两个方向的传送。全双工方式无须进行方向的切换,避免了时间延迟。这种方式要求通信双方均有发送器和接收器,并需要两根数据线传送数据信号。
数据能收能发,但要分时进行就是半双工,比如对讲机。一方按下按键,只能说话(发送数据),另一方只能收听。 当一个人说完必须加一句“over”, 然后就得松开按键( 接收数据), 对方听到“ over” 知道对方讲完了,这时才能按下按键说话(发送数据)。
结构:
使用同一根传输线对数据进行接收和发送,数据可以在两个方向上传送,但通信双方不可以同时发送数据,这样的传输方式就是半双工制。采用半双工方式时,通信系统每一端的发送器和接收器通过收/发开关转接到通信线上,进行方向的切换,这样会产生时间延迟。
只能单向通信就是单工了,比如广播,播音员播音时(发送数据),听众永远只能是听众。
结构:
单工通信使用一根导线,信号的发送方和接收方有明确的方向性,即方向只在一个方向上进行。
总结:
5.波特率,比特率区别?
5.1 比特率
- 在数字信道中,比特率(Bit Rate)是数字信号的数据传输速率,它用单位时间内传输的二进制代码的有效位(bit)数来表示,又称码率、数据带宽。其单位为每秒比特数bit/s(bps)、每秒千比特数(Kbps)或每秒兆比特数(Mbps)来表示(此处K和M分别为1000和1000000,而不是涉及计算机存储器容量时的1024和1048576)。
5.2 波特率
5.3 相互关系
在数据调制中,数据是由符号组成的,随着采用的调制技术的不同,调制符号所映射的比特数也不同。
符号又称单位码元,它是数字信道中传送数字信号的一个波形符号。(一个单元传送周期内的数据信息。)
如果一个单位码元对应二个比特数(一个二进制数有两种状态0和1,所以为二个比特)的数据信息,那么符号率等于比特率;如果一个单位码元对应多个比特数的数据信息(m个),则称单位码元为多进制码元。
此时比特率与符号率的关系是:
比特率=符号率*log2 m
所以,两相调制(单个调制状态对应1个二进制位)的比特率等于波特率;四相调制(单个调制状态对应2个二进制位)的比特率为波特率的两倍;八相调制(单个调制状态对应3个二进制位)的比特率为波特率的三倍;依次类推。
总结:
数据传输速率=比特率=码率=数据带宽
调制速率=波特率=符号率
当传输的数据信息为两相调制时,即不进行压缩,采用二进制码元。
波特率=比特率