APP下载

基于OMAPL138的SCALE通信方式在数字电视监测中的应用

2016-12-15杜小敏袁三男吴立新

上海电力大学学报 2016年5期
关键词:E通共享内存码流

杜小敏, 袁三男, 俞 静, 吴立新

(1.上海电力学院, 上海 200090;2.上海科江电子信息技术有限分公司, 上海 200030)



基于OMAPL138的SCALE通信方式在数字电视监测中的应用

杜小敏1, 袁三男1, 俞 静1, 吴立新2

(1.上海电力学院, 上海 200090;2.上海科江电子信息技术有限分公司, 上海 200030)

为提高数字电视监测平台的工作效率,引进了双核处理器OMAPL138的SCALE双核通信方式,实现了数字电视信号在ARM和DSP之间的通信.首先,以OMAPL138为硬件平台,建立ARM和DSP之间SCALE方式的通信机制;其次,在ARM端与DSP端之间进行数字电视相关数据的传递,及ARM端到DSP端消息的发送;最后,ARM端将分析结果传入网络并显示于PC机上.实验结果表明,OMAPL138双核之间的SCALE通信方式加快了对节目信息的提取,保证了数字电视监测系统的高效性.

OMAPL138双核处理器; 双核通信方式; 数字电视监测

与传统的模拟电视监测相比,数字电视监测系统的不同之处在于处理内容为数字信号,包括对信号的解码分析及编码,大量的数字信号对CPU处理速度的要求较高.目前,可进行多个单核处理并进行人机交互,可以满足基本要求,但开发成本较高,尤其是硬件开发比较复杂.加之单核为满足效率而提高频率,造成耗电多,发热大,散热风扇转速高、噪声大等问题,无法满足实时监测的要求.美国德州仪器(TI)公司推出的一款高性能、低功耗的浮点定点能力兼备的全新双核处理器OMAPL138[1],已在高速信号处理系统信号完整性分析中得到了应用,可以有效地保证信号的完整性,同时也可以保障整个系统的稳定性[2];与FPGA共同完成嵌入式数控系统,可满足高性能数控系统的要求,已成功应用于皮革裁剪机上[3].

为提高监测效率,数字监测系统充分利用双核处理器OMAPL138低功耗、高处理能力的优势,并采用CHNL和MSGQ组件的SCALE方式进行双核通信,实现ARM端与DSP端之间的数据传递及ARM端到DSP端的消息发送,增大了双核之间通信的灵活性和可靠性,为确保广播电视的播出、安全传输提供了保障.

1 OMAPL138简介及数字电视监测概况

OMAP L138是TI公司2009年推出的一款高性能、低功耗的浮点定点能力兼备的全新双核处理器[1],包括一个ARM9处理器内核和一个C6748DSP内核,频率可高达375/456 MHz.ARM端运行Linux系统,主要处理人机交互、向DSP端发送数据和消息等任务;DSP端是基于DSP/BIOSTM实时操作系统的,主要是循环接收从ARM端传来的数据或消息,进行运算处理.

为实现OMAPL138双核的紧密连接,TI公司从应用层上抽象出物理层中的ARM和DSP交互的特性,建立了一个通用的API,即DSP /BIOSTM Link,简称DSPLink,用于完成ARM端的操作系统线程,以及DSP/ BIOSTM之间的控制和通信路径任务,完成二者之间的软连接.在DSP端,DSPLink是为了驱动DSP BIOSTM操作系统,可以调用DSP;在ARM端,DSPLink作为一个Linux的外设而存在,并提供了很多组件,通过应用层的函数库访问这个设备的形式进行操作[4].DSP端和ARM核端通过片内共享内存区域,进行相互通信,实现两者通信上的无缝连接.

数字电视监测系统是指通过获取广电节目在制作、传输、播出过程中各阶段的传输信号,进行信号分析、故障报警、多画面展示、录像存储等,为保证国家广电正常、安全播出而打造的一系列集软件、硬件为一体的监管系统[5].其中,码流分析是监测系统的关键环节,它主要分析码流中的各类参数及分析监测码流中是否存在错误,并且将传输码流按照TR101290测量标准进行三级报警[6].码流分析的处理速度会大大影响监测系统的效率,所以需要高速处理器来完成.

2 SCALE通信

双核通信的基本模式是一方将所需要传输的数据放到128 KB共享内存中,通过中断的方式告知另一方.作为DSPLink中不同的通信模块,其不同之处在于对共享内存的组织方式的不同[7].双核之间的通信可有多种方式,TI公司开发了多种方式的双核通信,比如LOOP,MESSAGE,SCALE,READWRITE,RING_IO,MP_LIST,MPCSXFER等,数据可以通过通道和消息队列的方式进行传递.

由于ARM端和DSP端的数据传输可以使用通道,也可以采用消息队列的方式进行传送(但消息队列的容量有限,不能大量传送数据,只传送长度可变的消息).为合理利用资源,选用了CHNL和MSGQ组合的SCALE的传输方式,以确保不丢失数据、不损坏数据,实现双核之间数据和消息的交互.

2.1 SCALE 通信流程

ARM具有较强的事务管理功能,可以用于界面交互以及程序应用等,在控制方面具有很大优势[8],所以主要负责人机交互,并通过网口将分析结果显示在PC机上.在工程应用当中,ARM一般会被用作主控核,协调调度系统的其他核工作,通过MSGQ组件向DSP发送命令.

DSP具有端强大的数据处理能力和较高的运行速度,可以以通道方式接收数据,以消息队列方式接收消息,根据ARM端发送的消息对数据进行组合,并通过通道反馈给ARM,ARM对接收到的数据与发送的数据和消息进行验证,以确保传输数据的准确性.

SCALE通信流程如图1所示.

图1 SCALE 通信流程

2.2 SCALE通信的搭建

SCALE通信主要利用DSPLink的4个关键组件——PROC,CHNL,MSGQ,POOL,以完成双核之间数据流和消息的传输.

(1) PROC组件 通信过程中,在ARM端模拟DSP,可使DSP访问ARM端,并与POOL组件配合使用,完成DSP程序在载入驱动和内存池的分配.

(2) CHNL组件 一个逻辑数据传输通道,负责ARM端和DSP端之间的数据传输,接收端和发送端采用issue/reclaim模式传输数据,可实现同步传输.与Put/Get模型不同,它不会自动分配内置交换缓冲,不管是发送还是接收,CHNL-issue()向CHNL的另一端传入指针,与CHNL-reclaim()一起使用,效果与Put/Get相同.

(3) MSGQ组件 主要负责ARM端和DSP端可变长度的短消息交互,message使用消息队列作为信息载体,发送和接收分别需通过消息队列的写入和读取完成.使用MSGQ_Put()和MSGQ_Get(),对共享内存进行写入/读取.

(4) POOL组件 适用于配置共享内存区域的API模块,提供了两核之间缓存数据的API接口,可实现不同CPU之间内存数据的同步化.

SCALE工作模式下,ARM端和DSP端各自的工作流程如图2所示.

ARM端分别采用了CHNL和MSGQ组件将数据、消息传输到共享内存中;ARM端负责向DSP端发送数据缓冲和消息队列,接收DSP端返回的组合缓冲,将发送的数据和消息以DSP处理数据缓冲的方式对返回的缓冲进行验证,并输出验证结果.该程序运行过程中只有一个缓冲,无缓冲序列在排队,可大大提高传输效率.每次通过CHNL所传数据最大值是由初始值设定的.

对于消息,向DSP端发送数据和从DSP端接收数据时ARM端的初始化是不同的,向DSP端发送数据需要打开远程传输msgq_transportopen(),建立执行函数时需要对DSP端消息队列进行定位,而从DSP端接收数据初始化需要先打开ARM端的消息队列msgq_open(),再打开远程传输msgq_transportopen(),定位DSP的消息队列.然后,发送给DSP的缓冲初始化数据为XFER_CHAR,其值为0x1,并通过通道将数据发送到DSP端,发送完毕后,通道接收由DSP端返回的数据缓冲,并以DSP处理数据的方式验证数据的正确性,传送过程在ARM端所连接的虚拟机上打印输出.最后,关闭远程传输,停止在DSP端的执行,释放分配到的DSP通道,关闭池,分离处理器,销毁PROC对象.

图2 SCALE通信工作流程

DSP端作为数字信号处理端,使用了SWI(软件中断)和TSK(任务线程)两种方式来实现数据和消息的发送和接收.由于SWI不可以被堵塞,一旦触发,必须执行完毕.而TSK可以被中途堵塞.DSP 端基于TSK_MODE参数,调用TSK或SWI组合应用程序来完成数据和消息的处理任务.SWI_MODE和TSK_MODE是在DSPLink的配置文件dsplinkcfg.pl定义可以用DSPTSKmode=1来选择哪一种模式,若没有设定,默认使用SWI;如果定义SWI_MODE,则从SWISCALE_Create()开始执行,如果定义了TSK_MODE,则从TSKSCALE_Create()开始执行.

以TSK模式为例,TSK使用SIO接口完成对ARM端的组合,从一个输入通道接收数据,把同样的数据再发送回输出通道,输入和输出通道是通过头文件配置的,它使用一个消息队列去接受输出数据的组合因子.用SIO_create()和SIO_delete()函数来打开和关闭数据流.通道采用issue-reclaim模式进行数据传输,DSP端作为消息接收端,不必向ARM端发送消息,因此需要先打开远程传输MSGQ_transportOpen (IN ProcessorId procId,IN Pvoid attrs),打开通向DSP端的用于消息传递的传输通道.MSGQ_open()打开一个消息队列(有一个系统范围的名字标识),所有发送给该客户的消息都将加入该队列.然后,从端接收数据缓冲,检查是否有组合消息,处理数据缓冲,接收的数据与组合因子相乘,将处理过的数据发送到通道上,返回ARM端.最后,与ARM端相

同,删除数据、消息中断,关闭消息队列,删除输入输出通道、缓冲及消息结构体.而SWI模式的运行需要先创建TSK任务.

ARM端与PC机网络相连,在虚拟机上打印通信流程,SCALE通信模式的创建、执行阶段,执行过程中每10次改变一次组合因子,从组合因子为2开始打印显示组合因子的大小,每100次打印输出会提示双核之间的通信次数.最后,释放SCALE通信占用的空间和组件,结果如图3所示.

图3 ARM端和DSP段通信结果

3 SCALE通信在数字监测系统中的应用

本数字电视监测系统由码流接口板、解码板、主控板等构成,系统框图如图4所示.

图4 数字电视监测系统

系统工作原理如下:值班人员若要查看某个频点下的节目,选定频点后,系统主控板卡通过网络告知码流信号接口板的主控CPU,即ARM,分析并控制高频头解调相应频点的射频信号,经高频头解调出TS流.该流为加密码流,一分为二,一路经过CAM卡检测是否已授权可解,若有,进行解密处理并传出透明的TS流至解码板,否则,不能解密.解码板解调出相应的A/V模拟信号,进入主控板以低码率、高压缩率的H.264标准[9]进行编码压缩并传至网络,提供给PC机中的播放器或电视屏幕墙播放,供运行维护人员直观地判断,或将信息存入数据库中,方便以后随时调用,便于更好地维护.另一路经过可编程门阵列FPGA校验并循环检测,将TS流转换成DSP可以接收的信号,送给DSP进行码流分析,DSP将分析结果存放至和ARM的共享内存中,供ARM端直接读取.ARM将DSP码流分析的结果通过网络输出,由PC机显示或保存到磁盘阵列、数据库服务器中.

为保证SCALE方式的双核通信在该系统中的正确运行,首次启动或开机时需进行验证,之后ARM可随时向DSP发送消息命令.由于数字检测系统安装成功后,是24 h不间断运行,所以仅需安装调试或重启之时,按照SCALE方式的通信,验证双核通信的正确性.

高频头接收到ARM指令后,开始接收RF信号并解调为TS流,将信息反馈给ARM,ARM收到信息后调用FPGA,解调后的TS流经过I2C总线传送到FPGA,校验并循环检测是否有TS流的输入,并将转换后的TS流传给DSP处理.该过程中,ARM很少使用通道向DSP发送大批量数据,经常使用消息队列向DSP发送指令和从通道上接收来自DSP的批量数据.ARM直接采用issue-reclaim模式的通道从共享buffer中把相连接的DSP指定发送的数据读取出来,ARM负责将所监测到的故障信息通过网络传入磁盘中进行存储,并将透明的TS流通过CPCI接口送给解码板进行解码,或者上传至网络,通过前端屏幕或PC进行显示报警.ARM向DSP发送命令,需将命令载入消息队列中,使用MSGQ_put()函数传入共享内存中.消息队列的结构如下:

typedef struct

{ UInt32 queue[QUEUESIZE];

UInt head;

UInt tail;

UInt32 error;

Semaphore_Struct semObj;

Semaphore_Handle semH;

} Event_Queue.

DSP利用强大的数据处理能力和高运行速度等优势,负责将来自FPGA的加密TS流进行码流分析,分析监测码流中是否存在传输流同步丢失、节目映射表、循环冗余校验、条件接收表出错、网络信息表出错、数据源错误、传输引起的错误等,并将码流分析的结果放入共享内存中.此外,DSP接收并执行从ARM来的命令,比如提取PMT表、返回PAT表、3级报警结果表等.DSP端为各种检测项目各定义了一个结构体,根据不同情况将分析结果分别填充到各自相应的结构体对应元素中,通过通道发送到共享内存当中.比如PMT表填充的结构体,定义如下:

typedef struct _CHECK_PMT

{ CHECK_PARASms_Check_Paras;// 公共参数检测

PMT current_pmt;

PMT_LIST pmt_es[MAX_ES];

unsigned int i_repetition_period;// 包连续时间计数

unsigned int i_repetition_period_default; // 默认包连续时间计数

unsigned int i_over_time_err; // 超时错误计数

long pcr_del;// TS流的时间

unsigned char transport_scrambling_control;//节目是否加密

}CHECK_PMT.

最后,使用CHNL-issue()将该结构体上传至通道上,完毕后采用CHNL-reclaim()回收通道.

与LOOP通信方式相比,SCALE通信方式的双核通信可以实现ARM端向DSP端命令的发送.CHNL 需要建立两条通道,并且每次传输数据的数量是固定的,需要占据的共享内存也是不变的,一般CHNL所传数据量较大,当共享内存不足时,无法进行正常传输.而消息传送只是从ARM端到DSP端,只需建立一个消息队列即可,而且消息队列传输的消息是可变长的,存储和传输占用内存较小,使用比较灵活方便,可合理分配共享内存,节省CPU的运行时间.

4 实验结果

数字电视检测过程分为轮询监测和手动监测两种.值班人员若要查询某个频点下的节目状况,可在手动查询下对TS流进行码流分析,将频点下的各种信息表提取出来,进行直观地分析.比如,查看频点211.00的节目信息,首先在用户界面输入频点数211.00,主控板接收到界面发来的请求,进行读取并传于网络告知ARM,ARM接收到消息后,通知高频头解调相应频点的射频信号,输出解调结果——TS流,经过可编程门阵列FPGA进行格式转换,送给DSP进行码流分析,ARM与DSP之间采用SCALE方式进行数据的传输和命令的传递,即ARM端通过MSGQ组件向DSP发送命令消息,DSP端通过CHNL组件将码流分析的大数据结果传送给ARM.ARM端将DSP分析出的各种信息表通过网络输出,将提取出的PMT表、PAT表、CAT表及3级报警信息等显示在PC机屏幕上.

5 结 语

本文介绍了一种基于双核系统OMAPL138的SCALE通信方式的数字电视监测系统,该系统有效地解决了多个单核协同处理的开发问题,降低了难度;充分利用ARM与DSP各自优势进行了明确分工,采用了CHNL和MSGQ组件SCALE的双核通信方式,实现了ARM端与DSP端之间的数据传输和消息定向传递;合理地利用共享内存,减少了CPU的空间占用,提高了传输效率.试验结果表明,该系统能够使得值班人员快速定位故障点,及时作出故障处理,保证了数字电视应用系统的平稳运行.

[1] 林淦,刘建群,许东伟,等.OMAPL138 的双核通信设计[J].机床与液压,2014,42(22):146-149.

[2] 郑楠,章明朝,李佩玥,等.基于 OMAPL138 的高速信号处理系统信号完整性分析[J].现代电子技术,2013,36(12):89-91.

[3] 左旭辉.基于双核 OMAPL138 和 FPGA 的嵌入式数控系统研究与开发[D].广州:广东工业大学,2014.

[4] 曾晓晓.基于 OMAPL138 的数据存储和实时成像系统[D].西安:西安电子科技大学,2013.

[5] 彭晓鹏.数字电视信号监控系统设计与实现[D].成都:电子科技大学,2012.

[6] 袁三男.数字电视监测系统的码流分析及 3 级报警的研究和实现[J].上海电力学院学报,2013,29(5):472-476.

[7] 栾小飞.OMAPL138 双核系统的调试方案设计[J].单片机与嵌入式系统应用,2012,12(1):16-19.

[8] 师皓,江志农.基于 OMAPL138 的便携式设备状态监测与诊断仪设计[J].微型机与应用,2011,30(16):28-30.

[9] 仇丽,肖洪祥.H.264 帧内预测算法改进[J].软件导刊,2011,10(2):60-62.

(编辑 胡小萍)

The Application of SCALE Communication Based onOMAPL138 in Digital Television Monitoring

DU Xiaomin1, YUAN Sannan1, YU Jing1, WU Lixin2

(1.ShanghaiUniversityofElectricPower,Shanghai200090,China; 2.ShanghaiKejiangElectronicInformationTechnologyCo.,Ltd.,Shanghai200030,China)

In order to improve the working efficiency of digital TV monitoring platform,the SCALE communication of dual-core processors OMAPL138 is introduced to achieve the communication of digital TV signal between ARM and DSP.Firstly,the communication mechanism of SCALE mode between DSP and ARM is established based on hardware platform of OMAPL138.Secondly,the transmission of the data related to digital TV is conducted between ARM and DSP,and the message is sent from ARM to DSP.Finally,the analysis results are uploaded to the network by ARM and displayed on PC.The experimental results show that the use of SCALE communication mode between dual core OMAPL138 accelerates to extract the program information and improves the efficiency of digital TV monitoring platform considerably.

OMAPL138 dual-core processor; dual-core communication mode; digital TV monitoring

10.3969/j.issn.1006-4729.2016.05.012

2015-12-15

简介:袁三男(1967-),男,博士,副教授,江苏苏州人.主要研究方向为通信与信息系统,流媒体网络,数字电视,嵌入式系统等.E-mail:samuel yuan@shiep163.com.

TN948.7

A

1006-4729(2016)05-0467-06

猜你喜欢

E通共享内存码流
基于GOOSE通信技术的直流配电网分布式区域保护方法
数字电视TS码流协议简要分析
通过QT实现进程间的通信
基于Linux内核的文件服务器模型的研究与构建
基于PCI总线的多处理器协同机制研究
基于GOOSE通讯的煤矿井下电网防越级跳闸研究
内源性12—HETE参与缺氧对Kv通道抑制作用机制的研究
基于FPGA的GOOSE通信系统
一种比较ASN.1码流差异的方法
基于梯度的CCSDS压缩码流控制算法研究