专栏名称: EDN电子技术设计
EDN China电子技术设计为电子设计工程师和设计经理人提供前沿深度的电子资讯、设计实例应用方案。
目录
相关文章推荐
河北青年报  ·  刚刚,石家庄姑娘何卓佳3比0战胜张本美和! ·  昨天  
河北青年报  ·  刚刚,石家庄姑娘何卓佳3比0战胜张本美和! ·  昨天  
北京晚报  ·  蛇年首战,王楚钦“零封”对手 ·  4 天前  
北京晚报  ·  蛇年首战,王楚钦“零封”对手 ·  4 天前  
大皖新闻  ·  孙颖莎、王楚钦、王曼昱等,集体发声 ·  4 天前  
大皖新闻  ·  孙颖莎、王楚钦、王曼昱等,集体发声 ·  4 天前  
中工网  ·  刘国梁建言WTT ·  4 天前  
51好读  ›  专栏  ›  EDN电子技术设计

硬件面试常见问题-硬件通信协议(UART,SPI,IIC,RS232,RS485)、同步和异步通信

EDN电子技术设计  · 公众号  ·  · 2024-12-15 08:32

正文

大疆无人机、小米手机手环、华为手表等你来!

👆面包板社区DIY活动进行中!

动图来源:www.parlezvoustech.com

1、常见的硬件通信协议

串行通信协议

  1. UART (Universal Asynchronous Receiver Transmitter)

  • 一种异步串行通信协议,不需要时钟信号,常用于简单的点对点通信。

  • SPI (Serial Peripheral Interface)

    • 一种同步串行通信协议,通常用于微控制器与传感器、存储设备等外部设备之间的高速通信。

    • 包含一个主设备和一个或多个从设备,通过时钟信号同步数据传输。

  • I2C (Inter-Integrated Circuit):

    • 一种同步多主多从串行通信协议,常用于低速设备间的短距离通信。

    • 使用两根信号线(SDA和SCL)进行数据传输和时钟同步。

  • RS-232:

    • 一种早期的串行通信标准,通常用于计算机与外部设备(如调制解调器和打印机)之间的连接。

    • 使用单端信号传输,支持较长的传输距离。

  • RS-485:

    • 一种改进的串行通信标准,适用于多点通信系统,支持更长的传输距离和更高的数据速率。

    • 使用差分信号传输,提高抗干扰能力。

    并行通信协议

    1. PCI (Peripheral Component Interconnect ):

    • 一种高速串行计算机扩展总线标准,广泛用于计算机内部的各种组件之间(如显卡、存储设备)的连接。

    • 提供较高的数据传输速率和低延迟。

  • ATA/IDE (Advanced Technology Attachment/Integrated Drive Electronics):

    • 一种早期的硬盘驱动器接口标准,使用并行数据传输方式。

  • SATA (Serial ATA):

    • ATA接口的串行版本,广泛用于连接硬盘驱动器和SSD,具有更高的数据传输速率。

    无线通信协议

    1. Bluetooth:

    • 一种短距离无线通信协议,常用于移动设备、计算机和外围设备之间的数据传输。

  • Wi-Fi (Wireless Fidelity):

    • 一种常用的无线局域网(WLAN)技术,支持设备之间的无线数据传输。

  • Zigbee:

    • 一种低功耗、低数据速率的无线通信协议,常用于物联网(IoT)设备之间的通信。

  • NFC (Near Field Communication):

    • 一种短距离无线通信技术,常用于移动支付、访问控制等应用。

    工业通信协议

    1. Modbus:

    • 一种广泛应用于工业自动化系统的串行通信协议,支持主从通信模式。

  • CAN (Controller Area Network):

    • 一种用于汽车和工业自动化中的串行通信协议,支持多主模式和高可靠性数据传输。

  • PROFINET:

    • 一种基于以太网的工业通信协议,广泛应用于工业自动化和控制系统。

    其他常见协议

    1. USB (Universal Serial Bus):

    • 一种广泛应用于计算机和外部设备之间的通用串行通信协议,支持热插拔和即插即用。

  • HDMI (High-Definition Multimedia Interface):

    • 一种数字视频和音频传输标准,广泛用于高清电视、显示器和其他多媒体设备。

  • Ethernet:

    • 一种用于局域网(LAN)的有线通信标准,支持高速数据传输和多点通信。

    2、同步通信和异步通信

    同步和异步通信是两种不同的数据传输方式,主要 区别在于对时钟信号的使用

    同步通信

    特点

    • 共享时钟信号 :发送端和接收端共享一个时钟信号,用于同步数据传输。

    • 数据同步 :每个数据位的传输都由时钟信号引导,接收端根据时钟信号确定数据读取时刻。

    优点

    • 高效传输 :由于时钟同步,数据传输速率较高。

    • 可靠性强 :时钟信号使数据的接收和发送更加精确。

    缺点

    • 复杂性 :需要额外的时钟线,电路设计复杂。

    • 距离限制 :时钟信号的准确性可能会随着距离增加而降低。

    应用场景

    • SPI、I2C( 虽然I2C也支持异步特性,但其时钟线用于同步)。

    异步通信

    特点

    • 无共享时钟 :发送端和接收端不共享时钟信号,而是使用起始位和停止位来标识数据帧。

    • 自包含时序 :每个数据帧通过自身的起始和停止信号进行同步。

    优点

    • 简单性 :无需时钟线,减小了硬件复杂度。

    • 灵活性 :适合低速、长距离通信。

    缺点

    • 效率稍低 :由于需要添加起始和停止位,实际数据传输速率可能降低。

    • 误差累积 :长时间传输可能出现同步误差。

    应用场景

    • UART、RS-232


    • 同步通信 适用于需要高效、高速数据传输的场景,但通常需要额外的硬件支持。

    • 异步通信 适合简单低速应用,易于实现和调试。

    3、UART串口通信

    UART(Universal Asynchronous Receiver/Transmitter, 通用异步收发传输器 )是一种用于串行通信的硬件设备。UART用于将数据串行地传输和接收,广泛应用于计算机与外围设备之间的数据通信。

    1. 基础概念:

    • 异步通信 : 没有时钟信号,发送方和接收方必须约定好波特率(传输速率)。

    • 波特率 : 每秒传输的位数,一般有9600、115200等常见波特率。

    • 数据帧结构 : 包括开始位、数据位、奇偶校验位(可选)和停止位。

    2. 数据帧结构:

    协议:数据包由 起始位、数据帧、奇偶校验位和停止位 组成。

    A. 起始位 :先发出一个逻辑"0"的信号,表示传输字符的开始

    B. 数据位 :紧接着起始位之后。数据位的个数可以是4、5、6、7、8等,构成一个字符,从最低位开始传送。

    C. 奇偶校验位: 数据位加上这一位后,使得"1"的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。

    D. 停止位: 它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

    E. 空闲位: 处于逻辑"1"状态,表示当前线路上没有资料传送。

    F. 波特率: 衡量数据传送速率的指标。表示每秒钟传送的比特位。

    3. 通信方式:

    • 全双工 : 可以同时进行发送和接收(两个独立的通道)。

    • 半双工 : 发送和接收不能同时进行。

    • 单工 : 只能单方向传输数据。

    4. 实现方式:

    • 硬件实现 : 通过MCU或专用的UART芯片(如MAX232)实现。

    • 软件实现 : 通过软件模拟UART通信,适用于不具备硬件UART模块的系统。

    5. 应用:

    • 嵌入式系统 : 如单片机与传感器、模块之间的通信。

    • 计算机外设 : 如与鼠标、键盘、调制解调器等的连接。

    • 调试和编程 : 通过串口调试嵌入式设备或下载程序。


    4、IIC通信

    I²C(Inter-Integrated Circuit)是一种常用的串行通信协议,设计用于短距离互连低速设备。由 飞利浦公司 (现NXP)在20世纪80年代开发,I²C现在广泛应用于嵌入式系统中,用于连接微控制器、传感器、显示器和其他外围设备。

    I²C 基本概念

    I²C是一种多主从架构的双线串行总线系统,由 主设备和从设备 组成。通信通过两条线进行:

    • SCL(Serial Clock Line) : 时钟线,由主设备生成时钟信号。

    • SDA(Serial Data Line) : 数据线,用于传输数据。

    数据传输

    I²C使用7位或10位地址进行设备寻址,传输数据以字节为单位,具体传输步骤如下:

    1. 起始条件(Start condition) 主设备拉低SDA线,然后拉低SCL线,表示通信的开始

    2. 地址传输 :主设备发送从设备的地址,并指示读/写操作。

    3. 数据传输 :主从设备之间的数据传输。每个字节后面都有一个确认位(ACK/NACK)。

    4. 停止条件(Stop condition) 主设备拉高SCL线,然后拉高SDA线,表示通信的结束

    I²C设备地址

    每个I²C从设备都有唯一的7位或10位地址。7位地址通常使用更广泛,实际传输时,地址会左移一位,最右边一位表示读/写操作(0表示写,1表示读)。

    I²C通信协议

    • 开始条件(Start Condition) : 主设备将SDA从高电平拉到低电平,同时SCL保持高电平。

    • 停止条件(Stop Condition) : SCL为高电平时,SDA从低电平拉到高电平。

    • 字节数据传输 : 每传输一个字节数据后,接收方需发送一个确认位(ACK)。

    • 读/写操作 : 主设备发送设备地址的同时紧接着一个读/写位,0表示写,1表示读。

    I²C优点

    • 简单的硬件接口 :只需两根线即可实现通信。

    • 多主从架构 :允许多个主设备和从设备共用一条总线。

    • 灵活性 :支持多种设备共同使用,且设备可以热插拔。

    I²C缺点

    • 速率较低 标准模式下最大速率为100kHz,快速模式为400kHz,更高的速率(高达5MHz)需要特殊的高速度模式。

    • 距离受限 通常适用于PCB内部或短距离通信。

    • 总线竞争 总线空闲时,多个主设备可能会尝试同时启动通信。

    5、SPI通信


    SPI(Serial Peripheral Interface,串行外围设备接口)是一种用于 短距离通信 的同步串行通信协议。它由Motorola公司在20世纪80年代开发,广泛应用于嵌入式系统中,用于微控制器与传感器、存储设备、显示器以及其他外设的通信。


    SPI 基本概念


    SPI使用主从架构,其通信通过至少四条线进行:


    • MOSI(Master Out Slave In) : 主设备输出,从设备输入。
    • MISO(Master In Slave Out) : 主设备输入,从设备输出。
    • SCLK(Serial Clock) : 时钟线,由主设备生成时钟信号。
    • SS/CS(Slave Select/Chip Select) : 从设备选择线,由主设备控制,以选择具体的从设备。

    数据传输


    SPI是一种 全双工 通信协议,数据在时钟的控制下从主设备到从设备(通过MOSI),同时从从设备到主设备(通过MISO)。具体传输步骤如下:


    1. 主设备驱动CS线低电平 ,选择从设备。
    2. 主设备生成SCLK时钟信号
    3. 数据通过MOSI和MISO线同步传输
    4. 根据时钟的上升沿或下降沿采样数据
    5. 传输完成后,主设备驱动CS线高电平 ,结束通信。


    SPI时钟相位和极性


    SPI的时钟相位(CPHA)和时钟极性(CPOL)定义了数据采样的时机和时钟信号的初始状态。根据这两个参数,可以有四种模式:



    CPOL—— 0 :  SCLK空闲时低电平;1 : SCLK空闲时高电平
    CPHA—— 0 : 奇数边沿采集数据;  1: 偶数边沿采集数据


    • CPOL = 0, CPHA = 0 : 时钟信号空闲时为低电平,在第一个上升沿采样数据。
    • CPOL = 0, CPHA = 1 : 时钟信号空闲时为低电平,在第一个下降沿采样数据。
    • CPOL = 1, CPHA = 0 : 时钟信号空闲时为高电平,在第一个下降沿采样数据。
    • CPOL = 1, CPHA = 1 : 时钟信号空闲时为高电平,在第一个上升沿采样数据。

    SPI 优点

    • 高速传输 :比I²C通信速率更高,适用于高数据速率的传输。
    • 全双工通信 :可以同时发送和接收数据。
    • 简单的硬件实现 :不需要复杂的仲裁机制。

    SPI 缺点

    • 线数较多 :需要至少四条线,增加了布线复杂度。
    • 缺乏标准化 :不同设备的SPI实现可能有所差异,需要仔细阅读设备手册。

    6、RS-232外部通信

    RS-232(Recommended Standard 232)是一种 串行通信 标准,最初由EIA(Electronic Industries Association)在20世纪60年代制定。它广泛用于计算机与外围设备(如调制解调器、打印机和工业设备)之间的通信。尽管RS-232在现代消费电子产品中使用较少,但在工业自动化和某些专业设备中仍然非常重要。

    RS-232 基本概念

    RS-232为 异步串行、全双工通信 由电子工业协会(EIA)制定,是个人计算机上的通讯接口之一,通常以9个引脚(DB-9)出现,传输距离通常十几米。

    RS-232 信号

    RS-232接口定义了多种信号线,其中最常用的是:

    • TXD(Transmit Data) : 发送数据线。

    • RXD(Receive Data) : 接收数据线。

    • GND(Ground) : 地线。

    • RTS(Request to Send) : 请求发送。

    • CTS(Clear to Send) : 清除发送。

    • DTR(Data Terminal Ready) : 数据终端准备好。

    • DSR(Data Set Ready) : 数据集准备好。

    • DCD(Data Carrier Detect) : 数据载波检测。

    • RI(Ring Indicator) : 振铃指示。

    RS-232 电气特性

    RS-232定义的信号电压如下(负逻辑):

    • 逻辑1(标志位) : -3V到-15V。

    • 逻辑0(空闲位) : +3V到+15V。

    任何在-3V到+3V之间的电平都被视为不确定状态。

    数据传输

    RS-232使用异步通信,没有时钟信号。数据传输通过开始位、数据位、可选的校验位和停止位构成的数据帧进行:

    1. 起始位 : 通常为1位,表示数据传输的开始,逻辑低电平。

    2. 数据位 : 通常为5到8位,是实际传输的数据。

    3. 校验位 : 可选,用于错误检测,一般有奇校验和偶校验。

    4. 停止位 : 通常为1或2位,表示一帧数据的结束,逻辑高电平。

    RS-232 传输速度

    RS-232的波特率(传输速率)可以从300bps到115200bps不等,典型值有9600、19200、38400、57600和115200bps。

    RS-232 应用

    RS-232广泛应用于:

    • 计算机与调制解调器 : 老式拨号上网。

    • 工业自动化设备 : PLC、传感器和控制器之间的通信。

    • 嵌入式系统 : 用于调试和通信。

    • 医疗设备 : 如数据采集和监控设备。

    7、RS485通信

    RS-485是一种用于 多点、差分信号传输的串行通信标准 ,广泛应用于工业自动化、楼宇自动化和其他需要可靠 长距离数据传输 的应用中。与RS-232相比,RS-485具有更强的抗干扰能力和更长的传输距离。

    RS-485 基本概念

    差分信号

    RS-485使用差分信号传输,它通过两根线(A和B)来传输数据。差分信号的优势在于:

    • 抗干扰能力强 :由于接收端检测的是两根线之间的电压差,而不是单端电压,所以对噪声有更好的抵抗力。

    • 传输距离长 :典型的传输距离可以超过1200米。

    多点通信

    RS-485支持多点通信,即多个设备可以连接在同一总线上,常见的配置是主从模式。一个RS-485总线上可以连接多达32个设备,使用扩展器可以连接更多设备。

    RS-485 电气特性

    • 逻辑1 :A线电压低于B线电压,通常两线间的电压差为+(2~6)V。

    • 逻辑0 :A线电压高于B线电压,通常两线间的电压差为-(2~6)V。







    请到「今天看啥」查看全文