1 、概述
目前,ARINC429收發(fā)器主要以Device Engineering公司的DEI1016及BD429來配套使用。其中DEI1016提供有標(biāo)準(zhǔn)航空串行數(shù)據(jù)和16bit寬數(shù)據(jù)總線接口。該接口電路包括一個單通道發(fā)送器、兩個獨立的接收通道和可選擇操作方式的可編程控制器。
發(fā)送器電路包括一個發(fā)送緩存器和一個控制邏輯,發(fā)送緩存器是一個8×32bit的FIFO,而控制邏輯則允許主機(jī)給發(fā)送器寫數(shù)據(jù)塊,并通過主機(jī)使能發(fā)送器來使該數(shù)據(jù)塊自動發(fā)送出去。數(shù)據(jù)在TTL電平格式下經(jīng)過BD429電平轉(zhuǎn)換器后發(fā)送出去。而每一個接收通道都可以直接連接到ARINC429數(shù)據(jù)總線,而不需要電平轉(zhuǎn)換。
2 、引腳功能
DEI1016芯片的引腳圖如圖1所示。下面是DEI1016的主要特點:
●兩路接收和一路發(fā)送;
●環(huán)繞自測試模式;
●數(shù)據(jù)字長為25bits或32bits格式;
●接收數(shù)據(jù)時進(jìn)行校驗,發(fā)送數(shù)據(jù)時產(chǎn)生校驗;
●具有8×32bit的發(fā)送緩存;
●采用低電源工作;
●支持多路復(fù)用ARINC數(shù)據(jù)總線(如429、571、575、706).
3 、電路原理
DEI1016的復(fù)位是低電平有效,外部工作時鐘為1MHz.具有二路接收(第一路接收和第二路接收)和一路發(fā)送。要使電路正常工作,發(fā)送時需要和BD429配合.BD429是滿足ARINC429規(guī)范的、雙極數(shù)據(jù)輸入線驅(qū)動器.DEI1016為前級輸出,BD429為差分輸出。設(shè)計時,BD429地周圍要接兩個68pF的電容才能正常工作,而且這兩個電容至關(guān)重要.DEI1016由三個基本單元組成,第一部分為接收通道,第二部分為發(fā)送通道,第三部分為主機(jī)接口。其電路結(jié)構(gòu)框圖見圖2所示。
3.1 接收通道
接收通道包括線接收器、數(shù)據(jù)接收、數(shù)據(jù)時鐘、源/目標(biāo)碼譯碼器、校驗控制位、數(shù)據(jù)通道和數(shù)據(jù)錯誤條件等電路。
線接收器的前端是一個電平轉(zhuǎn)換器,最常用的就是BD429.它可以把±10V的數(shù)據(jù)信號轉(zhuǎn)換為5V內(nèi)部邏輯電平。
接收數(shù)據(jù)時,接收到的每一位數(shù)據(jù)的開始位首先被檢測,外部提供的工作時鐘(1MCK)為1MHz,內(nèi)部接收和發(fā)送速率可以設(shè)置為十分之一或八十分之一(即100kbps或12.5kbps)。讀接收器的任一個字時,一般都需要檢測收到的信息數(shù)據(jù)的校驗位。初始化時,可以設(shè)置字長為32Bit或25Bit.其32Bit字長格式如圖3所示。
為了訪問接收器的數(shù)據(jù),首先應(yīng)設(shè)置接收器數(shù)據(jù)選擇輸入端(SEL)為邏輯“0”,并通過脈沖使輸出使能端烵En 也置為“0”,以使得數(shù)據(jù)字1被送入到數(shù)據(jù)總線上;同樣,數(shù)據(jù)字2也被放到數(shù)據(jù)總線上。當(dāng)字1、字2被讀走以后,數(shù)據(jù)準(zhǔn)備好信號烡Rn 被復(fù)位,復(fù)位后,該信號處于三態(tài);如果新數(shù)據(jù)到了,而以前的數(shù)據(jù)又沒有被讀取,此時如果數(shù)據(jù)準(zhǔn)備好信號沒有復(fù)位,則新數(shù)據(jù)不能覆蓋FIFO中的數(shù)據(jù);如果一個完整的數(shù)據(jù)沒有讀完就出現(xiàn)錯誤,接收器將復(fù)位,同時忽略該數(shù)據(jù)或者該幀數(shù)據(jù)。如果希望測試該芯片是否正常工作,也可以通過設(shè)置為自測試模式,即將DEI1016的發(fā)送直接在內(nèi)部接到第一路接收,并將反相接到第二路,然后發(fā)送數(shù)據(jù),并比較發(fā)送和接收,以判斷DEI1016的工作狀況.3.2 發(fā)送通道
發(fā)送通道包括8×32bit FIFO、校驗產(chǎn)生器、發(fā)送器定時器和一個TTL輸出電路。其中8×32bit FIFO 可由用戶進(jìn)行操作(如裝載、使能、非使能等);通過裝載發(fā)送器數(shù)據(jù)字(LD1)或者(LD2)脈沖沿可以把第一個16位字(字1)或第二個16位字(字2)放到數(shù)據(jù)線上;LD1總是先于LD2.如果緩存已滿且新數(shù)據(jù)已被LD1和LD2脈沖沿打入,緩存里的最后一個32位字將被覆蓋;而當(dāng)ENTX為邏輯“1”時,F(xiàn)IFO時鐘被激活,同時,數(shù)據(jù)被串行移到發(fā)送器驅(qū)動器上;然后在發(fā)送時鐘(TXCLK)1MHz下通過DO烝 和DO烞 差分輸出,DEI1016和BD429連接見圖4所示。
3.3 主機(jī)接口
CPU外圍I/O設(shè)備的接口芯片一般都有片選、讀、寫信號和選擇片內(nèi)寄存器的若干地址線。但DEI1016有點特殊,它的每一個寄存器操作信號都需要對CPU信號進(jìn)行譯碼產(chǎn)生。因此,選擇CPU時,最好直接選擇外部數(shù)據(jù)總線為16Bit以上的CPU,如TI公司的TMS320F240等。
4、 DEI1016的應(yīng)用
4.1 DEI1016與BD429HW的連接
DEI1016的應(yīng)用主要是數(shù)據(jù)通訊。它一般和CPU、可編程器件一起形成智能通訊模塊,圖5是由DEI1016構(gòu)成的數(shù)據(jù)通訊系統(tǒng)原理圖。該數(shù)據(jù)通訊模塊的控制邏輯以CPU提供的I/O操作信號IS和讀寫信號RD、WR以及地址A2、A1為輸入來為DEI1016產(chǎn)生操作信號,如讀第一路接收數(shù)據(jù)寄存器信號 RD429A、第二路 RD429B、發(fā)送低字選通信號 WR429LW、高字 WR429HW、發(fā)送使能控制 TX429EN等。控制邏輯和CPU同時監(jiān)視DEI1016的3個狀態(tài)信號,包括第一路接收準(zhǔn)備好信號 Rx1RDY、第二路Rx2RDY和發(fā)送準(zhǔn)備好Tx429RDY.這些狀態(tài)信號一方面可供軟件查詢,另一方面可由控制邏輯產(chǎn)生 INT中斷請求.DEI1016和CPU接口比較簡單,發(fā)送時經(jīng)常和BD429配合使用。
一般情況下,作為I/O外設(shè)的DEI1016的讀寫速度要比CPU慢,因此,應(yīng)該用一個狀態(tài)機(jī)進(jìn)行速度匹配以便為CPU產(chǎn)生READY信號。在發(fā)送使能信號TX429EN的控制下可以簡單地把發(fā)送準(zhǔn)備好信號 TX429RDY反相后輸出。亦即只要DEI1016發(fā)送器有空閑,就允許發(fā)送.DEI1016的發(fā)送器包括一個FIFO,它可以存儲8個32-Bit的429數(shù)據(jù)字。當(dāng)CPU填充DEI1016的發(fā)送FIFO字?jǐn)?shù)達(dá)到自定數(shù)目熑8個 時,系統(tǒng)將使能發(fā)送以發(fā)出FIFO中的數(shù)據(jù)。其實現(xiàn)邏輯用Abel語言簡寫如下:
IS,RD,WR pin;
// CPU方的I/O操作、讀寫信號,皆為低有效。
IOAddr=[A2,A1,X];
// CPU方I/O地址
ENTX429A=!TX429ARDY;
// ARINC429 發(fā)送使能。
// 讀 第一路 ARCIN429 接收寄存器 高低字。
!RD429A =!IS & !RD & ((IOAddr == RX429ALW) # (IOAddr == RX429AHW));
// 讀 第二路 ARCIN429 接收寄存器 高低字。
!RD429B = !IS & !RD & (IOAddr == RX429BLW) # 烮OAddr == RX429BHW);
// 寫 第一路 ARCIN429 發(fā)送寄存器 高低字。
!WR429AL = !IS & !WR & (IOAddr == TX429ALW);
!WR429AH = !IS & !WR & (IOAddr == TX429AHW);
// 寫 DEI1016 控制寄存器。
!WR429ACW = !IS & !WR & (IOAddr == CR429A);
!INT = !RX1RDY # !RX2RDY;
// 2路接收準(zhǔn)備好煿蠶碇卸锨肭。
……
4.2 兩路接收中斷共享算法
該模塊有一路發(fā)送和兩路接收。發(fā)送數(shù)據(jù)不需要用中斷來解決。而當(dāng)2路接收共享一個中斷時,可能會出現(xiàn)覆蓋而丟掉某一路數(shù)據(jù)的情況,也可能使邊沿觸發(fā)的中斷失效而不再接收任何數(shù)據(jù)。其波形示意圖如圖6所示。圖中,在A點,當(dāng)?shù)谝宦窚?zhǔn)備好Rx1RDY為低時 (L),XINT有效以引起中斷,CPU響應(yīng)中斷處理,同時在AB之間判定為第一路有效并開始處理。當(dāng)處理到B點時,第二路接收準(zhǔn)備好引起中斷。但此時XINT已經(jīng)有效,故不會引起電平變化,中斷響應(yīng)程序繼續(xù)進(jìn)行,并在C點退出,此時并沒有處理第二路接收。如果中斷請求是電平 烲evel敏感,中斷處理退出后還可以再次進(jìn)入,但這會有相當(dāng)?shù)南到y(tǒng)開銷。若中斷請求是邊沿?zé)edge 觸發(fā),那么在C點退出之后,由于未處理第二路接收,所以中斷請求 INT一直保持電平有效,但不能產(chǎn)生邊沿跳變翻轉(zhuǎn),中斷觸發(fā)條件永遠(yuǎn)不能滿足,系統(tǒng)處于死鎖狀態(tài),從而使兩路數(shù)據(jù)全部丟失。
對于這一問題,其實質(zhì)性的解決辦法需要“軟硬兼施”。可以將圖4 中DEI1016的Rx1RDY、Rx2RDY等狀態(tài)信號同時送達(dá)CPU以組成只讀“狀態(tài)寄存器”,供CPU中斷響應(yīng)時查詢。
由以上分析可知,對于ARINC429數(shù)據(jù)通訊系統(tǒng),在具體的電路設(shè)計及軟件算法中均應(yīng)考慮收發(fā)數(shù)據(jù)的丟失問題。
責(zé)任編輯:gt
-
芯片
+關(guān)注
關(guān)注
453文章
50396瀏覽量
421793 -
收發(fā)器
+關(guān)注
關(guān)注
10文章
3393瀏覽量
105863 -
控制器
+關(guān)注
關(guān)注
112文章
16198瀏覽量
177399
發(fā)布評論請先 登錄
相關(guān)推薦
評論