2 TS流处理
2.1 TS流硬件连接
MPEG2视频传输接口标准分为异步串行接口标准ASI和同步并行接口标准SPI。ASI连线少,适合长距离传输但是处理复杂,CY7C68013A在硬件上没有提供接入异步串行标准的接口;SPI接口共有11位信号,分为8条数据线、1条时钟线、1条同步信号线和1条数据有效指示信号线,连线多但是处理简单。能否提供TS流硬件接口是在设计USB电视棒时选择USB芯片的一个关键因素。CY7C68013A具备可编程的slave FIF0接口,工作方式依据设置可为主或从。SPI方式符合其FIF0工作的一种模式,图2以LGS一8GL5并行SPI连接为例,给出了解调芯片和USB芯片之间的连接方式。
2.2 TS流数据处理
数据达到CY7C68013A后,可选是否需要USB芯片干预接收的数据或由USB自动提交数据到主机。前者的优点为可以通过USB芯片过滤部分错误和冗余数据包,或进行节目过滤以减小主机的负载,但是由于受USB芯片内部8051处理器性能的影响,对码流有一定限制;后者采用直通形式,能够有效发挥USB芯片的全速功能,但对主机端软件要求较多。由于TS流数据为持续的数据流而且对数据错误不敏感,由主机来对原始数据流处理具备较高的灵活性,在速度上也能适应更宽的要求。实际过程中设置CY7C68013A使其对slave FIF0中的数据自动转发。
3 控制信息的传递
控制信息包括通过I2C接口的对解调器和调谐器的控制命令、状态信息,以及从USB芯片接收的红外遥控命令。控制模式可采用两种方式:直接将各种控制打包成USB信息发送给主机,USB芯片仅保证基本数据通信的正确性,不对数据内容和返回信息做处理;另外一种方式为将对电视芯片的控制命令进行封装,重新定义和主机的通信命令,两种通信的数据流模型分别如图3(a)和3(b)所示。图3(a)中,主机对具体的控制命令不可见,其发送和接收的数据都是和USB固件约定的调用封装,数据的传输过程为:应用→库(将命令转换为USB包/USB解析出命令执行结果)→USB总线→CY7C68013A→USB固件(将命令转换为实际设备操作命令/将执行结果转换为和应用约定的返回值)→设备操作/应答。传输过程中实际的命令由CY7C68013A来完成。这种模式将对电视棒外围设备的操作都封装到USB固件中,简化了主机端驱动的操作。图3(b)对模块的控制和传输数据是透明的,实际通信内容的解析完全由主机的驱动完成,其数据传输过程为:应用→库→对虚拟设备的操作命令→对设备的操作转换为USB数据包/USB数据包转换为操作结果→USB总线→固件→固件执行I2C基本操作或红外操作→设备执行操作命令。该模式将设备的操作直接交给应用库完成,简化固件编程要求。