暴风液晶电视丨I?C总线线如何进

I?I?C总线线控制的彩色电视机对故障的分析判断与检修思路与普通彩色电视机有所不同I?I?C总线线彩色电视机除了与普通彩电一样要判断硬件故障外,还要考虑软件故障即写入存储器的数据是否有问题,或存储器是否失效其次,由于I?C相当于电视机的神经中枢电视机每次开机时,CPU都要对I?I?C总线線的SCL,SDA进行短路、开路故障检查同时对挂接在I?I?C总线线上的各集成电路功能进行检查。检查的方法是:开机后通过I?I?C总线线对被控功能集成电路发出一个询问信息,如果集成电路能正常应答说明该功能集成电路工作正常;如果某个功能集成电路不应答,说明该集成电路囿故障如果出现软件故障或通过开机自检程序检测到I?I?C总线线系统有故障时,其一是CPU会发出“待机”指令使彩色电视机工作在“待機”(相当于遥控关机)状态;其二是相关电路将会采取某些保护措施,机型不同保护方式也不同主要由CPU和I?I?C总线线的软件确定。故障主要表现为“黑屏”或出现一些奇怪的故障现象例如:电源指示灯闪烁或发光异常。

编辑:什么鱼 引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容嘚文章作者及编辑认为其作品不宜公开自由传播或不应无偿使用,请及时通过电子邮件或电话通知我们以迅速采取适当措施,避免给雙方造成不必要的经济损失

 RC4      //24C02数据线将跳线帽P11短接至24C02方向,将跳线帽P6段接至IIC方向I2C 总线协议规定任何将数据传送到总线的器件作为发送器,任何从总线接收数据的器件为接收器数据传送是由产生

钟脉冲信号是由主设备显式发出的。但是当从设备没办法跟上主设备的速度時,从设备需要一种机制来请求主设备慢一点这种机制称为时钟拉伸,而基于I?C结构的特殊性这种机制得到实现。当从设备需要降低傳输的速度的时候它可以按下时钟线,逼迫主设备进入等待状态直到从设备释放时钟线,通信才继续高速模式       原理上讲,使用上拉電阻来设置逻辑1会限制总线的最大传输速度而速度是限制总线应用的因素之一。这也说明为什么要引入高速模式(3.4 Mbps)在发起一次高速模式传输前,主设备必须先在低速的模式下(例如快速模式)发出特定的“High Speed Master”信号为缩短信号的周期和提高

使用资料:i2I?C总线线时序手冊、24c02手册及ARM主芯片的datasheet一、通过原理图查看i2c的sda/scl两个引脚连接到ARM主芯片的哪两个GPIO口,以我现在使用的单板为例如下图从此图可以看出连接的GPIOロ为9_3、9_2两个引脚。二、通过控制GPIO高低电平来模拟I2C的时序完成总线驱动首先通过i2c时序手册可以查看到如下图的一个时序使用gpio9_2

/* 名称:C51IO口模拟I2I?C總线线驱动EEPROM(AT24C16)说明:I2I?C总线线是由Philips公司开发的一种简单、半双工同步串行总线它只需要两根线(SCL、SDA)即可在连接于总线上的器件之间傳送信息。其中SCL时钟总线用于同步数据SDA数据总线用来发送数据(或地址)。和SPI总线不同的是I2I?C总线线通过在SDL上发送存储器的地址用来選中总线上对应的设备。关于具体的通信协议这里就不说了无非是通过IO口模拟产生所需信号 (如通信开始信号是SCL为高时,SDA产生一个下降沿信号)

}

I?C 开发于1982年当时是为了给电视機内的CPU和外围芯片提供更简易的互联方式。电视机是最早的嵌入式系统之一而最初的嵌入系统是使用内存映射(memory-mapped I/O)的方式来互联微控制器和外围设备的。要实现内存映射设备必须并联入微控制器的数据线和地址线,这种方式在连接多个外设时需大量线路和额外地址解码芯片很不方便并且成本高。

为了节省微控制器的引脚和和额外的逻辑芯片使印刷电路板更简单,成本更低位于荷兰的Philips实验室开发了 ‘Inter-Integrated Circuit’,IIC 或 I?C 一种只使用二根线接连所有外围芯片的总线协议。最初的标准定义总线速度为100kbps经历几次修订,主要是1995年的400kbps1998的3.4Mbps。

有迹象表奣SPI总线首次推出是在1979年,Motorola公司将SPI总线集成在他们第一支改自68000微处理器的微控制器芯片上SPI总线是微控制器四线的外部总线(相对于内部總线)。与I?C不同SPI没有明文标准,只是一种事实标准对通信操作的实现只作一般的抽象描述,芯片厂商与驱动开发者通过data sheets和application notes沟通实现仩的细节

对于有经验的数字电子工程师来说,用SPI互联两支数字设备是相当直观的SPI是种四根信号线协议(如图):

SPI是[单主设备( single-master )]通信协议,这意味着总线中的只有一支中心设备能发起通信当SPI主设备想读/写[从设备]时,它首先拉低[从设备]对应的SS线(SS是低电平囿效)接着开始发送工作脉冲到时钟线上,在相应的脉冲时间上[主设备]把信号发到MOSI实现“写”,同时可对MISO采样而实现“读”如丅图:

SPI有四种操作模式——模式0、模式1、模式2和模式3,它们的区别是定义了在时钟脉冲的哪条边沿转换(toggles)输出信号哪条边沿采样输入信号,还有时钟脉冲的稳定电平值(就是时钟信号无效时是高还是低)每种模式由一对参数刻画,它们称为时钟极(clock polarity)CPOL与时钟期(clock phase)CPHA

[主从设备]必须使用相同的工作参数——SCLK、CPOL 和 CPHA,才能正常工作如果有多个[从设备],并且它们使用了不同的工作参数那么[主设備]必须在读写不同[从设备]间重新配置这些参数。

以上SPI总线协议的主要内容SPI不规定最大传输速率,没有地址方案;SPI也没规定通信应答机制没有规定流控制规则。事实上SPI[主设备]甚至并不知道指定的[从设备]是否存在。这些通信控制都得通过SPI协议以外自行实现例如,要用SPI连接一支[命令-响应控制型]解码芯片则必须在SPI的基础上实现更高级的通信协议。

SPI并不关心物理接口的电气特性例如信號的标准电压。在最初大多数SPI应用都是使用间断性时钟脉冲和以字节为单位传输数据的,但现在有很多变种实现了连续性时间脉冲和任意长度的数据帧

与SPI的单主设备不同,I?C 是多主设备的总线I?C没有物理的芯片选择信号线,没有仲裁逻辑电路只使用两条信号线—— ‘serial data’ (SDA) 和 ‘serial clock’ (SCL)。I?C协议规定:

  • 第一每一支IIC设备都有一个唯一的七位设备地址;
  • 第二,数据帧大小为8位的字节;
  • 第三数据(帧)中的某些數据位用于控制通信的开始、停止、方向(读写)和应答机制。

I?C 数据传输速率有标准模式(100 kbps)、快速模式(400 kbps)和高速模式(3.4 Mbps)另外一些变种实现了低速模式(10 kbps)和快速+模式(1 Mbps)。

物理实现上I?C 总线由两根信号线和一根地线组成。两根信号线都是双向传输的参考下图。I?C协议标准规定发起通信的设备称为主设备主设备发起一次通信后,其它设备均为从设备

I?C 通信过程大概如下。首先主设备发一個START信号,这个信号就像对所有其它设备喊:请大家注意!然后其它设备开始监听总线以准备接收数据接着,主设备发送一个7位设备地址加一位的读写操作的数据帧当所设备接收数据后,比对地址自己是否目标设备如果比对不符,设备进入等待状态等待STOP信号的来临;洳果比对相符,设备会发送一个应答信号——ACKNOWLEDGE作回应

当主设备收到应答后便开始传送或接收数据。数据帧大小为8位尾随一位的应答信號。主设备发送数据从设备应答;相反主设备接数据,主设备应答当数据传送完毕,主设备发送一个STOP信号向其它设备宣告释放总线,其它设备回到初始状态

基于I?I?C总线线的物理结构,总线上的START和STOP信号必定是唯一的另外,I?I?C总线线标准规定SDA线的数据转换必须在SCL線的低电平期在SCL线的高电平期,SDA线的上数据是稳定的

在物理实现上,SCL线和SDA线都是漏极开路(open-drain)通过上拉电阻外加一个电压源。当把線路接地时线路为逻辑0,当释放线路线路空闲时,线路为逻辑1基于这些特性,IIC设备对总线的操作仅有“把线路接地”——输出逻辑0

I?I?C总线线设计只使用了两条线,但相当优雅地实现任意数目设备间无缝通信堪称完美。我们设想一下如果有两支设备同时向SCL线和SDA線发送信息会出现什么情况。

基于I?I?C总线线的设计线路上不可能出现电平冲突现象。如果一支设备发送逻辑0其它发送逻辑1,那么线蕗看到的只有逻辑0也就是说,如果出现电平冲突发送逻辑0的始终是“赢家”。

总线的物理结构亦允许主设备在往总线写数据的同时读取数据这样,任何设备都可以检测冲突的发生当两支主设备竞争总线的时候,“赢家”并不知道竞争的发生只有“输家”发现了冲突——当它写一个逻辑1,却读到0时——而退出竞争

任何IIC设备都有一个7位地址,理论上现实中只能有127种不同的IIC设备。实际上已有IIC的设備种类远远多于这个限制,在一条总线上出现相同的地址的IIC设备的概率相当高为了突破这个限制,很多设备使用了双重地址——7位地址加引脚地址(external configuration pins)I?C 标准也预知了这种限制,提出10位的地址方案

10位的地址方案对 I?C协议的影响有两点:

  • 第一,地址帧为两个字节长原來的是一个字节;
  • 第二,第一个字节前五位最高有效位用作10位地址标识约定是“11110”。

除了10位地址标识标准还预留了一些地址码用作其咜用途,如下表:

在 I?C 通信中主设备决定了时钟速度。因为时钟脉冲信号是由主设备显式发出的但是,当从设备没办法跟上主设备的速度时从设备需要一种机制来请求主设备慢一点。这种机制称为时钟拉伸而基于I?C结构的特殊性,这种机制得到实现当从设备需要降低传输的速度的时候,它可以按下时钟线逼迫主设备进入等待状态,直到从设备释放时钟线通信才继续。

原理上讲使用上拉电阻來设置逻辑1会限制总线的最大传输速度。而速度是限制总线应用的因素之一这也说明为什么要引入高速模式(3.4 Mbps)。在发起一次高速模式傳输前主设备必须先在低速的模式下(例如快速模式)发出特定的“High Speed Master”信号。为缩短信号的周期和提高总线速度高速模式必须使用额外的I/O缓冲区。另外总线仲裁在高速模式下可屏蔽掉。更多的信息请参与总线标准文档

我们来对比一下I?C 和 SPI的一些关键点:

第一,总线拓扑结构/信号路由/硬件资源耗费

I?C 只需两根信号线而标准SPI至少四根信号,如果有多个从设备信号需要更多。一些SPI变种虽然只使用三根線——SCLK, SS和双向的MISO/MOSI但SS线还是要和从设备一对一根。另外如果SPI要实现多主设备结构,总线系统需额外的逻辑和线路用I?C 构建系统总线唯┅的问题是有限的7位地址空间,但这个问题新标准已经解决——使用10位地址从第一点上看,I?C是明显的大赢家

第二,数据吞吐/传输速喥

如果应用中必须使用高速数据传输那么SPI是必然的选择。因为SPI是全双工I?C 的不是。SPI没有定义速度限制一般的实现通常能达到甚至超過10 Mbps。I?C 最高的速度也就快速+模式(1 Mbps)和高速模式(3.4 Mbps)后面的模式还需要额外的I/O缓冲区,还并不是总是容易实现的

I?C 常被称更优雅于SPI。公正的说我们更倾向于认为两者同等优雅和健壮。

I?C的优雅在于它的特色——用很轻盈的架构实现了多主设备仲裁和设备路由但是对使用的工程师来讲,理解总线结构更费劲而且总线的性能不高。

SPI的优点在于它的结构相当的直观简单容易实现,并且有很好扩展性SPI嘚简单性不足称其优雅,因为要用SPI搭建一个有用的通信平台还需要在SPI之上构建特定的通信协议软件。也就是说要想获得SPI特有而IIC没有的特性——高速性能工程师们需要付出更多的劳动。另外这种自定的工作是完全自由的,这也说明为什么SPI没有官方标准

I?C和SPI都对低速设備通信提供了很好的支持,不过SPI适合数据流应用,而I?C更适合“字节设备”的多主设备应用

PCI-Express等传输速度达数百上千兆字节每秒的总线。但是我们不能忘记的是各种总线的用途是什么。“大”协议是用于系统外的整个系统之间通信的“小”协议是用于系统内各芯片间嘚通信,没有迹象表明“大”协议有必要取代“小”协议I?C和SPI的存在和流行体现了“够用就好”的哲学。回应文首I?C和SPI如此的流行,咜是任何一位嵌入式工程师必备的工具

}

我要回帖

更多关于 I?C总线 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信