全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 接口/总线/驱动 >

i2c总线的通信过程

时间:2017-12-06 15:23

人气:

作者:admin

标签: I2C总线 

导读:i2c总线的通信过程-在通信之初,主从机必须根据自己的要求约定好通信规则:command的定义和位置、address的位数和位置。以读写从机寄存器数据为例:假设从机寄存器地址为8位、从机寄...

  I2C总线简介

  I2C是两线式串行总线,用于连接微控制器及其外围设备。

  I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。

  单片机的通讯模块常用的有UART、SPI、I2C、CAN等等,当然还有无线模块这里不讨论。UART大多用于单片机与PC的通信,CAN总线常用于单片机与单片机通信,而SPI和I2C则用于单片机和外围设备、外围设备和其它外围设备的通信,根据自己的需要来设计通讯方式。

  相比较SPI而言,I2C需要更少的接线,仅由数据线SDA和时钟SCL构成 。而SPI则需要四根引线,它们是SDI(数据输入),SDO(数据输出),SCLK(时钟),CS(片选)。但是常常因为I2C的通讯协议较为复杂,不容易在程序中实现而导致数据丢失、无应答、“死等”等问题。

  I2C通信、读写数据过程

  在通信之初,主从机必须根据自己的要求约定好通信规则:command的定义和位置、address的位数和位置。

  以读写从机寄存器数据为例:

  假设从机寄存器地址为8位、从机寄存器也位8位(被读取数据为8位);

  约定读command为0x01,写command位0x02;

  约定主机发起通信后,第一个slave address字节收到ack后,紧跟的一个字节为command,再下面一个字节为address。

  1. 读寄存器数据步骤:

  1.1 主机先发起一次通信,将读command(0x01)和需要读取的寄存器地址address写入从机;(主机发出写操作)

  1.2 从机firmware的处理:

  1.2.1 将command和address分别提取出来;

  1.2.2 判断command的含义(本例中,是读指令还是写指令);

  1.2.3 根据收到的的address,将对应寄存器的的数据放入从机I2C输出buffer;(这个步骤可以使用指针)

  1.3 主机再次发起一次通信,读取从机的数据;(主机发出读操作)

  i2c总线的通信过程

  i2c总线的通信过程

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信