ic基础知识ppt课件.ppt_第1页
ic基础知识ppt课件.ppt_第2页
ic基础知识ppt课件.ppt_第3页
ic基础知识ppt课件.ppt_第4页
ic基础知识ppt课件.ppt_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

IIC基础知识 目录 IIC位传输与应答 IIC协议简介 IIC读写 IO口模拟IIC 简介 接口线少 控制方式简单 器件封装形式小 通信速率较高等 背景 优点 随着大规模集成电路技术的发展 把CPU和一个单独工作系统所必需的ROM RAM I O端口 A D D A等外围电路集成在一个单片内而制成的单片机或微控制器愈来愈方便 IIC 一种串行同步总线 简介 IIC即Inter IntegratedCircuit 这种总线类型是由飞利浦半导体公司在八十年代初设计出来的一种简单 双向 二线制 同步串行总线 主要是用来连接整体电路 ICS IIC是一种多向控制总线 也就是说多个芯片可以连接到同一总线结构下 同时每个芯片都可以作为实时数据传输的控制源 这种方式简化了信号传输总线接口 简介 IIC工作原理 I2C总线通过上拉电阻接正电源 当总线空闲时 两根线均为高电平 连到总线上的任一器件输出的低电平 都将使总线的信号变低 即各器件的SDA及SCL都是线 与 关系 IIC位传输与应答 SCL为高电平时 若SDA由高电平向低电平跳变 则用来表示一个会话的开始 SCL为高电平时 若SDA由低电平向高电平跳变 则用来表示一个会话的结束 数据传输 SCL为高电平时 SDA线若保持稳定 那么SDA线上是在传输数据bit 数据改变 SCL为低电平时 SDA线才能改变传输的bit电平 IIC位传输示意图 IIC位传输与应答 接收器件收到一个完整的数据字节后 有可能需要完成一些其它工作 如处理内部中断服务等 可能无法立刻接收下一个字节 这时接收器件可以将SCL线拉成低电平 从而使主机处于等待状态 直到接收器件准备好接收下一个字节时 再释放SCL线使之为高电平 从而使数据传送可以继续进行 IIC应答 主机每发送完8bit数据后等待从机的应答 ACK 在第9个clock 若从机发出ACK SDA会被拉低 若没有ACK SDA会被置高 这会引起主机发生RESTART或STOP流程 这段信号是干嘛 有什么作用 IIC总线寻址 IIC总线寻址 7位和10位 了解即可 很少使用 第一个字节的最低位是 0 表示主机会写信息到被选中的从机 1 表示主机会向从机读信息 当发送了一个地址后 系统中的每个器件都在起始条件后将头7位与它自己的地址比较 如果一样 器件会判定它被主机寻址 至于是从机接收器还是从机发送器 都由R W位决定的 第一个字节的头7位组成了从机地址 最低位 LSB 是第8位 它决定了传输的方向 每次发送8位 一个字节 数据 起始 应答 终止 从机地址 由固定部分和可编程部分组成 从机的7位寻址位前四位是固定位 后三位是可编程位 这时仅能寻址8个同样的器件 即可以有8个同样的器件接入到该I2C总线系统中 写流程 Master发起STARTMaster发送I2Caddr 7bit 和w操作0 1bit 等待ACKSlave发送ACKMaster发送regaddr 8bit 等待ACKSlave发送ACKMaster发送data 8bit 即要写入寄存器中的数据 等待ACKSlave发送ACK第6步和第7步可以重复多次 即顺序写多个寄存器Master发起STOP IIC写流程 读流程 Master发送I2Caddr 7bit 和w操作1 1bit 等待ACKSlave发送ACKMaster发送regaddr 8bit 等待ACKSlave发送ACKMaster发起STARTMaster发送I2Caddr 7bit 和r操作1 1bit 等待ACKSlave发送ACKSlave发送data 8bit 即寄存器里的值Master发送ACK第8步和第9步可以重复多次 即顺序读多个寄存器 IIC读流程 IO口模拟IIC IO口模拟IIC开始和结束 SCL为低电平时 改变SDA 这样做可以确保不会引起start或者stop 这里最好是对换一下如 右边i2c stop IO口模拟IIC IO口模拟IIC读byte和写byte 这里可以添加上GetData 设置SDA为输入模式 如果有设置模式的函数 可以使用该函数替代 IO口模拟IIC IO口模拟IIC读和写 有些单片机在实际操作过程中 读操作的最后一个byte发送非应答 NAK 这里最好是判断到了最后一个byte发送NAK IO口模拟IIC IO口模拟IIC接受应答和发送应答以及delay 这里可以添加上GetData 设置SDA为输入模式 如果有设置模式的函数 可以使用该函数替代 这里可以添加上SetData 设置SDA为输出模式 如果有设置模式的函数 可以使用该函数替代 这里的时序都是微秒级 一般系统的delay函数都是毫秒级 所以为了精度 直接使用for循环 IO口模拟IIC 有些特殊情况需要发送非应答 iic通信的单片机工作频率都不一致 这个时候根据时序 做相应代码修改 除了开始和结束操作 一定要在SCL为低电平操作SDA delay时间控制不准确 单片

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论