基于GAL的I2C总线时序模拟

最新更新时间:2012-05-15来源: 互联网关键字:GAL  I2C总线  时序模拟 手机看文章 扫描二维码
随时随地手机看文章
\

FI1200 MK2系列电视信号前端处理器是飞利浦公司专为计算机多媒体环境下的射频应用而设计的。FI1256 MK2是该系列中的一个型号,它体积小,结构紧凑,性能稳定,可直接从射频信号解调出视频信号和音频信号,且只需单一5V电源,因而可在图文电视接收、有线电视信号自动监测等许多场合得到广泛的应用。笔者曾用它开发出图文电视接收卡、电视信号检测系统等多种设备。

  FI1256 MK2可通过I2C串行总线接口进行编程控制。当使用单片机进行编程控制时,带有I2C接口的单片机可以与FI1256 MK2直接连接,没有I2C接口的单片机可以用I/O口线模拟I2C总线的时序。但是FI1256 MK2在计算机扩展卡中使用时,为了节省成本,通过计算机的总线直接对其进行编程控制时,就需要用计算机的总线模拟出I2C总线的时序。本文给出了用可编程逻辑器件GAL配合ISA总线模拟I2C总线时序来对FI1256 MK2进行控制的方法。该方法与PCI总线进行模拟的方法相类似。

  1 I2C总线操作方式

  I2C总线是被广泛应用的串行多主控器总线,它可以让多个有控制总线能力的器件连接到总线上。I2C总线通过串行数据(SDA)和串行时钟(SCL)两条线使连接在该总线上的器件进行数据传输,每个器件的识别由一特定地址确定。除了作为发送器和接收器外,该器件还可以被设定为主控器和被控器。主控器用于启动总线上的数据发送,并产生数据传输所需的时钟信号,其他被寻址的器件均认为是被控器。SDA线和SCL线都是双向传输线,它们各通过一个上拉电阻连接到正电源。当总线处于空闲状态时,两条线均处于高电平。连接到总线的器件输出级必须是集电极开路或漏极开路,以用来产生“线与”功能便于多个器件的接入。在标准方式下,I2C总线上的数据传输速率可达100kbps,在快速方式下则可达到400kbps。连接到总线上的器件数量只受400pF的总线电容的限制。进行数据传输时,SDA线上的数据在SCL为高电平期间必须是稳定的,只有在SCL线上的时钟信号为低时,数据线上的状态才可以改变。当SCL线保持高电平时,通常把SDA线上由高到低和由低到高的电平变化分别定义为开始条件和停止条件。主控器启动数据传输时,总是先给出开始条件,然后传输若干字节的数据,最后给出停止条件以结束一次数据传输过程。图1是带有开始和停止条件的只传输一个字节的总线时序。

  

 

  2 模拟I2C总线时序

  可编程逻辑器件是近二十年发展起来的专用集成电路的一个分支,是设计新型数字系统的理想器件。它不仅速度快,集成度高,而且具有用户可定义的逻辑功能,有的还可以加密,并可以重复编程,因此,它不仅能适应各种应用需要,而且可以大大简化硬件系统,降低成本,提高系统的灵活性、可靠性和保密性,所以,近年来得到了迅速的发展。在各种可编程逻辑器件中,以CPLD功能最为强大,但价格较高,使用也较为复杂。而GAL不但有相当强的功能和足够的灵活性,而且编程控制容易(可使用普通的编程器),价格很低,接近通用集成电路,故在数字逻辑不是非常复杂的系统中使用GAL是非常合适的。

  用计算机的ISA总线对FI1256 MK2进行编程控制时,可以将FI1256 MK2作为一个外设,然后用两根数据线模拟SCL和SDA。需要注意的是:由于计算机速度高,总线周期短,达不到I2C总线的定时要求,因此要在总线周期过后进行延时,这样总线上出现的高阻状态或与其它设备的通信数据就会破坏I2C的时序,所以应将SDA和SCL的状态锁存,以满足I2C总线的定时要求。图2是用GAL实现ISA与I2C接口电路的设计方案。由于对FI1256 MK2的操作一般只是写入编程控制字节,因此,为简单起见,该电路只用来实现将计算机作为主控器的写操作时序。

  

 

  图2中,拨码开关K用以设定作为计算机外设的FI1256 MK2的地址,U1用于计算机访问外设时地址的译码,U2则用于实现用ISA总线的两条数据线模拟I2C总线时序。下面给出两片GAL的逻辑方程(以FAST-MAP格式书写),并对照方程简要说明电路所实现的功能。

  

 

  通过以上方程可使U1完成地址的译码功能。当ISA总线上出现的外设地址与拨码开关设定的地址相匹配时,在其地址有效输出端ADDR上将得到高电平。由于GAL最多只能有8个或项,所以方程中使用了ADD1和ADD2两个中间运算结果,他们被当作反馈信号在GAL内部重新引到输入端。使用AEN信号是为了在DMA周期内屏蔽总线上出现的地址。

  U2的时钟信号是由地址ADDR和外设写信号IOW的引入是为了消除总线上出现访问内存的信号,同时利用其上升沿锁存数据。SCL和SDA可分别用数据线D0和D1模拟。当一个外设写周期过后,D0和D1的数据将锁存在SDA和SCL上,而在下一个对相同外设地址的外设写周期到来之前是不变的。这就使得I2C总线的时序可以在D0和D1两根数据线上通过间隔输出数据的方式获得。

  通过分析图1给出的数据传输格式,可以把传送的数据流划分为三种传送状态,即传送起始信号、传送终止信号和传送一个字节(后面带一个应答位)。不同的数据过程只是写入的数据字节数目不同。只要模拟软件能实现上述三种传送状态,就可以模拟出任何的主控器写操作过程。因此可以用下列子程序分别实现上述三种传送状态。

(1)字节传送子程序

  由于SCL和SDA是用D1和D0模拟的,所以,只要往设定的I/O地址传送相应的数据就可以模拟传送不同的数据字节。为了保证数据的可靠传输,I2C总线规范对总线上的时序作了严格的规定。实验证明,ISA总线上信号的上升沿和下降沿都在10ns以内,完全可以满足I2C总线对上升沿与下降沿的要求,所以不需考虑信号的上升与下降时间,而只需考虑信号的建立和保持所需的时间即可。

  根据对I2C的定时要求,可以在SCL低电平的中点将信号进行分割,并把一个字节数据分为8个比特来分别进行传送(传送0和1分别用两个子程序实现),从而使SDA线上的数据变化总是处在SCL低电平的中点。图3所示是传送一比特数据的定时时序图。

  由于在对FI1256 MK2的操作过程对实时性要求不是太高,所以可以使传送一比特数据的三个状态都持续5.0μs,这样,就可以满足所有的定时要求。把图3中的两个定时图进行组合即可传送任意的数据字节。在每个数据字节的8比特数据后,都会在SCL上送出一个时钟周期而让SDA保持高电平,以使FI1256 MK2送出应答信号。应答信号定时图与图3(a)相同。

  

 

  (2)起始信号和终止信号模拟子程序

  起始信号和终止信号实际上是SCL为高电平期间在SDA上出现一个由高到低或由低到高的变化。起始信号和终止信号的定时图如图4所示。操作时,往D1和D0送相应的数据即可模拟此定时图,从而实现I2C总线传输的起始和终止。

  3 FI1256 MK2的功能与控制

  FI1256 MK2在输入75Ω射频信号时可以直接解调出峰-峰值为1V的视频信号和声音信号(同时给出第二伴音中频信号)。输入射频信号可从49.75MHz无缝覆盖至863.25MHz,其中包括所有增补频道。其调谐和波段切换均可通过内置的I2C总线接口进行。由于内建了直流-直流变换器,故只需单一5V电源即可,由此可见,FI1256 MK2是真正的5V器件,简化了外围电路的设计。

  对FI1256 MK2的控制有读和写两种模式。写模式可将调谐信息通过I2C总线写入,而读模式则可以读出内部锁定状态。一般只使用写模式,写模式时需写入5个字节,可用于设置地址、锁相环、调谐速度、调谐步长、工作模式、波段和编程频率。写模式下的编程方式有以下四种:

  

 

  其中,前两种用于在所有频道间调谐,后两种用于在同波段内的频道间调谐。各种编程方式的不同点在于写入字节数的区别,只要按照I2C时序的要求将给定的字节依次写入即可实现编程控制。

  可编程逻辑器件的应用是数字电路的设计方向。实际应用证明,GAL的功能与灵活性对于一般的数字电路系统是非常合适的,它不但能有效地提高系统的可靠性和保密性,而且可以降低成本,提高系统的灵活性。


关键字:GAL  I2C总线  时序模拟 编辑:神话 引用地址:基于GAL的I2C总线时序模拟

上一篇:CY7C68013和FPGA的数据通信
下一篇:经典案例分享:两种键盘扫描方法比较分析

推荐阅读最新更新时间:2023-10-12 20:40

按平台模式设计的虚拟I2C总线软件包VIIC
摘要: VIIC是主方式下的虚拟I2C总线软件包,用于80C51系列单片机的单主系统中。只需两根普通I/O口线就可随时扩展I2C总线外围器件。将VIIC1.0装入程序存储器中,对其中的符号单元赋值后,使用三条通用操作命令就可实现任何I2C总线外围器件的应用程序设计。本文以VIIC为例,介绍应用软件形式的广义平台设计方法,给出VIIC1.0程序文本。按照这一思路,也可移植到其他系列的嵌入式系统中。 关键词: 平台模式虚拟I2C总线VIIC应用程序设计 一、 I2C总线及其虚拟应用 1. I2C总线应用呼唤平台模式     目前,单片机应用系统的外围
[应用]
基于GAL的VME总线接口电路及程序设计
  1 引言   VME 总线由于具有良好的物理特性、严格的技术规范和与微处理器接口灵活的特点而 被广泛应用于雷达、声纳等大规模并行多处理器系统 ,在国内外船舶机舱自动化控制系统 中也有成功应用。用户在开发基于VME 总线的信号采集模块时,首先必须考虑和解决的是 与VME 总线的接口问题。本文采用基于GAL 芯片实现VME 总线接口电路的思路,对VME 总线接口设计问题进行了深入研究。文中通过软件技术实现了VME 总线地址的译码以及数 据读写与中断逻辑控制,有效简化了硬件电路的设计。   2 接口设计功能要求   根据 VME 总线规范和本题具体任务需求,本文设计的VME 总线接口电路为一从控设 备接口电路(Slave
[嵌入式]
[C51代码]I2C总线协议程序
/**************************************************************** I2C总线协议程序 ****************************************************************/ #define NOP {_nop_();_nop_();_nop_();_nop_();} sbit SDA=P1^2; /*模拟I2C数据传送位*/ sbit SCL=P1^3; /*模拟I2C时钟控制位*/ bit ack; /*应答标志位*/
[单片机]
I2C总线在Linux系统中的驱动设计
  1 引言       Linux操作系统因具有源代码公开、便于裁减、有广泛的处理器支持等优点,成为当前嵌入式系统的热门选择。基于I2C总线的键盘扩展设备主要用于满足嵌入式设备中对多按键的需求,驱动程序在系统启动时对硬件进行初始化。在系统启动后实现硬件和应用程序之间的数据交互。针对 S3C2410 微处理器和键盘扫描管理器件,深入讨论如何在嵌入式操作系统ARM Linux中实现 ZLG7290 的驱动。 2 I2C总线    I2C总线是器件间串行传输总线,以其规范和带I2C接口的外围器件获得广泛应用。 S3C2410 处理器内置有I2C总线接口。I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和
[嵌入式]
利用数字示波器调试嵌入式I2C总线的方法
  I2C总线是PHLIPS公司上世纪80年代推出的一种两线式串行总线,最初为音频、视频设备所开发,如今则多在各种嵌入式系统中用于连接 微控制器 及其外围设备。   I2C总线仅需采用两根通信线(一根为串行数据线“SDA”,一根为串行时钟线“SCL”),而传输速率在高速模式下可达3.4Mbit/s,并且是多主总线。每一个挂接在I2C总线上的I2C器件均可通过唯一的地址进行访问。   在嵌入式系统开发中应用I2C总线可有效缩减元器件面积、改善抗干扰能力及增强设计的兼容性。当然,在享受其设计便利性的同时,信号的复杂性也将提高系统调试的难度。   本文阐述了在实际开发中所遇到的I2C通信问题及使用示波器分析问题和解决问题的方
[嵌入式]
通用阵列逻辑GAL器件优缺点分析
1.GAL器件的优点   GAL是继PAL之后具有较高性能的PLD,和 PAL相比,具有以下优点:   (1) 有较高的通用性和灵活性:它的每个逻辑宏单元可以根据需要任意组态,既可实现组合电路,又可实现时序电路。   (2) 利用率高:GAL采用电可擦除CMOS技术,可以用电压信号擦除并可重新编程。因此,可反复使用。   (3) 高性能的E2COMS工艺:使GAL的高速度、低功耗,编程数据可保存20年以上。    2.GAL器件的缺点   (1)时钟必须共用;   (2)或的乘积项最多只有8个;   (3)GAL器件的规模小,达不到在单片内集成一个数字系统的要求;   (4)尽
[模拟电子]
按平台模式设计的虚拟I2C总线软件包VIIC
摘要:VIIC是主方式下的虚拟I2C总线软件包,用于80C51系列单片机的单主系统中。只需两根普通I/O口线就可随时扩展I2C总线外围器件。将VIIC1.0装入程序存储器中,对其中的符号单元赋值后,使用三条通用操作命令就可实现任何I2C总线外围器件的应用程序设计。本文以VIIC为例,介绍应用软件形式的广义平台设计方法,给出VIIC1.0程序文本。按照这一思路,也可移植到其他系列的嵌入式系统中。 关键词:平台模式虚拟I2C总线VIIC应用程序设计 一、I2C总线及其虚拟应用 1. I2C总线应用呼唤平台模式 目前,单片机应用系统的外围扩展已从并行方式为主过渡到以串行方式为主的时代。许多新型外围器件都带有串行扩展接口。通常的串
[传感技术]
基于LTC4310设计的绝缘双向I2C总线通信技术
基于LTC4310设计的绝缘双向I2C总线通信技术 LTC4310是Linear 公司的绝缘的双向I2C总线通信器件,每个器件可把I2C逻辑状态编码成信号,通过绝缘层传输到另一个器件.接收器件解码,并驱动I2C总线到适当的确逻辑状态.主要用在绝缘的I2C, SMBus和PMBus 接口,绝缘电源,以太网供电和正到负电源通信.本文介绍了LTC4310主要特性,典型应用以及多种应用电路框图. The LTC®4310 provides bidirectional I2C communications between two I2C buses whose grounds are isolated from one anoth
[模拟电子]
基于LTC4310设计的绝缘双向<font color='red'>I2C总线</font>通信技术
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved