劉 靜,黨宏社,劉星亮,楊小青
(陜西科技大學(xué)電氣與信息工程學(xué)院,陜西 西安 710021)
責(zé)任編輯:任健男
當(dāng)前,新興的移動數(shù)字電視廣播作為模擬信號廣播電視的延伸,大有替代傳統(tǒng)無線廣播的趨勢。數(shù)字電視發(fā)射機(jī)控制器是實(shí)現(xiàn)發(fā)射機(jī)智能化的核心。而發(fā)射機(jī)控制系統(tǒng)的通信網(wǎng)絡(luò),為整個控制器提供控制和信息通道,是發(fā)射機(jī)控制器的重要部分。在分布式系統(tǒng)中,分機(jī)常采用多機(jī)通信方式,由于RS-485通信接口的傳輸距離遠(yuǎn),連線少,所以被認(rèn)為是一種很好的通信模式[1-2]。
整個發(fā)射機(jī)控制系統(tǒng)采用DCS(Distributed Control System)設(shè)計(jì)結(jié)構(gòu)。這種分布式控制系統(tǒng)不僅可靠性高,靈活性好,也易于維護(hù),當(dāng)某一局部出現(xiàn)故障時,并不影響整個系統(tǒng)的正常運(yùn)行。因此具有管理、操作集中,而危險不集中的優(yōu)點(diǎn)。發(fā)射機(jī)控制系統(tǒng)整體框圖如圖1所示。該控制系統(tǒng)由主控板、電源控制板、其他控制板、功放控制板、功放檢測板(6塊)以及上位機(jī)等部分組成。主控單元通過通信接口RS-485分別與電源控制單元、功放控制單元、其他控制單元連接,功放控制單元通過通信接口RS-485與功放檢測板連接。該系統(tǒng)所有通信均采用主從方式,每一次通信先由主機(jī)發(fā)起,從機(jī)響應(yīng),各從機(jī)之間不能直接通信,必須經(jīng)過主機(jī)中轉(zhuǎn)。本文主要以主控板和下面3個分機(jī)之間的通信為例,詳細(xì)描述多機(jī)通信在數(shù)字電視發(fā)射機(jī)控制器中的應(yīng)用。
圖1 系統(tǒng)整體框圖
由于工作環(huán)境的惡劣以及實(shí)時性的要求,控制系統(tǒng)采用多單片機(jī)協(xié)作的方式,控制芯片也采用小型化、穩(wěn)定性高、實(shí)時性好的單片機(jī)。主控芯片W77E516,內(nèi)含64 kbyte的可重復(fù)編程的Flash ROM,具有1 kbyte的片內(nèi)數(shù)據(jù)存儲器,在相同頻率下,根據(jù)不同指令類型,其運(yùn)行速度是標(biāo)準(zhǔn)8051的1.5~3倍,由于采用全靜態(tài)CMOS設(shè)計(jì),功耗也比標(biāo)準(zhǔn)8051低。分系統(tǒng)采用較為常用的AT89S52和W77E58。
發(fā)送和接收驅(qū)動器均選用MAXim公司的MAX485。MAX485為半雙工通信方式,結(jié)構(gòu)和引腳都非常簡單,易于應(yīng)用。
為了提高抗干擾能力,需要選取匹配電阻,其阻值一般約等于傳輸電纜的特性阻抗[3]。匹配電阻一般在RS-485網(wǎng)絡(luò)中取120 Ω。
在通信協(xié)議的設(shè)計(jì)上將握手協(xié)議與差錯控制相結(jié)合,采用先“緊”后“松”的協(xié)議設(shè)計(jì)思想[4],即在通信開始傳輸最關(guān)鍵的地址幀和命令幀時充分考慮到傳輸丟失和傳輸誤碼的影響,雖然降低了通信效率,但提高了可靠性,即犧牲時間換取可靠性。而在之后的數(shù)據(jù)傳輸階段,則認(rèn)為是在保證了無傳輸丟失和無傳輸誤碼的條件下通信,因此數(shù)據(jù)的發(fā)送接收和校驗(yàn)程序設(shè)計(jì)得較為簡便,即犧牲可靠性換取時間。筆者將兩者有機(jī)結(jié)合,設(shè)計(jì)出了一種簡單可靠的多機(jī)應(yīng)答式通信協(xié)議。
系統(tǒng)共分3個從機(jī),分配的地址分別為01H,02H,03H。通信過程分為3個部分:地址的溝通,即主機(jī)向從機(jī)發(fā)送地址,被選中的從機(jī)要回復(fù)本機(jī)地址給主機(jī);命令的溝通,即在主機(jī)接收到正確的從機(jī)地址后發(fā)送命令給被選中的從機(jī),該從機(jī)回復(fù)相同的命令給主機(jī);有效數(shù)據(jù)的傳送,即在主機(jī)接收到從機(jī)回復(fù)的正確命令后,發(fā)送設(shè)置量給從機(jī),或要求從機(jī)上傳數(shù)據(jù)。在這3個部分中,若任何部分溝通出現(xiàn)問題,則退出此次通信。系統(tǒng)通信的波特率采用9600 band,通信數(shù)據(jù)長度可根據(jù)實(shí)際需要來定,具體的數(shù)據(jù)幀格式如圖2所示。
圖2 數(shù)據(jù)幀格式
有效數(shù)據(jù)均以ASCII碼形式發(fā)送,對數(shù)據(jù)的校驗(yàn)采用異或方式。通信過程的3個部分中,地址的溝通流程如圖3所示(其中M用于記錄重發(fā)的次數(shù)),命令的溝通與地址溝通相似,區(qū)別僅在于在發(fā)送地址幀時TB8=1,而發(fā)送命令幀時TB8=0。對于有效數(shù)據(jù)的傳送部分,也采取限時等待、限次重發(fā)等措施,確保數(shù)據(jù)傳送的可靠性。
圖3 數(shù)據(jù)幀格式
主機(jī)和從機(jī)流程分別如圖4、圖5所示。其中0xFF表示校驗(yàn)不正確,接收的數(shù)據(jù)有誤;0xEE表示校驗(yàn)正確,接收數(shù)據(jù)準(zhǔn)確。由于主機(jī)采用中斷方式接收數(shù)據(jù),重發(fā)次數(shù)可由從機(jī)加以控制,因此主機(jī)無須再考慮。
圖4 數(shù)據(jù)幀格式
圖5 數(shù)據(jù)幀格式
為解決數(shù)據(jù)傳輸過程中可能會出現(xiàn)數(shù)據(jù)丟失或數(shù)據(jù)傳輸出錯的情況,分別采用以下方式來解決:
1)數(shù)據(jù)丟失時,系統(tǒng)采用超時處理方法,即發(fā)送方如果在一定的時間內(nèi)得不到響應(yīng)則重發(fā)前一幀數(shù)據(jù)或命令。
2)數(shù)據(jù)傳輸出錯時,在幀結(jié)構(gòu)中增加校驗(yàn)字節(jié),跟隨數(shù)據(jù)一起發(fā)送出去,而接收方首先要對傳來的數(shù)據(jù)進(jìn)行校驗(yàn),如果正確,則接收下來,否則丟棄本次數(shù)據(jù)。
由于外界干擾,在實(shí)際數(shù)據(jù)或命令傳輸過程中,可能會出現(xiàn)數(shù)據(jù)/命令幀丟失或出錯的情況,這樣有時會導(dǎo)致雙方都處于等待對方數(shù)據(jù)/命令幀的狀態(tài),即進(jìn)入死鎖狀態(tài)[5]。為消除死鎖現(xiàn)象,采取以下方法來解決:
1)限時等待的方法。即對等待時間加以限制,不是無休止地等待下去。在等待時間內(nèi),如果接收到對方回應(yīng)則程序不再等待,繼續(xù)往下執(zhí)行;但若超出等待時間,程序作相應(yīng)處理,不再繼續(xù)等待,因此克服了死鎖現(xiàn)象。
2)限次重發(fā)的方法。限次重發(fā),顧名思義,限制重發(fā)的次數(shù)。如果接收方在一定的時間內(nèi)沒有接收到對方的回應(yīng),則將上一幀數(shù)據(jù)/命令重新再發(fā)一次,然后再次進(jìn)入等待對方回應(yīng)的狀態(tài),若此情況連續(xù)持續(xù)3次,還是沒有接收到對方的回應(yīng),則認(rèn)為通信線路或?qū)Ψ桨l(fā)生故障,退出此次通信。
由于主機(jī)和從機(jī)速度不匹配,主機(jī)CPU執(zhí)行指令速度比較快,而從機(jī)相對較慢,在通信頻繁時,從機(jī)會反應(yīng)不過來。因此采用兩種方法來解決,一是加入必要的延時程序,二是和同一從機(jī)通信的時間間隔拉長,例如用一變量專門累計(jì)主程序循環(huán)的次數(shù),從0開始一直累加到5,當(dāng)這個變量為5時才和某一確定的從機(jī)進(jìn)行通信,然后此變量又歸0,相當(dāng)于主機(jī)的程序循環(huán)5次才和從機(jī)通信1次。
文中所述的基于RS-485的主從式多機(jī)通信模式在數(shù)字電視發(fā)射機(jī)控制系統(tǒng)中進(jìn)行了應(yīng)用,經(jīng)過實(shí)驗(yàn)室測試及現(xiàn)場調(diào)試表明,該控制器穩(wěn)定、可靠、抗干擾能力強(qiáng),滿足發(fā)射機(jī)控制系統(tǒng)要求。
[1]楊斌,韓震宇.廣播發(fā)射機(jī)微控制器的系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].中國測試技術(shù),2005,31(2):36 -38.
[2]蘇學(xué)花,楊壽保.基于RS-485的分布式監(jiān)控系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2001,21(8):70 -73.
[3]金勇,潘永才.一種基于RS-485總線的工控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2006(12):134-136.
[4]寇強(qiáng),黨宏社.一種串口多機(jī)應(yīng)答式通信協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2008,32(1):59 -61.
[5]趙亮,侯國銳.單片機(jī)C語言編程與實(shí)例[M].北京:人民郵電出版社,2003.