談播出網(wǎng)絡(luò)利用串口傳輸已播出文件

  一 開發(fā)背景

  當(dāng)前,隨著電視播控數(shù)字化和網(wǎng)絡(luò)化的發(fā)展,多家電視臺的電視播控系統(tǒng)采用了網(wǎng)絡(luò)化的播出結(jié)構(gòu),但是當(dāng)該系統(tǒng)需要與外界計算機交換數(shù)據(jù)時又存在著播出網(wǎng)絡(luò)中的計算機如何預(yù)防病毒的問題,如何實現(xiàn)電視播控中心的播出網(wǎng)絡(luò)與外界進行安全的數(shù)據(jù)交換是一個重要的問題。

  唐山電視臺采用的是如圖1所示結(jié)構(gòu)的網(wǎng)絡(luò)化自動播出系統(tǒng),它由主備數(shù)據(jù)服務(wù)器、準(zhǔn)備站、主備播出站及網(wǎng)絡(luò)交換機組成,每一部分各自完成獨立的任務(wù),在此不在贅述。

圖1 唐山電視臺網(wǎng)絡(luò)化自動播出系統(tǒng)結(jié)構(gòu)圖

  在唐山電視臺電視播控中心,每天每套的節(jié)目播出結(jié)束后,當(dāng)天所有的已播出素材分別在相應(yīng)的播出站的本地硬盤保存成PARADOX數(shù)據(jù)表,為使廣告管理部門能夠?qū)Ω鱾頻道當(dāng)天的所有播出廣告節(jié)目進行內(nèi)容和時間的統(tǒng)計,需要將各個頻道已播出的PARADOX數(shù)據(jù)表傳輸給廣告管理部門,但是這些已播數(shù)據(jù)表如何從播出網(wǎng)絡(luò)傳輸給廣告管理部門的計算機呢?通過軟盤等移動存儲設(shè)備或通過網(wǎng)絡(luò)傳輸是我們首先想到的辦法,但考慮到網(wǎng)絡(luò)化自動播出系統(tǒng)要求較高的安全性,同時各種安全隱患中計算機病毒的危害表現(xiàn)最為嚴(yán)重,因為播出網(wǎng)絡(luò)一旦感染計算機病毒,它將導(dǎo)致整個播出系統(tǒng)無法正常工作、播出數(shù)據(jù)遭到破壞、網(wǎng)絡(luò)阻塞等,這對電視臺的安全播出來說將是致命的。對網(wǎng)絡(luò)化播出系統(tǒng)而言,計算機病毒感染的途徑主要有兩種,一種是通過受感染的軟盤或其他存儲介質(zhì)讀寫感染,這是最古老也是最有效的攻擊手段,通過受感染的軟盤啟動系統(tǒng)引導(dǎo)病毒進入系統(tǒng)引導(dǎo)區(qū)或系統(tǒng)分區(qū)表,對于存儲介質(zhì)的長期使用不可避免地會帶來計算機病毒的感染。另一種的病毒感染途徑就是通過網(wǎng)絡(luò)共享感染,如果靠網(wǎng)絡(luò)實現(xiàn)資源共享,而受病毒感染的文件共享所造成的惡果是傳統(tǒng)的病毒力所不及的,所以我們否決了采用軟盤或其他移動存儲設(shè)備拷貝已播播出表和將廣告管理部門的計算機與網(wǎng)絡(luò)化播出系統(tǒng)聯(lián)網(wǎng)的方法。

  基于對現(xiàn)有的運行狀況的分析,考慮到系統(tǒng)運行的要求,我們提出了基于串口通信傳輸數(shù)據(jù)的方案,設(shè)計獨立的數(shù)據(jù)傳輸協(xié)議,開發(fā)獨立的串口數(shù)據(jù)傳輸系統(tǒng),將網(wǎng)絡(luò)化播出系統(tǒng)的播后信息經(jīng)過串口線傳送到廣告管理部門的計算機。由于串口通信傳輸數(shù)據(jù)的協(xié)議都是特定的,自己根據(jù)系統(tǒng)特點設(shè)計,不是標(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ù)挠嬎銠C病毒的出現(xiàn),因此可以很好的保證網(wǎng)絡(luò)化播出系統(tǒng)的安全。

  二 實現(xiàn)串口傳輸文件的基本原理

  串行端口的本質(zhì)功能是作為CPU和串行設(shè)備間的編碼轉(zhuǎn)換器。當(dāng)數(shù)據(jù)從 CPU經(jīng)過串行端口發(fā)送出去時,字節(jié)數(shù)據(jù)轉(zhuǎn)換為串行的位;在接收數(shù)據(jù)時,串行的位被轉(zhuǎn)換為字節(jié)數(shù)據(jù)。Delphi語言是新一代可視化開發(fā)工具,它具有功能強大、簡便易用和代碼執(zhí)行速度快等特點,用Delphi開發(fā)串口通信軟件一般有兩種方法:一是利用Windows的通信API函數(shù),另一種是采用Microsoft的SPCCOM控件。這里我們采用了通過控件SPCCOM開發(fā)了串口傳輸已播數(shù)據(jù)表的應(yīng)用程序。

  * 進行程序設(shè)計時首先要設(shè)置好控件SPCCOM的各種屬性,SPCCOM包括以下屬性:CommName是用來填寫COM1、COM2…等串口的名字,在打開串口前,必須填寫好此值。設(shè)定BaudRate波特率9600,4800等,根據(jù)實際需要來定,在串口打開后也可更改波特率,實際波特率隨之更改。字節(jié)長度ByteSize可根據(jù)實際情況設(shè)定5/6/7/8等、Parity為奇偶校驗位、PBits為停止位、SendDataEmpty是一個布爾屬性,為true時表示發(fā)送緩存為空,或者發(fā)送隊列里沒有信息,為False時表示表示發(fā)送緩存不為空,或者發(fā)送隊列里有信息。

  * 開發(fā)串口傳輸應(yīng)用程序時,應(yīng)用程序若要使用串口進行通信,必須在使用之前向操作系統(tǒng)提出資源申請要求(打開串口),通信完成后必須釋放資源(關(guān)閉串口)。使用Startcomm過程用于打開串口,當(dāng)打開失敗時通常會報錯,錯誤主要有如下7種:第一,串口已經(jīng)打開;第二,打開串口錯誤;第三,文件句柄不是通訊句;第四,不能夠安裝通訊緩存;第五,不能產(chǎn)生事件;第六,不能產(chǎn)生讀進程;第七,不能產(chǎn)生寫進程。StopComm過程用于關(guān)閉串口,沒有返回值。函數(shù)WriteCommData(pDataToWrite: PChar;dwSizeofDataToWrite:Word ): boolean 用于發(fā)送一個字符串到寫線程,發(fā)送成功返回true,發(fā)送失敗返回false, 執(zhí)行此函數(shù)將立即得到返回值,發(fā)送操作隨后執(zhí)行。函數(shù)有兩個參數(shù),其中 pDatatowrite是要發(fā)送的字符串,dwSizeofDatatoWrite 是發(fā)送的長度。還有OnReceiveData,當(dāng)輸入緩存有數(shù)據(jù)時將觸發(fā)該事件,在這里可以對從串口收到的數(shù)據(jù)進行處理。Buffer中是收到的數(shù)據(jù),bufferlength是收到的數(shù)據(jù)長度。OnReceiveError 是當(dāng)接受數(shù)據(jù)時出現(xiàn)錯誤將觸發(fā)該事件。

  根據(jù)系統(tǒng)的特點,我們設(shè)計了應(yīng)用層的通訊協(xié)議,接收數(shù)據(jù)的一般處理方法,最基本的思路就是通過協(xié)議進行分析,所以協(xié)議的制定是至關(guān)重要的:

  首先要確定指令的起始點,從大量的數(shù)據(jù)流中將指令分離出來,沒有起始標(biāo)志的話,結(jié)果就是一串無效的數(shù)據(jù)。然后就是指令結(jié)束識別點,可以利用指令的長度(如果長度一定或有表示長度的數(shù)據(jù))或結(jié)束標(biāo)志來確定,當(dāng)然還可以利用下一條指令的指令頭。頭尾都明確之后,還有一種情況就是數(shù)據(jù)錯誤是的容錯,即發(fā)現(xiàn)不符合格式的指令,就將其拋掉或如要求重發(fā)。有效數(shù)據(jù)中如果增加一些冗余校驗,傳輸通訊將會更加可靠。保證每條數(shù)據(jù)能夠準(zhǔn)確的識別與傳輸。

  數(shù)據(jù)字段包括:類型|播出時間|標(biāo)識|標(biāo)題|節(jié)目長度|狀態(tài)|實播時間等,按照上述的數(shù)據(jù)格式封裝,進行數(shù)據(jù)的傳輸。系統(tǒng)包括了兩個部分,一個是發(fā)送端,另一個是接收端,安裝時發(fā)送端裝在源計算機上,接收端安裝在目的計算機。其中發(fā)送端運行于播出網(wǎng)絡(luò)中的一臺準(zhǔn)備站上,主要包括兩個主要模塊:其一是數(shù)據(jù)庫操作模塊。該模塊通過播出系統(tǒng)局域網(wǎng)實現(xiàn)對播后數(shù)據(jù)信息的識別并取出并打包封裝;其二是發(fā)送模塊。將打包封裝的數(shù)據(jù)發(fā)送到發(fā)送數(shù)據(jù)緩沖區(qū),發(fā)送數(shù)據(jù),包括起始位 、數(shù)據(jù)位 、校驗位 、停止位。接收端運行于播出網(wǎng)絡(luò)外的任一臺電腦上,主要實現(xiàn)接收串口緩沖區(qū)數(shù)據(jù),并根據(jù)數(shù)據(jù)封裝協(xié)議,拆分?jǐn)?shù)據(jù)包,將數(shù)據(jù)存儲在指定類型的數(shù)據(jù)字段之中,以便廣告管理部門人員使用。

  三 實際應(yīng)用

  目前較為常用的RS232串口有9針串口和25針串口,數(shù)據(jù)傳輸速率最大可到20Kbps,通信距離較近小于15m時,可以用電纜線直接連接標(biāo)準(zhǔn)RS232串口,若距離較遠(yuǎn),需附加調(diào)制解調(diào)器。RS232串口最為簡單且常用的是三線制接法,即地、接收數(shù)據(jù)和發(fā)送數(shù)據(jù)三腳相連,同一個串口的接收腳和發(fā)送腳直接用線相連,對9針串口和25針串口,均是2與3直接相連,當(dāng)源計算機端和目標(biāo)計算機端用RS232串口線連接好后,再分別在播出網(wǎng)絡(luò)的一臺準(zhǔn)備站即源計算機端安裝軟件的發(fā)送端,在播出網(wǎng)絡(luò)外的任意一臺計算機上安裝軟件的接收端,通過點擊發(fā)送端軟件和接收端軟件的設(shè)置鍵可以對計算機的串口號進行選擇,并且對已播PARADOX數(shù)據(jù)文件表的存儲路徑進行相應(yīng)的設(shè)置,如圖2所示,然后就可以傳輸播出站上的播后數(shù)據(jù)表文件了。在使用該應(yīng)用軟件傳輸播后數(shù)據(jù)表時應(yīng)同時打開接收端和發(fā)送端軟件,發(fā)送端位于播出網(wǎng)絡(luò)系統(tǒng)中,安裝發(fā)送端軟件的計算機可通過映射網(wǎng)絡(luò)驅(qū)動器的方式連接到各個播出站的存放播后PARADOX數(shù)據(jù)表的驅(qū)動器。在發(fā)送端選擇要傳輸?shù)牟ズ髷?shù)據(jù)表文件,并且接收到發(fā)送端給接收端的接收請求信號后,就可進行已播播出表文件的傳輸了,圖3顯示的是已播數(shù)據(jù)表文件的傳輸過程。這樣就實現(xiàn)了播后數(shù)據(jù)表的安全傳輸,充分保障了網(wǎng)絡(luò)化播出系統(tǒng)的安全。

圖2 文件接收設(shè)置

圖3 文件接收狀態(tài)

  總之,基于串口傳輸已播數(shù)據(jù)表文件使得唐山電視臺在播出網(wǎng)絡(luò)安全和已播數(shù)據(jù)共享之間得到了很好得結(jié)合,應(yīng)用一年多來取得了良好的效果,該種文件傳輸形式也將應(yīng)用到涉及計算機安全的其他方面。

作者:河北省唐山廣播電視局 林耐云 李碩 來源:《現(xiàn)代電視技術(shù)》


微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號,免費領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費領(lǐng)取《中國移動:5G網(wǎng)絡(luò)AI應(yīng)用典型場景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費領(lǐng)取《5G_6G毫米波測試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費領(lǐng)取《中國移動:6G至簡無線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費領(lǐng)取《《中國聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費領(lǐng)取《中國電信5GNTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費領(lǐng)取《中國移動算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點本月熱點

     

      最熱通信招聘

    業(yè)界最新資訊


      最新招聘信息