I2C总线定义

    I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。
 
I2C总线特点

    I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。
 
I2C总线工作原理

总线的构成及信号类型 

  I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。 
  I2C总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。 
  开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 
  结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。 
  应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。 
  这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。
  目前有很多半导体集成电路上都集成了I2C接口。带有I2C接口的单片机有:CYGNAL的 C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。很多外围器件如存储器、监控芯片等也提供I2C接口
  I2C 总线是一种用于IC器件之间连接的双向二线制总线,所谓总线它上面可以挂多个器件,并且通过两根线连接,占用空间非常的小,总线的长度可长达25英尺,并且能够以10Kbps的最大传输速率支持4个组件。它的另一优点是多主控,只要能够进行接收和发送的设备都可以成为主控制器,当然多个主控不能同一时间 工作。
  I2C总线有两根信号线,一根为SDA(数据线),一根为SCL(时钟线)。任何时候时钟信号都是由主控器件产生。
 
I2C总线操作

    I2C规程运用主/从双向通讯。器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。主器件和从器件都可以工作于接收和发送状态。 总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。 
  控制字节 
  在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符(不同的芯片类型有不同的定义,EEPROM一般应为1010),接着三位为片选,最后一位为读写位,当为1时为读操作,为0时为写操作。 
  写操作 
  写操作分为字节写和页面写两种操作,对于页面写根据芯片的一次装载的字节不同有所不同。 
  读操作 
  读操作有三种基本操作:当前地址读、随机读和顺序读。图4给出的是顺序读的时序图。应当注意的是:最后一个读操作的第9个时钟周期不是“不关心”。为了结束读操作,主机必须在第9个周期间发出停止条件或者在第9个时钟周期内保持SDA为高电平、然后发出停止条件。
 
I2C总线应用

    目前有很多半导体集成电路上都集成了I2C接口。带有I2C接口的单片机有:CYGNAL的 C8051F0XX系列,三星的S3C24XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。很多外围器件如存储器、监控芯片等也提供I2C接口。
 
举常I2C器件/I2C Device

  1、存储器类: ATMEL公司的AT24CXX系列EEPROM; 
  2、I2C总线8位并行IO口扩展芯片PCF8574/JLC1562; 
  3、I2C接口实时时钟芯片DS1307/PCF8563/SD2000D/M41T80/ME901/ISL1208/; 
  4、I2C数据采集ADC芯片MCP3221(12bitADC)/ADS1100(16bitADC)/ADS1112(16bitADC)/MAX1238(12bitADC)/MAX1239(12bitADC);
  5、I2C接口数模转换DAC芯片DAC5574(8bitDAC)/DAC6573(10bitDAC)/DAC8571(16bitDAC)/; 
  6、I2C接口温度传感器TMP101/TMP275/DS1621/MAX6625
 
USB转I2C专用芯片:USB2I2C

    USB2I2C是一个USB总线转I2C总线I2C/IIC/TWI/SMBUS的接口芯片,通过USB2I2C芯片可以非常方便地实现PC机USB总线和下位机端I2C接口(即IIC或TWI总线:SCL 线、SDA 线)之间的通信。
  USB2I2C芯片上位机PC端提供简单易用的USBIOX.DLL动态库调用,可以方便地被VB,VC,Delphi,Labview,BCB等上位机开发工具调用。相关例程在USBIO公司网站可以找到。
  USB2I2C功能特点:
  ●全速USB设备接口,兼容USB V2.0。 
  ●外围元件简单,只需1个12M晶体和2个电容。 
  ●低成本,可以通过I2C总线直接实现上位机与下位机之间的连接,无需辅助MCU。 
  ●上位机软件能够实现灵活实现I2C/IIC/TWI总线协议的各种操作。 
  ●作为I2C总线Host/Master 主机端。 
  ●I2C接口提供SCL和SDA信号线,支持SCL时钟4种不同传输速度:100KHz/400KHz/750KHz。 
  ●采用SSOP-20小型封装。
来自:http://blog.csdn.net/subkiller/article/details/4508441

最新文章

  1. sass安装
  2. IOS中block和代理
  3. Asp.Net MVC4 + Oracle + EasyUI 学习 第二章
  4. java web.xml配置详解
  5. js判断当前的访问是手机还是电脑
  6. 一次熬夜解决的java乱码问题
  7. XAF响应式布局皮肤界面展示
  8. log4j按级别输出日志文件
  9. 20150911 for循环的用法以及小题目
  10. CSS中的content和attr的用法
  11. 李洪强iOS开发之OC语言BLOCK和协议
  12. 【PHP】将EXCEL表中的数据轻松导入Mysql数据表
  13. 简单粗暴的“Debug模式”
  14. Spring MVC的配置与DispatcherServlet的分析
  15. RabbitMQ之路由
  16. R+NLP︱text2vec包——BOW词袋模型做监督式情感标注案例(二,情感标注)
  17. MyBatis 源码分析系列文章合集
  18. linux下sort命令使用详解---linux将文本文件内容加以排序命令
  19. 用ActionController::Renderer的render方法渲染模版
  20. 解决telnet不是内部命令

热门文章

  1. 关于static以及final关键字
  2. mybatis多对一
  3. opencv部署服务器报错
  4. 常见ORM框架及JDBC操作工具类
  5. 数据库之Query Builder
  6. python面试题之Python如何实现单例模式?
  7. http响应代码解释
  8. <一> idea+gradle+springboot创建项目
  9. CentOS7.6系统安装zabbix3.4.8客户端
  10. Vue-cli3 环境的搭建