摘 要:为了最大限度地利用已经建成的广播覆盖网络,添加适配器是相对经济合适的方案。适配的设计要符合标准、通用、可扩展等要求,目的是要兼容更多的平台和其他接入系统,遵循的规范是应急广播国标的暂行技术规范,在统一的标准和规范下,结合实际的应用,可以更好地对应急广播系统进行适配。根据这些需求,设计出一款基于ARM架构的适配器,采用Linux系统运行,内置BOA嵌入式服务器,使用SQLite作为数据库系统,采用C语言实现的一款多功能应急广播适配器。
关键词:应急广播系统;适配器;SQLite;Linux系统
中图分类号:TP311 文献标识码:A文章编号:2096-4706(2022)02-0066-05
Abstract: In order to maximize the use of the built broadcast overlay network, adding the adapter is relatively economical and appropriate scheme. The design of the adapter should meet the requirements of standards, universal, scalability and so on, in order to be compatible with more platforms and other access systems, and the standard followed is the provisional technical standard of the national emergency broadcasting standard. Under the unified standards and norms, combined with practical application, it can better adapt the emergency broadcasting system. According to these requirements, a multifunctional emergency broadcast adapter based on ARM architecture, running with Linux system, built-in boa embedded server, SQLite as database system and C language is designed.
Keywords: emergency broadcasting system; adapter; SQLite; Linux system
0 引 言
近几年来,国家应急广播对公共突发事件处理的作用也日益被人们认可。为了做好人民群众的安全生产和防灾减灾救灾等工作,推进应急管理体系的信息化和现代化能力,国家制定了《“十四五”国家应急体系规划》,其中,指出应急通信、指挥平台、智能数据现代化能力滞后,还需要进一步完善。为了建设统一指挥、专常兼备、反应灵敏、上下联动的高效应急管理体系,应急通信、应急广播和应急指挥管理平台是重要的基石,是实现管理现代化的基础建设内容。
在《GDJ 079-2018应急广播系统总体技术规范》中明确定义传输通道包含:有线数字电视、地面数字电视、中波、调频、直播卫星、新媒体。那么,就需要在有线数字电视前端、地面数字电视前端、中波广播发射台、调频广播发射台、直播卫星集成平台、移动多媒体广播电视前端、应急广播大喇叭系统前端、机动应急广播系统、新媒体应急广播系统的前端/台站部署和搭建应急广播适配器。应急广播适配器的主要功能是将上级或者本级的应急广播消息和指令转发成对应的传输覆盖网络可以识别的传输覆盖指令进行分发,唤醒对应的传输覆盖网络中的终端播放相关的广播内容,将覆盖的实际效果记录并上报给应急广播平台。
1 需求分析
1.1 基本功能分析
根据国家标准规范,适配器需要进行本级插播,转发上级广播和申请上级资源进行广播的主要功能。
1.1.1 本级插播
本级插播主要包括本机音源的接入和本机广播指令的生成和传输,其中本机音源包含麦克风、U盘、调频接收、线路输入等,本级插播和上级插播需要有优先级的判断,插播时具备日常广播和应急广播选择按钮。适配器本级广播具备直接输出广播的功能。
1.1.2 转发上级广播
具备多通道接收上级广播功能,并转换成本级传输覆盖指令进行发送,根据技术规范和测量步骤,转发矩阵为:有线数字电视、地面数字电视、直播卫星、IP通道,都可以转发成IP/TS、调频、中波,其中IP/TS可以输出成有线数字电视、地面数字电视、直播卫星。
1.1.3 申请上级资源
在本级没有相关传输覆盖通道时,可以通过申请上级的传输覆盖通道进行广播。在实际应用中,适配器需要具备差转功能,在上级部署可以接收下级指令的适配器。要求适配器具备IP/TS收转功能。
1.2 用户接口分析
1.2.1 液晶屏幕
具備液晶屏幕和按键的方式操作和设置设备的参数,屏幕显示的信息支持树形菜单结构操作,支持选项和数字类型的参数设置,比如:音量大小、IP地址、设备类型等设置。
1.2.2 WEB网管
通过设备的管理IP地址,就能进入WEB网页管理,进入网页管理需要输入用户名和密码,保障设备参数的安全,WEB管理可以显示和设置设备更加详尽的参数,通过远程管理设备,可以实现设备的远程开关机,音量设置,远程调试等主要功能。
1.2.3 HDMI外置接口
通过HDMI+USB外置接口,实现设备触屏用户交互,在用户侧现场使用没有电脑的情况下,可以通过触屏操作,更加的丰富和灵活。触屏操作包括本级广播的开播、下属区域设备的运行状态查看,本机参数的设置。
2 设计实现
2.1 硬件拓扑结构
本级信源包括麦克风、U盘、RCA(线路)、语音合成、4G模组音频、调频、有线数字、地面数字、IP。数字音频通过CPU解码,全部输入到多路复用芯片,通过通道控制选择其中一路音频,如果是需要输出给IP、有线数字、地面数字、直播卫星这些数字信号时,需要将模拟信号输入到模数转换芯片,将采集实时的音频进行编码输出,如果是调频、中波这种模拟信号时,直接输出给调频或者中波调制芯片,RDS指令和音频是分开输出给调频发射机的,中波FSK指令是混合在音频信号中发送给中波发射机的,模拟音频还能直接输出,提供给监听喇叭和功放,通过功放放大后可以输出给大喇叭设备。拓扑结构如图1所示。
2.2 主要功能实现
在应急广播国家标准规范中,各级别的应急广播适配器的功能不相同,但是,又具备一些共性,主要功能实现如下:
2.2.1 节目传送
在数字传输通道中,支持生成相关PSI/SI节目表,和对应的节目流一起输出到复用设备中,再到有线数字、地面数字、卫星传输系统中进行调制放大输出,在模拟通道中,具备调频和中波音频的调制输出。为了实现将音频打包成IP/TS进行传输,并生成对应的PSI/SI表,需要集成ffmpeg开源库,使用库函数swr_alloc_set_opts对音频采样芯片进行重采样输入,使用avcodec_fill_audio_frame函数对重采样的数据进行填充编码,再用avcodec_encode_audio2函数对frame数据进行编码,最后通过av_packet_rescale_ts接口,将编码后的数据推送到输出缓冲区。PSI/SI节目表通过mpegts_set_service_info接口进行节目表的设置。节目输出到复用器的复用效果如图2所示。
调频和中波的节目传输则相对较为简单,只要把对应的模拟音频直接传给调制芯片即可。
2.2.2 消息接收
负责接收应急广播平台的应急广播消息。根据《GDJ 089-2018应急广播大喇叭系统技术规范》的适配器通信协议,平台和县级适配器是通过双向短连接进行通信的,说明平台和适配器处于同一个内部网络中,在平台端需要预置适配器的通信地址和端口,在适配器端也要预置平台的通信地址和端口,在通信交互一次后,就立即断开连接。
平台发送开播消息,辅助数据类型为0x62时,适配器通过网络回馈给平台一个RTP接收地址,平台启动推流服务直接向适配器的端口发送数据。终端为IP终端时,适配器将RTP数据直接转发给终端的特定端口即可。终端开始播发时,需要向平台发送一条任务切换的指令,表示终端已经响应了播放。序列图如图3所示。
2.2.3 语音切播
具备将本级的音频信号,如麦克风、U盘、线路输入等进行播发的功能。语音切播还是要遵循应急优先原则,级别优先原则,在接收上级广播前提下,本级插播优先级要高于上级,才能正常切播,否则操作无效,在本级开播的前提下,上级插播优先级要高于本级,才能正常切播,否则不能切播。在音频切播结束后,系统会自动切回源广播。语音切播的适配器操作步骤为:按下应急或者日常按钮,一键启动广播,系统默认切换音源到麦克风。通过按下对应的音源切换按钮,切换到对应的音源。适配器前面板如图4所示。
2.2.4 播发控制
根据应急广播平台要求,将应急广播消息按照要求转换成对应通道(RDS、TS或IP)的节目和传输覆盖指令,并将其传送到目标区域,控制对应终端进行播出的功能。在《GDJ 089-2018 应急广播大喇叭系统技术规范》中,平台和适配器之间的开播消息包含:广播消息编码、广播类型、事件级别、事件类型、音量、开始时间、结束时间这些主要参数,在国标的技术规范中都可以找到对应的参数,关闭广播、参数设置等消息也是有对应的参数列表的,在适配器接收到平台的消息后,通过内部结构体的转换即可输出对应的指令,适配IP、TS、调频和中波系统,可同时或者选择性的输出RDS、中波、TS和IP。
2.2.5 数据回传
可以将本机的运行参数和状态,通过回传网络按需回传到应急广播平台。数据回传协议在《GDJ 089-2018应急广播大喇叭系统技术规范》的附录E中,包含:终端心跳,查询指令应答,终端故障与恢复,终端任务切换,上报播发结果。终端心跳在一定时间内向平台发送,目的是保证链路状态和平台确认终端的保活状态,终端的故障与恢复也是在发生故障和恢复时主动向平台上报数据,在终端接收到任务时切换播放任务后,需要向平台发送任务切换的数据,播放结束后或者播发失败后,向平台发送播发结果。只有查询指令应答回传数据不是主动上报的,需要平台通过技术规范中的附录D的查询指令下发给终端,终端接收后回馈查询指令应答包给平台。
2.2.6 安全服務
具有对应急广播传输覆盖指令进行数字签名功能,保障指令传输安全。在《GDJ 081-2018 应急广播安全保护技术规范数字签名》中明确规定了,应急广播数字签名的密码算法采用GB/T 32918、GB/T 32905—2016规定的SM2、SM3算法,采用数字签名的密码算法目的是保障应急广播消息和指令传输的安全性,所以只针对消息数据和指令数据进行签名,不对音频数据进行签名加密。SM2、SM3的算法是公开的,因此可以根据内置软件算法进行签名。
SM2算法基于ECC,采用的是256位的一种,使用的方程为:y2=x3+ax+b,SM2算法实现如下:
(1)选择Ep(a,b)的元素G,使得G的阶n是一个大素数;
(2)G的阶是指满足nG=O的最小n值;
(3)秘密选择整数k,计算B=kG,然后公开(p,a,b,G,B),B为公钥,保密k,k为私钥。
SM3密码摘要算法是中国国家密码管理局2010年公布的中国商用密码杂凑算法标准。
签名和验签需要管理证书链,确保证书的可信,证书链需要通过统一的证书中心进行分发,适配器在生产时就预置证书链中可信的证书,通过证书链可以刷新证书信息,确保使用的证书可信。
适配器中签名的实现如下:
(1)选择签名的证书信息,通过公钥和用户数据“1234567812345678”生成Z;
(2)使用SM3算法,将“Z+明文数据+UTC时间”计算HASH,获取HASH数据;
(3)通过SM2算法,将HASH数据使用公钥进行签名计算,获得64位的签名数据;
(4)将证书号、UTC时间、64位的签名数据和指令数据一起发送给终端。
验签的实现如下:
(1)解析指令,获取明文数据(指令),证书号,UTC时间,64位签名数据;
(2)通过指令中的证书号,获取本机公钥,再和用户数据“1234567812345678”生成Z;
(3)使用SM3算法,将“Z+明文数据+UTC时间”计算HASH,获取HASH数据;
(4)通过SM2算法,将HASH数据使用私钥进行验签计算,得出是否验签通过结果;
(5)验签通过后才解析明文数据,否则丢弃整个消息包。
2.2.7 消息管理
应具备本级前端应急广播消息播发的记录、复查功能。适配器中采用sqlite3.0数据库进行存储数据。每次接收到平台的消息,验签通过后,都会在应急广播消息播发记录表中进行存储,如图5所示。通过本机的WEB管理页面可以查询到,平台通过任务查询指令,也可以获取到适配器的播发记录。
2.3 用户接口的设计实现
适配器的用户操作接口有液晶按键操作、WEB管理页面、HDMI触屏操作三种,用户接口形式不一样,但是数据是共享的,在设计实现时,采用通用网关接口,分离数据层和业务显示层,数据层使用JSON数据进行缓存,当缓存在内存中的配置数据文件发生变化时,系统将改变后的数据进行计算CRC校验并备份到数据库中,再将JSON数据转换成JSON文件存储在本地。每次开机重启时,系统载入文件并进行CRC校验,如果不正确,则从数据库中恢复,保证数据的完整性。
2.3.1 液晶按键用户接口的设计实现
将用户菜单存储为JSON格式,通过解析树形结构的JSON数据分解出菜单的层级结构,当解析到JSON的结点为末端结点,即没有子结点时,为参数设置结点,参数设置结点对应配置参数中的JSON路径。
2.3.2 WEB管理用户接口的设计实现
通过移植嵌入式浏览器在系统中实现,BOA服务器是一个小巧高效的web服务器,是一个运行于Unix或Linux下开源软件的、支持CGI的、适合于嵌入式系统的单任务的http服务器,源代码开放、性能高。采用CGI接口中的本地SOCKET通信,将CGI接收到的数据和本机内存中的JSON数据进行绑定,这样可以提高CGI接口的通用性。
2.3.3 触屏用户接口的设计实现
触屏界面采用C++图形界面框架设计实现,触屏界面程序和主程序是两个不同的程序同时运行,程序间采用本地SOCKET进行通信,除了设置系统运行参数以外,还需要实时同步接口。将触屏上的事件封装成JSON消息发送给主程序,主程序处理消息后,同步数据和按键上的显示,同时界面程序也在监听主程序按键上的操作,接收解析后同步界面上的显示。如:在触屏上按下应急广播按钮,触屏的红色灯亮起,设备按键的灯也要同步亮起来,开启应急广播;触屏关闭应急广播后,设备红色灯都要同步灭掉。参数设置也采用树形结构设计,和按键菜单的方法是一样的,如图6所示。C++中保存按钮的单击事件被触发后,将本页面下所有的控件打包成JSON数据发送给主程序,实现数据的同步存储。
3 适配器的应用
3.1 高山调频台站适配器
高山调频台站原有的节目资源覆盖个人调频收音機、车载调频等,要将应急广播消息接入现有的调频覆盖网络中,需要在调频台站适配器后端和原有调频节目的后端加入一个音频切换器,音频切换器通过适配器串口指令进行切换,当没有应急广播消息时,音频切换器的音源接到原有的广播节目上进行日常播发,如果调频台站适配器接收到应急广播平台的应急广播消息时,发送指令给音频切换器,将音频切换器的音源切换到调频台站适配器上,并将生成的RDS指令发送给调频台站播发系统,这样,个人调频收音机、车载调频、新建的应急广播大喇叭终端都可以接收到应急广播节目;当应急广播结束后,调频台站适配器通过指令使音频切换器切回原有的广播节目上,并停止RDS指令的播发,个人调频收音机和车载调频等终端就接收原有的广播节目,户外大喇叭终端则停止广播,进入待机状态。
3.2 地面数字电视应急广播适配器
原有的地面数字电视广播节目传输覆盖地面数字机顶盒,如果要将应急广播消息复用到地面数字电视广播网络中,需要将适配器生成的节目表和指令复用到原有的电视节目中,机顶盒需要通过软件升级的方式来监控应急广播索引表,当地面数字电视应急广播适配器接收到应急广播消息时,会发出应急广播指令到应急广播索引表中,并且输出节目信息和音频信息到电视节目中进行复用,机顶盒监控的应急广播索引表有数据时,解析其中的节目信息,并跳转到对应的应急广播节目进行强制接收观看,应急广播结束后,应急广播索引表中的指令就会停止播发,机顶盒就会返回原有的电视节目进行观看。新建的应急广播大喇叭需要锁定相应的频点,监控应急广播索引表,如果索引表中有指令消息,那么就会通过解析节目信息唤醒,并播放相关音频,结束后再进入待机状态。
3.3 乡村应急广播适配器
乡村应急广播适配器是新建的应急广播系统,可以接收上级的应急广播消息,通过多种通道(RDS、TS、IP)唤醒广播,也可以将接收的广播转换成RDS指令和音频输出到小型的调频发射机进行小范围的补点覆盖。
4 結 论
本设计分析了国标规范对应急广播适配器的主要功能描述,并结合市场的实际需求设计和实现了应急广播适配器。描述了应急广播适配器的设计需求和用户接口分析,从适配器硬件拓扑结构到主要功能的设计和实现,到用户界面接口的实现,详细阐述了应急广播适配器的设计开发和实现。本设计的适配器已经投入量产,通过市场的实际使用,经过了几次改良和升级,获得了市场用户的高度认可。广泛的应用于文化宣传领域,典型的应用场景为面向社区和乡村的公共文化服务宣传,提供新闻热点播报、疫情防控知识宣传、天气预报、乡村振兴政策宣传等。
参考文献:
[1] 国家新闻出版广电总局广播科学研究院.应急广播系统总体技术规范:GDJ 079-2018 [S].北京:国家广播电视总局科技司,2018.
[2] 国家新闻出版广电总局广播科学研究院.应急广播安全保护技术规范 数字签名:GDJ 081-2018 [S].北京:国家广播电视总局科技司,2018.
[3] 国家新闻出版广电总局广播科学研究院.中波调幅广播应急广播技术规范:GDJ 084-2018 [S].北京:国家广播电视总局科技司,2018.
[4] 国家新闻出版广电总局广播科学研究院,模拟调频应急广播技术规范:GDJ 085-2018 [S].北京:国家广播电视总局科技司,2018.
[5] 国家新闻出版广电总局广播科学研究院.有线数字电视应急广播技术规范:GDJ 086-2018 [S].北京:国家广播电视总局科技司,2018.
[6] 国家新闻出版广电总局广播科学研究院.地面数字电视应急广播技术规范:GDJ 087-2018 [S].北京:国家广播电视总局科技司,2018.
[7] 国家新闻出版广电总局广播科学研究院.应急广播大喇叭系统技术规范:GDJ 089-2018 [S].北京:国家广播电视总局科技司,2018.
[8] 刘岐,赵文杰.FFmpeg从入门到精通 [M].北京:机械工业出版社,2018.
[9] Surhone L M,Tennoe M T,Henssonow S F.Boa(Web Server) [M]. Betascript Publishing,2011.
[10] Bassett L.JSON必知必会 [M].魏嘉汛,译.北京:人民邮电出版社,2016.
[11] 宋敬彬.Linux典藏大系:Linux网络编程:第2版 [M].北京:清华大学出版社,2014.
[12] LIPPMAN S B,LAJOIE J,MOO B E. C++ Primer(中文版) [M].王刚,杨巨峰,译.第5版.北京:电子工业出版社,2018.
作者简介:王闽(1983—),男,汉族,福建福州人,工程师,本科,主要研究方向:通信技术研究、应急广播系统设计开发、软件工程。