- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件模拟IIC主从机
软件模拟IC主从机2
作 者: 王 金 龙
创建时间: 2010年10月21日
修改时间: 2010年10月21日
学 校: 西南科技大学
目录
1. I2C总线引脚定义:3
2.总线时序定义:3
3. I2C 5
模拟 主机程序编程:
4. I2C 9
模拟 从机编程(中断方式)
5.后记:13
1. I2C
1. I2C
11.. II22CC总线引脚定义:
SCL:时钟线
SDA:数据线
2.
2.
22..总线时序定义:
a. 空闲模式: SDA=1 SCL=1
b. 总线的线与:连到总线上的任一器件输出的低电平,都将使总线的信号变低。
c. 数据位的有效性规定(DataValidity):
I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定;
只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。
d. 起始和终止信号:
SCL 为高电平时,SDA表现为下降沿则表示起始信号;
SCL 为高电平时,SDA表现为上升沿则表示终止信号。
起始和终止信号都是由主机发出的,在起始信号产生后,总线就处于被占用的状态;
在终止信号产生后,总线就处于空闲状态。
e. 从机事务处理:
接收器件收到一个完整的数据字节后,有可能需要完成一些其它工作,如处理内部中断
服务等,可能无法立刻接收下一个字节,这时接收器件可以将SCL 线拉成低电平,从而使
主机处于等待状态。直到接收器件准备好接收下一个字节时,再释放SCL 线使之为高电平,
从而使数据传送可以继续进行。
f. 字节传送与应答:
每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送
的字节后面都必须跟随一位应答位(即一帧共有9位)。
若因某种原因从机不能对主机应答时,从机应当释放 SDA 数据线(SDA=1),由主机产
生一个终止信号以结束总线的数据传送。
若从机已正常接收到数据,但是无力再接收数据时,应当对无法接收的第一字节产生无
应答,主机则应发出终止信号以结束数据的继续传送。
当主机接收数据时,它收到最后一个数据字节后,必须向从机发出一个结束传送的信号。
这个信号是由对从机的“非应答”来实现的。然后,从机释放SDA 线,以允许主机产生终
止信号。
g. 数据帧格式:
在起始信号后必须传送一个从机的地址(7位),第8位是数据的传送方向位(R/T),
用“0”表示主机发送数据(T),“1”表示主机接收数据(R)。每次数据传送总是由主机产
生的终止信号结束。但是,若主机希望继续占用总线进行新的数据传送,则可以不产生终止
信号,马上再次发出起始信号对另一从机进行寻址。
在总线的一次数据传送过程中,可以有以下几种组合方式:
1 主机向从机发送数据,数据传送方向在整个传送过程中不变
2 主机在第一个字节后,立即从从机读数据
3 在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,
但两次读/写方向位正好反相。
注:有阴影部分表示数据由主机向从机传送,无阴影部分则表示数据由从机向主机传送。
A表示应答, A非表示非应答(高电平)。S 表示起始信号,P 表示终止信号。
3. I2C
3. I2C
33..模拟II22CC主机程序编程:
/***************起始信号 S*******************/
voidstart()
{
scl=1; //SCL 高电平
delay_24C02();
sda=1; //SDA下降沿
delay_24C02();
sda=0;
delay_24C02();
}
/****************终止信号 P****
文档评论(0)