一、什么是串行通信什么是并行通信?
1、串行通信
串行通信接口(cluster communication port)简称串口,即常说的COM接口,是采用串行通信方式的扩展接口。串行接口是指数据一位一位地顺序传送,串口可以算是一个泛称,一般指代的是串口时序标准。UART、RS232、RS485、TTL都遵循着类似的通信时序协议,因此都被通称为串口。
串行通信(serial communication)是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。串行通信按照发送时钟源和接收时钟源频率是否需要保持一致,又可分为同步通信和异步通信两种。
2、并行通信
并行通信(Parallel communication)就是指数据的每一位同时在多根数据线上发送或者接收。可以以字或字节为单位并行进行。并行通信速度快,但用的通信线多、成本高,故不宜进行远距离通信。计算机或PLC各种内部总线就是以并行方式传送数据的。
- 并行通信,在同一时刻发送多位数据(可以是多根线)。优点是发送速度快;缺点是传输距离短 资源占用多。
- 串行通信,用一根线 在不同的时刻发送8位数据。优点是传输距离远 占用资源少;缺点是发送速度慢。
总结:串行通信是一种概念,是指一个bit一个bit的收发数据,相对于并行通信可一次性可以同时收发n个bit而言。包括普通的串口通信,包括IIC,包括SPI等等。串口通信是一种通信手段/方式,是相对于以太网方式、红外方式、蓝牙方式、usb方式(usb广义也算串行通信)等而言,是一种比较低级的通信手段。
二、通信的方式可以分为:全双工、半双工、单工
- 单工通信 只能接受或者发送 (收音机 遥控器),一般只有一根线
- 半双工通信 在同一时刻只能发送或者接收 (对讲机),至少有两根线
- 全双工通信 在同一时刻 既能接收又能发送 (电话),至少有两根线
三、常见的通信协议?
1、I2C
概述:I2C总线是由Philips公司开发的一种简单、半双工、双向二线制同步串行总线。它只需要两根线(SDA、SCL)即可在连接于总线上的器件之间传送信息。同一时刻可以单主机多从机或单主机单从机,I2C总线上的任意设备都可以当主机,一般主机是MCU,当有多个主机时,会通过总线仲裁的方式选出一个主机,其他退出作从机。
组成:I2C总线是由数据线SDA和时钟线SCL构成的串行总线,可以接受和发送数据
SDA(Serial data)
是数据线,D
代表Data
也就是数据,Send Data
也就是用来传输数据的SCL(Serial clock line)
是时钟线,C
代表Clock
也就是时钟 也就是控制数据发送的时序的
信号类型:I2C总线在传输数据一共有三种类型的信号分别为开始信号、结束信号、应答信号
特点:
- 最主要的优点是简单性和有效性,其接口直接在组件之上,所以I2C的所占空间很小;
- 另外一个优点是支持多主控,其中任何一个可以接收或者发送的设备都可以成为主控线;
- 接口线少、控制方式简单、器件封装形式小、通信速率较高等优点
- 非常适合在器件之间进行近距离、非经常性的数据通信
用途:主要用于主/从双向通讯
2、I2S
概述:为数字音频设备之间的音频数据传输而制定的一种总线标准,主要用于STB、DVD、MP3
组成:
信号类型:串行时钟SCLK、帧时钟LRCK、串行数据SDATA
3、SPI
概述:SPI是串行外设接口(Serial Peripheral Interface)的缩写,意为串行外围接口,是摩托罗拉首先在其MC68HCXX系列处理器上定义的,SPI是一种高速的,全双工,同步的通信总线,SPI的速率比I2C高,一般可以到几十Mbps,不同的器件当主机和当作从机的速率一般不同。SPI最典型的应用是单主机单从机,下图是接线方式,当然也可以多从机。
SPI接口主要应用在EEPROM(存储器)、FLASH(闪卡)、实时时钟、AD转换器、数字信号处理器。
SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。
如果对速度要求不高,采用SPI总线模式是个不错的选择。它可以节省I/O端口,提高外设的数目和系统的性能。
组成:
(1)MISO – 主设备数据输入,从设备数据输出;
(2)MOSI – 主设备数据输出,从设备数据输入;
(3)SCLK – 时钟信号,由主设备产生;
(4)SS/CS – 从设备使能信号,由主设备控制。
特点:是一种高速、全双工、同步的通信总线;在PCB的布局节省了空间;可以同时发出和接受串行数据、可以当作主机或从机工作、提供频率可编程时钟、发送结束中断标志、写冲突保护、总线竞争保护等
基本操作:用于CPU与各种外围器件进行全双工、同步串行通讯
4、USB
概述:微软制定的一种PC串行通信协议
组成:
优点:标准统一、携带方便、可以热插拔、可以连接多个设备
5、MIPI
概述:
6、SDIO
概述:SDIO是SD型的扩展接口,除了可以接SD卡外,还可以接支持SDIO接口的设备
特点:由SD卡的协议升级而来,相比SD卡协议增加了低速标准。低速卡的目标应用是以最小的硬件支出支持低速I/O功能
7、UART
UART(Universal Asynchronous Receiver/Transmitter),意为通用异步收发传输器,该总线双向通信,可以实现全双工传输和接收。UART包含TTL电平的串口和RS-232电平的串口,使用UART通信的双方设备都需要遵从UART协议。
UART是串行通信的一种,重点是异步,和同步相对应,意思是不需要同步的时钟,通信两端预先约定bit的传输速率(每秒传多少bit),而不是由时钟触发的。
在嵌入式设计中,UART用于主机与辅助设备通信。UART是实现串口收发的逻辑电路(硬件形式),这部分可以独立成芯片,也可以作为模块嵌入到其他芯片里,单片机、SOC、PC里都会有UART模块,例如STM32单片机里有两种UART模块,USART和UART,前者可以同步通信,而后者只能异步通信。一般电脑是没有uart接口的(TTL电平),我们可以通过电脑的USB接口和单片机通信,只需一个USB转串口模块插到USB接口上,装上驱动,另一边接单片机即可。有很多可以USB协议转为串口协议的芯片,如ch340,cp2102,pl2303等。
组成:
1、TX – 数据发送接口
2、RX – 数据接受接口
两个设备间将TX与RX相连,RX与TX相连即可正常工作。
8、TTL电平
TTL是Transistor-Transistor Logic的简写,是一种电平逻辑,晶体管-晶体管逻辑。通常我们采用二进制来表示数据,为了表示二进制,需要用高低电平表示这些二进制数,3.3V/5V等价于逻辑“1”,0V等价于逻辑“0”。UART特指单片机的UART端口,使用的就是TTL电平。
- 标准TTL电平逻辑
(1)输出电路:电压大于等于(≥)2.4V为逻辑1;电压小于等于(≤)0.8V为逻辑0;
(2)输入电路:电压大于等于(≥)2.0V为逻辑1;电压小于等于(≤)1.2V为逻辑0;
- CMOS电平
(1)输出电路:电压大于等于(≥)0.9×Vcc为逻辑1;电压小于等于(≤)0.1×Vcc为逻辑0;
(2)输入电路:电压大于等于(≥)0.7×Vcc为逻辑1;电压小于等于(≤)0.3×Vcc为逻辑0;
嵌入式里面说的串口,一般是指UART口,而TTL、RS-232、RS-485是指的电平标准(电信号)。
9、RS232
RS-232接口符合美国电子工业联盟(EIA)制定的串行数据通信的接口标准,全双工,其中 RS 为英文 “Recomend Standard” 的缩写,中文翻译为“推荐标准”,232为标识号。原始编号全称是EIA-RS-232(简称232,RS232)。它被广泛用于计算机串行接口外设连接,连接电缆和机械、电气特性、信号功能及传送过程,其输出的电平称为 RS232 电平。
RS-232电平逻辑
RS-232不同于TTL的电平逻辑,为负逻辑,最简单的RS232通信由三条数据线组成,即 TxD、RxD 和GND。负12V代表高电平,即-15V ~ -3V为逻辑1,正12V代表低电平,即+3V ~ +15V为逻辑0,电压也有标准范围。这里的电平,是TXD线(或者RXD线)相对于 GND 的电压。
根据设备供电电源的不同,+-5、+-10、+-12和+-15这样的电平都是可能的。
RS-232标准的不足
经过许多年来RS-232 器件以及通信技术的改进,RS-232 的通信距离已经大大增加。由于RS-232 接口标准出现较早,难免有不足之处,主要有以下四点:
- 接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL 电平不兼容故需使用电平转换电路方能与TTL 电路连接。
- 传输速率较低,在异步传输时,波特率为20Kbps。现在由于采用新的UART 芯片16C550 等,波特率达到115.2Kbps。
- 接口使用一根信号线和一根信号返回线而构成共地的传输形式, 这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
- 传输距离有限,最大传输距离标准值为50 米,实际上也只能用在15米左右。
10、RS485
RS-485和RS-232一样,都是串行通信标准,现在的标准名称是TIA/EIA-485-A,习惯称为RS-485标准,半双工,使用该标准的数字通信网络能在远距离条件下以及电子噪声大的环境下有效传输信号。RS-485使得廉价本地网络以及多支路通信链路的配置成为可能,而且增加了联网功能。
针对RS-232串口标准的局限性,RS-485/422采用平衡发送和差分接收方式实现通信:发送端将串行口的TTL电平信号转换成差分信号A、B两路输出,经过线缆传输之后在接收端将差分信号还原成TTL电平信号。
由于传输线通常使用双绞线,又是差分传输,所以又极强的抗共模干扰的能力,总线收发器灵敏度很高,可以检测到低至200mV电压,故传输信号在千米之外都是可以恢复。
RS-485/422总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。
RS-485电平逻辑
RS-485和RS-232单端传输不一样,是差分传输,使用一对双绞线,其中一根线定义为A,另一个定义为B,一般收发器内部是一个发送器加一个收发器组成。对于使能信号,字母上面加一横的为低电平有效,不加的为高电平有效。
逻辑“1”以两线间的电压差为+(2 ~ 6)V表示;逻辑“0”以两线间的电压差为-(2 ~ 6)V表示,使能端起作用和其他状态时为高阻态。
RS-232与RS-485对比
- 抗干扰性:RS485 接口是采用平衡驱动器和差分接收器的组合,抗噪声干扰性好。RS232 接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰。
- 传输距离:RS485 接口的最大传输距离标准值为 1200 米(9600bps 时),实际上可达 3000 米。RS232 传输距离有限,最大传输距离标准值为 50 米,实际上也只能用在 15 米左右。
- 通信能力:RS-485 接口在总线上是允许连接多达128个收发器,用户可以利用单一的 RS-485 接口方便地建立起设备网络。RS-232只允许一对一通信。
- 传输速率:RS-232传输速率较低,在异步传输时,波特率为 20Kbps。RS-485 的数据最高传输速率为 10Mbps 。
- 信号线:RS485 接口组成的半双工网络,一般只需二根信号线。RS-232 口一般只使用 RXD、TXD、GND 三条线 。
- 电气电平值:RS-485的逻辑"1"以两线间的电压差为+(2~6) V 表示;逻辑"0"以两线间的电压差为-(2~6)V 表 示 。在 RS-232-C 中任何一条信号线的电压均为负逻辑关系。即:逻辑"1",-5~-15V;逻辑"0 " +5~+15V 。