软件模拟IIC主从机.pdf

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

xxj1658888 + 关注
实名认证
内容提供者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档