记录嵌入式程序开发过程中遇到的各种通信协议标准,及其相互连接时的实用转换芯片。这里只讨论各协议之间最显著的区别,便于理解和应用。
1. 通信协议分类
芯片与芯片之间的通信协议可以按照通信方式进行分类,将其分为并行接口通信和串行接口通信两种。简称并行通信和串行通信,或者并口和串口。并行通信就是把一个字符的各数位用几条线同时进行传送,通常每次传送的位数为一个或两个字节。并行数据传送和串行数据传送相比较,在同样的传送速度下,数据传送速度快,这种高效率的数据传送是以更多的物理线路为代价的,并行数据传送需要更高的费用,所以在对数据传送速率要求不高的场合一般使用串行通信,而在对数据传送速度要求高的情况下一般使用并行传输。[1]
1.1 并行通信
并行通信指芯片的多个 I/O 口同时进行数据接收和传输,通信过程占用引脚资源很多。由于采用的数据传输I/O口很多,数据传送速度大大提高,但并行传输的线路长度受到限制。因为随着数据传输的线路增长,传输信号受到的干扰增加,数据容易出错。
1.1.1 并行通信分类
应用场景通常为计算机内部总线,在其上以并行方式传送数据。内部总线是cpu、内存、输入、输出设备之间传递信息的公用通道。在IEEE1284标准中定义了多种并行接口模式,常用的有以下三种[百度百科]:
- SPP (Standard Parallel Port) 标准并行接口
- EPP (Enhanced Parallel Port) 增强并行接口
- ECP (Extended Capabilities Port) 扩展功能并行接口
1.1.2 常见并行通信标准
下面介绍并行通信标准在计算机内部总线的应用,主要对 PCI 接口的发展历程进行介绍,内容引自参考文献[3]
早些年电脑还没有标准化,各种配件的接口和协议都不统一,声卡用着声卡的接口,网卡用着网卡的接口,显卡用着显卡的接口,各不相同,不方便拓展与替换。为解决这种不统一的问题,业内当时统一了一个规格,这就是最早的ISA接口(Industrial Standard Architecture,工业标准结构总线),下图中红色圈中的长槽就是 ISA: 但随着科技的进步,ISA接口已无法满足高速发展的外围设备的需求,因此业界开始放弃ISA总线,寻找新的替代接口。这位继任者,便是PCI,下图中白色长槽: 随着时间的推移,PCI接口的弊端也逐渐暴露出来,带宽逐渐跟不上日益增长的需求。所以业内又开始寻找新的替代接口,这就是 PCI-E(PCI Express,简称PCI-E,官方简称PCIe,他是计算机内部的一种高速总线。):
1.1.3 PCI-E 既是通道,也是接口
- 接口形态:当他以接口形式存在,就是我们主板上长长的插槽。目前,声卡和网卡都在主板上集成,无需外接,所以 PCI-E 接口目前的使用场景主要为插显卡。
- 通道形态:SATA3 接口固态硬盘采用的是AHCI协议,这种接口理论速率上限为750MB/S,实际速率只有600MB/S左右。这种接口速率太慢,没有PCI-E接口速率块。为此我们希望能将PCI-E接口用于固态硬盘的接口中来。但由于PCI-E接口体积太大,浪费空间。为此,我们将其体积缩小,成为了现在的M.2接口。M.2接口也即缩小版PCI-E接口。另外值得一提,苹果采用的雷电3接口,同样利用PCI-E通道传输数据,这也是为什么苹果电脑的一根线就可以连接到4K高刷显示器。因为,雷电3采用的PCI-E接口真的是超快。
另外,为什么我们在日常实验中基本使用不到并行接口? [2]本篇文献在2002年做出了解答:串行接口正在取代并行接口。 并行接口只用在芯片内部, 而在CPU外部, CPU与外设的连接正在被高速串行接口所取代, 完全取代也是必然的, 只不过是时间问题。为方便串行接口应用, 处理器或控制器内集成或整合串行接口也是必然的, 这方面的芯片会越来越多。
1.2 串行通信
串行通信指芯片的一个 I/O 口进行数据接收,一个 I/O 口进行数据传输,通信过程占用引脚资源很少。
1.2.1 串行通信分类
串行通信下,工作模式按照数据传送方向分为:单工、半双工、全双工。(工:工作模式)
- 单工:一条线,单方向数据传输的工作模式。(图a)
- 半双工:一条线,单方向数据传输或接收的工作模式。(图b)
- 全双工:两条线,双方向同时数据传输和接收的工作模式。(图c)
串行通信下,工作模式按照通信方式分为:同步通信、异步通信。
- 同步通信:需要额外一条时钟信号线,用来同步数据。
- 异步通信:不需要额外一条时钟信号线。
1.2.2 常见串行通信标准
我将各类串行通信协议标准按照协议属性分为:硬件通信协议和软件通信协议。硬件通信协议主要完成对电气特性标准即对于2个逻辑状态(0/1)的电平定义。软件通信协议主要完成对通信逻辑的定义。
通信标准 | 引脚 | 通信方式 | 通信方向 | 协议属性 | 逻辑电平规定 |
---|
UART | TXD、RXD、GND | 异步 | 全双工 | 硬件协议 | TTL电平 | USART | TXD、RXD、GND、CLK | 同步 | 全双工 | 硬件协议 | TTL电平 | RS232 | TXD、RXD、GND | 异步 | 全双工 | 硬件协议 | 232电平 | RS485 | TXD、RXD、GND | 异步 | 全双工 | 硬件协议 | 485电平 | SPI | MISO、MOSI、SCK | 同步 | 全双工 | 软件协议 | TTL电平 | I2C | SDA、SCK | 同步 | 半双工 | 软件协议 | TTL电平 | USB | VCC、TXD、RXD、GND | 异步 | 全双工 | 硬件+软件协议 | USB电平 | 以太网接口? | xx | xx | xx | xx | xx |
1.2.3 常见串行通信标准之间的转换及其芯片
串行通信标准之间的转换芯片其实是对逻辑电平规则的转换,如:将TTL电平转换为232电平。下面为常用串行通信标准之间的转换芯片及其供应商。
电平标准 <–> 电平标准 | 转换芯片 | 供应商 |
---|
USB <–> TTL | CH340N | WCH(南京沁恒) | USB <–> RS232 | PL2303GL | PROLIFIC(旺玖) | TTL <–> RS232 | MAX3232 | TI(德州仪器) |
2. 参考文献
【STM32】串口通信基本原理(超基础、详细版) TTL电平、COMS电平、232电平、USB电平的区别与转换方法 串口通信协议 [1]刘威.微型计算机并行接口[J].新课程(下),2015(10):114. [2]成科.并行接口的末日来到了吗?——兼谈USB OTG新标准的特点和应用[J].实用影音技术,2003(11):75-76. [3]https://zhuanlan.zhihu.com/p/62426408
|