I2C是什么

I2C是什么,第1张

I²C(Inter-Integrated Circuit)是内部整合电路的称呼,是一种串行通讯总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边装置而发展。I²C(读作"I-squared-C" ),还有可选的拼写方式是I2C(读作I-two-C)以及IIC(读作I-I-C),在中国则多以"I方C"称之。

1 I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。

2 主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传送;如果主机要接收从器件的数据,首先由主器件寻址从器件.然后主机接收从器件发送的数据,最后由主机终止接收过程。在这种情况下.主机负责产生定时时钟和终止数据传送。

3 在硬件上,12C总线只需要一根数据线和一根时钟线两根线,总线接口已经集成在芯片内部,不需要特殊的接口电路,而且片上接口电路的滤波器可以滤去总线数据上的毛刺.因此I2C总线简化了硬件电路PCB布线,降低了系统成本,提高了系统可靠性。因为12C芯片除了这两根线和少量中断线,与系统再没有连接的线,用户常用IC可以很容易形成标准化和模块化,便于重复利用。

4 I2C总线是一个真正的多主机总线,如果两个或多个主机同时初始化数据传输,可以通过冲突检测和仲裁防止数据破坏,每个连接到总线上的器件都有唯一的地址,任何器件既可以作为主机也可以作为从机,但同一时刻只允许有一个主机。数据传输和地址设定由软件设定,非常灵活。总线上的器件增加和删除不影响其他器件正常工作。

5 I2C总线可以通过外部连线进行在线检测,便于系统故障诊断和调试,故障可以立即被寻址,软件也利于标准化和模块化,缩短开发时问。连接到相同总线上的IC数量只受总线最大电容的限制,串行的8位双向数据传输位速率在标准模式下可达100Kbit/s,快速模式下可达400Kbit/s,高速模式下可达3.4Mbit/s。

I²C(Inter-Integrated Circuit)是内部整合电路的称呼,是一种串行通讯总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边装置而发展。I²C(读作"I-squared-C" ),还有可选的拼写方式是I2C(读作I-two-C)以及IIC(读作I-I-C),在中国则多以"I方C"称之。
I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。I2C 总线支持任何IC 生产过程(CMOS、双极性)。通过串行数据(SDA)线和串行时钟 (SCL)线在连接到总线的器件间传递信息。每个器件都有一个唯一的地址识别(无论是微控制器——MCU、LCD 驱动器、存储器或键盘接口),而且都可以作为一个发送器或接收器(由器件的功能决定)。LCD 驱动器只能作为接收器,而存储器则既可以接收又可以发送数据。除了发送器和接收器外,器件在执行数据传输时也可以被看作是主机或从机(见表1)。主机是初始化总线的数据传输并产生允许传输的时钟信号的器件。此时,任何被寻址的器件都被认为是从机。
特征:
1、只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;
2、每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;
3、它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;
4、串行的8 位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达34Mbit/s;
5、连接到相同总线的IC 数量只受到总线的最大电容400pF 限制。

现在的大屏幕彩电大多是i2c总线彩电,一旦发生故障,检修起来以往的经验和思路往往用不上:一是i2c总线彩电常出现有违常规的故障现象,检修起来感觉无从下手;二是不知道如何判断i2c总线系统是否正常;三是不知道如何更换cpu及存储器。事实上,只要大家突破了这三点,i2c总线彩电的检修也就迎刃而解。 一、i2c总线彩电的判断方法
许多维修人员只要看到cpu上标有“sda”和“scl”字样,就认为此机是i2c总线彩电,其实不然,cpu 上标有“sda”和“scl”字样,仅仅说明cpu上引出了i2c总线,但厂家是否开发了总线控制功能,还得看总线上都挂了些什么电路。若存储器和小信号处理器都挂在总线上,说明此机是i2c总线彩电。检修这类彩电时,就得按i2c总线彩电的检修特点进行,我们通常所说的i2c总线彩电指的就是这一类。若存储器和小信号处理器中有一个未挂在总线上,就算不上真正的i2c总线彩电,检修这类彩电时,仍按老办法进行处理。
二、i2c总线彩电故障自检
由于i2c总线系统是一个由硬件和软件有机结合的微机系统,它能对系统故障进行自检,并显示检测结果,为维修人员提供自检信息,维修人员通过对故障信息的分析来判断故障的大致部位及故障的性质。目前,彩电自检信息的显示方式有如下几种。
1、指示灯显示方式
当cpu检测到系统有故障时,便点亮指示灯进入闪烁状态,维修人员可以根据指示灯闪烁规律来判断故障部位。例如:索尼贵翔系列彩电(kv―es29m90、kv―efm90等)就使用这种方式。当cpu检测到某被控器件有故障时,便进入总线保护状态,整机三无,此时,面板上的指示灯进行闪烁。维修人员可根据指示灯的闪烁次数来判断故障部位,详细情况如下表所示。
指示灯闪烁次数 1 2 3 4 故障电路存储器
(ic003) av切换开关
(ic1201)小信号处理
(ic104)环绕声处理
(ic206)
2、屏幕显示方式
当cpu检测到被控电路有故障时,便将故障部位及故障性质采用字符显示在屏幕上,维修人员可根据显示的结果来判断故障性质。例如:长虹g2966彩电就采用这种方式,当屏幕显示有sda―gnd或scl―gnd时,则说明总线与地短路。
3、故障代码显示方式
当cpu检测到总线系统有故障时,便以代码的形式显示屏幕上,维修人员可根据故障代码来判断故障部位。例如:飞利浦md10a机芯就使用这种方式,每次开机后,cpu都要通过i2c总线对系统中的有关电路进行检测并以数字代码形式显示检测结果,维修人员可根据所显示的数字代码来判断故障部位。
三、i2c总线彩电的特殊故障现象
1、总线保护
总线保护是i2c总线彩电的一种特殊现象。当cpu 检测到系统有严重问题时(如总线短路、输出端口与电源开路等),cpu便会执行总线保护程序,系统进入保护状态,此时彩电可能会出现一些特殊的故障现象,例如:不能开机,白净光栅,按键失灵,黑屏现象,电源继电器“嗒嗒”响等。因此当碰到这些现象时,首先可按普通故障进行处理,若未能找到故障点,就转换思路查一查是否总线系统不正常而引起总线系统不正常而引起总线保护,通过转换思路后,有时很容易找到故障所在。下表列出了变通彩电和i2c总线彩电中的一些部件损坏后可能引起的故障现象。
损坏部件普通彩电故障现象 i2c总线彩电故障现象 存储器机器能正常工作,但不能存台会导致总线保护,不能开机,或开机后,整机无法工作。 小信号处理器只引起图像或光栅故障可能导致总线保护,引起无光栅甚至不能开机。 伴音处理器只引起伴音故障,图像正常可能导致总线保护,引起控制系统异常,甚至三无现象。 tv/av切换只引起图、声故障同上 高频头只引起图、声故障同上
从上表可以看出,当挂在i2c总线上的任何一个被控器损坏时,系统都有可能进入总线保护状态,引起一引起有违常规的故障现象,这一点应引起维修人员的高度注意。
2、软件错误
软件错误所引起的故障现象是i2c总线彩电的又一特殊现象,在普通遥控彩电中,一台彩电所能实现的功能只与这台彩电所采用的电路有关,例如电路中设有双路av输入电路,就决定该机具有两路av输入功能,但在i2c总线彩电中,彩电所能实现的功能不仅与电路(硬件)有关,即硬件电路的存在必须与软件数据的设置相对应,否则,即使设有双路av输入电路,也不一定具有双路av 输入功能。维修人员常会碰到这样的情况,有时电视机出现故障时,查遍了所有电路也找不到故障,但检查软件后,立即发现了问题。
四、值得注意的几个引脚
许多i2c总线彩电的cpu及被控器上设有特殊功能引脚,这些引脚的电压,对i2c总线的控制功能有较大的影响,只有当这些引脚的电压正常时,i2c总线系统才能正常工作。
1、cpu上i2c总线通/断控制脚
i2c总线通/断控制脚是生产厂家为了便于调试(或测试)而设置的,在通常情况下,该脚为高电平,cpu拥有总线控制权,并可通过总线传输数据。当该脚变为低电平时,cpu就不再拥有i2c总线控制权,它将控制权交给生产线上调试计算机管理。因此当该脚电压失常时,电视机可能会进入工厂调试状态,这个脚常用“factory”、“busoffin”或“buson/off”等符号来表示。目前设有此脚的cpu如下表所示。
cpu型号所在机芯或机型总线通/断控制脚表示符号 47c1638au353 长虹nc-3机芯 48 bus off in an1871274 长虹cn-5机芯 36 factory tmp87cp38n 长虹nc-63机芯 34 bus off in cht0807 长虹cn-9机芯 20 bus on/off cht0406 长虹cn-12机芯 32 cs m37220m3 康佳“三菱”机芯 35 baq lc863316a 康佳a10机芯 32 pc mn152810 嘉华kc54彩电 50 factory p83c266bdr 厦华xt-29d8m 38 prot/service cxp80420-139 海信tc2919kp 1 bus off in m37210m4-786sp 熊猫2918 7 bus off in cxp80424-146 东芝f2dp机芯 1 bus off in cxp85332 东芝f3ss机芯 3 bus off in m37102m8 三洋a8机芯 13 i2c on/off
当上述引脚变成低电平时,cpu就无法对各被控电路进行控制,此时会造成系统失控的现象。当然,也有许多cpu上未设此脚。
2、cpu上的保护端子
许多i2c总线彩电的cpu上设有保护端子,常用“protect”、“safty”、“x―ray”等符号表示,正常工作时,该端子为高电平(或低电平);当电源或扫描电路出现异常时,该端子立即跳变为低电平(或高电平),cpu关闭总线,进入保护状态,此时,整机如同遥控关机一般,但用遥控器也不能开机。下图是海信tc2199d彩电的保护电路:
cpu的(31)脚为保护端子,正常工作时,电压接近5v,当行电路出现异常而引起行逆程脉冲过高时,a点电压会上升,vd448导通,vt449饱和,(31)脚变为低电平,cpu进入保护状态,并关闭总线,同时从(7)脚输出待机控制电压,使整机进入待机状态。下图是三洋a8芯的保护电路:
cpu的(19)脚为高电平,当5v―1、9v、8v、20v、12v―1及26v电源中的某一路出现短路现象时,(19)脚就变为低电平,cpu进入保护状态,并从(33)脚输出交替变化的高/低电平,使指示灯闪烁,以作故障指示。由此可见,当i2c总线彩电出现待机(不能二次开机)故障时,千万别忘了检查cpu的保护端子。
3、i2c总线接口专用电源脚
为了避免数字电路与模拟电路之间的相互干扰现象,某些高档小信号处理器上设有i2c总线接口专用电源引脚,这个脚常用“i2c”、“ i2c vcc”或“bus vcc”等符号来表示,若此脚电压不正常,i2c总线接口也就不能正常工作。如三洋公司推出的la76810芯片就设有此脚(25)脚,正常工作时,该脚为50v,若该脚电压不正常,就会出现三无故障。东芝公司推出的ta1215an芯片也设有此脚(4)脚,并采用+50v供电,若电压不正常,会出现黑屏现象。
4、辅助地址选择引脚
在同一总线系统中,有时会挂两个或两个以上的相同部件,为了让cpu能分别对它们进行寻址,就要求这些部件的地址有所区别,故在被控电路上增设辅助地址引脚,只有当该脚电平设置正确时,cpu才能通过i2c总线对其进行控制,否则,电路无法正常工作,辅助地址引脚上常标有“add”、“adr”或“adress”等字样。下表列出了部分被控器的辅助地址引脚及表示符号,可供大家参考。当然,也不是所有被控电路都设有此脚。
芯片功能辅助地址脚表示符号 ta8777n tv/av切换 18 add ta1218an tv/av切换 27 adress tda9170 亮度/色差校正 32 adr tda9177 亮度/色差校正 6 adr tda8540 视频开关 5、7、11 s tea6430 音频开关 22 adr tsa5518m 频率综合器 12 adr
五、i2c总线系统的检测方法
1、如何判断总线系统是否正常
检修i2c总线彩电时,可通过测量总线电压及波形来判断总线控制系统是否正常。测量时,应对cpu的总线输出端及被控器的总线输入端都进行测量,若测量的结果符合如下规律,说明总线系统大致正常。
①检修时,若发现cpu的总线输出端与被控器的总线输入端电压相差很大,说明总线有开路现象,应查总线上的串接电阻。
②检修时,若发现总线电压低于正常值,则查以下一些部位:
总线供电电源及上拉电阻: 因总线输出电路属开路形式,当供电电源丢失或上拉电阻断路时,总线输出端得不到供电,从而使总线电压下降。
总线与地之间所接元件是否漏电或击穿: 为了提高总线的抗干扰能力,许多彩电的总线与地之间接有电容或稳压二极管,当它们漏电或击穿时,总线电压会下降。
被控电路的总线接口: 当被控电路的总线接口出现故障(如内部电路击穿等)时,也会引起总线电压下降,此时可采用断路法进行检查,即断开被控电路与总路线的连接,看总线电压是否恢复。若总线电压恢复了,说明该被控电路便是故障所在。若总线电压仍未恢复,则再断开其他被控电路,直到找到故障为止。另外被控电路总线接口供电不正常时,也有可能导致总线电压下降。
cpu本身: 若通过上述检查,仍未找到故障,则应检查cpu本身。
③若检修时,发现总线电压为高电平, *** 作遥控器及本机键盘时,电压又不抖动,且总线上也无波形存在,则说明故障很可能发生在cpu或存储器上,应重点检查cpu的工作条件(供电电路、时钟电路、复位电路、键盘电路)及存储器的外围元件。若未发现问题,可试着更换存储器和cpu。
④若总线电压及波形正常,只是个别功能丢失,则查软件设置,一般通过正确设置数据后,即可排除故障。
值得注意的是,在 *** 作本机键盘或遥控器时,不可能所有的按键都能引起i2c总线电压抖动或波形变化,一些键的控制过程不需i2c总线来完成,i2c总线的电压和波形自然也就不会变化。
六、cpu及存储器的更换
i2c总线彩电所用的cpu不同于普通遥控彩电所用的cpu,其芯片内rom中写有控制软件,有些厂家还专门以软件号来对cpu进行命名。当cpu损坏后,不能随便从市面上购一块硬件型号相同的cpu换上,这样做 很可能使机器无法正常工作,而必须选用厂家提供的原型号的cpu进行更换。另外,同一硬件型号的cpu一般会在不同厂家所生产的电视机上应用,尽管它们的图标型号一样,但它们之间一般不能相互替换。
i2c总线彩电的存储器中存有控制信息和用户信息,当存储器损坏后,整机就不能政常工作,因此必须对存储器进行更换,现在市售的存储器都是空白的,里面未存控制信息,即使换上了新存储器,整机也未必能正常工作,还必须对新换上的存储器进行初始化,这个过程又称拷贝,只有通过拷贝后的存储器才存有控制信息,才能确保整机正常工作。
国产彩电一般采用自动拷贝方式或半自动拷贝方式,自动拷贝方式是指更换存储器后,只要重新开机,cpu就会对存储器中的数据进行检查,若发现存储器是空的,cpu就执行拷贝程序,将内部rom中的控制信息自动写入新存储器中。目前,绝大多数彩电使用这种方式。半自动拷贝方式是指更换存储器后,只需将彩电置于维修模式,再执行约定的 *** 作,便可将cpu内部rom中的控制信息写入新存储器中。例如:长虹cn―5机芯就使用这种方式,更换存储器后,将微处理器⑨脚接地,同时按住本机“节目增”键和“菜单”键,再接通电源,就可将微处理器中的数据拷贝到新存储器中。
对存储器初始化后,彩电虽能正常工作,但不一定处于最佳工作状态,此时还得进入维修模式,对机器进行适当的调整,直到获得最佳效果为止。
最后,特别说明三点:①检修i2c总线彩电时,首先要熟悉机器进入维修模式的方法和软件调整清单;②当图像质量不能达标时,不妨先调后修;③碰到彩电某功能丢失或怪故障时,不妨从i2c总线系统入手,先查软件设置,再查总线系统中的电路。
七、i2c总线彩电检修实例
例1:海信tc2199d彩电,出现黑屏现象,且无伴音。
开机,发现显像管灯丝亮,说明行电路已工作,黑屏
现象可能是末级视放电路处于截止状态而引起的。按以往的检修经验,先查末级视放电路及小信号处理电路,一无所获,故而转变思路,查i2c总线控制系统,结果发现cpu的(29)脚电压为01v左右,远低于正常值(46v),(如下图),而小信号1处理n201的(11)脚电压却为高电平,由此可知,总线上有开路现象,进一步检查,发现r843的阻值已变为无穷大,用一只100ω的电阻替换后,故障排除。
小结:这是一例总线开路的故障,一只小小的电阻,却使总线陷于瘫痪,若不了解i2c总线彩电的故障特点。只查未级视放和小信号处理器很难找到故障。因而当i2c总线彩电出现黑屏故障时,切莫忘了检查总线系统。附带说一句,在海信tc2199d、tc2181f、tc2189等机中,总线均用i2c data、i2c clock及busdata、busclock表示,这种表示法,在国产机中比较少见。
例2:黄河hc2188彩电,开面后,整机处于待机状态,遥控及本机键盘全部失灵。
从故障现象上看,故障应出在控制系统,按常规方法,先查cpu的供电、复位及时钟电路,均正常,转而检查总线系统(参考下图),测(37)脚、(38)脚总线电压,都正常,再查(11)脚、(12)脚总线电压,也正常,于是怀疑存储器或cpu损坏,导致总线进入保护状态,更换存储器后,故障排除。
该机为自动拷贝方式,更换存储器后,重新开机,cpu就会运行拷贝程序,并将cpu内rom中的数据通过总线定入新存储器中。
小结:该故障告诉我们,在i2c总线彩电中,存储器损坏可能会引起不能开机的故障。而普通彩虹电的存储器损坏时,机器却能够正常开启,也能正常收看,只是丧失记忆功能而已。

作 者:■ 西安电子科技大学 郑旭阳 李兵兵 黄新平
摘要:介绍模拟I2C总线的多主节点通信原理,并提出一种新的实现方法。这种采用延时接收比较来实现仲裁的方法,可使不具有I2C接口的普通微控制器(MCU)能够实现模拟I2C总线的多主通信,同时对I2C总线的推广起到了积极作用。
关键词:模拟I2C总线 仲裁 多主通信
I2C总线(Inter IC BUS)是Philips公司推出的双向两线串行通信标准。由于它具有接口少、通信效率高等优点,现已得到广泛的应用\[1~3\]。它除了可以进行简单的单主节点通信外,还可以应用在多主节点的通信系统中。在多主节点通信系统中,如果两个或者更多的主节点同时启动数据传输,总线具有冲突检测和仲裁功能,保证通信正常进行并防止数据破坏。现在许多微控制器(MCU)都具有I2C总线接口,能方便地进行I2C总线设计。对于没有I2C总线接口的MCU,可以采用两条I/O接口线进行模拟\[2,3\]。目前,一些介绍模拟I2C的资料主要讲的是在单主节点系统中进行的通信,这使得模拟I2C总线的应用具有一定的局限性。本文根据总线仲裁的思想,提出一种多主节点通信的思想及实现流程。
1 I2C总线系统简介[1~3]
I2C总线系统是由SCL(串行时钟)和SDA(串行数据)两根总线构成的。该总线有严格的时序要求,总线工作时,由串行时钟线SCL传送时钟脉冲,由串行数据线SDA传送数据。总线协议规定,各主节点进行通信时都要有起始、结束、发送数据和应答信号。这些信号都是通信过程中的基本单元。总线传送的每1帧数据均是1个字节,每当发送完1个字节后,接收节点就相应给一应答信号。协议规定,在启动总线后的第1个字节的高7位是对从节点的寻址地址,第8位为方向位(“0”表示主节点对从节点的写 *** 作;“1”表示主节点对从节点的读 *** 作),其余的字节为 *** 作数据。图1列出I2C总线上几个基本信号的时序。
图1中包括起始信号、停止信号、应答信号、非应答信号以及传输数据“0”和数据“1”的时序。起始信号就是在SCL线为高时SDA线从高变化到低;停止信号就是在SCL线为高时SDA线从低变化到高;应答信号是在SCL为高时SDA为低;非应答信号相反,是在SCL为高时SDA为高。传输数据“0”和数据“1”与发送应答位和非应答位时序图是相同的。
图2表示了一个完整的数据传送过程。在I2C总线发送起始信号后,发送从机的7位寻址地址和1位表示这次 *** 作性质的读写位,在有应答信号后开始传送数据,直到发送停止信号。数据是以字节为单位的。发送节点每发送1个字节就要检测SDA线上有没有收到应答信号,有则继续发送,否则将停止发送数据。
2 I2C总线的仲裁
在多主的通信系统中。总线上有多个节点,它们都有自己的寻址地址,可以作为从节点被别的节点访问,同时它们都可以作为主节点向其他的节点发送控制字节和传送数据。但是如果有两个或两个以上的节点都向总线上发送启动信号并开始传送数据,这样就形成了冲突。要解决这种冲突,就要进行仲裁的判决,这就是I2C总线上的仲裁。
I2C总线上的仲裁分两部分:SCL线的同步和SDA线的仲裁。SCL同步是由于总线具有线“与”的逻辑功能,即只要有一个节点发送低电平时,总线上就表现为低电平。当所有的节点都发送高电平时,总线才能表现为高电平。正是由于线“与”逻辑功能的原理,当多个节点同时发送时钟信号时,在总线上表现的是统一的时钟信号。这就是SCL的同步原理。
SDA线的仲裁也是建立在总线具有线“与”逻辑功能的原理上的。节点在发送1位数据后,比较总线上所呈现的数据与自己发送的是否一致。是,继续发送;否则,退出竞争。图3中给出了两个节点在总线上的仲裁过程。SDA线的仲裁可以保证I2C总线系统在多个主节点同时企图控制总线时通信正常进行并且数据不丢失。总线系统通过仲裁只允许一个主节点可以继续占据总线[1]。
图3是以两个节点为例的仲裁过程。DATA1和DATA2分别是主节点向总线所发送的数据信号,SDA为总线上所呈现的数据信号,SCL是总线上所呈现的时钟信号。当主节点1、2同时发送起始信号时,两个主节点都发送了高电平信号。这时总线上呈现的信号为高电平,两个主节点都检测到总线上的信号与自己发送的信号相同,继续发送数据。第2个时钟周期,2个主节点都发送低电平信号,在总线上呈现的信号为低电平,仍继续发送数据。在第3个时钟周期,主节点1发送高电平信号,而主节点2发送低电平信号。根据总线的线“与”的逻辑功能,总线上的信号为低电平,这时主节点1检测到总线上的数据和自己所发送的数据不一样,就断开数据的输出级,转为从机接收状态。这样主节点2就赢得了总线,而且数据没有丢失,即总线的数据与主节点2所发送的数据一样,而主节点1在转为从节点后继续接收数据,同样也没有丢掉SDA线上的数据。因此在仲裁过程中数据没有丢失。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13357423.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-21
下一篇 2023-07-21

发表评论

登录后才能评论

评论列表(0条)

保存