新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > I2C总线数据传输的C语言实现及其应用

I2C总线数据传输的C语言实现及其应用

作者:时间:2014-03-04来源:网络收藏

  本HDTV数字地面接收系统以欧洲的DVB-T (Digital Video Broadcasting Terrestrial)为标准,完成信道解调解码,输出标准的MPEG-2码流,由于采用了COFDM(Coded Orthogonal Frequency Division Multi-plexing)编码正交频分复用技术,能有效对抗多经传播和同频干扰。本接收机的主要特点是采用带有接口的L64系列芯片,AT89C52通过完成对L64芯片内寄存器的读写操作和监控,与PC配合实现基于参数配置、模式转换、状态读取的调试功能。结构简单,调试方便。信道解调解码的硬件基本组成如图2(未画出上拉电阻)。

  

  美国LSILogic公司的L64系列是专用的以DVB为标准的解调解码芯片,该系列内部模块化,接口标准化,且带有I2C 总线接口,连接简单。L64系列功能完善,L64780、L64724、L64768单独使用即可分别完成DVB标准的地面、卫星、有线电视信号解调的全部过程。目前,L64系列可配合使用。如图2,信道出来的信号先经过调谐器变为中频信号,送入L64780完成主要的OFDM解调,其输出经 L64724Viterbi译码,L64768RS译码,完成前向纠错,输出标准的MPEG-2码流。下面仅以L64768为例介绍读写某一寄存器的 C51函数原型及主要功能:

  定义768的受控地址:#define LSI0xfe函数原型:uchar general_call(void)

  功  能:general_call()函数调用send_n_byte()函数,发特殊寻址字节0x00和0x06,若应答为零返回0,否则重复上一操作,若发5次后仍无应答返回1。在主程序初始化化时调此函数,主程序根据返回。

  函数原型:uchar 768_fec_rd(uint group,uint addr,uint*data)

  功  能:768_fec_rd()函数调用send_n_byte()和receive_n_byte(),从FEC寄存器读出一字节数据存于指针变量*data中,group为组号,输入的组号要翻译成相应的组地址group_addr,addr为FEC寄存器地址,LSI作为每次起始信号后的寻址字节。依据768的传输时序,先发addr的低字节,再发送addr的高字节,然后发group_addr,即可读出相应寄存器中的数据。组号出错返回1;收到非应答信号返回0;读正确返回2。主程序根据返回值,做相应操作。

  5 结束语

  随着广播电视技术迅速走向数字时代,HDTV在今后五年逐步在世界范围走向市场成为可能。技术应用于HDTV数字地面接收机中,用8位单片机对接收机的状态进行控制,不仅减少了总线数量,提高了可靠性,而且还较大降低了成本。在实际使用时,可加上键盘、显示电路及相应程序,或用PC通过RS232口与单片机通信,进行调试。本应用已用于我国HDTV功能样机系统研究开发工程。

  [参考文献]

  [1] 何立民.I2C总线应用系统设计[M].北京航空航天大学出版社,1995.

  [2] 马忠梅,马岩,等。单片机的应用程序设计[M]。北京航空航天大学出版社,1999.

  [3] L64768 QAM Demodulator and FEC Decoder Specification[M].LSILogic.1998.

  [4] 江澄.广播电视技术专集(1994-1998)研究期[C]。广播电影电视部科技公司、中央电视台、广播电影电视部标准化规划研究所合编.


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭