罗星屏
【摘要】在播出系统中,基于安全和稳定要求,核心设备均是通过串口实现控制。本文介绍了虚拟串口在播出中的新应用,解决了多个技术问题,并对未来的播出控制架构作了探索性研究,与同行分享。
引言
虚拟串口,不是指虚拟机上的串口,而是指通过USB、IP等扩展得到的逻辑串口资源,在操作系统里看到的是端口(COM和LPT)资源,这种扩展在物理机和虚拟机中都可实现。虚拟串口存在的形式多样,有近端的、远端的,有硬件的、逻辑的,接口方式有RS485、RS422、RS232等。在实际使用中,虚拟串口并不局限于上述范畴,本文探讨更加广义的虚拟串口技术应用。随着IP技术的发展和普及,基于IP协议的虚拟串口软、硬件产品可选择性较多,这类技术可统称Serial over IP。
播出系统是全台安全要求最高的系统,基于这个要求,核心设备如切换台、视频服务器等都只支持串口控制,对应的串口控制协议分别是Automation、VDCP。这是国际上电视播出的通常做法,事实证明串口控制是稳定、安全、实用的。
本文主要探讨虚拟串口在远程上载控制、播控软件重大BUG排除、安全隔离、播出主备并行控制等方面的创新应用。
一.虚拟串口在远程上载控制中的应用
我台新闻中心搬迁到新址大楼后,新闻频道的机构、人员、节目生产系统与当时的播出系统分别位于嘉陵江的两岸,直线距离14公里。按照广告管理职责要求,新闻频道广告送播人员每天需要对时段广告进行上载更新,这项操作是在播出系统完成。另外,新闻频道广告送播人员还要负责新闻栏目插播广告的更新及片段合成,这项操作在节目生产系统里完成。由于节目生产系统和播出系统距离远,靠人员来回奔波显然是不现实的。那么,如何才能解决新闻频道的广告上载问题呢?
新闻中心搬迁时,我台现址的播出网络已延伸到新址,用于新闻频道节目、字幕编排,并且在两地也有HD SDI链路互传信号。我们采用的方案是将上载工作站部署到新闻制作机房,让该频道广告送播人员远程上载广告到现址的播出网里。解决本次远程上载的主要难点是视频服务器的远程控制,如果采用传统的方法,除需购买特殊的设备,还要占用城域光纤资源,可行性较差。因此,我们采用基于网络的虚拟串口技术,解决远程控制问题,如图1。
本方案中,虚拟串口采用MOXA Nport5430,该设备有4个串口,满足本次应用。首先给5430分配一个IP地址,制作好RS422电缆、网线等。各设备离线开机,确保IP正确后,插上网线,调整各设备参数。登录Nport5430 WEB 管理, 把所有port的运行模式Operation mode调整为实时串口realcom,并把串口参数设为VDCP常规参数:38400、8、1、O、n。在上载工作站上安装MOXA驱动管理软件,得到4个串口资源,在上载软件的配置、操作习惯上,与本地上载没有区别。上线调试成功,运行稳定,直到2017年4月播出也搬迁到新址后,该远程上载停止使用。
需要注意的是,虚拟串口的通信参数的设置必须在串口盒子上操作,因为本地得到的串口资源是TCP/IP虚拟的,如果被控设备的参数有变化,也需要在串口盒子上修改。
二.虚拟串口在排除播出控制软件BUG中的应用
我台全频道高清播总控于2016年底建成,2017年4月完成所有频道向新播控系统的转移,按照播控系统的运行规律,投入使用后的一年半时间内,都属观察期,出现BUG可能性较大。2018年初,值班人员在播出控制工作站上进行主备“接管”操作中,系统意外的停止了正在播出的节目,转而播出下一条节目的现象,在播出中,这个叫“触发”。最严重的是有一天,在间隔13分钟的时间内,故障出现了两次,这个BUG无疑是致命的。本次排除BUG的过程细节较多,但限于篇幅,本节只交流实验原理,不作过多的配图。
播出控制系统如图2,主备控制工作站经过两个RS422倒换器连接主备切换台、主备视频服务器、特殊功能面板、字幕系统。我台的播出控制模式是主、备完全控制,即在某时刻,由一台工作站控制该频道的所有设备,当在线工作站宕机后,自动倒换到另一台工作站控制所有设备。在日常维护、处理播表时,也可以手动操作倒换,这个操作通过鼠标点击“接管”按钮或在特殊功能面板上按键执行。
经过询问值班人员、调取监控等,发现无人为因素、无操作失误等情况,我们把相关的编排和日志发给厂家,但厂家也未能定位原因。于是播控部成立专门的小组,组织力量攻克这个难题。
在对故障发生时的现象進行多次梳理后,发现了一个极其重要的突破点。在播出软件用鼠标“触发”时,在点击“触发”按钮后,会弹出一个确认界面,确认后才会生效执行。但根据当班值班人员的描述和监控拍到的工作站屏幕,并没有出现这类界面。在对系统的进一步实验中,发现在特殊功能面板上执行“触发”时,不需要确认。因此,我们认为,在进行“接管”操作时,特殊功能面板发送了“触发”指令。这个假设看似荒谬,但有理有据,值得进一步验证。
接下来的第一步,便是设法捕捉特殊功能面板发出的“触发”指令。要捕捉特殊功能面板发出的“触发”指令实属不易,但方法总是有的,经过各种尝试,我们采用最简单的软件方法,不改造线路,实施简单、速度快。我们找到了一款串口监测软件-Commonitor,可以非常简单的捕捉串口数据,希望捕捉到“触发”指令。Commonitor的操作非常简单,只需注意,要先启动端口监测,再打开播出软件。于是开启该软件,对特殊功能面板对应的串口com7进行监测,手动操作“接管”按钮,争取尽早捕获到“触发”指令。在正常工作状态和接管操作过程中,Commonitor捕捉到的是播出软件与特殊功能面板每秒一次的握手信息,分别是16进制23、24。由于该事故的发生率为千分之一(事后总结的概率)很低,几天后仍没捕获到。我们采用鼠标自动点击软件,在主备工作站上模拟人工操作。果然方法得当,效果不一样,不到半天就出现了“触发”节目的现象,并成功捕获了一个“触发”疑似指令:01 45 52 30 30 31 37 04。
接下来,将对疑似指令进行验证。经过分析,仍然采用纯软件,用虚拟串口的方法。验证要用到三款软件,分别是TCP/UDP Debug、USERCOM、串口网络通道转发工具。采用TCP/IP协议虚拟串口,用TCP Server的多连接,在正常的通讯链路中,插入疑似指令,看是否触发,如图3。
系统中,用USER-COM虚拟一个串口——TCP Client管道,串口端为com20,供播出软件调用,TCP Client则用于连接串口网络转发的TCP Server端。串口转发工具是TCP Server---串口调用管道,TCP Server端与前一个管道的TCP Client连接,串口调用端则调用com7。这样,播出软件就能与特殊功能面板正常通讯。图3的关键是串口转发工具的TCP Server端,它接受多连接,TCP/UDP Debug联上之后,便能向链路插入疑似指令。通过验证,证实了01 45 52 30 30 31 37 04的确能触发节目。但进一步的测试发现,真正的人工触发,面板发出的指令是:01 54 4B 30 30 31 46 04。于是对特殊功能面板的8个按键依次测试,发现播出软件只是识别面板的第4字节,来实现各种功能,巧的是疑似指令的第4字节与触发指令的对应字节相同,“触发”事故就发生了。
由于该面板实际使用中很少用,断电即可解决这个问题。但实验不能就此为止,为何会在倒换的时候发出“触发指令”,这个指令是在工作站端口捕获到的,在面板和工作站之间还有RS422倒换器。那到底是某个设备单独导致的,还是有更加复杂的机理导致的呢?通过分析,发现RS422倒换器是简单的继电器倒换,原理和电路很简单,没什么可分析测试的,于是把重点放在特殊功能面板上。用闲置的特殊功能面板,与测试电脑搭建系统,模拟工作站与特殊功能面板的握手/应答,并用特殊的方法模拟RS422倒换器的通断,就是用导线摩擦拉丝钢板,利用拉丝钢板的凹凸制造频繁的通断,同样用commonitor捕获“触发指令”。因为通信速率低,捕捉很难。于是在串口收发数据的软件上,提高握手频率至每秒100次,很快便捕获了“触发指令”。通过仔细分析捕获的数据,发现,是由于线路的通断,切断了字节,在切断时,特殊功能面板没有发出异常数据,但在后续数据恢复正常时,特殊功能面板会发出一个通讯恢复正常的消息。这个通讯恢复正常的消息,正式前面得到验证的“触发”指令。从上面的实验看出,播出软件、特殊功能面板、RS422倒换器三者共同作用,产生了“接管”变“触发”的BUG。
事到如此,整个事故机理真相大白,与软件厂商沟通后,得到进一步确认。厂家同意修改软件,按全字段匹配来识别特殊功能面板。由于特殊功能面板实际很少使用,并且播出软件运行稳定,因此我们对特殊功能面板直接断电停用,而软件不作更新,“接管”导致“触发”节目的故障此后没有再次发生。
三.虚拟串口在安全隔离中的应用
由于安全的要求,播出系统与其它网络不能直接连接。然而,与其它业务系统连接的需求仍然存在,本节主要介绍,用虚拟串口模拟网闸功能,从办公网获取NTP时间,作为播出网的备用NTP服务授时,如图4。
在大多数情况下,虚拟串口都当做实时串口使用REAL COM,但实际上,虚拟串口设备的工作模式较多。在本案例中,用了两个虚拟串口服务器,分别以UDP服务器和UDP客户机的方式出现。UDP客户机的网口连接办公网,在NPort5430 的web页面设置目标NTP服务器的地址是阿里云120.25.115.20,端口设为123(NTP专用端口),并将串口设为缺省设置9600、8、1、n、n。UDP服务器的网口连接播出网,在NPort5430的web页面设置监听端口为123,该通道就变为NTP 服务器,同时也将串口设为缺省设置9600、8、1、n、n。用RS422交叉线将两个盒子对应的RS422连接,上线测试,成功。
在本应用中,播出网和办公网之间采用RS422连接,没有网络及TCP/ IP连接,黑客和病毒没有入侵和传播路径。需要注意的是,NPort5430作为NTP Server授时,连接的终端数只有4个,需要用服务器二次授时,该方案实际使用中,稳定可靠。
四.虚拟串口技术在主备并行控制中的应用
根据国家广电总局62令规定,省级台的电视播出系统必须是双链路,包括电源、视频服务器、切换台、控制工作站,不能有任何单点。在现实的情况下,播出系统的重要设备如切换台、视频服务器等都只支持串口控制,并且只允许一个串口控制。在以往的系统中,出现过三种控制模式,主备独立控制、主备完全控制、主备混合控制。主备独立控制模式中,主工作站控制主切换台、主视频服务器,备工作站控制备切换台、备视频服务器。该方式结构清晰,没有倒换操作,缺点是一台工作站宕机后,一半的设备失控。为了规避这个问题,厂商推出主备完全控制模式,主备切换台、主备视频服务器由一台工作站控制,一台工作站宕机后,自动倒换到另外一台工作站,该模式规避了独立控制模式的设备失控问题。但是,倒换操作如果发生在短节目时,可能会有丢失指令,而导致不切换、不播素材的现象。另外一个不容忽视的问题是,如果在线的工作站处于假死状态,则不会自动倒换,就会主备全部停播,导致事故。混合主备模式是在主备完全控制的基础上,把备RS422倒换器设定为手动倒换。正常工作时,主工作站控制主视频服务器、主切换台,当主工作站宕机后,自动倒换到备工作站。而备工作站,控制备切换台、备视频服务器,当备机宕机时,RS422不会自动倒换到主机,只能手动倒换。该控制模式中,主备工作站都能执行素材到位确认,并且任何一台工作站假死时,都不会出现主备完全停播的情况。該模式的缺点是,结构不清晰,值班员判断和执行倒换的时机不易把握,应急处置时,需要对信号切换和控制切换联动操作。
主备播出并行控制模式,是我们一直在探讨的课题,也是本文的重点,该模式如能成功推向应用,将改变RS422倒换器在播出控制中的历史。该模式的主要思路是,用虚拟串口汇集主备工作站的控制指令,实现主备播出工作站对主备切换台、主备视频服务器的并行控制。该模式有两个技术依据,第一是基于IP的虚拟串口对主备工作站的指令汇集作用。第二是,切换台、视频服务器对两个时间紧挨着的、相同指令的正确响应。并行控制模式避免了工作站假死、倒换丢失指令、人工操作延误时机等缺点,是完全无感知的主备并行控制模式,如图5。该方案中,只需要对主备工作站添加相同的虚拟串口,如图中com3,IP地址指向同一个Nport5430的同一个串口单元即可。由于Nport5430内没有运行任何软件,只需简单的配置即可,因此,如果后期损坏,直接更换或替换别的产品即可。
我台高清播总控系统建设中,我们对该模式进行了在线测试,证明是可行的,与软件厂商进行了勾通,准备推向实用。在实测中,也发现些问题需要改进,比如由于软件频繁查询视频服务器,致使播短节目如5秒广告时,播出会出现自动垫片的现象,需要优化代码才能消除此类现象。另外、主备工作站的指令要同时到达切换台、视频服务器,对系统的授时精度、主备软件的响应速度要求极高,否则会造成指令交叉,致使设备误动作。
由于当时高清播出上线时间紧,所以没有采纳该模式。目前,我台正在规划4k播出频道,播出工作站的控制模式又被提上议题。改进上述缺陷后,如能有效提高安全性、可靠性,就可在4k播出系统中推进应用。B&P