S3C2440 ——UART和I2C对比
UART(通用异步收发传输器)和 I2C(集成电路总线)是两种常用的串行通信协议,在硬件结构、通信方式、适用场景等方面有显著差。
1. UART(以 S3C2440 与 DHT11 为例)
1.引脚:
UART 通信仅需 2 根信号线:TXD(发送) 和 RXD(接收),但 DHT11 是单总线设备,实际通过 1 根 GPIO 模拟 UART 时序(半双工通信)。
S3C2440 需将某一 GPIO(如 GPG1)配置为输入 / 输出模式,模拟 UART 的起始位、数据位、停止位时序。
DHT11 仅通过 1 根数据线与 S3C2440 连接,既发送数据也接收指令(主机拉低总线发起通信)。
连接:点对点通信(1 个主机对应 1 个从机)
2. I2C(以 S3C2440 与 LM75 为例)
1. 引脚:
I2C 通信需 2 根信号线:SDA(数据线) 和 SCL(时钟线),均为双向线,需上拉电阻(通常 4.7kΩ)。
S3C2440 通过 I2C 控制器引脚(如 GPE15=SCL,GPE14=SDA)与 LM75 连接。
LM75 作为从设备,通过 SDA 接收主机指令(如读取温度),通过 SCL 同步时钟。
连接特点:支持多设备共享总线(1 个主机可连接多个从机),每个从机有唯一地址(LM75 默认地址为 0x48)。
3. 注意
uart:无时钟线,发送方和接收方需提前约定波特率(如 9600、115200 bps)、数据格式(起始位 1 位 + 数据位 8 位 + 停止位 1 位,无奇偶校验)
I2c:有专用时钟线(SCL),主机(S3C2440)通过 SCL 控制通信节奏,从机(LM75)按时钟节拍收发数据
uart适合:点对点通信、中长距离、速率要求不高
I2c:多设备共享总线、短距离、低速率
UART 适合点对点的简单通信,而 I2C 更适合多设备共享总线的场景。