浅析I2C及相关问题解决

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:samuraitruong
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:在实际应用过程中,I2C电路的关注相对较少,原因就在于其外围电路相对简单,但也容易出现不少的问题,对于电路设计来说,能读懂I2C上的传输数据,能够按照I2C要求的规范构建电路系统,无疑对于分析解决问题具有十分重要的作用。本篇通过在设计过程中出现的问题实例,讨论在I2C应用的一些注意点。
  关键词:I2C;开始信号;结束信号; ACK;电平
  中图分类号:TP391 文献标识码:A
  文章编号:1009-3044(2019)12-0266-02
  开放科学(资源服务)标识码(OSID):
  1 I2C总线的概念及工作原理
  1.1 I2C总线定义
  I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。
  1.2 I2C总线特点
  I2C能使一个系统中各部分电路连接非常简单,省去许多I/O接口,简化了电路,提高了可靠性。同时,它允许包含多个主控。在I2C定义中,主控就是任何能够进行发送和接收的设备。主控能够控制信号的传输和时钟频率。同时,也规定同一套系统中同一时间点I2C上只能有一个主控。
  1.3 I2C总线种类
  I2C 总线上数据的传输速率分为标准模式(100kbit/s)、快速模式(400kbit/s)及高速模式(3.4Mbit/s)。目前我们大部分产品主要使用的总线模式仍为标准模式。
  1.4 I2C总线工作原理
  I2C总线是串行总线,由数据线SDA和时钟SCL构成。它可以在CPU与被控IC之间、IC与IC之间进行双向传送。总线上所有被控制单元均采用并联方式连在一起,其中每个电路或者模块都有且只有一个地址。在信息的传输过程中,并联的这些模块电路根据它所要完成的功能,既可以作为主控器(或发送器),又可以作为被控器(或接收器)。在I2C上主控发出的控制信号一般包含地址码和数据两部分,其中地址码用来选择需要控制的模块电路,并确定控制的种类;数据则指定调整的类别及数量。被控模块电路通常包含从机地址(Slave Address)及子地址(Sub Address)。从机地址是被控模块电路在该总线上能被主控寻址的地址,而子地址则为该模块电路内部不同部件或存储单元的编址。子地址传输方式,传输格式与数据是统一的,地址或数据的区分主要依靠收发双方具体的逻辑约定。
  2 I2C总线的电平要求
  I2C通常会串联电阻保护I2C 总线器件的I/O 级,防止总线上高电压的毛刺影响I/O 级,并将振荡和干扰减到最小。
  具备I2C 总线的电路器件的SDA 和SCL 管脚都是漏极开路。因此工程运用中,两条信号线外围都需要增加上拉电阻。上拉电阻使SDA和SCL线在总线空闲的时侯保持高电平,同时保证在信号要求的上升时间内能从低电平变成高电平。上拉电阻一般取值3~10KΩ,大部分产品中一般使用5V或3.3V的上拉源。
  3 I2C总线工作过程简述及實例
  I2C总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。
  1) 开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
  2) 结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
  3) 应答信号:我们通称为“ACK”信号。它指接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。
  其中开始信号是必须的,结束信号和应答信号可以不做要求。以下我们采用一个实际应用中的例子说明。
  图1是某产品外围从芯片与CPU间的通信片段,蓝色波形为SDA,绿色波形为SCL。当读到SCL为高,SDA从高到低的过程跳变,则可判定为开始信号。之后SCL连续的8个脉冲器件可从SDA读到目前访问的地址(本图中为1111 1010即为FA),表示刚好为从芯片的写地址(通常最后一位为“1”为“读”操作,最后一位为“0”为“写”操作)。第九个SCL脉冲来到时,SDA给出了一个低电平,这一位即为芯片的ACK应答信号。至此外围从芯片和CPU间的通信已连接好,CPU可对从芯片进行操作。接下来的一个8位周期里,我们看到CPU需要写入的内容为1010 0101(A5), 从芯片同样给予了ACK响应,之后当SCL为高时,SDA有一个从低到高的跳变,这就是一个结束信号。自此CPU与从芯片间的一次通信就此结束,总线转入空闲等待下一次命令的到来。
  在实际应用中,I2C电平是否符合标准设计要求将极大程度上考验我们的系统稳定性。以下将通过一个电视产品设计过程中出现的问题及解决过程进行说明。
  4 实例解析I2C相关问题
  4.1 实例之故障现象描述
  某电视机型开发过程中发现有漏台现象出现。
  4.2 实例之实验过程及问题分析
  出现故障时,使用示波器对高频头的AFT电压进行监测,发现在搜台频率从00到FF微调过程中,在61,69两个数据点上有不正常的AFT电压跳变,此时用频谱仪对调谐芯片进行探测,调谐芯片已完全停振,高频头无IF信号输出,AFT电压亦出现跳变。
  考虑到由于图象跳变只出现在固定的频率点上,我们又使用软件对高频头的I2C进行了监测。当CPU对高频头进行微调时,会对其写入5个BYTE数据,第一个BYTE为高频头的地址;第二、三个BYTE为分频比数据;第四个BYTE为高放锁相环的泵电流位;第五个BYTE为I/O端口控制位。   当第三个BYTE为写入61,69数据的时候,立刻出现无信号及高频头不工作。当在跳过61,69两个点后,附近数据调节完全正常。进一步通过示波器分析,当总线数据为61、69发送后,在高频头ACK响应位后I2C数据总线有8个数据位被拉低,而其他数据传输正常,该8个数据位为高频头泵电流数据位,当高频头因为I2C数据总线被拉低后,泵电流数据被设置为00000000,调谐芯片因为无泵电流而停止工作,导致在61,69两个数据点上出现无IF输出,从而出现无图现象。
  经以上分析,问题应该出现在CPU与高频头之间的I2C总线上。通过与整机I2C总线波形比较,发现高频头接收数据后的ACK位响应位电压偏高,为1.2V,同时在响应位下降沿端有一毛刺,跌落幅度为0.2V左右,持续时间为0.4uS。
  同时我们也注意到,在高频头40位总线数据传输过程中,高频头所有的4个响应位的电平值都一致,但故障只在向高频头发送61,69两个数据点时出现。同一组总线上连接的HDMI接口芯片的读地址位为61,69,因此焦点落在与改HDMI接口芯片地址冲突上。分析发现,当CPU在向高频头发送分频比率数据61或69之前,由于总线电平的不符合要求,被HDMI接口芯片误识别为芯片读地址而错误响应,抢夺了与CPU的总线通信权。当HDMI接口芯片响应后,由于其本身并未进行复位等操作,其端口处于高阻态拉低了总线电平。为进一步验证上述情况,我们特地进行了另一组模拟实验,通过跳线将HDMI接口芯片的读地址改为了63,6B,在微调时61,69两点不再重现故障,而在新的读地址63或6B上出现了无信号等同样的故障现象,从而证明我们的判断。
  4.3 实例之总结分析
  总结以上分析,問题的发生原因为以下几个方面综合产生:
  1) 新批次的高频头调谐芯片的总线电流吸收能力较弱,造成高频头ACK位电压偏高,致使CPU认为其ACK为高电平,判断高频头未响应,为其他芯片抢夺总线通信权创造了先决条件。
  2) 总线上有较大的毛刺,造成ACK位的末端有向下脉冲,造成了一个电压跳变,刚好形成了满足总线开始的条件。导致了其他芯片抢占总线通信权的实质举动。
  5 总结
  综合上面得设计实例,我们可以看出I2C的电路设计对于系统稳定工作的重要意义,虽然I2C外围电路相对简单,但不注重其各串联电阻及上拉电阻取值,仍会给我们的设计工作带来麻烦。因此I2C波形,特别是每个I2C器件的ACK电平的测量应该作为一个设计阶段的必检内容,认真的按照I2C规范进行设计并多方的验证,才能保证我们的产品设计少走弯路缩短开发流程。读懂I2C,是每个硬件设计师应该具备的能力。
  参考文献:
  [1] The I2C-Bus Specification Version 2.1[M].Philips Semiconductors, January 2000.
  [2] 何立民.I2C总线应用系统设计[M].北京:北京航空航天大学出版社,1995.
  【通联编辑:李雅琪】
其他文献
基于对全球信息化发展形势的认识,我国提出网络强国战略,从而使得信息化发展不均衡形成的数字鸿沟问题再次走入公众视野。在此背景下,笔者构建了数字鸿沟测算指标体系,采用全局主
《现代汉语词典》对“语文”一词的解释包含有“语言和文学”这一义项。李海林教授在“语文是什么”的讨论中提出“语文要素的层次结构”,认为“第一层是文章与文学,第二层是文
CorelDraw是一套强大的专业排版软件,集图文处理与排版为一体,能将文字、表格、图形和图像混合在一个直观的环境中进行编排,它是矢量绘图。本文以"工商银行"店招为主要解决对象,巧用CorelDraw何将一个任务通过分解变得层次化,以及通过不同方法的绘制提高作图精度,提高作图速度。
在略读课上,教师指导学生运用从精读课中习得的阅读方法进行独立阅读,进一步巩固阅读方法,形成学习能力,这就是学法迁移模式。简而言之,就是精读课上习得方法,略读课上运用方法。
对船舶进行智能化管理是现代船舶管理信息化的主要趋势。AIS(船舶自动识别系统)、GPS(全球定位系统)、GIS(地理信息系统)技术的结合有益于对船舶进行智能化管理。因此,该文拟综合运
操作活动是一种动态过程,顺应了低年级学生好奇、爱动的心理特点,能吸引学生的注意力,帮助他们积累多种多样的表象,因此教师要加强低年级学生的操作活动,借助操作启迪他们的思维,提
摘要:随着计算机网络技术的不断快速发展,信息体系在医疗安全中得到了普遍的应用。精密、合理的医院信息体系网络安全计划,为保障医院信息体系的安全稳固运行提供了前提条件,也为保障医院的正常运转提供了保障。信息安全已成为医院信息技术人员的一项重要任务。本文叙述了网络安全在医院信息体系中的关键作用,如何加快医院信息体系网络安全维护的技术步伐,并制定了医院信息体系网络安全办理方案。最后得出结论,医院各部门应高
利用CuSO4与NaOH在PPS涂料中原位反应的方法掺杂CuO、通过浸涂制备了CuO/PPS复合涂层,利用XRD分析了原位反应的产物,热重分析仪测试了涂层的热性能,销盘式磨损实验机测试了涂
“解决问题”教学的目标为体验过程、形成策略、提高能力、发展思想。而策略的形成过程也是体验的过程,形成策略是提高能力、发展思想的载体,因此我们以解决问题的策略的教学为