常用的嵌入式硬件通信接口协议(UART、IIC、SPI、RS-232、RS-485、RS-422、CAN、USB、IRDA)(二)

2、IIC

(1)基本概念

  • IIC总线是一种串行、半双工总线,同步通信、主要用于近距离、低速的芯片之间的通信。
  • IIC串行总线一般有两根信号线,一根是双向的数据线SDA收发数据,另一根是时钟线SCL双方时钟同步。所有接到IIC总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。
  • IIC是真正的多主机总线,(IIC可以在通讯过程中,改变主机)。如果两个或更多的主机同时请求总线,可以通过冲突检测和仲裁防止总线数据被破坏。
  • 多个IIC器件可以并联在IIC总线上,每个器件有特定的地址,分时共享IIC总线。连接到IIC总线上的设备既可以用作主设备,也可以用作从设备。
  • 主设备负责控制通信,通过对数据传输进行初始化/终止化,来发送数据并产生所需的同步时钟脉冲。从设备则是等待来自主设备的命令,并响应命令接收。主设备和从设备都可以作为发送设备或接收设备。无论主设备是作为发送设备还是接收设备,同步时钟信号都只能由主设备产生。
  • 串行的8位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s ,高速模式下可达3.4Mbit/s。

(2)硬件连接

IIC 总线由两根信号线和一根地线组成。两根信号线都是双向传输的。IIC协议标准规定发起通信的设备称为主设备,主设备发起一次通信后,其它设备均为从设备。

image-20220209161022548
注意:实际使用中,一般是单片机作为主机,其它器件作为从机,单片机先向器件发送信息表示要读取数据,之后转变传输方向,器件发送数据到单片机。

(3)通信过程
image-20220209172404085当总线空闲时,SDA 和SCL 都处于高电平状态,当主机要和某个从机通讯时,会先发送一个开始条件,然后发送从机地址和读写控制位,接下来传输数据(主机发送或者接收数据),数据传输结束时主机会发送停止条件。传输的每个字节为8 位,高位在前,低位在后。

  • 开始条件(启用总线):SCL 为高电平时,主机将SDA 拉低,表示数据传输即将开始。
  • 从机地址:主机发送的第一个字节为从机地址,高7 位为地址,最低位为R/W 读写控制位,1 表示读操作,0 表示写操作。

一般从机地址有7 位地址模式和10 位地址模式两种,如果是10 位地址模式,第一个字节的头7 位是11110XX 的组合,其中最后两位(XX)是10 位地址的两个最高位,第二个字节为10 位从机地址的剩下8 位,如下图所示:

StartA6A5A4A3A2A1A0R/WACK
Start11110A9A8R/WACKA7A6A5A4A3A2A1A0ACK
  • 应答信号:每传输完成一个字节的数据,接收方就需要回复一个ACK(acknowledge)。写数据时由从机发送ACK,读数据时由主机发送ACK。当主机读到最后一个字节数据时,可发送NACK(Notacknowledge)然后跟停止条件。
  • 数据:从机地址发送完后可能会发送一些指令,依从机而定,然后开始传输数据,由主机或者从机发送,每个数据为8 位,数据的字节数没有限制。
  • 重复开始条件:在一次通信过程中,主机可能需要和不同的从机传输数据或者需要切换读写操作时,主机可以再发送一个开始条件。
  • 停止条件(释放总线):在SDA 为低电平时,主机将SCL 拉高并保持高电平,然后在将SDA 拉高,表示传输结束。

(4)IIC总线优点

  • 简单的两线串行 IIC 总线,节省 PCB 布板走线空间。
  • 完全集成的 IIC总线协议消除了地址解码器。
  • 标准支持广泛,大量无铅封装 I2C 总线兼容集成芯片进一步降低了空间需求。
  • 控制方式简单、器件封装形式小、通信速率较高。
    **温馨提示:**下一章节将讲述SPI通信协议。
  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
串口通信是一种常见的电子设备之间数据传输的方式,常用于计算机和外部设备之间的数据传递。串口通信涉及到几个重要的概念,包括UARTRS232RS422RS485UART代表通用异步收发器(Universal Asynchronous Receiver/Transmitter),它是指一种硬件电路,用于实现串行数据传输。UART负责将并行数据转换为串行数据并进行传输,同时将接收到的串行数据转换为并行数据供主设备使用。UART通常使用两条线进行传输,一条用于发送数据,一条用于接收数据。 RS232是一种串口通信标准,常用于计算机和外部设备之间的数据传输。它使用串口连接并使用DB-9或DB-25连接器。RS232定义了传输数据的电气特性和信号电平,以及传输的协议RS232支持全双工通信,即可以同时传输和接收数据。 RS422是一种更为先进的串口通信标准,用于在长距离和高速传输的环境下进行数据传输。RS422可以同时传输数据和接收数据,并使用四线电缆进行传输。RS422使用差分信号来提高传输的抗干扰能力和传输距离。 RS485是另一种串口通信标准,也适用于长距离和高速传输环境。RS485可以连接多个设备,允许多个设备之间进行数据传输。RS485也使用差分信号进行传输,提供了更高的传输距离和抗干扰能力。 在实际应用中,如果需要通过串口进行数据传输,首先需要确定要使用的串口标准。如果是较短距离和低速传输,可以选择RS232;如果是较长距离和高速传输,RS422RS485可能更适合。然后,需要配置对应的硬件设备和软件驱动程序来实现串口通信。在数据传输过程中,发送端将数据转换成串行数据,并通过所选的串口标准进行传输,然后接收端将串行数据转换为并行数据进行处理。 总之,串口通信是一种常见的数据传输方式,需要了解UARTRS232RS422RS485等概念。选择合适的串口标准来进行数据传输,并配置相应的硬件设备和软件驱动程序来实现串口通信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值