家电维修班,手机维修班,电脑维修班,电工班,焊工班,液晶电视维修班,电动工具维修班、电动车摩托车维修班、网络营销培训、网站设计培训、淘宝培训---全国招生 家电维修班,手机维修班,电脑维修班,电工班,焊工班,液晶电视维修班,电动工具维修班、电动车摩托车维修班、网络营销培训、网站设计培训、淘宝培训---全国招生

基于OS20的机顶盒软件体系及其应用设计

基于OS20的机顶盒软件体系及其应用设计

介绍了ST半导体公司的OS20实时嵌入式操作系统的基本特性。通过DVB-T数字电视机顶盒研发项目的应用设计,分析了机顶盒软件研发的主要问题和软件架构的实现,包括系统的状态机设计、搜台算法的实现、以EPG为主的SI解码系统的设计实现和优化,从各个方面讲述了OS20实时操作系统在机顶盒设计中的应用实践。

1 引言

      在较短的时期内,DTV和SDTV不可能降到现有模拟电视接收机的价位,因此还必须通过地面数字STB将地面数字电视广播的节目显示在模拟电视接收机上。

      本文结合笔者在使用ST DTTi5516主芯片开发DVB-T接收机的过程中的心得体会,结合ST半导体公司的OS20实时操作系统,谈谈数字电视接收机开发的应用设计的几个主要问题。

2 系统介绍

       以DVB-T为例,整个终端接收解码过程如下图所示。

图1 终端接收解码过程

      机顶盒对数字电视信号的处理过程为:电视射频信号经Tuner(高频头)调谐,进行模数转换,输出36MHz 的中频数字信号送入OFDM解调模块进行解调之后,变成TS流后经信道解码得到MPEG-2 TS流,经解复用模块(集成解扰模块)选出一路MPEG-2音视频流和对应的数据信息,经信源解码后得到所选节目的数字信息。由于机顶盒的输出端接模拟电视,所以数字信息经模拟信号编码后得到模拟信号输出到传统的模拟电视。

3  软件体系

      3.1   软件层次结构

      软件结构层次主要分三层:驱动层、中间层和应用层。软件结构层次图见图2。

图2 软件层次图

      除了驱动层的turner驱动修改之外,主要工作集中在应用层和DVB-T module API。其中,封装的API主要包括画点、线、框(可带各种前景色和背景色),画各种语言文字(可增减和更换字体),画位图,按菜单结构增减菜单,菜单翻页,dbase中EPG和teletext的请求与接收,subtitle的开关切换等等。

      3.2    OS20实时操作系统

      在笔者设计的项目开发方案中,使用ST公司的STLite/OS20实时多任务操作系统,它具有以下一些基本特征:

  1)  采用基于优先级的多任务抢占式调度策略;

      2)  内核短小,实时性好,能进行快速的上下文切换(小于5μs),效率高;

      3)  开放源代码,并且支持一系列的处理器芯片(内核主要分C1和C2两个版本);

      4)  低的内存要求:对于内核,只要求600B的internal和11K RAM(C1核只需要3K);对于每个进程,只要求24B的internal(C1核是32B)和36B的external。

      这种高效率的操作系统能够为基于ST20平台开发的嵌入式系统提供高效的多任务环境,包括任务调度管理、时钟管理、内存管理、中断处理、通过信号量实现同步和互斥、以及通过消息队列实现消息通信等等。

4   各软件应用模块的设计与实现

      4.1   GUI和状态机的设计

      界面风格的选择:选择弹出式菜单和对话框。举例,Menu的数据结构包括标题栏、总项数、当前选择(高亮)项、菜单句柄、以及菜单项结构数组头指针;

      字库:生成点阵字库,包括英文变宽16点阵字库、中文简体繁体16*16(用于EPG和Teletext界面)和24*24(用于菜单和对话框)点阵字库(GB2312标准的一级字库)、lattin-1欧洲八国(英、法、德、西班牙、意大利、荷兰、葡萄牙、波兰)语言字母集16*16点阵字库。

      调色板:平台支持可选的16色或者256色调色板,对于尽量接近原色显示24bit图片,调色板的选择是关键。把所有要显示的图片用photoshop整理成一张大图片,选择其 佳显示的256色索引值,导出对应的256色调色板即可。

      状态机:在电视节目播放的情况下,按数字键、Ch+/-可切换频道,按Vol+/-可控制音量,Mute键静音切换,按channel键和上下键可快速选择所需要看的频道(按左右键可以在所有频道和喜爱频道之间切换),按Menu键键入菜单,按EPG键进入EPG界面。模组状态切换关系如图3所示。

      说明:K: 表示按键消息,对红外遥控器按键输入进行接收、转换生成;M:表示选择了某操作。

图3 系统状态变换图

      4.2    各主要数字电视功能模块的设计

      4.2.1  搜台机制

  数字电视的搜台算法很重要,因为不仅要找出频道列表,还要解析出一定程度的各频道的相关信息。搜台算法包括手动搜台和自动搜台算法。自动搜台是通过手动搜台对频率的for循环来实现的。所以只需讨论手动搜台即可。搜台流程如图4所示。

图4 搜台流程图

      首先调用驱动API设定Tuner频点、符号率等参数,锁定频点(若失败,则返回)之后,根据数据更新的方式决定是否要清除ProgramList和TransponderList,然后搜索解析PAT表,PAT表解析完之后会对逐个Program解析PMT表和SDT表,所有的Program都完成之后,解析NIT表获得网络信息,更新TransponderList, 后成功返回。

      需要注意的是:第一,在搜台的时候要利用Tuner的驱动函数来检测其锁定状态,而不能简单地设置超时。Tuner的状态有三种:锁定成功、锁定失败和锁定中。对于锁定成功和锁定失败,可即时返回;对于锁定中状态,需设置一定的超时机制,例如1s,来决定是否要放弃搜索;第二,在自动搜台时,对每次搜索,必须要确认dbase进程已完成相关的表解析,需用信号量来同步。

      4.2.2  Data Base和EPG的构建

      Data Base,包括ProgramList,TransponderList和EPG信息的构建。其中,ProgramList和TransponderList的构建在搜台时完成,当用户作频道管理时,需要作相应的更新并写Flash即可。

      EPG信息(此处指基本EPG,不包括扩展EPG),由DVB-SI组成。对于EPG信息, 重要的是从EIT表中解出的节目时间表和当前/下一个信息,对应于EIT Schedule表(表ID为0x50-0x6F)和EIT p/f表(表ID为0x4E-0x4F)。

      EIT表的信息量非常大,假如有200个Program,每个Program假如每天有20个节目,每个节目的节目内容描述必须要用256B字节来存储(SI1.0标准),假如传播的是一周节目指南,仅仅节目内容描述信息就需要存储空间:200*20*7(天)*256≈7MB,这么大的存储空间实现这么小的一部分功能,不管对于Flash还是对于SDRAM都是不可忍受的。

图5 不同接收方法的接收速度比较

 为此,只解析和存取一个Program(当前播放或默认播放Program)的EIT表信息。机顶盒启动或用户换台时进行EIT表信息的更新。尽管从理论上说,可以在前端发送的一个循环内把所有的EIT表数据都收下来放到缓冲区中去解析,但由于受解复用处理速度和遥控器按键响应灵敏度的限制,很可能在一个循环内不能接收解析所有的EIT数据,所以要对解复用的数据量和遥控器按键响应速度作折中。

      根据DVB标准,8天内的EIT表信息循环传输间隔不超过10s,所以节目时间表没必要按时间顺序接受,采用乱序接收解析的方法可以大大提高EIT表的解析速度。项目实践证明,采用了乱序接收解析的方法能使一周节目指南信息的刷新速度提高3倍以上!如图5所示。优化之后,正在观看的Program的一周节目指南基本上20s左右即可完成更新。

      Teletext和Subtitle的实现可以通过调用相应API按初始化->打开->链接数据流的流程即可实现。

5 结论

      与众多的嵌入式实时操作系统一样,ST的OS20具有嵌入式系统所要求的实时、高效和精炼的特性,能够稳定高效地应用于高传输率的数字电视接收和解码。通过DVB-T数字电视机顶盒研发项目的应用设计实践证明,本文从系统的状态机设计、搜台算法的实现和以EPG为主的SI解码系统的设计实现和优化等各个方面给出了较优的解决方案。

2011-10-13 8:59:32统计:[
技术空间

招生问答

»更多
  • 咨询热线:0731-85579057
  • 咨询热线:13308461099
  • 报名电话:0731-85579057
  • 技术专业

    »更多

    学校图片

    »更多
    点击这里给我发消息
    点击这里给我发消息
    点击这里给我发消息
    阳光电子学校
    电工培训学校 电动车维修学校 摩托车维修学校 摩托车维修培训 手机维修培训 家电维修培训 电脑维修培训 电动工具维修培训 液晶电视维修培训 安防监控培训 空调维修培训 网络营销培训 网站设计培训 淘宝网店培训 电器维修培训 家电维修学校 电工培训 焊工培训 电工学校
    中山市,固原市,银川市,玉树,海东,陇南市,酒泉市,张掖市,天水市,金昌市,兰州市,榆林市,延安市,渭南市,铜川市,阿里,山南,拉萨市,怒江,文山州,楚雄州,普洱市,昭通市,玉溪市,昆明市,毕节,铜仁,遵义市,贵阳市,甘孜州,资阳市,达州市,宜宾市,南充市,遂宁市,绵阳市,泸州市,自贡市,三亚市,崇左市,河池市,玉林市,钦州市,梧州市,柳州市,梅州市,肇庆市,湛江市,佛山市,珠海市,韶关市,湘西州,怀化市,郴州市,张家界市,邵阳市,株洲市,仙桃市,随州市,荆州市,荆门市,襄樊市,黄石市,驻马店市,信阳市,南阳市,漯河市,中卫市,石嘴山市,海西,海南藏州,黄南州,海北,甘南,庆阳市,平凉市,武威市,白银市,嘉峪关市,安康市,汉中市,咸阳市,宝鸡市,林芝,日喀则,昌都,迪庆,德宏,大理,西双版纳,红河州,临沧市,丽江市,保山市,曲靖市,黔东州,黔西州,安顺市,六盘水市,凉山州,阿坝州,雅安市,广安市,眉山市,内江市,广元市,德阳市,攀枝花市,成都市,海口市,来宾市,百色市,贵港市,北海市,桂林市,南宁市,云浮市,揭阳市,潮州市,清远市,阳江市,汕尾市,惠州市,茂名市,江门市,汕头市,深圳市,广州市,娄底市,永州市,益阳市,岳阳市,湘潭市,长沙市,恩施州,黄冈市,孝感市,鄂州市,十堰市,武汉市,周口市,商丘市,三门峡市,许昌市,焦作市,安阳市,鹤壁市,平顶山市,开封市,郑州市,聊城市,滨州市,德州市,莱芜市,日照市,泰安市,烟台市,潍坊市,东营市,淄博市,上饶市,济南市,抚州市,宜春市,赣州市,新余市,九江市,景德镇市,宁德市,南平市,泉州市,莆田市,厦门市,宣城市,亳州市,六安市,宿州市,黄山市,滁州市,安庆市,淮北市,马鞍山市,蚌埠市,芜湖市,合肥市,丽水市,舟山市,衢州市,金华市,湖州市,嘉兴市,宁波市,宿迁市,镇江市,盐城市,连云港市,苏州市,徐州市,南京市,绥化市,牡丹江市,佳木斯市,大庆市,鹤岗市,哈尔滨市,白城市,白山市,辽源市,吉林市,葫芦岛市,铁岭市,盘锦市,阜新市,锦州市,本溪市,鞍山市,沈阳市,锡林郭勒盟,通辽市,乌海市,吕梁市,忻州市,晋中市,晋城市,阳泉市,太原市,廊坊市,承德市,保定市,邯郸市,唐山市,宁夏,甘肃省,西藏,贵州省,重庆市,广西,湖南省,河南省,江西省,安徽省,江苏省,黑龙江省,辽宁省,山西省,天津市,四平市,内蒙古,吴忠市,果洛,西宁市,定西市,商洛市,西安市,那曲,黔南州,巴中市,乐山市,贺州市,防城港市,东莞市,河源市,常德市,衡阳市,咸宁市,宜昌市,濮阳市,新乡市,洛阳市,菏泽市,临沂市,威海市,济宁市,枣庄市,青岛市,吉安市,鹰潭市,萍乡市,南昌市,龙岩市,漳州市,三明市,福州市,池州市,巢湖市,阜阳市,铜陵市,淮南市,台州市,绍兴市,温州市,杭州市,泰州市,扬州市,淮安市,南通市,常州市,无锡市,大兴安岭,黑河市,七台河市,伊春市,双鸭山市,鸡西市,齐齐哈尔市,延边,松原市,通化市,长春市,朝阳市,辽阳市,营口市,丹东市,抚顺市,大连市,阿拉善盟,兴安盟,乌兰察布市,巴彦淖尔市,呼伦贝尔市,鄂尔多斯市,赤峰市,包头市,呼和浩特市,临汾市,运城市,朔州市,长治市,大同市,衡水市,沧州市,张家口市,邢台市,秦皇岛市,石家庄市,青海省,陕西省,云南省,四川省,海南省,广东省,湖北省,山东省,福建省,浙江省,上海市,吉林省,河北省,北京市