《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于CPLD的ГОСТ18977總線收發(fā)系統(tǒng)設計與實現(xiàn)
基于CPLD的ГОСТ18977總線收發(fā)系統(tǒng)設計與實現(xiàn)
來源:微型機與應用2013年第2期
王 瑞, 芮國勝, 張 洋
(海軍航空工程學院 電子信息工程系,山東 煙臺 264001)
摘要: 針對現(xiàn)有俄式ГОСТ18977總線的實現(xiàn)方式中傳輸速率不兼容的問題,設計并實現(xiàn)了一種基于CPLD的ГОСТ18977總線收發(fā)系統(tǒng)。該系統(tǒng)利用CPLD進行分頻,可兼容不同的總線傳輸速率;并通過CPLD實現(xiàn)系統(tǒng)的邏輯設計與收發(fā)控制,能夠實時完成總線數(shù)據(jù)的發(fā)送、接收、顯示和存儲功能。
Abstract:
Key words :

摘  要: 針對現(xiàn)有俄式ГОСТ18977總線的實現(xiàn)方式中傳輸速率不兼容的問題,設計并實現(xiàn)了一種基于CPLD的ГОСТ18977總線收發(fā)系統(tǒng)。該系統(tǒng)利用CPLD進行分頻,可兼容不同的總線傳輸速率;并通過CPLD實現(xiàn)系統(tǒng)的邏輯設計與收發(fā)控制,能夠實時完成總線數(shù)據(jù)的發(fā)送、接收、顯示和存儲功能。
關鍵詞: 航空總線; ГОСТ18977協(xié)議; ARINC429協(xié)議; CPLD

    在現(xiàn)代俄制飛機上,普遍采用符合俄羅斯ГОСТ18977總線的傳送方式進行數(shù)字信息的傳送和交換。該數(shù)據(jù)總線標準類似于美國航空無線電公司(ARINC)制定的ARINC429傳輸標準。二者數(shù)據(jù)格式及電氣特性一致,其不同之處在于俄式ГОСТ18977標準總線傳輸速率有12 kb/s、48 kb/s、100 kb/s和250 kb/s 4種,而ARINC429標準總線傳輸速率只有12.5 kb/s和100 kb/s兩種[1]。目前,由于國內尚無專用的ГОСТ18977總線芯片,大多ГОСТ18977總線收發(fā)設備通常采用ARINC429專用芯片來實現(xiàn)[2]。而ARINC429芯片無法完全兼容ГОСТ18977的4種總線傳輸速率,參考文獻[3-4]通過設置芯片控制字的方法,對外部時鐘進行分頻以達到速率匹配的目的。這種硬件分頻的方法只能兼容某一固定傳輸速率,無法滿足不同傳輸速率設備之間的通信要求。本文設計并實現(xiàn)了一種基于CPLD的ГОСТ18977總線收發(fā)系統(tǒng)。該收發(fā)系統(tǒng)利用CPLD進行軟件分頻,可兼容不同的總線傳輸速率;并通過CPLD實現(xiàn)系統(tǒng)的邏輯設計與收發(fā)控制, 能夠實時完成總線數(shù)據(jù)的發(fā)送、接收、顯示和存儲功能。
1 系統(tǒng)總體設計
    在系統(tǒng)設計上,采用模塊化結構對系統(tǒng)的功能進行劃分。主要功能包括對從其他機載設備到收發(fā)系統(tǒng)的信息的輸入、顯示、存儲,以及從收發(fā)系統(tǒng)到其他機載設備的信息的輸出等。根據(jù)其功能可將系統(tǒng)分為中央控制模塊、信息輸入/輸出模塊、帶鍵盤和數(shù)碼管的顯控模塊以及電源模塊等,系統(tǒng)整體結構如圖1所示。

    系統(tǒng)采用對STC89C58RD+芯片進行指令編程的辦法,并將編寫的指令信息存儲到STC89C58RD+芯片的指令存儲器中。輸入數(shù)據(jù)時,通過寫入、存儲指令直接存儲到STC89C58RD+芯片的數(shù)據(jù)存儲器中;輸出數(shù)據(jù)時,直接通過讀出等相關指令從存儲器中提取相關數(shù)據(jù)并傳送至CPLD,通過CPLD完成信息時序控制、并串轉換,再輸出至輸入/輸出模塊進行信號的差分編碼和信息波形變換;讀取其他機載設備的數(shù)據(jù)時,通過輸入/輸出模塊完成信號調理、差分編碼的逆變換,同時由CPLD完成時序控制和串/并轉換,再送至單片機,最后由單片機發(fā)出顯示指令,通過顯控模塊完成信息的顯示。RAM存儲器用于保存自相鄰模塊獲得的信息,并根據(jù)中央控制模塊的指令將信息傳輸?shù)较噜從K。ROM存儲器用于長期保存自RAM存儲器獲得的信息,并根據(jù)中央控制模塊的指令將信息傳輸?shù)较噜從K。
2 硬件設計
2.1中央控制模塊

    中央控制模塊是該收發(fā)系統(tǒng)的信息控制和處理中心,它直接參與和控制各部分電路的正常工作以及各種信息的處理、傳輸和顯示,起著整個系統(tǒng)信息處理與控制中心的作用。它包括中央處理器STC89C58RD+和可編程邏輯器件CPLD。
     CPLD采用EPM7128SQI100-10可編程邏輯器件[5]。中央處理器通過其外部總線,與可編程邏輯陣列構成的接口電路相聯(lián)系,經(jīng)過CPLD對地址、數(shù)據(jù)、總線等信息地址鎖存與緩沖等處理后,完成各種信息的鍵盤輸入、數(shù)碼管顯示和存儲控制等功能。
    RAM存儲器、ROM存儲器矩陣用于存儲256個24 bit字,采用STC89C58RD+內部集成的EEPROM。利用ISP/IAP技術,將內部DATA Flash當EEPROM使用。在進行256個24 bit存儲中,采用4個EEPROM扇區(qū),每個扇區(qū)512 B。該方案簡化了系統(tǒng)的電路設計,方便使用[6]。
    另外,系統(tǒng)采用12 MHz、24 MHz振蕩器分別作為單片機和CPLD的時鐘,CPLD將24 MHz時鐘經(jīng)分頻后產生96 kHz的時鐘作為32 bit串行碼發(fā)送和接收的工作時鐘。CPLD的分頻時鐘是通過編程的方式實現(xiàn)的,可根據(jù)傳輸速率的不同,靈活調整CPLD的工作時鐘。
2.2 輸入/輸出模塊
     輸入/輸出模塊主要用于與其他機載設備的信息交換,完成信息的32 bit串行碼的差分編碼、差分譯碼、波形變換等功能。
    在發(fā)送32 bit串行碼時,由STC89C58RD+準備數(shù)據(jù),并通過總線通信的方式將數(shù)據(jù)傳遞給CPLD;由CPLD控制輸入模塊將其轉換為串行碼,并控制發(fā)送的時序,碼元寬度為20 μs,占空比為50%[7]。輸入模塊的核心是雙極性碼形成模塊,該模塊主要由MAX313模擬開關及由CPLD組合邏輯電路組成的譯碼電路兩部分構成,其主要作用是產生所需的32 bit串行雙極性碼。電路圖如圖2所示。

    在接收32 bit串行碼時,首先使信號J-INA、J-INB分別通過一個二極管和一個三極管,此過程中信號被削去負電平且被反向;再經(jīng)過一個CPLD內部的“與門”,得到的信號就是從串行碼信息中提取的時鐘信號。由于每個上升沿正好在時鐘周期的中間,所以此信號不僅可以送往單片機進行計數(shù),而且可以作為CPLD的數(shù)據(jù)的移位脈沖。另外,信號還經(jīng)過一個CPLD內部觸發(fā)器,形成需要的單極性歸零碼信號,完成信號的接收。當完成32 bit串行碼接收后,由CPLD送至單片機,經(jīng)單片機控制顯示控制模塊進行信息的顯示。編碼接收電路如圖3所示。

2.3 顯示控制模塊
    顯示控制模塊由8 bit數(shù)碼管、28個按鍵和4個指示燈構成。其中,8 bit數(shù)碼管、28個按鍵的驅動和控制主要由芯片CH451完成。8 bit數(shù)碼管用于信息的顯示,高6位為數(shù)據(jù)信息,低2位為地址信息;28個按鍵主要用于16進制信息的輸入、設備狀態(tài)的設定、輸入按鍵、讀取按鍵功能;4個指示燈分別對應清除、輸入結束、寫入、存儲信息指示。
3 系統(tǒng)軟件設計
 系統(tǒng)軟件部分由主程序、發(fā)送子程序和接收子程序構成。主程序負責對數(shù)據(jù)接收、發(fā)送、存儲和顯示的控制,同時通過奇偶校驗對接收到的數(shù)據(jù)實現(xiàn)檢錯功能。發(fā)送子程序和接收子程序以對中斷響應的處理為核心,通過主程序對中斷的調度來實現(xiàn)數(shù)據(jù)接收和發(fā)送的功能。
3.1 數(shù)據(jù)接收
 在接收狀態(tài)下,主程序不間斷地檢測接收數(shù)據(jù)線的狀態(tài),當出現(xiàn)連續(xù)(4個碼元周期)的高電平時,開始檢測同步碼;確認收到同步碼后,準備在4個碼元周期后接收32 bit的數(shù)據(jù)碼,否則繼續(xù)檢測接收數(shù)據(jù)線的狀態(tài);間隔4個碼元周期后,主程序產生接收中斷信號,開始執(zhí)行接收子程序,接收子程序將32 bit的數(shù)據(jù)存入緩沖區(qū)并完成串/并轉換,以便主程序的顯控模塊調用;間隔一個字周期后,退出接收子程序中斷,再次循環(huán)以上過程。其流程圖如圖4所示。

3.2 數(shù)據(jù)發(fā)送
    在發(fā)送狀態(tài)下,主程序不間斷地掃描鍵盤的狀態(tài)。當有按鍵按下時,數(shù)碼管會顯示相應的標示;當檢測有發(fā)送的請求信號時,主程序產生發(fā)送中斷信號,開始執(zhí)行發(fā)送子程序;發(fā)送子程序將鍵盤按下的數(shù)據(jù)信息存入緩沖區(qū),在完成并/串轉換后,將32 bit的數(shù)據(jù)碼送入發(fā)送數(shù)據(jù)線上;在一個字周期后,退出發(fā)送子程序中斷;間隔4個碼元周期后,重新開啟發(fā)送子程序,將32 bit的同步碼送入發(fā)送數(shù)據(jù)線上,完成對同步碼的發(fā)送過程;在一個字周期后,退出發(fā)送子程序中斷,再次循環(huán)以上過程。其流程圖如圖5所示。
3.3 數(shù)據(jù)同步與糾錯
 由接收數(shù)據(jù)和發(fā)送數(shù)據(jù)的過程可知,精確地定位數(shù)據(jù)碼和同步碼間隔的4個碼元周期的高電平,而不產生錯位對于同步接收數(shù)據(jù)非常重要。CPLD的時鐘頻率為24 MHz,將其分頻后的100 kHz作為串行碼的工作時鐘,分頻后的200 kHz作為同步檢測時鐘。在同步檢測時鐘下,檢測出16個高電平的數(shù)據(jù)信號,即為數(shù)據(jù)信號的同步頭。同時,為避免直流電平對同步頭檢測的影響,還應排除大于4個碼元周期的偽同步頭。
 為了提高數(shù)據(jù)接收的可靠性,本系統(tǒng)在進行數(shù)據(jù)通信中,通過奇偶檢驗來實現(xiàn)檢錯功能,將數(shù)據(jù)通信的誤碼率降到最小。數(shù)據(jù)碼的第32位為奇偶檢驗位,在發(fā)送時,若前31位中1的個數(shù)為偶數(shù),則檢驗位為0,否則為1;在接收時,按照同樣的規(guī)則進行判定,若校驗一致,則表明正確接收,否則通知發(fā)送端重新發(fā)送。其流程圖如圖6所示。


4 測試結果
    系統(tǒng)的測試包括硬件測試和軟件測試。硬件測試主要是在完成PCB板的焊接后,對板上的元器件進行逐一測試,保證與原理圖一致;并對焊接情況進行檢查,防止出現(xiàn)虛焊、漏焊的情況,進而確保系統(tǒng)接口與其他機載設備電氣特性的一致性。
    軟件測試采用各模塊聯(lián)調的方式進行。首先用示波器測試了發(fā)送數(shù)據(jù)的波形接收后的解碼波形, 分別如圖7和圖8所示。另外,還測試了以下功能:(1)接收自其他機載設備的數(shù)據(jù),并完成顯示功能;(2)將鍵盤輸入的數(shù)據(jù)發(fā)送至其他機載設備; (3)將發(fā)送或接收的數(shù)據(jù)存儲到RAM存儲器或ROM存儲器,并完成顯示功能;(4)將數(shù)據(jù)從存儲器中讀出,并完成顯示功能。上述各功能在實驗室及室外環(huán)境下均做了100次以上的測試。測試結果表明,系統(tǒng)均能正確地完成相應操作。

 

 

    該收發(fā)系統(tǒng)充分利用CPLD硬件可編程性、高度集成性等特點,通過CPLD實現(xiàn)系統(tǒng)的邏輯設計與收發(fā)控制,能夠實時完成總線數(shù)據(jù)的發(fā)送、接收、顯示和存儲功能。與采用專用芯片的實現(xiàn)方式相比,該系統(tǒng)可兼容不同的總線傳輸速率,且器件的成本較低,具有較強的推廣價值。
參考文獻
[1] 田城,王勇,何雅靜,等.ГОСТ18977-79航空總線仿真系統(tǒng)的設計與實現(xiàn)[J].計算機應用與軟件,2011,28(01):300-303.
[2] 劉迎歡,羅志強.ARINC429協(xié)議和與之對應的俄羅斯標準的比較[J].航空電子技術,2002,33(1):11-15.
[3] 邸亞洲, 李富榮, 于建立,等.基于HS3282芯片實現(xiàn)ГОСТ18977總線數(shù)據(jù)傳輸方法[J].計算機測量與控制,2007,26(1):47-49.
[4] 黃潤龍.基于ARINC429協(xié)議芯片實現(xiàn)俄式ГОСТ1897779協(xié)議通信設計[J].電訊技術,2005,02(02):62-68.
[5] 張立,劉昆.基于FPGA的采樣與控制系統(tǒng)設計[J].電子測量與儀器學報,2008,22(z2):520-523.
[6] 吳繼華,王誠.Altera FPGA/CPLD設計[M].北京:人民郵電出版社,2011.
[7] 楊軍鋒,謝聶.多通道串行雙極性數(shù)字發(fā)送電路設計[J].測控技術,2003,22(1):67-69.

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。