常见通信协议以及通信方式
常用的通信方式
1. 串行和并行通信
- 串行通信优缺点
优点:
1. 占用资源少(只需一根线)
缺点:
1. 传输速率慢
- 并行通信优缺点
优点:
1. 传输速率快
缺点:
1. 占用资源多(多根线同时使用)
2. 同步和异步通信
1.概念
- 同步通信
同步通信: 发送端在发送串行数据的同时,提供一个时钟信号,并按照一定的约定(例如:在时钟信号的上升沿的时候,将数据发送出去)发送数据,接收端根据发送端提供的时钟信号,以及大家的约定,接收数据。如:I2C、SPI等有时钟信号的协议,都属于这种通信方式。
- 异步通信
异步通信: 接收方并不知道数据什么时候会到达,收发双方可以有各自自己的时钟。发送方发送的时间间隔可以不均,接收方是在数据的起始位和停止位的帮助下实现信息同步的。这种传输通常是很小的分组,比如:一个字符为一组,数据组配备起始位和结束位。所以这种传输方式的效率是比较低的,因为额外加入了很多的辅助位作为负载,常用在低速的传输中。
2. 比较
同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信时不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。
同步通信效率高;异步通信效率较低。
同步通信较复杂,双方时钟的允许误差较小;异步通信简单,双方时钟可允许一定误差。
同步通信可用于点对多点;异步通信只适用于点对点。
3. 单工、半双工、全双工通信
1. 概念
- 单工数据传输只支持数据在一个方向上传输
- 半双工数据传输允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信
- 全双工数据通信允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。
4. 通信速率
- 比特率
比特率(bit rate)又称传信率、信息传输速率(简称信息速率,information rate)。其定义是:通信线路(或系统)单位时间(每秒)内传输的信息量,即每秒能传输的二进制位数,通常用Rb表示,其单位是比特/秒(bit/s或b/s,英文缩略语为bps)。
- 波特率
波特率(Baud rate)又称传码率、码元传输速率(简称码元速率)、信号传输速率(简称信号速率,signaling rate)或调制速率。其定义是:通信线路(或系统)单位时间(每秒)内传输的码元(脉冲)个数;或者表示信号调制过程中,单位时间内调制信号波形的变换次数,通常用RB表示,单位是波特(Bd或Baud,前者规范)。如果每秒传输1个码元就称为1Bd;如果1码元的时间长短为200ms,则每秒可传输5个码元,那么码元速率(波特率)就是5Bd。
- 码元
码元(code cell)是携带信息的数字单位,是指在数字信道中传送数字信号的一个波形符号,也即“时间轴上的一个信号编码单元”。码元可能是二进制的,也可能是多进制的。
5. 常见通信方式
USART ( Universal Synchronous Asynchronous Receiver and Transmitter )
UART ( Universal Asynchronous Receiver and Transmitter )
1. TTL
TTL(transistor transistor logic)即晶体管-晶体管逻辑电平。TTL电平信号规定,+5V等价于逻辑“1”,0 V等价于逻辑“0”(采用二进制来表示数据时)。
2. RS232
- 协议简介
RS-232总线规定了25条线,包含了两个信号通道,即第一通道(称为主通道)和第二通道(称为副通道)。利用RS- 232总线可以实现全双工通信,通常使用的是主通道,而副通道使用较少。在一般应用中,使用3条~9条信号线就可以实现全双工通信,采用三条信号线(接收线RXD、发送线TXD和信号地GND)能实现简单的全双工通信过程。因此RS232标准有两种接口——DB9和DB25,其中常用的是DB9接口。
- 特征
- 接口信号电平高,容易损坏接口电路的芯片。RS232接口上任何信号线的电压都处于负逻辑关系中。即:逻辑“1”为-3 ~ -15V;逻辑为“0”:+3 ~ +15V,噪声裕量为2V。也就是说,接收器需要将高于+3V的信号识别为逻辑“0”,将低于-3V的信号识别为逻辑“1”,将5V的TTL电平识别为逻辑正极,将0识别为逻辑负极。
- 与TTL电平不兼容,需要一个电平转换电路来连接到TTL电路。
- 传输速率低。在异步传输中,比特率为20Kbps;因此,在51CPLD开发板中,集成程序波特率只能是19200,这也是原因。
- 接口采用信号线和信号回波串,形成共同的接地传输形式。这种标准的接地传输容易受到共模干扰,因此抗噪性较弱。
- 传输距离有限。最大传输距离为50英尺。它只能达到大约15米。
3. RS485
- 简介
RS485 通信采用差分信号传输,通常情况下只需要两根信号线就可以进行正常的通信。
在差分信号中,逻辑0和逻辑1是用两根信号线(A+和B-)的电压差来表示。逻辑 1:两根信号线(A+和B-)的电压差在 +2V~+6V 之间。
逻辑 0:两根信号线(A+和B-)的电压差在 -2V~-6V 之间。
- 特征
RS-485的电气特性:逻辑“1”由两条线路+2V
+6V之间的电压差表示,逻辑“0”由两条线路之间的电压差-6V-2V表示。接口信号电平低于RS-232,不易损坏接口电路芯片。该电平与TTL电平兼容,便于与TTL电路连接。
最高数据传输速率为:10Mbps
RS-485接口采用平衡驱动器和差分接收机的组合,具有抗共振固模干扰能力,即抗噪声性能好。
RS-485接口的最大传输距离为4000英尺,实际上可达3000米。
RS-232接口仅允许一个收发器连接到总线,即单站功能。相比之下,RS-485接口仅允许在总线上连接多达128个收发器,即多站能力。用户 使用单个RS-485接口可以快速建立设备网络。
3. I2C
- 简介
I2C(同步半双工)通讯协议(Inter-Integrated Circuit)是由 Phiilps(飞利浦) 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、 CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。
- 特点
(1) 它是一个支持多设备的总线。“总线”指多个设备共用的信号线。在一个 I2C 通讯总线中,可连接多个 I2C 通讯设备,支持多个通讯主机及多个通讯从机。
(2) 每个连接到总线的设备都有一个独立的地址,主机可以利用这个地址进行不同设备之间的访问。
(3) 总线通过上拉电阻接到电源。当 I2C 设备空闲时,会输出高阻态,而当所有设备都空闲,都输出高阻态时,由上拉电阻把总线拉成高电平。
(4) 多个主机同时使用总线时,为了防止数据冲突,会利用仲裁方式决定由哪个设备占用总线。
(5) 具有三种传输模式:标准模式传输速率为 100kbit/s ,快速模式400kbit/s ,高速模式下可达 1Mbit/s,但目前大多 I2C 设备尚不支持高速模式。
(6) 连接到相同总线的 IC 数量受到总线的最大电容 400pF 限制 。
通信原理
使用两个总线:
- SDA(数据线)
- SCL(时钟线)
主设备与从设备
- 主设备(控制时钟线
SCL
) - 从设备(地址检测)
- 主设备(控制时钟线
高阻态
为了设备通过总线通信时不干扰主从设设备之外的设备,同时为了主从设备不被其他设备干扰,使用外部上拉电阻。
IIIC 设备地址:出厂已经设计好
协议
- 开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。
- 结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。
- 应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
4. SPI
简介
SPI (同步全双工)协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、 LCD 等设备与 MCU 间,要求通讯速率较高的场合。
特征
- SPI是一个同步的数据总线,也就是说它是用单独的数据线和一个单独的时钟信号来保证发送端和接收端的完美同步。
- 产生时钟的一侧称为主机,另一侧称为从机。总是只有一个主机(一般来说可以是微控制器/MCU),但是可以有多个从机(后面详细介绍)
- 逻辑线
- MISO:
Master input slave output
主机输入,从机输出(数据来自从机);- MOSI:
Master output slave input
主机输出,从机输入(数据来自主机);- SCLK :
Serial Clock
串行时钟信号,由主机产生发送给从机;- SS:
Slave Select
片选信号,由主机发送,以控制与哪个从机通信,通常是低电平有效信号。
信息传输流程
- 机先将
NSS
信号拉低=> 开始接收数据- 接收端检测到时钟的边沿信号时,它将立即读取数据线上的信号,这样就得到了一位数据
- 主机发送到从机时:主机产生相应的时钟信号,然后数据一位一位地将从
MOSI
信号线上进行发送到从机;- 主机接收从机数据:如果从机需要将数据发送回主机,则主机将继续生成预定数量的时钟信号,并且从机会将数据通过
MISO
信号线发送;
5. CAN
- 简介
CAN 是控制器局域网络(Controller Area Network)的简称, 它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO11519) , 是国际上应用最广泛的现场总线之一。
CAN 总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以 CAN 为底层协议专为大型货车和重工机械车辆设计的 J1939 协议。近年来, 它具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强及振动大的工业环境。
6. USB2.0
- 简介
- USB 是一种支持热插拔的高速串行传输总线,使用差分信号来传输数据,最高速度
可达 480Mb/S。USB 支持“总线供电”和“自供电”两种供电模式。在总线供电模式下,USB2.0设备最多可以获得500mA的电流。- 2.USB2.0 被设计成为向下兼容的模式,当有全速 (USB 1.1)或者低速(USB 1.0)设备连接到高速(USB 2.0)主机时,主机可以通过分离传输来支持它们。
- 3.一条 USB 总线上,可达到的最高传输速度等级由该总线上最慢的“设备”决定,该设备包括主机、HUB以及USB功能设备。
- 4.USB 体系包括“主机”、“设备”以及“物理连接”三个部分。主机是一个提供USB接口及接口管理能力的硬件、软件及固件的复合体,可以是PC,也可以是OTG设备。一个USB 系统中仅有一个USB主机;
- 5.设备包括 USB功能设备和 USB HUB,最多支持 127个设备;物理连接即指的是USB 的传输线。在USB 2.0系统中,要求使用屏蔽的双绞线。USB 体系采用分层的星型拓扑来连接所有USB设备。
- 6.以 HOST-ROOT HUB为起点,最多支持 7 层(Tier),也就是说任何一个USB 系统中最多可以允许 5个 USB HUB 级联。一个复合设备(Compound Device)将同时占据两层或更多的层。
- 7.一个 USB HOST 最多可以同时支持 128 个地址,地址 0 作为默认地址,只在设备枚举期间临时使用,而不能被分配给任何一个设备,因此一个 USB HOST 最多可以同时支持 127 个地址,如果一个设备只占用一个地址,那么可最多支持 127个 USB设备(含USB HUB)。
USB连接器支持热拔插;高速/全速USB线缆要求使用内含双绞线的屏蔽线,而且必须打上符合USB使用标记;低速USB推荐但非要求使用双绞线和屏蔽线;