12.1. I2C 协议简介
I 2 C ( Inter-Integrated Circuit )协议是由 Phiilps 公司开发的,由于它具引脚少,硬件实现简单,可扩展性强,不需要如 USART、CAN 的外部收发设备,现在被
广泛地使用在系统内多个集成电路(IC)间的通讯。根据《I 2 C 总线协议版本 2.1-2000》的说明,我们可以更详细地了解 I 2 C 协议。

12.1.1. 物理层
(1) 它只使用两条总线线路,一条双向串行数据线(SDA) ,一条串行时钟线 (SCL)。

(2) 每个连接到总线的设备都有一个独立的地址,主机可以利用这个地址进行不同设备之间的访问

(3) 多主机同时使用总线时,为了防止数据冲突,会利用仲裁方式决定由哪个设备占用总线。

(4) 具有三种传输模式:标准模式传输速率为 100kbit/s ,快速模式为 400kbit/s ,高速模式下可达 3.4Mbit/s,但目前大多 I 2 C 设备尚不支持高速模式。

(5) 片上的滤波器可以滤去总线数据线上的毛刺波 保证数据完整 。

(6) 连接到相同总线的 IC 数量受到总线的最大电容 400pF 限制 。

                            图 12-1 常见的 I2C 通讯系统

12.1.2. 协议层
I 2 C 的协议包括起始和停止条件、数据有效性、响应、仲裁、时钟同步和地址广播等环节,由于我们使用的是 STM32 集成的硬件 I 2 C 接口,并不需要用软件去模拟 SDA 和 SCL 线的时序,所以野火直接以 I 2 C 通讯的流程为大家讲解。

见图 12-2 主机写数据到从机。

最新文章

  1. python 单例模式
  2. 解决Xamarin Android墙的问题
  3. ubuntu查找软件包
  4. 微信video标签全屏无法退出bug 本文系转载
  5. [转载] 【每周推荐阅读】C-Store:列式存储数据库
  6. 程序员书单_java学习基础编程篇
  7. poj 3373 Changing Digits (DFS + 记忆化剪枝+鸽巢原理思想)
  8. Android滚动截屏,ScrollView截屏
  9. 基于内容的图片检索CBIR(Content Based Image Retrieval)简介
  10. how to download image from any web page in java 下载图片
  11. 【R语言系列】R语言初识及安装
  12. wait event & wake up
  13. POJ 1269 Intersecing Lines (直线相交)
  14. iOS 初探代码混淆(OC)
  15. python六十六课——单元测试(二)
  16. 【python】del
  17. .Net Core Md5加密整理
  18. AngularJs 1.x和AngularJs2的区别
  19. java之Lombok
  20. bash參考手冊之六(Bash特性)

热门文章

  1. socketpair
  2. jQuery防止中文乱码
  3. P4929 【模板】舞蹈链(DLX)
  4. grep命令用关系或查询多个字符串
  5. 38.0到n-1中缺失的数字
  6. falcon的api
  7. elasticsearch 基础 —— Common Terms Query常用术语查询
  8. PHP中的魔术方法总结:__construct,__destruct ,__call,__callStatic,__get,__set,__isset, __unset ,__sleep,__wakeup,__toString,__set_state,__clone,__autoload
  9. 基于GPU的图像处理平台
  10. EBCDIC-1025 Russia