I2C总线协议的简要说明
2016-02-27 00:18
246 查看
为了快速的了解I2C总线协议,此处采用另类的方式进行说明。
倘若你和另外一个人只能通过一个开关加灯泡的装置在不同的两个房间进行交流,以下是很简单能说明的一个模型:你的房间有一个开关,另外一间房间有一个灯泡。你们可以有一千种方法进行对话,前提是你们得商量好怎么表达意思。
以上,只是你给它说话,那如何才能让你接受消息呢?以下是一种思路:
将增加上面同样的装置,只不过灯泡现在在你的房间。
那么,如何才能传递信息?莫尔斯编码?貌似只能表示英文。如果你们每人抱有一本<<新华字典>>,传递的信息为:页码,行,第几个字。这种数据是否更快一点。只是一堆数字而已。
【未完待续】
那么什么是I2C总线?实际上就是两根线。
一根叫时钟线(串行)SCL另外一根叫数据线(串行)SDA
那这两更线有上面用?
两根线能玩出上面花样?无非就是以下的几种:
以稳定态来参照:
SCL:H,SDA:H
SCL:H,SDA:L
SCL:L,SDA:H
SCL:L,SDA:L
以动态为参考:
1.当SCL=H时
SDA:H->L
SDA:L->H
2.当SCL=L时
SDA:H->L
SDA:L->H
3.当SDA=H时
SCL:H->L
SCL:L->H
4.当SDA=L时
SCL:H->L
SCL:L->H
这种有别与莫尔斯编码需要靠时间长短,点化来区分的编码,无非就是以上几种状态。经过这几种状态,来熟悉一下 ,在I2C bus中是如何定义的。
相关文章推荐
- Nginx反向代理上传大文件报错(failed to load resource : net :: ERR_CONNECTION_RESET)
- Git
- 观察者模式学习--使用jdk的工具类简单实现
- 【PAT】1035. 插入与归并(25)
- push
- java项目命名规范
- C++ 红黑树
- 安卓开发——创建Actions
- 基本数据结构学习笔记——树与二叉树
- linux内核分析--计算机是如何工作的
- Jfinal进阶系列之初体验
- swift基本语法(总结提炼版)之011 swift 之函数类型
- bzoj1072【SCOI2007】排列perm
- 算法:回溯算法之floodfill
- Kernel Live-patching (by quqi99)
- 特殊题型(三角形、菱形、for迭代穷举)
- windows 和 linux ssh互连
- 并发编程中的概念:发布 与 逸出
- iOS真机测试教程(无需开发者账号)
- 70. Climbing Stairs