嵌入式四大通信接口详解
扫描二维码
随时随地手机看文章
众多的通讯协议概念,其实可以分成4个大概念,也就是物理接口、电平标准、通讯协议、总线。
1. 物理接口
物理接口是设备间物理连接的硬件规范,包括连接器类型(如USB、HDMI)、引脚排列、机械结构等。一般常说的就是指连接器类型。
它能确保设备在物理层正确连接,提供信号传输的物理通道。
比如USB Type-A、RJ45网口、HDMI接口。
2. 电平标准
电平标准规定信号电压范围,用于区分逻辑状态(如0和1),确保发送端和接收端的电气兼容性。
作用:定义信号的电气特性,避免误码或硬件损坏。
如TTL(0V/5V)、RS-232(±3~15V)、LVDS(低电压差分信号)。
3. 通讯协议
通讯协议是数据传输的逻辑规则,包括数据格式、时序、错误校验、寻址等。确保数据按约定规则打包、传输和解析。例如UART(异步串行协议)、SPI(同步串行协议)、TCP/IP(网络协议)。
4. 总线
总线是共享的通信通道,整合物理接口、电平标准和协议,允许多设备通过同一线路通信。主要作用是提供完整的通信架构,协调多设备的数据交换。
物理接口和电平标准属于底层硬件层(物理层),定义如何连接及信号如何表示。
通讯协议属于逻辑层、应用层,规定数据传输规则。
总线是综合概念,整合前三者形成完整的通信系统。
整个协作流程就是:
设备通过物理接口连接,按电平标准传输信号。通讯协议确保数据被正确封装、寻址和校验。总线管理共享通道,协调多设备通信(如仲裁机制、冲突避免)。总线的实现需依赖物理接口(连接方式)、电平标准(信号电气特性)和通讯协议(数据规则)。
同一物理接口可能支持不同电平标准和协议(如RS-232与RS-485共用DB9接口,但电平及协议不同)。
同一协议可适配不同物理接口和电平(如Modbus可在RS-485或TCP/IP上运行)。
众多的通讯协议概念,其实可以分成4个大概念,也就是物理接口、电平标准、通讯协议、总线。
1. 物理接口
物理接口是设备间物理连接的硬件规范,包括连接器类型(如USB、HDMI)、引脚排列、机械结构等。一般常说的就是指连接器类型。
它能确保设备在物理层正确连接,提供信号传输的物理通道。
比如USB Type-A、RJ45网口、HDMI接口。
2. 电平标准
电平标准规定信号电压范围,用于区分逻辑状态(如0和1),确保发送端和接收端的电气兼容性。
作用:定义信号的电气特性,避免误码或硬件损坏。
如TTL(0V/5V)、RS-232(±3~15V)、LVDS(低电压差分信号)。
3. 通讯协议
通讯协议是数据传输的逻辑规则,包括数据格式、时序、错误校验、寻址等。确保数据按约定规则打包、传输和解析。例如UART(异步串行协议)、SPI(同步串行协议)、TCP/IP(网络协议)。
4. 总线
总线是共享的通信通道,整合物理接口、电平标准和协议,允许多设备通过同一线路通信。主要作用是提供完整的通信架构,协调多设备的数据交换。
1.1.板上通信接口角色
在嵌入式系统中,板上通信接口扮演着至关重要的角色,它们是集成电路与其他外围设备进行交互的关键通路或总线。这些接口负责在系统内部传递数据和控制信号,从而确保各个组件能够协同工作。
1.2.常用通信接口
常用的板上通信接口包括I2C、SPI、UART以及1-Wire等。接下来,我们将详细探讨这些接口的工作原理和应用场景。
2.I2C总线
2.1.总线特点与结构
I2C总线,一种同步、双向、半双工的两线式串行接口总线,由Philips半导体公司在20世纪80年代初研发并投入市场。其设计初衷是为微处理器/微控制器系统与电视机外围芯片之间的连接提供简便的方法。该总线包含两条线路:串行时钟线SCL和串行数据线SDA。SCL线负责产生同步时钟脉冲,而SDA线则用于在设备间传输串行数据。
I2C总线是共享的,允许多个I2C设备连接至同一系统。在这些设备中,既可以充当主设备来控制通信,也可以作为从设备来响应主设备的命令。无论是主设备还是从设备,都既可以是发送方也可以是接收方,但同步时钟信号的生成则专由主设备负责。此外,I2C总线还支持多个主设备的并存。
2.2.数据传输机制
关于起始信号的具体定义:在SCL线保持高电平的同时,主机将SDA线拉至低电平,这标志着数据传输的开始。而从机地址的发送与读写控制位的设置则遵循一定规则:主机发送的第一个字节包含从机的地址和读写控制位。
数据传输:在从机地址发送完毕后,可能会跟随一些特定指令,这取决于从机的实现。随后,数据传输开始,可以由主机或从机中的任一方发送。每次传输的数据都是8位,且字节数不受限制。
停止条件:停止条件是在SDA线保持低电平的同时,主机将SCL线拉高并维持这一高电平状态,然后再将SDA线拉高,从而表示数据传输的结束。
3.SPI总线
3.1.总线结构与使用
SPI总线,最早由Motorola公司提出,是一种同步、双向、全双工的4线式串行接口总线。它由一个主设备和多个从设备构成,其中特别需要注意的是,在任意时刻仅允许一个主设备处于激活状态,这意味着系统中可以存在多个SPI主设备。SPI总线广泛应用于EEPROM、FLASH、实时时钟、AD转换器、数字信号处理器以及数字信号解码器等设备之间的通信。
从设备的时钟信号由主设备通过SCLK提供,而MOSI和MISO则依据此脉冲进行数据传输。
3.2.通信时序与模式
SPI总线配备了4条信号线,包括SCK(时钟信号),MOSI(主设备输出从设备输入),MISO(主设备输入从设备输出)和CS(片选信号)。
主设备通过操控CS引脚来选择从设备。在任何给定的时刻,只有一个SPI主设备的CS引脚处于激活状态,与之相连的从设备此时可与主设备进行通信。这种**“一主多从”结构**在很大程度上提升了系统的扩展性和灵活性。
4.UART通信协议
UART,即通用异步收发传输器,作为一种异步串口通信协议,其工作原理是逐位传输数据。在应用程序开发中,它常被用作数据总线,因其支持高效的数据传输。异步数据传输中,UART的简单高效机制使其在许多嵌入式系统和微控制器中得到了广泛的应用。
5.1-Wire接口与并行接口
5.1.1-Wire接口特点
1-Wire接口,又称Dallas 1-Wire协议,是由Maxim Dallas半导体公司精心研发的一种异步半双工通信协议。该接口能够在信号线上同时传输能量。这样的特性使得1-Wire接口不仅可以连接一个主设备,还能够允许一个或多个从设备与之相连。
5.2.并行接口结构和使用
并行接口,常用于系统与外围设备间的通信。这些外围设备通过存储器映射至系统主控端。只要嵌入式系统主控处理器/控制器配备并行总线,支持并行总线的设备便可直接与之相连。外围设备经存储器映射至主控处理器,从而可访问特定地址范围。
四种接口,每个都有合适的应用场景,对硬件端口的占用、对软件的控制要求、通信效率也不相同。尤其前3种属于常用协议,一般都支持硬件接口,厂家也一般提供hal库,对软件开发人员的要求逐渐降低。这也导致代码应用很溜,实际底层原理略微欠缺,一旦通信异常或者有特殊需求就无从下手。如使用GPIO模拟出UART,使用SPI实现AT功能。