談播出網(wǎng)絡(luò)利用串口傳輸已播出文件
當(dāng)前,隨著電視播控?cái)?shù)字化和網(wǎng)絡(luò)化的發(fā)展,多家電視臺(tái)的電視播控系統(tǒng)采用了網(wǎng)絡(luò)化的播出結(jié)構(gòu),但是當(dāng)該系統(tǒng)需要與外界計(jì)算機(jī)交換數(shù)據(jù)時(shí)又存在著播出網(wǎng)絡(luò)中的計(jì)算機(jī)如何預(yù)防病毒的問題,如何實(shí)現(xiàn)電視播控中心的播出網(wǎng)絡(luò)與外界進(jìn)行安全的數(shù)據(jù)交換是一個(gè)重要的問題。
唐山電視臺(tái)采用的是如圖1所示結(jié)構(gòu)的網(wǎng)絡(luò)化自動(dòng)播出系統(tǒng),它由主備數(shù)據(jù)服務(wù)器、準(zhǔn)備站、主備播出站及網(wǎng)絡(luò)交換機(jī)組成,每一部分各自完成獨(dú)立的任務(wù),在此不在贅述。
本文引用地址:http://2s4d.com/article/201706/357768.htm 在唐山電視臺(tái)電視播控中心,每天每套的節(jié)目播出結(jié)束后,當(dāng)天所有的已播出素材分別在相應(yīng)的播出站的本地硬盤保存成PARADOX數(shù)據(jù)表,為使廣告管理部門能夠?qū)Ω鱾€(gè)頻道當(dāng)天的所有播出廣告節(jié)目進(jìn)行內(nèi)容和時(shí)間的統(tǒng)計(jì),需要將各個(gè)頻道已播出的PARADOX數(shù)據(jù)表傳輸給廣告管理部門,但是這些已播數(shù)據(jù)表如何從播出網(wǎng)絡(luò)傳輸給廣告管理部門的計(jì)算機(jī)呢?通過軟盤等移動(dòng)存儲(chǔ)設(shè)備或通過網(wǎng)絡(luò)傳輸是我們首先想到的辦法,但考慮到網(wǎng)絡(luò)化自動(dòng)播出系統(tǒng)要求較高的安全性,同時(shí)各種安全隱患中計(jì)算機(jī)病毒的危害表現(xiàn)最為嚴(yán)重,因?yàn)椴コ鼍W(wǎng)絡(luò)一旦感染計(jì)算機(jī)病毒,它將導(dǎo)致整個(gè)播出系統(tǒng)無法正常工作、播出數(shù)據(jù)遭到破壞、網(wǎng)絡(luò)阻塞等,這對(duì)電視臺(tái)的安全播出來說將是致命的。對(duì)網(wǎng)絡(luò)化播出系統(tǒng)而言,計(jì)算機(jī)病毒感染的途徑主要有兩種,一種是通過受感染的軟盤或其他存儲(chǔ)介質(zhì)讀寫感染,這是最古老也是最有效的攻擊手段,通過受感染的軟盤啟動(dòng)系統(tǒng)引導(dǎo)病毒進(jìn)入系統(tǒng)引導(dǎo)區(qū)或系統(tǒng)分區(qū)表,對(duì)于存儲(chǔ)介質(zhì)的長(zhǎng)期使用不可避免地會(huì)帶來計(jì)算機(jī)病毒的感染。另一種的病毒感染途徑就是通過網(wǎng)絡(luò)共享感染,如果靠網(wǎng)絡(luò)實(shí)現(xiàn)資源共享,而受病毒感染的文件共享所造成的惡果是傳統(tǒng)的病毒力所不及的,所以我們否決了采用軟盤或其他移動(dòng)存儲(chǔ)設(shè)備拷貝已播播出表和將廣告管理部門的計(jì)算機(jī)與網(wǎng)絡(luò)化播出系統(tǒng)聯(lián)網(wǎng)的方法。
基于對(duì)現(xiàn)有的運(yùn)行狀況的分析,考慮到系統(tǒng)運(yùn)行的要求,我們提出了基于串口通信傳輸數(shù)據(jù)的方案,設(shè)計(jì)獨(dú)立的數(shù)據(jù)傳輸協(xié)議,開發(fā)獨(dú)立的串口數(shù)據(jù)傳輸系統(tǒng),將網(wǎng)絡(luò)化播出系統(tǒng)的播后信息經(jīng)過串口線傳送到廣告管理部門的計(jì)算機(jī)。由于串口通信傳輸數(shù)據(jù)的協(xié)議都是特定的,自己根據(jù)系統(tǒng)特點(diǎn)設(shè)計(jì),不是標(biāo)準(zhǔn)協(xié)議,并且串口通訊采用單向傳輸方式,只能從播出網(wǎng)絡(luò)向網(wǎng)外傳輸數(shù)據(jù),而網(wǎng)外數(shù)據(jù)不能向播出網(wǎng)絡(luò)內(nèi)部傳輸數(shù)據(jù),而且目前也沒有發(fā)現(xiàn)基于串口傳輸?shù)挠?jì)算機(jī)病毒的出現(xiàn),因此可以很好的保證網(wǎng)絡(luò)化播出系統(tǒng)的安全。
二 實(shí)現(xiàn)串口傳輸文件的基本原理
串行端口的本質(zhì)功能是作為CPU和串行設(shè)備間的編碼轉(zhuǎn)換器。當(dāng)數(shù)據(jù)從 CPU經(jīng)過串行端口發(fā)送出去時(shí),字節(jié)數(shù)據(jù)轉(zhuǎn)換為串行的位;在接收數(shù)據(jù)時(shí),串行的位被轉(zhuǎn)換為字節(jié)數(shù)據(jù)。Delphi語言是新一代可視化開發(fā)工具,它具有功能強(qiáng)大、簡(jiǎn)便易用和代碼執(zhí)行速度快等特點(diǎn),用Delphi開發(fā)串口通信軟件一般有兩種方法:一是利用Windows的通信API函數(shù),另一種是采用Microsoft的SPCCOM控件。這里我們采用了通過控件SPCCOM開發(fā)了串口傳輸已播數(shù)據(jù)表的應(yīng)用程序。
* 進(jìn)行程序設(shè)計(jì)時(shí)首先要設(shè)置好控件SPCCOM的各種屬性,SPCCOM包括以下屬性:CommName是用來填寫COM1、COM2…等串口的名字,在打開串口前,必須填寫好此值。設(shè)定BaudRate波特率9600,4800等,根據(jù)實(shí)際需要來定,在串口打開后也可更改波特率,實(shí)際波特率隨之更改。字節(jié)長(zhǎng)度ByteSize可根據(jù)實(shí)際情況設(shè)定5/6/7/8等、Parity為奇偶校驗(yàn)位、PBits為停止位、SendDataEmpty是一個(gè)布爾屬性,為true時(shí)表示發(fā)送緩存為空,或者發(fā)送隊(duì)列里沒有信息,為False時(shí)表示表示發(fā)送緩存不為空,或者發(fā)送隊(duì)列里有信息。
* 開發(fā)串口傳輸應(yīng)用程序時(shí),應(yīng)用程序若要使用串口進(jìn)行通信,必須在使用之前向操作系統(tǒng)提出資源申請(qǐng)要求(打開串口),通信完成后必須釋放資源(關(guān)閉串口)。使用Startcomm過程用于打開串口,當(dāng)打開失敗時(shí)通常會(huì)報(bào)錯(cuò),錯(cuò)誤主要有如下7種:第一,串口已經(jīng)打開;第二,打開串口錯(cuò)誤;第三,文件句柄不是通訊句;第四,不能夠安裝通訊緩存;第五,不能產(chǎn)生事件;第六,不能產(chǎn)生讀進(jìn)程;第七,不能產(chǎn)生寫進(jìn)程。StopComm過程用于關(guān)閉串口,沒有返回值。函數(shù)WriteCommData(pDataToWrite: PChar;dwSizeofDataToWrite:Word ): boolean 用于發(fā)送一個(gè)字符串到寫線程,發(fā)送成功返回true,發(fā)送失敗返回false, 執(zhí)行此函數(shù)將立即得到返回值,發(fā)送操作隨后執(zhí)行。函數(shù)有兩個(gè)參數(shù),其中 pDatatowrite是要發(fā)送的字符串,dwSizeofDatatoWrite 是發(fā)送的長(zhǎng)度。還有OnReceiveData,當(dāng)輸入緩存有數(shù)據(jù)時(shí)將觸發(fā)該事件,在這里可以對(duì)從串口收到的數(shù)據(jù)進(jìn)行處理。Buffer中是收到的數(shù)據(jù),bufferlength是收到的數(shù)據(jù)長(zhǎng)度。OnReceiveError 是當(dāng)接受數(shù)據(jù)時(shí)出現(xiàn)錯(cuò)誤將觸發(fā)該事件。
根據(jù)系統(tǒng)的特點(diǎn),我們?cè)O(shè)計(jì)了應(yīng)用層的通訊協(xié)議,接收數(shù)據(jù)的一般處理方法,最基本的思路就是通過協(xié)議進(jìn)行分析,所以協(xié)議的制定是至關(guān)重要的:
首先要確定指令的起始點(diǎn),從大量的數(shù)據(jù)流中將指令分離出來,沒有起始標(biāo)志的話,結(jié)果就是一串無效的數(shù)據(jù)。然后就是指令結(jié)束識(shí)別點(diǎn),可以利用指令的長(zhǎng)度(如果長(zhǎng)度一定或有表示長(zhǎng)度的數(shù)據(jù))或結(jié)束標(biāo)志來確定,當(dāng)然還可以利用下一條指令的指令頭。頭尾都明確之后,還有一種情況就是數(shù)據(jù)錯(cuò)誤是的容錯(cuò),即發(fā)現(xiàn)不符合格式的指令,就將其拋掉或如要求重發(fā)。有效數(shù)據(jù)中如果增加一些冗余校驗(yàn),傳輸通訊將會(huì)更加可靠。保證每條數(shù)據(jù)能夠準(zhǔn)確的識(shí)別與傳輸。
數(shù)據(jù)字段包括:類型|播出時(shí)間|標(biāo)識(shí)|標(biāo)題|節(jié)目長(zhǎng)度|狀態(tài)|實(shí)播時(shí)間等,按照上述的數(shù)據(jù)格式封裝,進(jìn)行數(shù)據(jù)的傳輸。系統(tǒng)包括了兩個(gè)部分,一個(gè)是發(fā)送端,另一個(gè)是接收端,安裝時(shí)發(fā)送端裝在源計(jì)算機(jī)上,接收端安裝在目的計(jì)算機(jī)。其中發(fā)送端運(yùn)行于播出網(wǎng)絡(luò)中的一臺(tái)準(zhǔn)備站上,主要包括兩個(gè)主要模塊:其一是數(shù)據(jù)庫(kù)操作模塊。該模塊通過播出系統(tǒng)局域網(wǎng)實(shí)現(xiàn)對(duì)播后數(shù)據(jù)信息的識(shí)別并取出并打包封裝;其二是發(fā)送模塊。將打包封裝的數(shù)據(jù)發(fā)送到發(fā)送數(shù)據(jù)緩沖區(qū),發(fā)送數(shù)據(jù),包括起始位 、數(shù)據(jù)位 、校驗(yàn)位 、停止位。接收端運(yùn)行于播出網(wǎng)絡(luò)外的任一臺(tái)電腦上,主要實(shí)現(xiàn)接收串口緩沖區(qū)數(shù)據(jù),并根據(jù)數(shù)據(jù)封裝協(xié)議,拆分?jǐn)?shù)據(jù)包,將數(shù)據(jù)存儲(chǔ)在指定類型的數(shù)據(jù)字段之中,以便廣告管理部門人員使用。
三 實(shí)際應(yīng)用
目前較為常用的RS232串口有9針串口和25針串口,數(shù)據(jù)傳輸速率最大可到20Kbps,通信距離較近小于15m時(shí),可以用電纜線直接連接標(biāo)準(zhǔn)RS232串口,若距離較遠(yuǎn),需附加調(diào)制解調(diào)器。RS232串口最為簡(jiǎn)單且常用的是三線制接法,即地、接收數(shù)據(jù)和發(fā)送數(shù)據(jù)三腳相連,同一個(gè)串口的接收腳和發(fā)送腳直接用線相連,對(duì)9針串口和25針串口,均是2與3直接相連,當(dāng)源計(jì)算機(jī)端和目標(biāo)計(jì)算機(jī)端用RS232串口線連接好后,再分別在播出網(wǎng)絡(luò)的一臺(tái)準(zhǔn)備站即源計(jì)算機(jī)端安裝軟件的發(fā)送端,在播出網(wǎng)絡(luò)外的任意一臺(tái)計(jì)算機(jī)上安裝軟件的接收端,通過點(diǎn)擊發(fā)送端軟件和接收端軟件的設(shè)置鍵可以對(duì)計(jì)算機(jī)的串口號(hào)進(jìn)行選擇,并且對(duì)已播PARADOX數(shù)據(jù)文件表的存儲(chǔ)路徑進(jìn)行相應(yīng)的設(shè)置,如圖2所示,然后就可以傳輸播出站上的播后數(shù)據(jù)表文件了。在使用該應(yīng)用軟件傳輸播后數(shù)據(jù)表時(shí)應(yīng)同時(shí)打開接收端和發(fā)送端軟件,發(fā)送端位于播出網(wǎng)絡(luò)系統(tǒng)中,安裝發(fā)送端軟件的計(jì)算機(jī)可通過映射網(wǎng)絡(luò)驅(qū)動(dòng)器的方式連接到各個(gè)播出站的存放播后PARADOX數(shù)據(jù)表的驅(qū)動(dòng)器。在發(fā)送端選擇要傳輸?shù)牟ズ髷?shù)據(jù)表文件,并且接收到發(fā)送端給接收端的接收請(qǐng)求信號(hào)后,就可進(jìn)行已播播出表文件的傳輸了,圖3顯示的是已播數(shù)據(jù)表文件的傳輸過程。這樣就實(shí)現(xiàn)了播后數(shù)據(jù)表的安全傳輸,充分保障了網(wǎng)絡(luò)化播出系統(tǒng)的安全。
總之,基于串口傳輸已播數(shù)據(jù)表文件使得唐山電視臺(tái)在播出網(wǎng)絡(luò)安全和已播數(shù)據(jù)共享之間得到了很好得結(jié)合,應(yīng)用一年多來取得了良好的效果,該種文件傳輸形式也將應(yīng)用到涉及計(jì)算機(jī)安全的其他方面。
評(píng)論