电子工程师技术服务社区
- 社区首页
- 下载
- Ginkgo_USB-I2C适配器使用手册_V1.0.rar
资料描述
申明:本资料来源与网络,经整理后在此与大家分享!
前段时间在学习单片机通信的时候,接触到了iic,一番接触之下,感觉原来不用记那么
多,只要了解关键的协议部分就够了。
如图1 所示,就是iic 总线连接图了。
简单来说,就一根数据sda,一根时钟scl。两根线按照一定的协议来传输数据。这样既
可以节省io 口和电路板空间,又可以让每个能够发送接受数据的设备成为主控机,当然,
前提是,同一时间上只能有一台设备是主控设备。
接下来了解一下iic的信号类型,
它共有四种信号:起始信号、停止信号、应答信号、非应答型号。
然后我们了解iic 传输数据的规则:
图2 数据传送的规则
首先,我们了解
在scl=1 时,sda 上的电平变化决定信号是起始信号还是停止信号。
在scl=0 是,sda 上的电平允许变化,变化好了,等scl=1 时,保持到scl=0,变化下
一位数据,这一位的数据就算是传送成功了。当然,判断数据是否为高低电平,需要一个时
间,下面会说到。
接着,我们了解iic的四种数据类型:
详细说太繁琐,又不好记忆,我简化了一下,大家理解住就很好记了。注意,这四种信号都
是在scl=1 时定义的。
上面有说到,scl=1 时,sda 的变化是变换数据类型和判断数据高低电平的,
scl=0 时,仅是用于sda 安全变化。
起始信号:sda 由"1" → "0",定义为起始。
停止信号:sda 由"0" → "1",定义为停止。
当数据发送一个字节即8 位数据后,到第9 数据,接收的设备必须输出"0"做为应答信号。
于此同时,发送设备就要释放sda,用于接受判断接受设备是否应答。
应答信号:sda=0,定义为应答。
非应答信号:sda=1,定义为非应答。这个信号用于,主控设备接收数据时,用在最后一
个数据后面,使受控设备释放数据线,以便主控