DVB开发指南.docx

上传人:b****7 文档编号:11371485 上传时间:2023-02-28 格式:DOCX 页数:27 大小:61.46KB
下载 相关 举报
DVB开发指南.docx_第1页
第1页 / 共27页
DVB开发指南.docx_第2页
第2页 / 共27页
DVB开发指南.docx_第3页
第3页 / 共27页
DVB开发指南.docx_第4页
第4页 / 共27页
DVB开发指南.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

DVB开发指南.docx

《DVB开发指南.docx》由会员分享,可在线阅读,更多相关《DVB开发指南.docx(27页珍藏版)》请在冰豆网上搜索。

DVB开发指南.docx

DVB开发指南

DVB开发指南

1.基本知识

DVB,数字电视广播,一般按其传输方式,分为:

ØC—有线

ØS—卫星

ØT—地面

数字电视的传输流程

(多路)原始节目流+节目表+节目指南+……

↓时分复用

传输(TS)流

↓调制,高频搬移

载波传输

↓接收,降频

中频信号(调制信号)

↓解调

TS流

↓解时分复用

────────────────────

多路原始节目流节目表节目指南……

信源调制/解调

将原始音视频数字信号采用数字算法进行编码(得到ES流)的过程即为信源调制;将编码信号进行反向编码运算的过程称为信源解调。

俗称编码和解码。

DVB规范里面有一系列关于编码和解码的标准,DVB标清节目采用的最多的视频编码标准是MPEG2,而音频编码则为AC-3。

除此以外,在高清的场合下,有MPEG4,H.264等等更大的标准协议族来规范编解码算法。

信道调制/解调

信道调制指将数字信号加载到传输载波进行传输的过程,比如DVBS将以QPSK方式将TS流调制,DVBC以QAM将TS流调制,DVBT以COFDM调制TS流等。

作为接收端为了得到TS流就必须以对应的方式反向进行,此过程就是解调了。

 

2.DVBS

上行/下行

前端将TS流调制发送给转播卫星为信号的上行,下行则是转播卫星将信号广播到地面。

上行和下行自然采用不同的波段和频率,是否使用相同的调制方式并不确定。

转发器

卫星信号通过QPSK方式调制,其中频信号的范围是950MHz~2150MHz。

转播卫星将这个范围的中频信号分段,每段对应一个转发器,一个中心频率,我们就以中心频率来指代转发器。

转发器相关的参数有中心频率,极化方向,符号率,前向纠错码等等。

除了中心频率,其他的参数对于带宽有要求,这样每个转发器中心频率确定后,就对于其所占用的频道带宽有了限制,自然的,在每个转发器的中心频率带宽范围内,就不可能有其他的转发器信号存在,(除非相邻的转发器覆盖不重叠的地面范围),否则地面接收其就无法还原信号。

转发器的参数:

◆波段

●C低于5150MHz的载波频率

●Ku高于5150MHz的载波频率

◆极化方向,卫星广播信号有两种极化方式,线性极化和圆极化

●线性极化

⏹水平方向

⏹垂直方向

●圆极化

⏹左旋圆极化

⏹右旋圆极化

◆前向纠错码,一般可见到的是1/2,3/4,5/6,7/8。

分子为流信号中的有效数据占比,剩下的就是纠错码所占比重。

比如3/4表明信号分成4份,其中有一份是纠错码,剩下3份是有效信号。

自然的,前向纠错码越大,纠错数据占比越小,那么出错不能恢复的概率就越大,信号质量自然就小了。

◆符号率,单位:

波特率。

QPSK信号每个符号可携带两个bit的数据,因此大约可估算某个转发器下的TS流动数据传输率:

S×2×fec

其中S是符号率,fec为前向纠错码,因此符号率27500Kps,前向纠错码3/4的转发器,其每秒传输的数据大约为27500*1000*2*3/4=41.25Mbits。

关于带宽的大致估算:

±S/2

因此对于两个相邻的转发器,如F1/S1,F2/S2,且F1>F2,如果F1-S1/2

天线,俗称的“锅”,对于C波段信号,接收天线为圆球面的反射设备,其反射信号交叉于圆球队中心处;Ku波段信号,接收天线为抛物面的反射设备,反射信号位于抛物面的焦点处。

因此,C波段信号和Ku波段信号天线的安装方式是不一样的,前者叫做正馈(天线),后者叫做偏馈(天线)。

LNB,本振/降频器,安放于天线的反射焦点处。

LNB中有有个部件叫做极化片,它的作用是选择某个极化方向的信号。

如果是线性极化的LNB,那么只有符合极化片设定的线极化信号才能通过LNB,而圆极化信号则不受控制的通过LNB,如果是圆极化的LNB,那么只有符合设定的圆极化信号才能通过LNB,线性极化信号则不受控制的通过LNB。

LNB的极化方向的设定受机顶盒控制,这就是机顶盒的13/18V信号。

极化方式和极化方向的关系如下表所示:

机顶盒控制信号

LNB类型

信号类型

通过

13V

线性极化

水平信号

X

垂直信号

V

左旋

V

右旋

V

圆极化

水平信号

V

垂直信号

V

左旋

V

右旋

X

18V

线性极化

水平信号

V

垂直信号

X

左旋

V

右旋

V

圆极化

水平信号

V

垂直信号

V

左旋

X

右旋

V

若前所述,空中的信号是调制后的,经过搬移后的信号,其频率非常高,LNB的作用就是把高频搬移的信号再搬移到中频范围(950~2150MHz)内,其计算方法为

f=Abs(F0-FLNB)

其中F0是转发器中心频率,FLNB是LNB本振频率,f就是搬移后的中频频率。

需要注意的是,此处LNB是不加选择的将所有接收到的信号都搬移到中频频率,所以这里经过LNB后得到的是所有频率,而不是某一个频率。

射频处理,选择通过的某个单一频率信号,常用的芯片如:

rda5812,zl10039,stb6000等等。

信号的选择是由机顶盒控制的,一般通过qpsk解调芯片的IIC总线转发主控芯片的选择指令来完成,经过射频处理之后,非选择的信号就被挡在外面了。

信道解调,QPSK,将调制的信号解调得到TS流。

从此之后,就进入完全的数字信号处理阶段了。

常见的QPSK处理芯片如海尔的hi3103.

 

3.机顶盒

STB/IRD/BOX,这些都是常见的机顶盒简称。

一般都包含

⏹输入部件

◆RFin

◆IR,红外遥控接收器

◆前面板输入按键

⏹输出部件

◆混合视频输出

◆LOOPOUT,换回输出,直接将RFin转输出

◆S-VIDEO

◆色差输出

◆Spdif,光纤音频输出

◆UART

⏹输入输出

◆前面板led指示

◆以太网接口

◆智能卡

◆Ci接口

信道解调,QPSK/QAM/CODFM解调,对于卫星如Hi3013芯片。

关于信号的评价参数:

◆信号强度,这是信号的功率电平,越高表明信号电平越大

◆信号质量

◆信噪比,信号与噪声的功率比,比值大相对好

◆误码率,传输错误bit占总传输数据的比率,值越小越好

信源解调,电视解码器,集成在主芯片内部,其外接的cvbs等输出口线已经是经过tv编码的格式。

节目管理,将收下的节目参数以用户友好的需求进行管理的软件模块,最起码提供浏览,收藏,编辑等等功能。

参数管理,卫星/转发器参数,语言设定,定时器,用户锁等等功能

电子节目指南EPG,接收TS流中的EPG数据,提供浏览界面

图文TELETEXT,VBI,特殊的信息发布平台。

CA系统,与FTA对应的加扰节目配合的条件访问系统,常见的如nagra,viaccess,conax,irdeto,videoguard,nds,cryptoworks

存储器,永久存储程序和用户数据的flash,程序运行和信源解码所需的sdram,以及sram等等。

4.DVB规范

Dvb规范是在音视频流基础上发展起来的应用于更多场合的协议族。

它涉及了原始流的编解码,传输,复用,接口,条件访问,家庭网络,互操作性,托媒体平台,以及隐私策略等等。

4.1.最基本的传输分类入口:

DVB-S,关于卫星传输的规范

DVB-C,关于有线传输的规范

DVB-T,关于地面传输的规范

其他

⏹DVB-CS,数字卫星上行发布系统规范

⏹DVB-MS,高于10GHz的,基于DVBS的调幅微波多点传送,即MMDS

⏹DVB-MC,低于10GHz的,基于DVBS的调幅微波多点传送,即MMDS

⏹DVB-MT,微波地面系统

⏹DVB-SFN

⏹DVB-DSNG,数字卫星新闻收集系统

4.2.DVB的复用规范

定义了SI(业务信息),TXT(图文),VBI(图文),DATA(数据)。

后面两种我们暂不涉及。

4.2.1SI业务信息描述了:

节目信息,描述了如何搜索到TS流中传输的节目。

DVB的节目信息来自两方面,首先它直接沿用了MPEG2中对于如何搜索节目相关参数的定义,然后在DVB中搭配了一个SDT表来描述节目的业务文字信息。

这样,在机顶盒中,节目的搜索过程就是从TS流中得到相关的描述表,然后把各自对应的信息匹配在一起的过程。

与之相关的是PAT/PMT/SDT,此类表在TS流中以较短的间隔时间循环传送,其间隔时间不超过数百毫秒,就是说在任何时候,都可以进行节目搜索的操作而不必等待太长的时间就可以完成。

EPG,电子节目指南有两类,一类是当前/后续的信息事件,就是当前正在播放的节目的信息描述,以及当前节目完成后紧接着的节目的信息描述;另一类是长达一周及以上的节目的信息简介。

前者循环发送的间隔时间很短,不超过数百毫秒,后者每个循环的周期可能在数十秒以上。

因此当前/后续epg可以在需要的时候从码流中获取,而星期epg则需要事先缓存,并在需要的时候从缓存中提出去来显示。

网络信息,此处的网络指的是运营商的转播网络,某些运营商转播的节目频道数量很多,无法仅仅通过一个转发器就转播所有的频道,因此他们的节目就要通过多个转发器来转播。

通过网络信息表(NIT),将该运营商的所有频道信息和所在转发器公告出来,这样用户在任何转发器下,只要能够获得NIT,就能够依次逐步的搜索完所有该运营商的频道。

时间信息,码流中以TDT表的形式广播系统时间,以此作为机顶盒的时间基准,这样才能正确的现实epg等相关信息

运行状态,这些信息我们目前并没有应用

选择信息,同上

……

4.2.2Txt图文

TXT图文信息,这是一种相当于公告板之类的信息发布应用。

其历史来源于最初电视扫描信号过程中,电子枪回扫时的时隙,因为该时隙不携带有用电视信号,但却实实在在占用了资源(时隙),被开发出来用于显示一些相对变化不大的图形信息。

TXT信息编码在pes格式中,可能是作为视频信息编码中的一部分传输。

机顶盒上txt的显示比较像是进行拼图,因为txt信息每一条都带有位置/颜色/大小,所以他们的显示在屏幕上是固定的,将多条信息组合到一起以后,拼成一个更大的图形信息,最后一整屏显示完全后,用户看到的就是图形化的信息,这些图形化的信息一般都是公告,广告之类的应用。

4.3.条件访问

定义了es(基本流,如影视频流)的条件访问规范,如es流如何被加扰,加扰采用的算法,及在传输中怎样来表达这些加扰信息。

4.4.接口

定义了TS流从传输中获取再解码显示的接口规范,此接口定义的是机顶盒与外部设备间的规范,DVB-CI定义了主芯片与CI模块间的操作接口,CI模块从主芯片得到TS流,再根据主芯片的指令把TS流中指定的节目ES流解扰发送给主芯片,再由主芯片解码播放。

 

5.频道

机顶盒上的频道,播放所必需的参数

转发器相关参数:

卫星/转发器,必需通过此类参数锁定信号

Pcr_pid/video_pid/audio_pid,播放时需要此信息解复用es流

左/右声道/立体声,用户设置参数

Ecm_pid/emm_pid,加扰节目需要

Program_number/servic_id,在不同的场合有不同的名字,但其实是一样的东西,epg需要

其他参数,频道管理所需

编号,1—最大设计容量。

这个编号就是在用户界面上能看到的数字

名称

广播/电视属性

收藏/喜好/分类

其他

一般的机顶盒的频道管理,都会(全部或部分)具有以下的基本功能:

浏览

排序

⏹字母升序

⏹字母降序

⏹卫星排序

⏹转发器频率排序

⏹喜好排序

分类收藏,比如电影/戏剧/音乐/体育等等

手工增加频道

删除频道

编辑频道参数

修改频道名称

频道存储的设计

频道存储分成两级结构,第一级包括频道总数和频道参数入口索引列表,第二级存储频道的相关信息。

结构图示如下:

其中

有效频道总数,指当前数据库中的频道数量,也就是在频道浏览界面能够看到的最大频道号。

最大总数,是从该数据库创建以来有效频道总数的最大值,如果新增频道数超过最大总数,则最大总数就是有效频道总数,频道删减,最大总数不变,删减后再增加频道,但不超过最大总数,最大总数也不变。

此参数用于频道管理中增删频道参数时分配空间的算法,后面会详细说明。

索引,指向频道参数实体的地址。

每个索引所在地内存地址相对于索引区起始地址的(考虑每个索引的字长的,比如每个索引使用两字节或者4字节)数组偏移加1对应着频道的自然编号。

例如要找到频道号55的信息,首先计算器索引所在的地址为【55-1】,然后从index【55-1】取得频道参数的地址,再从该地址获取详细参数。

频道参数实体,详细频道参数,在现有的设计中,每个频道详细参数的所占用的存储空间是确定的。

频道相关的编程

读取频道参数

由频道号N获取频道详细参数P

P=PROGAMS【INDEX【N-1】】

删除频道

仅修改INDEX数据,PROGRAMS数据不变化。

删除时,把待删除频道后面的所有有效频道索引往前挪动一个单位,最后空出来的位置填入待删除的频道索引,如下图所示(图中FF指未使用区域):

可见删除节目不影响Htotal,Total会变小,删除后余下的比被删除的频道号大的有效频道编号全部减一,而其索引位置前移一个单位,正好与之匹配。

增加频道

增加频道时,首先检查Total和Htotal的关系,若Total与Htotal相等,则新增频道的索引肯定放在FF区域,那么参数实体的存放位置可以根据Total的值计算得到下一个地址,这个地址是此前从未使用过的。

如果Total小于Htotal,那么可以肯定此前删除了某个频道,从Total的下一个(上图中的一个灰色块)索引地址就能拿到一个可以存放的地址,从而避免在频道存储区中造成空洞而泄漏存储资源。

6.OSD

OSD即OnScreenDisplay的首字母组合,它是机顶盒交互的屏幕显示,要把这个和机顶盒播放内容区分开来。

机顶盒播放的视频信号是信号码流中传来的数据流的解码显示,OSD是与之独立的东西,在有点界面下既可以看到视频,又可以看到OSD,只是主芯片将这两者混合进行电视编码输出的结果。

一般的DVB主芯片都会提供多层OSD显示,以便实现复杂的显示任务。

OSD显示驱动一般只提供基本的绘制矩形,点,圆,柱,实心圆,弧线,扇形等功能函数,以及颜色和透明度,对比色的管理,图片显示等。

用户界面的显示都是由这些基本的函数堆砌组合显示出来的。

此处仅对我们开发的机顶盒方案的OSD显示界面进行汇总说明。

OSD界面包含菜单系统和快捷及状态显示。

菜单系统的结构

主菜单,列出了几个大功能的一级菜单入口,包括

安装设置

系统设置

频道管理

电子节目指南EPG

其他

CA设置

安装设置,包括

天线管理

卫星搜索

单星搜索

恢复出厂设置

系统设置

OSD语言

屏幕透明度

定时器

时间设置

CA模式设置

父母锁

频道管理

喜好管理

频道编辑

节目排序

EPG,查看电子节目指南

其他,版本信息,串口机对机拷贝

CA设置,受系统设置中CA模式设置的影响有不同的显示结果

快捷方式

快速切换CA模式

修改共享延时参数

状态显示

频道信息

静音

信号状态

CA状态

音量

声道

7.CA

CA即条件访问ConditionalAccess,指TS流中传输的音视频流是经过加扰控制,或者加密的字节流,这种字节流,视频解码器无法解码。

必须要有对应加扰key,即控制字ControlWord(CW)的情况下,先反向解扰加密字节流,得到正常的音视频字节流,即俗称清流后,再通过音视频解码器播放。

加扰的算法有多种,但在标清时代,大部分都是一样的,只有极少数使用不一样的加扰方式,在这些加扰方式出现的地方,可选的解码芯片也比较少。

对音视频流进行加扰以后,CW的传输就变得极为重要,否则指加扰不传送CW,谁也看不了了。

CA系统的主要作用就是控制CW的传输,获得授权的用户能够通过一定的途径及时得到CW,未获授权的用户得不到CW。

CW的传输方式有两种,一种是BISS方式,一种是常规的CA模式。

BISS

BISS来自于科学亚特兰大的一个成果,其应用场合大约是在运营商之间通过公共通道传输节目,为了避免被公众不授权的收看,对节目流进行了简单的加扰,并在传输的双方之间共享CW以达到目的。

现在很多卫星上都有BISS节目,其CW在相当长的时间内都固定不变,慢慢被发掘出CW来,造就了相当大一个市场。

BISS有3种标准,其中BISS-0没有研究,也没见应用;BISS-1就是固定的使用一组明文的CW来加扰节目;BISS-E则是隐藏的固定CW,必须要通过两种可选的算法推导出来。

BISS-1在俄罗斯90度卫星,138卫星等都有应用,而BISS-E据称在泰国有应用市场。

常规CA

此类CA控制下的CW周期轮换,分成两组密钥,通常称作奇、偶密钥。

每个周期更新一组密钥,轮回进行,比如本次替换奇密钥,那么下次就替换偶密钥。

因此在每相邻的两个周期间,他们的CW起码有一半是相同的。

常见的商业运作的CA厂家有irdeto,viaccess,nagra,nds,conx等等,他们都提供一整套解决方案,包括前端加扰/设备,终端解扰/设备。

对运营商进行授权和认证,对生产厂家进行授权和认证,对方案设计者提供库代码,进行授权和认证。

对终端来说,目前流行的有两种CA模式,一种是使用智能卡来解扰,一种是使用CI设备。

智能卡模式下,前端通过ECM来传递CW,以EMM来对智能卡进行授权和更新密钥。

主机把EMM发送给智能卡,智能卡鉴别为合法的EMM后更新备用的解密key;若是ECM,则判别节目的限制级别,选择合适(密钥索引和密钥存续时间)的key解密获得CW,主机得到CW后设置解扰控制器完成音视频解码。

智能卡的访问一般遵循7816规范,即使有少部分不遵循这个规范,最起码硬件电路是通用的。

CI模式下,主机将TS流整个传送给CI模块,以及要播放/获取的节目pid,CI模块选择对应的音视频流进行解扰,然后再发送给主机,主机直接对清流进行解码播放。

CI规范采用PCI总线与主机通信。

8.FLASH和数据库

8.1.Flash,非易失性存储器

分类

◆NAND

◆NOR

类型

NAND

NOR

地址和数据线

共用

分开

读速度

擦除/写

读访问方式

特殊驱动

总线

片上运行程序

不可

特点

可擦除重写

永久存储

擦除次数(寿命)有限

擦除以块的方式进行,一般为4KB,8KB……

只能将数据单元由1写为0,不能由0写为1,因此如要修改数据,一般需要先备份整个扇区,然后擦除该扇区,最后再写入整个扇区的内容

8.2.数据库

结构,根据FLASH特点,按照64KB的扇区分块管理数据,分块如下

电视

广播

其他参数

⏹卫星

⏹转发器

⏹共享参数

⏹ftp文件

⏹音量和声道(每个频道保留自己的设置的话)

⏹压缩数据库

⏹原始出厂设置参数

8.3.数据库存储的实现

8.3.1数据存储的分类实现

Flash操作最耗时的是擦除扇区,或者擦除整个flash。

在机顶盒系统中,机顶盒程序肯定不能有擦除整个flash的操作,因此可以不予考虑。

但对于flash来说,要修改数据又必须要擦除扇区,因此我们将需要flash保存的数据进行分类:

经常会突发保存并且有要求速度的小数据量保存

这类数据,把他们组合成一个大的数据结构,在flash中划分一个单独的扇区,保存时其地址是增长的:

在正常情况下,此扇区只有两部分,前面部分是已写入区,后面部分是空白区。

每次保存时,只在空白区的开头写入数据,再下一次的写入地址往后增长。

在空白区不足以容纳此数据结构时,擦除此扇区,再从空白区的开头写入数据。

这种设计只在开机时需要找到最新(就是位置最靠后的那个结构)的数据,也只在这个时候会读取数据,其他任何时候都是只写不读的(因为在机顶盒开机从flash中取得最新数据后,所有的变化都可以在内存中反映出来)。

这种设计加快了保存速度(仅在无空白区时擦除一次),而且对于该flash扇区的消耗(flash的写入次数是有寿命限制的,这个限制对于任何一个bit都是相同的)是均匀的,因此可以延长flash的使用寿命。

我们把这种方式称作滚动保存。

对于速度要求不那么强烈的大数据量保存

滚动保存虽然优点很明显,但明显的不适用于大块的数据块。

因此对于大数据块,只能老老实实的按照备份/擦除/写入的流程进行。

为了加快保存速度,我们设计了一个后台保存任务,该任务接受传来的请求,在写入期间,拷贝对应的数据块,按照流程保存数据。

如果写入完成后,对应的数据又有了变化,则再次启动写入流程。

这样前台任务可以不必等待数据真正保存到flash中就可以修改内存中的数据库数据,也加快了前台响应速度。

8.3.2

Flash虽然是在断电后可以永久保存数据的存储器,但这只是正常情况下的结果,当对flash的操作过程中出现特殊情况时,flash中保存的数据的安全性就值得推敲了。

试想在下面的场景中:

flash接收到擦除指令开始擦除到完成擦除这段时间内

flash接收到写入指令开始写入到完成写操作的时间内

主机为更新flash数据,从开发发出擦除指令到完成写数据帧短时间内

任何时刻发生了掉电的情况,那么flash对应区块的下次开机的时候的内容都是不确定的。

一旦发生这种事故,机顶盒系统最起码的后果就是数据丢失。

为了杜绝或者减少这些可能的事故发生后造成机顶盒系统的影响,我们考虑的是增加数据库修改的备份和冗余机制:

对于每一个扇区,都有一个对应的扇区作为他的备份,两者的数据仅有更新部分不同

每次更新数据时,都直接将最新的数据写入备份区,然后对调当前/备份扇区的身份

对于扇区保存的是当前还是备份数据的标志保存在滚动保存区中的结构中,这样仅需在开机时确认身份即可

如果备份区没有被有效更新,则当前区的数据可用,代价仅仅是丢失最新的更新

如果备份需被更新,但标志没有成功更新,结果同上

9.µC-OS

OS特点

OS的主要作用是提供多任务环境,管理任务调度,提供应用程序使用的通信机制和api。

在嵌入式运行环境中,由于资源有限,OS还应当具有高效和节省资源的特性。

µC-OS是目前所知的最简单OS之一,只提供了基本的

◆任务调度,OS_Sched核心调度程序,应用程序不能直接调用,一般通过后面介绍的手段间接调用,或者在中断服务程序中调用

◆Sleep,OSTimeDly,

◆进程锁,OSSchedLock/OSSchedUnlock

◆中断锁,开/关全局中断,这个可以在移植的时候修改

◆OSFlag,进程间同步的标志

◆OSMbox,进程间通信邮箱

◆OSSem,进程间信号量

◆OSQ,队列

◆OSMem,内存分配

等常规的进程间通信手段。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试认证 > 交规考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1