馮菊香,盧上二,趙 利
(1.玉林師范學院 傳媒實驗室,廣西 玉林 537000;2.桂林電子科技大學 信息與通信學院,廣西 桂林 541004)
數字信號在傳輸過程中由于衰變、干擾等各種原因不可避免地會產生差錯。隨著數據量的增大、傳輸速率的提高、通信距離的增加,系統在傳輸過程中出現的誤幀率也會增大[1]。對無線通信來說,誤幀率是測試系統性能的一項重要指標。目前市場上有專門的誤幀測試儀,它既可以用于有線通信系統的測量,也可以用于無線通信系統的測量,但存在價格昂貴、針對性不強等缺點。針對山區無線數據傳輸信道的特點,筆者結合異步串行通信規程設計了一款基于AT89S52單片機[2]的誤幀測試系統——無線數據通信誤幀率測試儀,它是測試無線數據傳輸性能的一種智能化儀器。
誤幀率測試系統方案如圖1所示。用到的設備包括誤幀儀、數傳電臺和天線等,誤幀儀由單片機、電平轉換器、數碼管顯示模塊、按鍵、指示燈等部件組成,誤幀率的測試是將誤幀儀發射的數據不斷地發送到接收端,接收端接收該數據流后檢查收到的數據流中是否有傳錯或丟失的數據幀,傳輸過程中丟失與出錯的幀數和除以發送總幀數即可計算出通信信道的誤幀率。設計的該誤幀儀既可以發射數據也可以接收數據,因而箭頭是雙向的。

圖1 誤幀儀技術方案圖
2.2.1 組幀設計
本設計所發送的幀數據包是由一系列BCD碼組成的,并對每個BCD碼進行編號以便于誤幀測試,如a0,a1,a2,…,幀格式如圖2所示。數據包由102幀組成,起始為同步字,同步字設定為7EH,終了為結束字,結束字設定為 8FH,中間有 100 個數據幀。a0,a1,a2,…,a99分別用 00,01,02,…,99填入,傳輸時每個數據幀為10 byte異步幀格式。

圖2 串行通信幀格式
2.2.2 檢錯規則
幀檢錯流程如圖3所示。
發送端發出102個幀長的數據包,并對每一個幀數據包設置編號,即a0,a1,a2,…,a99,接收端用 1 個“誤幀計數器”來統計發錯或丟失的數據幀數目。發送端在發送數據之前,接收端處于接收狀態。當接收端接收到同步字7EH時開始接收數據,如果收到的數據幀與預設的不同(即檢測接收的ai與預設的不同,i=0,1,2,…,99),或該數據幀丟失,則“誤幀計數器”加1,寄存在“誤幀計數器”中;當收到結束字8FH時,表明此數據包發送結束。最后用誤幀計數器的值除以發送的數據幀的總數,即得到誤幀率并用數碼管顯示出來。將測得的誤幀率與目標誤幀率進行比較,檢測是否達到數據通信的要求。

圖3 幀檢錯規則流程圖
本誤幀儀硬件電路結構框圖如圖4所示。

圖4 誤幀儀硬件電路結構框圖
圖4中,作為核心部件的單片機采用低功耗的AT89S52。其他相應的外圍電路由7個主要部分組成:
1)按鍵,用于輸入操作,由2個電平按鍵組成,分別用來進行發送數據操作和接收數據操作。
2)指示燈,用于輸出,指示發送和接收的信息,發送數據時紅燈亮,接收數據時綠燈亮。
3)晶振電路,由1個11.0592 MHz的晶振和2個30 pF的小電容組成,決定了單片機的工作時間精度為1 μs。
4)復位電路,采用的是按鍵復位,由200 Ω,1 kΩ的電阻以及22 μF的電容和1個4腳復位開關組成。
5)電源變換電路,為整個電路提供+5 V的工作電壓。此電路有濾波功能,濾掉了高頻和低頻,從而使電源更加純正,系統采用性能穩定的三端穩壓芯片7805。
6)LED數碼顯示器,用于顯示測試結果。
7)RS-232電平轉換電路,用于提供RS-232的標準接口方式,與數傳電臺ND889A的標準接口相對應。
發送程序流程圖如圖5所示。

圖5 發送程序流程圖
接收程序流程圖如圖6所示。

圖6 接收程序流程圖
本系統的軟件主要由以下5個部分組成:
1)總控主程序,控制整個系統的軟件運行。首先對整個系統進行初始化,然后對串口、數碼管、按鍵等進行管理和控制。
2)按鍵管理程序,用來進行鍵功能管理。首先判斷是否有鍵被按下,并完成對鍵的消抖動功能、然后識別按下的鍵是發送鍵還是接收鍵,若是發送鍵,程序轉向發送鍵處理,若是接收鍵,程序轉向接收鍵處理。
3)顯示子程序,通過數碼管顯示誤幀測試結果,包括數碼管初始化、接收顯示指令、接收顯示數據等部分。4)串口中斷程序,用來實現系統的中斷數據接收。5)發送/接收子程序,用來對數據進行串行發送和接收。
軟件主要分為數碼管顯示模塊、發送數據模塊和接收數據模塊。
1)系統初始化程序
系統初始化程序如下:

2)數碼管顯示模塊
數碼管顯示模塊的驅動程序如下:

3)發送數據模塊
系統初始化,準備好數據包,將數據包存入發送緩沖器SBUF,設置好單片機定時器及波特率,將誤幀儀與PC機用串口線連接,用串口調試工具終端檢測PC是否接收到發送的數據包,如果串口調試工具終端能接收到誤幀儀發送的數據,則發送模塊調試成功,其代碼為:

4)接收數據模塊
系統初始化,設置好單片機定時器及波特率,并使誤幀儀處于接收狀態,將誤幀儀與PC機用串口線連接,用串口調試工具終端向誤幀儀發送數據,如果誤幀儀數碼管顯示模塊能顯示出串口調試工具終端發送的數據,則接收模塊調試成功,其代碼為:


5.1.1 硬件調試
硬件的好壞直接影響到測試的結果,也影響程序調試的進度。硬件調試是整個系統設計的重要環節。系統硬件由兩塊電路板組成,電路較為復雜,模塊較多,每個模塊都要經歷硬件調試的各個步驟,具體調試可分為靜態檢查和加電檢查。靜態檢查主要檢查整個電路板是否有虛焊、脫焊、短路、斷路情況,觀察元件安裝是否正確,特別是芯片座及一些有極性元件是否裝反。加電檢查包括不安裝重要芯片情況下的通電檢查、裝上芯片后的檢查和后期檢查。不安裝重要芯片情況下的通電檢查,主要是防止電路設計中疏忽的細節問題造成重要芯片的損壞。安裝上芯片后,主要檢查芯片安裝是否正確,確認無誤后,通電檢查芯片和外圍元件等是否正常。
5.1.2 軟件調試
后期檢查指的是在程序調試過程中遇到問題所進行的檢查。軟件調試的大部分都是建立在硬件調試的基礎上,而且在中后期也是和硬件調試混合在一起。在軟件的編寫上,采用了模塊化的設計,將各個模塊的程序單獨調試成功之后,再連接在一起調試[4]。
5.2.1 測試方案一
在沒有電臺的條件下,誤幀儀的測試方案如圖7所示。

圖7 誤幀測試方案圖
將兩臺誤幀儀按圖7進行連接,由于誤幀儀本身可以發送和接收數據,以上測試方案是可行的。將兩個誤幀儀用一根交叉串口線連接進行測試。測試分為兩步:發送的數據與預設的數據相同,檢測此時的誤幀率;發送的數據與預設的數據不同,人為地設定錯誤,如將數據幀06改為07,檢測此時的誤幀率。
5.2.2 測試方案二
在接電臺的條件下,誤幀儀的測試方案如圖8所示。

圖8 誤幀率測試方案圖
方案中采用日本日精公司ND889A專業數傳電臺兩臺、由單片機構成的誤幀測試儀2臺、佛山市健博通電訊實業有限公司TQJ-230c全向天線、定向天線及饋線等。其中ND889A數傳電臺工作在UHF頻段上,收發機均采用最先進的FET低噪聲放大電路,發射功率大,接收靈敏度高,數傳誤碼率低,帶有RSSI電平指示輸出。
發端發出的數據經過誤幀測試儀檢測后通過RS-232接口從數傳電臺的TXD腳輸入,通過電臺內置的Modem進行調制后發送到空中。在收端,數傳電臺接收到信號后,內置的Modem把解調出來的數據信號從RXD腳輸出,通過RS-232接口傳至誤幀測試儀進行檢測。
5.2.3 測試結果分析
兩次測試的結果如表1所示。

表1 測試結果比較
實測時,波特率設為2400 baud,循環周期為100次,即發送10200幀數據,發送碼元總數為102000個碼元,測試用時42.5 s,可測量的誤碼率環境為10-5。測試結果表明系統正常工作時間內無誤碼出現,設備可用,較好地體現了異步串行方式傳輸數據的優點。測試結果證明,誤幀測試儀系統性能良好,可以用于實際工程中。
異步串行通信是無線數據通信采用的主要傳輸方式,針對無線數據通信系統勘察設計的實際要求,開發設計出的無線數據通信誤幀率測試儀具有體積小、成本低、穩定可靠、高性價比等優點,可極大拓寬嵌入式視頻監控的應用范圍。隨著無線通信技術的發展以及人們對無線信道低誤幀率等指標的要求也越來越高,誤幀測試儀將有廣泛的市場。
[1]郭梯云,鄔國揚,李建東.移動通信[M].西安:西安電子科技大學出版社,2006.
[2]Atmel.8-bit microcontroller with 8K bytes in-system programmable flash-AT89S52[EB/OL].[2010-01-01].http://www.datasheetcatalog.org/datasheet/atmel/doc1919.pdf.
[3]袁蘭英,蔣湘,黃繼武.異步數據通道誤碼測試儀的研制[J].武漢大學學報:自然科學版,1997(10):677-680.
[4]蔣海明,張劍英,趙二濤,等.PPLive網絡電視通信機制研究[J].電視技術,2009,33(12):61-63.
[5]李劍雄.CDMA移動臺誤幀率的測試[J].中國無線電管理,2000(10):24.