数字卫星接收机中Unicable功能的设计与实现
2012-06-26杜伟庆
杜伟庆
(福州大学福建省数字电视工程研究中心,福建 福州 350002)
近年来,随着数字卫星广播技术的飞速发展以及数字高清节目源的日益丰富,多功能高清卫星接收机正在被越来越多的家庭广泛采用。这类接收机普遍具有实时个人视频录制(Real-PVR)功能,因此都带有多个调谐器(Tuner)。目前在欧洲及中东地区,单个家庭内就可能安装有多个卫星接收天线和多台高清卫星接收机。传统情况下,为了保证每个Tuner的接收信号不互相干扰,接收天线上的低噪声模块(Low-Noise Block,LNB)输出的信号必须通过独立电缆与每个Tuner相连,这就大大增加了电缆安装的复杂程度以及成本。而Unicable技术仅利用单根同轴电缆传输控制信号和频段信号,配合Unicable器件,很好地解决了多个Tuner的信号连接问题,大大降低了布线的复杂度与成本。
1 Unicable技术简介
Unicable技术最早是由著名卫星运营商SES ASTRA领导的行业协会开发出来的一种共用总线协议。它通过单根同轴电缆向多个用户终端传送卫星信号,有效地减少了卫星接收设备安装时的布线复杂度[1]。该协议在2007年3月被正式定为欧洲行业标准CENELEC EN50494,并在欧美和中东地区得到广泛采用。
对于Ku波段(10.7~12.75 GHz)卫星信号的接收,通常采用Universal LNB先将极其微弱的信号进行低噪声放大,然后再将高波段/水平极化、高波段/垂直极化、低波段/水平极化和低波段/垂直极化这4类宽带信号的频谱分别搬移到第一中频(950~2150 MHz)[2]。在传统情况下,每台接收机是通过独立电缆控制Multi-Switch或DiSEqC设备,从而进行4路中频信号的选择性接收[3]。而采用Unicable技术的设备则是先将每台接收机所要接收频点的频谱搬移到预先分配的某个固定中频(User Band,又称用户频带),然后通过一个带通滤波器产生一路窄带子信号,最后将每台接收机要接收的窄带子信号复合成一个频带信号输出给每台接收机。为了保证各个窄带子信号复合后不会互相干扰,分配给每台接收机的固定中频之间的间隔较大。Unicable设备频谱处理示意图如图1所示。
图1 频谱处理示意图
2 Unicable设备控制原理
2.1 Unicable设备控制信号
Unicable设备的控制信号主要由极化控制电压和DiSEqC控制信号复合而成,这样有助于提高Unicable技术的开放性和适用范围。Unicable设备控制信号的时序和数据格式如图2所示。
图2 信号时序与数据格式
其中对于直流电压信号的要求:低直流电压范围为12.5~14 V,高直流电压范围为17~19 V,该电压与传统LNB的垂直/水平极化控制电压范围一致。电压建立与撤销延时要求分别为:Ta范围为4~22 ms,Td范围为2~60 ms。合适的时延保证Unicable设备能够准确及时地识别到总线的占用状态[4]。Unicable指令序列采用DiSEqC信号传输方式,叠加在高直流电压上发送。普通的Unicable指令采用5 byte编码格式能有效降低总线占用时间,从而减小了冲突的风险。而扩展的Unicable指令采用6 byte编码格式,极少用到,因此不在本文讨论范围。对于上述信号的时序和格式,支持DiSEqC设备的数字卫星接收机不需要更改硬件,只要通过修改软件就可满足要求,因此可以很好地支持Unicable功能。
2.2 Unicable设备控制指令
Unicable设备控制指令分成标准操作指令和特殊模式指令两大类[4]。标准操作指令是所有Unicable设备必须支持的,该类指令主要用于切换接收频点、选择用户频带和释放用户频带,这类指令的命令字段值为0x5A。特殊模式指令为可选指令,并要求所有的Unicable设备都完全支持这类指令,如Unicable开关等。这类指令主要用于检测Unicable设备所支持的输入波段数和类型、输出用户频带数和频率、采用的本振频率等,接收机可用这类型指令对Unicable设备参数进行自动初始化,这类指令的命令字段值为0x5B。为了最小化总线上的通信总量,图2所示的Unicalbe指令数据格式中帧头值固定为E0h,这类指令无须应答。Unicable设备可识别的地址为00h,10h和11h三种,一般默认为00h。通过在命令字段和2个数据字段填写不同的值,可以控制Unicable设备实现不同功能,各类指令的命令字段、数据字段和功能如表1所示。
输入波段序号由接收频点的频率值和极化方式计算得出,用户频点序号则是用户预先配置给每台接收机的,每个序号所对应的固定中频间隔较大,目前的Unicable设备一般支持4或者8个固定中频。Signal_ON指令用于在每个固定中频频点同时产生能量信号,以便接收机自动检测固定中频频率值;Config指令可用于自动检测Unicable的输入波段数和用户中频数;LoFreq指令用于自动检测Unicable设备采用的本振频率,这两个指令的子函数类型分别为0x01和0x02。
表1 Unicable指令与功能表
3 软件控制模块的设计与实现
3.1 软件控制模块设计
软件控制模块是数字卫星接收机中实现Unicable功能的核心,它通过调用底层硬件的驱动程序产生相应的信号控制Unicable设备,然后在内部实现Unicable设备的资源管理、总线通信实现和冲突处理,最后通过一组简单的API(应用程序接口)向应用层屏蔽了模块功能实现的细节。软件控制模块的结构框图如图3所示。
图3 软件控制模块架构
软件控制模块的设计采用分层设计的思想。最底层为平台接口层,该层抽象了所有软件控制模块需要用到的底层接口,包括信号调谐、锁定状态获取、极化电压控制和DiSEqC指令操作等函数。良好的底层接口将使得软件控制模块更易于在不同平台的移植,使得设计出来的软件模块更具通用性。位于中间的是资源管理层和通信处理层,资源管理层负责保存Unicable设备使用的本振参数、输入波段参数和输出固定中频参数等,并将应用层传下来的频点调谐参数转化成具体的控制指令;通信处理层则负责具体控制信号的逻辑实现、固定中频调谐以及通信冲突的处理。最上层为模块API层,该层提供了一组简单、规范的接口供应用层调用,这些接口包括Unicable设备参数设置和频点调谐等。
3.2 软件模块流程设计
接收机在上电后,必须对Unicable软件控制模块的资源管理层的相关参数进行初始化。对于带Unicable功能的Switch,这些参数由Flash中的默认配置区读取或者由用户从相关界面中输入配置。对于带Unicable功能的LNB,参数可由用户从界面中输入配置,也可以通过调用特殊模式指令进行自动初始化,模块初始化流程如图4所示。
图4 模块初始化流程
在模块初始化完成后,就可以对具体的频点进行调谐操作,频点调谐时必须根据目标频点的参数计算输入波段序号和频率转换值 (10 bit),同时计算因频率转换值精度有限所带来实际的固定中频误差,对实际设置到Tuner中的固定中频做细微调整。整个调谐操作流程如图5所示。
图5 频点调谐流程
Unicable设备采用的是共用总线技术,通过单根同轴电缆连接多台接收机,因此总线通信冲突是不可避免的。并且由于通信过程中采用无应答类型的DiSEqC指令,所以接收机必须可以自己检测到总线冲突并进行异常处理。在当前频点与目标频点的符号率相近且信号锁定的情况下,如果接收机发送的Channel_Change指令因总线冲突无法被Unicable设备识别,此时用户固定频点输出的仍然为原来频点的信号,但接收机将会误判成已调谐成功且信号锁定。本设计采用Channel_Change与PowerOFF指令配合使用的冲突检测方法和随机延时的处理方法,使得软件模块不依赖于平台解复用驱动和解调器驱动,并且有效解决了相近符号率且不同频点间的信号切换误判问题。具体通信冲突检测与异常处理流程如图6所示。
图6 通信冲突检测与异常处理
3.3 模块实现与验证测试
当前所有的主流接收机平台都是采用C语言开发,因此整个Unicable软件控制模块也都采用标准的C语言进行编码实现,并且运用面向对象的思想对模块中的数据和函数进行封装,这样可以使得设计出来的软件模块更适合移植和重载[5]。面向对象主要体现在对UNI_CB结构体的设计上,结构体主要有成员变量和一系列函数指针组成,其定义大体如下所示:
在结构体中,数据用于存储当前调谐器所采用的Unicable设备的资源以及接收频点等相关信息。以Module开头的函数指针分别指向模块内部各个流程的实现函数,这些流程函数在实现过程中必须可重载,因为对于不同的UNI_CB元素,这类函数指针指向的实际为同一个函数;以Interface开头的函数指针则指向各个平台的接口函数,每个平台的这些接口函数可能不一样。对于具有双调谐器的接收机,只要定义两个UNI_CB元素,然后在模块初始化阶段根据各个调谐器的配置参数对元素进行初始化即可。
将实现后的软件控制模块在不同的接收机平台 (低端如GX6105、中端如ALI3601等)进行移植和调试,然后分别结合Unicable LNB(如FRW_LSL_23)和Unicable Switch(如Sam_81KT)进行频点 (S或S2)切换和搜台的多次验证测试,测试方法和结果归纳如下:
1)单接收机切换频点与传统Universal接收情况对比,时间大体一致,用户无感觉延迟。
2)2台接收机同时切换频点,用户无感觉明显延迟;多台接收机同时切换频点,有的接收机略有延迟,延迟基本为1 s内,最大不超过2 s。
3)2台接收机同时在同符号率的频点间进行切换测试,无锁定误判现象出现。
4)3台接收机同时搜台,无漏台现象出现。相比于传统模式下,搜台时间延迟并不会随搜索频点总数线性增大,因为通信冲突仅在少数频点调谐过程发生,而不是每个频点都发生。
5)传统Univeral接收情况下的切台和搜台不受影响,并且这两种模式下的高清、标清音视频播放效果也都不受影响,因为Unicable的设备的采用只是改变了接收机调谐频点的方法,并不会影响到音视频解码的解码工作。
在Unicable工作模式下,调谐频点的时间延迟主要由3个方面引入:1)发送Unicable命令所耗费的时间;2)Unicable设备本身的响应时间;3)总线通信冲突所导致的延迟。前两者的延迟时间基本固定,采用本文提出的总线冲突处理方法,可以使得切换频点时间延迟降到最低。
4 总结
随着Unicable设备使用范围的不断扩大,用户对于支持Unicable功能的卫星接收的需求也越来越大。目前,本文设计的易移植Unicable软件控制模块已在多种中、高端数字卫星接收机平台以及数字寻星设备中移植使用,并且功能的实现和对于不同Unicable设备的兼容性也都得到用户的充分认可。
[1]沈永明.卫星接收方案设计中的Unicable技术[J].实用影音技术,2009(10):27-34.
[2]沈永明.卫星电视接收完全DIY[M].北京:人民邮电出版社,2011.
[3] 李春光,刘国栋.DVB-S中基于STV0299的DiSEqC功能设计与实现[J].计算机工程与设计,2004,25(10):1820-1823.
[4] EN50494,Satellite signal distribution over a single coaxial cable in single dwelling installations[S].2007.
[5]高焕堂.UML+OOPC嵌入式C语言开发精讲[M].北京:电子工业出版社,2008.