新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于80C196KC的ARINC429總線接口板設計

        基于80C196KC的ARINC429總線接口板設計

        作者: 時間:2016-10-24 來源:網絡 收藏

          1 引言

        本文引用地址:http://www.104case.com/article/201610/311719.htm

          總線是美國航空無線電公司(ARINC)制定的民用航空數字總線傳輸標準,又稱為Mark33數字信息傳輸系統,目前廣泛應用于商用及運輸飛機上,我國信息產業部也于1986年參考標準頒布實施了我國自己的航空通信標準HB-6096-86,其標準和基本一致。

          傳統的ARINC429總線收發板多是直接插到計算機的主板接口上,實現起來過于麻煩,并且要編寫相應得驅動程序來實現數據的實時顯示和存儲。本文介紹了一種基于Intel的16位單片機的ARINC429總線收發板,它既可以通過串口連接到計算機上,同時又可以實現數據在收發板的存儲和顯示,設計簡單,便于攜帶,給ARINC429總線的檢測帶來了很大的方便。

          2 ARINC429總線的傳輸標準及系統整體設計

          ARINC429協議規定以串行方式實現數字數據信息的傳輸,并且只能是單向傳輸,所以

          在總線上只允許有一個發送設備,可以同時有多(不超過20個)個接收設備,信息編碼的基本格式有兩種,32位或25位數字組成的基本數據單元,無論那種格式都包括8位標志位、

          1位奇偶校驗位和兩位狀態位,兩種傳輸格式的不同只是攜帶數據的長度不同,數據的傳輸速率有100Kbps和12.5Kbps兩種,既可以實現高速傳輸又可以低速傳輸[1]。

          接口板設計的目的是能夠實現對ARINC429總線進行數據的接收和發送,,它既能接收雙極歸零制的429信號并將其轉換為數字信號送入計算機或其它設備,又可將計算機或其它設備發出的數字信號轉換為429信號輸出。本文介紹的總線接口板以Intel的十六位單片機MCS-為核心,實現數據的接收和發送、外圍芯片的邏輯控制、數據的存儲和顯示以及和計算機的接口[3][4]。ARINC429總線協議芯片HS-3282完成發送時數據的緩存和并行、串行的相互轉換,HS-3182為ARINC429總線的驅動芯片,可以實現系統內部邏輯信號與ARINC429所要求的差分信號的轉換,同時可以作為發送數據的緩存和調節發送速率,系統的整體框圖如圖1所示:

          

         

          圖1 系統的整體框圖

          3 接口板的硬件設計

          ARINC429總線協議芯片和驅動芯片

          ARINC429的接收電路已經有了工業標準的芯片組,其中以Harris公司生產的HS-3282和HS-3182最為流行,HS-3282是總線協議芯片,HS-3182是總線驅動芯片,都滿足ARINC429的通信標準。

          HS-3282是十六位寬的計算機數據總線和ARINC429總線的接口,它有2接收通道和一個發送通道,HS-3182是實現電平的轉換,有關于這兩個芯片的介紹很多,這里就不再說明。由于ARINC429總線的數據寬度為32位,而HS-3282的數據位寬為16位,因此用了兩個字WORD1、WORD2與計算機交換收發的32位ARINC429總線上的數據,其數據的對應關系如表1和表2所示[2]:

          表1. WORD1與ARINC429總線數據位的關系

          WORD11514131211109876543210

          429協議13121110931303212345678

          429定義數據低位S/DSSMP標志位

          表2. WORD2與ARINC429總線數據位的關系

          WORD21514131211109876543210

          429協議29282726252423222120191817161514

          429定義±數據位

          從表1和表2可以看出,ARINC429的數據位和計算機的數據位并不是一一對應的,在WORD1中有標志位、奇偶校驗位P、狀態位SSM、源目標標志S/D以及數據低位,WORD2是十六位數據,并且8位標志位是反序的,有時會帶來不便,但計算機采集來的數據可以直接應用到WORD2上,在發送數據時會非常方便。

          HS-3182是作為ARINC429總線的發送設備完成兩路信號的差分驅動,與HS-3182相連的電容控制用來控制ARINC429的傳輸速率,其中c1,c2為75pF時對應ARINC429總線的高速狀態(100Kbps)、為300pF時對應ARINC總線的低速狀態(12.5Kbps),因此盡量用高精度、軍品級的電容,HS-3282和HS-3182相連的電路圖如圖2所示:

          

         

          圖2 HS-3282和HS-3182的連接圖

          3.2 ARINC429總線收發硬件電路

          硬件的計算機系統采用Intel的16位單片機,該CPU可以動態的配置成8位或者16位的總線寬度,結構采用寄存器結構,有232字節的RAM寄存器陣列供用戶配置,外接晶振為12MHz或者20MHz,可以滿足ARINC429總線的高速發送和接收。CPU和HS-3282的接口比較簡單,發送時常和HS-3182相配合使用,因為HS-3282的數據寬度為16位的,因此單片機也配置成16位總線寬度,CPU和HS-3282的接口部分關鍵就是對收發的邏輯控制,諸如接收器1數據可以讀取標志D/R1,接收器2數據可以讀取標志D/R2,總線選擇信號SEL等端口都需要CPU的控制和監視,在這里就直接和CPU的I/O口相連,當然也可以通過CPU的I/O,/RD,/WR及地址的低位和GAL或者CPLD相連,通過編成組成專門的邏輯控制電路,這在單片機的I/O口不夠用時可以采用這種辦法,HS-3282需要CPU控制和監視的管腳如表3所示:

          表3. S-3282控制及狀態的引腳及功能

          符號管腳號輸入/輸出描述

          SEL8輸入總線數據選擇,選擇兩個十六位中的一個,用于接收器1或2

          /DR16輸出接收器1數據可以讀取標志

          /DR27輸出接收器2數據可以讀取標志

          /EN19輸入接收器1中的數據輸出到總線上

          /EN210輸入接收器2中的數據輸出到總線上

          /MR39輸入復位信號

          ENTX33輸入發送使能信號,使數據從HS-3182的FIFO發送到429總線上

          /PL128輸入第1個16位字發送到FIFO中

          /PL229輸入第2個16位字發送到FIFO中

          TX/R30輸出發送存儲器FIFO為空標志

          /CWSTR34輸入控制字鎖存到控制寄存器

          由于HS-3282是外圍器件,收發速率都沒有CPU快,因此要為CPU提供READY信號,在這里為CPU提供READY信號的是/EN1和/EN2管腳,只要這兩個管腳有一個是低電平就可以產生READY,因此對這兩個信號加一個與非門既可以產生READY信號。

          4 軟件設計

          HS3282的收發既可以采用查詢方式又可以采用中斷方式,由于發送器狀態標志位TX/R接到CPU的I/O口,這就限制了軟件設計時發送采用查詢方式。接收兩種方式都可以,在這里采用中斷方式接收。

          初始化程序設計

          在上電復位后單片機應首先進行自身初始化和HS3282的設置,主要是設置單片機的波特率和向HS3282寫控制字。在這里設置單片機的串口為工作模式1,即10位構成一串行幀: 1位起始位(0),8位數據(低位在先),1位停止位(1)。單片機首先將控制字寫到P3和P4端口,通過置高再置低P2.7端口,將控制字在/CWSTR的下降沿寫入,進行工作方式、碼速率等的設置。

          接收程序設計

          數據的接收以中斷響應的處理為核心。HS3282有兩路接收通道,這兩個接收通道標志位/DR1、/DR2共享一個中斷,就容易出現中斷沖突現象,為了避免這種現象在硬件設計中已經考慮到了這種問題,將接收器標志/DR1、/DR2分別與單片機I/O口的P0.0和P0.1相連接,當產生接收中斷時,通過軟件檢測方式判斷是哪一路引起的中斷,其軟件設計如下:

          ReceiverData(char *data)

          {

          if(P0.0==0)         //P0.0=/DR1

          {  P1.3=0;         //P1.3=SEL

          P1.4=0;         //P1.4=/EN1

          *data=P3;

          *(data+1)=P4;   //接收低16位

          P1.3=0;

          P1.4=1;

          P1.4=0;

          *(data+2)=P3;

          *(data+3)=P4;   //接收高16位

          }

          else

          if(P0.1==0)      //P0.1=/DR2

          { P1.3=0;

          P1.5=0;

          *data=P3;

          *(data+1)=P4;   //接收低16位

          P1.3=0;

          P1.5=1;

          P1.5=0;

          *(data+2)=P3;

          *(data+3)=P4;   //接收高16位

          }

         ?。?/p>

          發送程序設計

          在數據的發送過程中,PC機通過串口把數據發送到單片機的串口緩存區,單片機查詢到串口緩存區有數據后,接收到一個完整的數據字。同時單片機向HS3282寫入一個32位的數據字也要分兩次才能完成。準備好低16位數據,控制HS3282的引腳PL1,使PL1從低電平跳變到高電平,將低16位數據寫入;同樣的方法將高16位數據在PL2從低電平跳變到高電平寫入。通過啟動HS3282的引腳ENTX發送控制信號,HS3282將自動發送數據,其標準滿足ARINC429協議,單片機檢測到TX/R為高,即數據發送完成時將ENTX置低。發送函數如下所示:

          SendData(char *data)

          { P1.6=0;            //P1.6=PL1

          P3=*data;

          P4=*(data+1);      //低16位

          P1.6=1;            //上升沿寫入

          P1.7=0;            //P1.7=PL2

          P3=*(data+2);

          P4=*(data+3);      //高16位

          P1.7=1;            //上升沿寫入

          P2.6=0;            //P2.6=ENTX,發送使能

          while(P0.2);       //P0.2=TX/R,檢查是否發送完成

          P2.6=1;            //發送禁止

          }

          5 結論

          基于16位單片機的ARINC429總線接口板利用高性能的專用芯片組HS3282和HS3182來設計總線接口,由于該芯片能很好的滿足ARINC429協議,給接口板的設計帶來了很大的方便,經實際利用簡單有效,并且具有很高的可靠性。



        關鍵詞: 80C196KC ARINC429

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 嘉善县| 滦平县| 肃北| 华容县| 宝鸡市| 江达县| 桦南县| 云龙县| 仁怀市| 富川| 兰坪| 秦安县| 沧州市| 桦川县| 肃宁县| 油尖旺区| 土默特右旗| 海原县| 青川县| 夏津县| 绥化市| 莎车县| 石河子市| 崇信县| 佛冈县| 句容市| 平顺县| 深圳市| 乌海市| 卢氏县| 图木舒克市| 巧家县| 高阳县| 驻马店市| 刚察县| 闻喜县| 汨罗市| 崇左市| 千阳县| 临沧市| 贵阳市|