I2C总线协议及其软件的实现

来源 :电子世界 | 被引量 : 0次 | 上传用户:birentx
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  在电子消费品、通讯及工业电子等应用领域,许多看似不相关的设计常常有许多相似之处,比如几乎每个系统都有这几个部分组成:处理器、数据存储介质及应用专用电路,如广播、电视中用到的数字调谐器、信号处理器,或支持语音拨号的电话中需要的DTMF发生器等。而它们之间的数据传递通常都有距离短、流量小、突发性等特点,如何利用这些共性,使电路的设计简单而性能稳定呢?本文介绍由Philips公司提出的I2C总线很好地解决了这个问题。 I2C总线为两线双向串行传输总线,它为模块之间的数据传递提供了一种方便有效的方法,特别适合应用于有很多模块、彼此之间非频繁数据传递的设计中。文中介绍了I2C总线协议,并给出了其软件的实现方法,最后提出了硬件连接方法中应注意的问题。
  
  I2C总线协议
  
  1.协议概述
  I2C总线仅占用系统的两个I/O口,一条作为串行数据线SDA,一条作为串行时钟线SCL,线上外加上拉电阻,在不传数据时SCL、SDA总保持高电平。连在每一个总线上的器件都有一个唯一地址,它们彼此之间只有简单的Master/Slaver关系:
  Master:控制时钟线,产生启动信号、时钟信号、停止信号。控制线上的发送和接收节奏。
  Slaver:处于从机地位,按SCL线上的时钟接收SDA线上的数据或发送数据到SDA线上。
  它是个真正的多主控总线方式,如果有两个或两个以上Master同时有数据传送请求时,通过检测发出去的数据是否和SDA线上的数据相同来判断是否发生冲突,数据不同将放弃此次传输,通过这种冲突检测、仲裁机制可以防止数据冲突。
  


  I2C总线要求所有连在I2C总线上的器件都必须是开漏或开集输出,用以实现线与的功能,可使不同Master产生的时钟同步,也解决Master和Slaver之间速度不匹配问题。I2C总线的传输速度:标准模式可达100kbit/s,快速模式可达400kbit/s,高速模式可达3.4Mbit/s。
  
  2.协议规范
  I2C总线数据传输时序图见图1、图2,其中,图1为写模式时序,图2为读模式时序。其协议规定:数据以字节为单元,每字节8位,SCL的每一时钟脉冲发送一位,先高位后低位。应答位紧跟每个字节之后。接收数据是在时钟的高电平期采样数据,所以改变SDA线上的数据必须在时钟的低电平期,数据在时钟的高电平期应保持不变,正是数据传输的这个特点,I2C总线利用SCL高电平时改变SDA来作为开始(start)和结束(stop)命令。
  开始命令信号(start):在SCL为高电平时,产生一个1→0跳变,表示开始一个数据传输周期。
  结束命令信号(stop):在SCL为高电平时,产生一个0→1跳变,表示结束一个数据传输周期。
  从机地址(Slaver address):每个I2C总线上的器件都有唯一的地址。这个地址分固定部分和可编程部分,同类器件的固定地址相同,因为有可编程部分,所以允许有多个同类或相同器件放在同一总线上。从机地址必须紧跟start命令信号之后,与读写指示位组成一个字节发送。I2C线上所有处于从机地位的器件在接到start信号后的第一字节后检查是否和自己的地址相符,如果相符发送应答信号(在SCL的第9个时钟维持SDA线为低电平),不符,仍保持自己SDA口输出为高。I2C总线也支持10位地址,本文主要讨论7位地址方式。
  


  读写位(R/W):读操作,此位置1;写操作,此位置0。
  应答位(ACK):每字节后紧跟的第一个时钟对应的SDA数据,这个数据也必须在时钟高电平期维持不变。
  无论是读模式还是写模式都是相对Master来定义的。
  当Master处于写模式:即Master要向Slaver送数据。Master先发start信号;紧跟着发送7位Slaver地址和读写指示位0;Slaver确认地址和自己相符后置应答位SDA为低电平,并判断读写位,准备接收数据,若地址不符置高电平;Master检查应答位为高,发送stop信号结束此次数据传输周期, 如果为低,继续发送数据,Slaver每接收一字节数据,发送一低应答信号,Master检查到低应答信号后才继续发送下一个字节数据,否则发送stop信号停止发送;当Master数据发送完毕后,也会自动发送stop信号停止此周期传送。时序见图1。
  


  当Master处于读模式:即Master要读Slaver数据。Master先发start信号;紧跟着发送7位Slaver地址和读写指示位1;Slaver确认地址和自己相符后置应答位SDA为低电平,并判断读写位,准备数据发送,若地址不符置应答位为高电平;Master检查应答位为高,发送stop信号结束此次数据传输周期,如果为低,继续发送时钟信号,Slaver按SCL上的时钟将数据放到SDA上,每当Master接收到一字节数据后,发送低应答位给Slaver,Master要停止接收,发送高应答位给Slaver,告诉Slaver不再接收数据,然后发stop信号结束此次数据传输周期。时序见图2。
  
  I2C总线接口的软件实现
  
  本文给出的I2C总线接口程序流程图为在I2C总线上处于Master地位的总线接口程序。程序入口参数:HDADDS(从机地址右移1位)、 FLRW(读写标志位)、REF(存放发送/接收参数在RAM中存放的首地址,数据由高地址到低地址读取或存放)、 SDRVCT(发送参数的个数,不包括HDADDS)。图3为程序流程图,在本刊的网站上给出了具体程序,供读者参考。
  


  I2C总线硬件设计
  
  在硬件电路设计中应注意以下几点:
  (1)I2C总线驱动能力和连在总线上的器件的等效电容有关,也就是说所有连在总线上的器件产生的电容负载不能超过400pF。
  (2)在I2C总线上,如果所接器件的I/O口的输入电平逻辑判断固定为1.5V和3V,与该芯片的供电电压无关,则该器件在I2C总线上可独立供电,此时I2C的SDA和SCL经上拉电阻连接到5V±10%;如果所接器件的I/O口的输入电平逻辑判断和该芯片的供电电压有关,那么它们必须统一接到相同的供电电压上,且I2C的SDA和SCL必须经上拉电阻也连接在这电压上。图4给出I2C总线上混合这两类器件的电路连接。图中的右边两个为输入电平和供电电压无关的器件,左边两个为输入电平和供电电压有关的器件。
  
  结束语
  
  采用I2C总线的系统很容易实现模块的修改,因为加入一个支持I2C接口的模块到I2C总线或从I2C上去除一个模块无需附加接口电路,且不影响其它电路。I2C总线灵活性好,器件地址可编程,数据传输协议可由自己灵活约定,且容易查错。该总线还具有低耗、宽电压范围、适用温度范围广、抗干扰能力强等特点,因此被广泛应用于电路设计中。
其他文献
【摘要】本文通过对高校内各教育管理部门软件系统间数据的相关性分析,提出利用消息中间件实现跨域应用集成,并以知名的IBM WebSphere MQ消息中间件软件为例,进行了消息中间件数据交换的基本原理阐述,研究了高校内各教育管理部门软件系统间通过消息中间件进行数据交换的方法,可以通过文件落地形式和文件不落地形式去实现。  【关键词】消息中间件;域;应用集成  一、研究背景分析  随着高校管理发展的信
期刊
【摘要】网站的价值体现在将更多的产品和服务提供给更多的使用者。本文以西南林业大学图书馆网站为例,结合网络流量分析工具的应用,可视化地揭示网站受访情况,分析并提出网站优化的依据和途径。  【关键词】流量分析;图书馆;网站优化  随着信息技术的发展,需要存储和传播的信息量越来越大,信息的种类和形式也越来越丰富,传统图书馆的机制显然不能满足这些需要。因此,数字图书馆运运而生。数字图书馆是一个数字化信息的
期刊
很多学生朋友都有GBA,同时学生也是电子词典的主要消费人群;既有电子词典又有GBA的人不在少数。  其实GBA上有一个简单易用的英汉电子词典,一般性的查找词汇解释完全可以满足,这就是Wordboy,大家可以到该软件开发者的网站上找到并下载,软件的当前版本为1.5版(http://www.guangzhiyi.com/gslib/down.htm)。该软件的发布是直接以ROM文件的形式发布的,只要把
期刊
【摘要】本文主要论述了利用可编程逻辑器件FPGA进行测频计数和实施控制实现频率计的设计过程。该频率计利用等精度的设计方法,克服了基于传统测频原理的频率计的测量精度随被测信号频率的变化而变化的缺点。  【关键词】频率计;FPGA;等精度  1.引言  在测量技术中,使用比较广泛的是对宽频率范围的时间和宽的频率测量技术。而数字式的频率和时间的测量技术具有精度高,读数方便等优点,因而成为当前普遍使用的时
期刊
GBA运行的软件都装在卡带中,卡带中一般有专门用来存放软件的ROM和保存游戏进度的RAM,以及为RAM提供电源的电池。可以说卡带对于GBA就像是计算机的硬盘一样,没有硬盘的个人计算机什么也干不成,至少现在是这样。  市场上销售的GBA游戏卡带都是预先写好ROM的,不能更改,除非是合集的游戏,否则玩不同的游戏就要更换不同的卡带。因此后来便出现了使用可擦写ROM的Flash卡带和烧录器,玩家通过设备把
期刊
电子图书从几年前出现以来始终是一个热点话题,国内市场上一直都不断有各种各样的电子书阅读器出现,例如金博览、翰林等等,这些硬件阅读器有的曾经销路不错,但后来最终无声无息,也有的只能一直摆在店面里做陈列品了。  这些国内专用电子书阅读器没能在市场上长盛的原因很多,其中价格昂贵、功能单一是最重要的一条。翰林电子书就是一个典型的例子,售价高达2000多元,却只有单色显示屏,看书只能认TXT文本,无法图文混
期刊
【摘要】介绍了DDS的基本工作原理,针对传统DDS存在的主要问题,提出了基于流水线结构的累加器和基于波形对称的ROM优化设计,并在开发软件Quartus II上仿真,验证了优化设计的正确性。不仅提高了系统的运算速度,而且也节省了硬件资源。  【关键词】FPGA;DDS;流水线结构;仿真  1.引言  随着科技的飞速发展,对信号发生器的要求越来越高,传统分立式模拟电路来难满足[1]。直接数字频率合成
期刊
有很多场所对转速的精度要求较高,譬如,某些精密仪器、精密机床等。那末,怎样解决转速精度问题呢?除选用硬度特性较好的电动机外,电动机控制系统也是应该考虑的问题。比如,生产中常采用的滑差电动机调速系统、变频变压调速系统等。本文介绍的8098单片机直流电机调速系统,就是一种经济实用的电动机控制系统。  整个电路组成框图如图1所示,其中晶振单元、复位单元、程序存储与地址、数据分割单元是保证8098系统能够
期刊
【摘要】对熔化池的燃烧系统的作用及工作原理进行简要的说明,提出了燃烧系统的设计方法,同时详细说明了控制系统使用方法及管路安装方面的注意事项。  【关键词】熔化池;燃烧盘;阀位控制器;流量计  1.引言  在TFT基板玻璃生产中,熔化池加热方式采用电加热与燃气加热并存的模式,燃气加热系统在烤窑期间提供烤窑的热源,烤窑结束后,电加热系统开始启用,燃烧系统成为辅助加热,主要用来进行一些工艺温度和炉压大小
期刊
【摘要】针对机电一体化专业涵盖技术领域广、学生泛学而不专,以及学生学习能力和学习目标参差不齐,提出了专业分层次化教学模式的解决方案。根据行业需求进行专业方向分层,通过编制班级进行课程体系分层、合理设置理实教学权重比,利用任务小组进行教学内容和目标的分层,能够克服学生个体差异基本实现因材施教的效果。  【关键词】高职;机电一体化;分层次;专业开发  随着综合素质人才社会需求量的增加,机电一体化专业备
期刊