单片机 | 福大嵌入式实时系统课学习 | 通信方式

本文详细介绍了UART与I²C串口通信协议,包括各自优缺点、适用场景、通信规则、I²C的地址处理、速度模式、超时与错误处理、中断与轮询以及电源管理和设备兼容性。还强调了调试与测试的重要性,以及查阅相关文档的必要性。
摘要由CSDN通过智能技术生成

UART(串口通信)

通信目的

  1. 获取数据
  2. 写入数据

通信对象

  1. 外设
    • SD卡
    • 加速度传感器
    • 屏幕
    • GPS
    • 温湿度传感器
    • 等等
  2. Other MCU
  3. PC

常见通信方式

  1. UART
  2. IIC
  3. SPI
  4. RS232
  5. 等等

缺点

  1. 不能远距离传输信号——RS232
  2. 通信速度慢——SPI
  3. 不能一对多通信——IIC

IIC(串行通信总线)

对比UART

  1. 节约单片机IO资源
  2. 降低PCB布线成本

通信规则

画电路图需要注意什么

  1. 如何控制电压——开漏输出
  2. 上拉电阻取值

写代码又需要注意什么

  1. 起始和停止条件

    • 起始条件:SCL(串行时钟线)为高时,SDA(串行数据线)从高变低。
    • 停止条件:SCL为高时,SDA从低变高。
  2. 数据位和时钟

    • 数据在SCL的下降沿被发送方写入SDA,并在SCL的上升沿被接收方读取。
    • 通常每个字节有8位数据,随后是一个应答位(ACK/NACK)。
  3. 应答位(ACK/NACK)

    • 在第9个SCL周期(即字节后的第一个时钟周期),接收方通过在SDA上拉低(ACK)或保持高(NACK)来响应发送方。
    • 发送方必须释放SDA线以便接收方可以产生应答位。
  4. 地址和数据

    • I²C设备有一个或多个7位或10位的地址,发送方在发送数据之前必须先发送地址。
    • 地址位后通常跟随一个读写位(R/W),0表示写操作,1表示读操作。
  5. 重试和仲裁

    • 如果多个I²C设备同时尝试启动通信(即同时产生起始条件),则时钟线SCL将被拉低,直到只有一个设备保持起始条件,这被称为仲裁。
    • 如果设备未能成功传输数据(如由于NACK),则可能需要重试。
  6. 总线速度和模式

    • I²C支持多种速度模式,包括标准模式(100 kbit/s)、快速模式(400 kbit/s)、高速模式(3.4 Mbit/s)和超高速模式(5 Mbit/s或更高)。
    • 根据使用的模式和速度,需要确保SCL和SDA线的正确时序。
  7. 超时和错误处理

    • 编写代码时应考虑超时和错误处理机制,以处理如总线锁定、通信失败等异常情况。
  8. 中断和轮询

    • I²C通信可以使用中断驱动或轮询方式实现。中断方式更为高效,但可能需要更复杂的硬件和软件设计。
  9. 电源管理

    • 如果I²C设备支持电源管理功能(如待机模式),则需要在代码中正确管理这些功能。
  10. 兼容性

    • 确保你的I²C代码与目标设备(如微控制器、传感器等)兼容。不同的设备可能有不同的I²C实现和特性。
  11. 调试和测试

    • 使用示波器、逻辑分析仪等工具来调试I²C通信,确保SCL和SDA线的时序和电平正确。
    • 编写测试代码来验证I²C通信的可靠性和稳定性。
  12. 文档和参考手册

    • 仔细阅读目标设备和微控制器的I²C文档和参考手册,了解特定于硬件的实现细节和限制。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值