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的功能与灵活性对于一般的数字电路系统是非常合适的,它不但能有效地提高系统的可靠性和保密性,而且可以降低成本,提高系统的灵活性。
上一篇:CY7C68013和FPGA的数据通信
下一篇:经典案例分享:两种键盘扫描方法比较分析
推荐阅读最新更新时间:2023-10-12 20:40
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况
- 【EEWORLD第三十二届】2011年11月社区明星人物揭晓!
- 下载有礼:泰克 PCIe 要了解的十件事
- 下载有礼:4种方法帮助您高效进行元器件表征,加速元器件检测
- 【 有奖直播】 掌握潮流~TI DLP®技术在汽车上的创新及全新应用
- 是德科技有奖直播:元宇宙测试系列研讨会之VR/AR 数字接口测试的挑战
- 有奖直播|如何借助Mentor Xpedition AMS对汽车CAN总线进行仿真优化分析?
- 开发板芯币竞拍,每日一款!今日竞拍开发板:Banana PI D1
- DEYISUPPORT TI 大咖级工程师在这里,等你来约!
- 【已结束】TI 有奖直播|CAN SIC(信号改进功能)
- 可靠QTouch技术集成邻键抑制(AKS)功能,适用任何触摸应用领域