《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于NIOS II的ARINC429總線接口板設(shè)計
基于NIOS II的ARINC429總線接口板設(shè)計
摘要: 采用SoPC開發(fā)產(chǎn)品可縮短開發(fā)時間,增加系統(tǒng)的靈活性,,減小PCB板的體積和布線難度,其設(shè)計方式正在受到越來越多設(shè)計者的重視,。本文介紹的系統(tǒng)達到了預(yù)期目的,完成了基于NIOSⅡ軟核微處理器的應(yīng)用設(shè)計,,可以很方便的應(yīng)用于PCI總線微處理器中,。
Abstract:
Key words :

      1 引言

  隨著數(shù)字技術(shù)和計算機技術(shù)的不斷發(fā)展,越來越多的航空電子設(shè)備采用了數(shù)字化技術(shù),,從而使數(shù)字傳輸成為信息傳輸?shù)闹饕緩健?a class="innerlink" href="http://forexkbc.com/tags/ARINC429" title="ARINC429" target="_blank">ARINC429是航空電子系統(tǒng)中最常見的通訊總線之一,,廣泛用于波音(Boeing)系列、歐洲空中客車(Airbus)等機種,。目前國內(nèi)機載電子大多采用專用測試設(shè)備,,系統(tǒng)通用性不高,增加了檢測成本,。本文介紹的ARINC429接口板設(shè)計靈活,、工作可靠、有效地節(jié)約了成本,,可以緩解當(dāng)前ARINC429設(shè)備檢測難的窘境,,有廣闊的應(yīng)用前景。

  2 系統(tǒng)總體設(shè)計

  Altera公司在2004年發(fā)布了支持CycloneⅡFPGA系列的NIOSⅡ嵌入式微處理器,。它是一款通用的RISC結(jié)構(gòu)32位CPU,,在軟件SoPC的基礎(chǔ)上添加NIOSⅡ軟核和相應(yīng)的外圍接口。對設(shè)計進行綜合,,下載到FPGA中就可以設(shè)計一個具有特定功能的嵌入式處理器,。本設(shè)計采用Altera公司的FPGA—EP2C35,引人嵌入式軟核處理器NIOSⅡ作為系統(tǒng)的主控制器,,結(jié)合ARINC429專用器件和其他外圍設(shè)備實現(xiàn)數(shù)據(jù)的收發(fā)功能,。

  ARI

 

NC429接口板由數(shù)據(jù)收發(fā)、存儲器擴展,、監(jiān)控,、PCI總線接口等模塊組成。NIOSⅡ控制協(xié)議器件HS3282完成發(fā)送數(shù)據(jù)緩存和串并轉(zhuǎn)換(接收時串行轉(zhuǎn)換為并行,,發(fā)送時并行轉(zhuǎn)換為串行),,HS3182作為3282的驅(qū)動器完成差分信號轉(zhuǎn)換及傳輸速率調(diào)節(jié)。PC機通過PCI總線與接口板通信,,實現(xiàn)對發(fā)送,、接收數(shù)據(jù)的處理和顯示。NIOSⅡ自帶的定時器可以設(shè)置為Watchdog,。系統(tǒng)上電后啟動運行,,當(dāng)主程序因外界干擾產(chǎn)生跑飛時對系統(tǒng)進行軟件復(fù)位,增強了系統(tǒng)的抗干擾能力,。系統(tǒng)整體結(jié)構(gòu)圖如圖1所示,。
 

 

系統(tǒng)整體結(jié)構(gòu)


 
  3 硬件設(shè)計

  3.1 ARINC429總線規(guī)范

  ARINC429總線規(guī)范又稱MARK33數(shù)字式信息傳輸系統(tǒng)(DITS:Digital Information Transfer System),,它是專用于航空電子系統(tǒng)的航空工業(yè)標(biāo)準(zhǔn),數(shù)據(jù)通過一對單向,、差分耦合,、雙絞屏蔽線傳輸,本質(zhì)屬于串行通訊范疇,??偩€上只允許有一個發(fā)送器,但最多允許有20個接收器,。數(shù)據(jù)字有25 bits和32 bits兩種,,以雙極歸零碼的形式發(fā)送。數(shù)據(jù)脈沖有三種電平,,即高電平,,邏輯1(6.5 V~13 V);中電平(-2.5 V~2.5 V),;低電平,,邏輯O(-13 V~6.5 V)。中電平為發(fā)送自身時鐘脈沖,。字與字之間以一定間隔(4位)分開,,此間隔作為字同步。ARINC429的傳輸速率為12.5 kb/s(低速)或者100 kb/s(高速),,傳輸協(xié)議比較簡單,,屬于點對點的傳輸協(xié)議。

  3.2 HS3282與HS3182接口電路

  HS3282和HS3182是美國Harris公司推出的高性能CMOS總線接口電路,,能夠滿足ARINC429總線的規(guī)范要求及類似的編碼定時多路串行數(shù)據(jù)傳輸協(xié)議,。目前,絕大多數(shù)ARINC429總線接口電路都由它們來實現(xiàn),。HS3282是由兩個接收器和一個發(fā)送器組成,,接收器和發(fā)送器分別獨立工作。兩個獨立的接收器直接與ARINC429總線相連,,當(dāng)接收到一個數(shù)據(jù)字后產(chǎn)生相應(yīng)的讀請求信號,,等待外部命令對數(shù)據(jù)的讀取。發(fā)送器主要由先進先出(FIFO)存儲器和定時電路組成,,F(xiàn)IFO存儲器可以保存8個32位數(shù)據(jù)字,,定時電路按照ARINC規(guī)范的要求分隔每個Arinc字,并自動產(chǎn)生奇偶校驗位,。外部提供的工作時鐘一般為1 MHz,通過軟件控制可以使HS3282的接收和發(fā)送模塊工作在不同的速率(100kb/s或者12.5 kb/s),,從而使器件的通用性更強,。需要注意的是波特率不同時,,驅(qū)動器HS2182的CA、CB端的外接電容也應(yīng)該不同,,高速傳輸(100 kb/s)時,,CA、CB端應(yīng)該外接75 pF的電容,,低速傳輸(12.5 kb/s)時,,CA、CB端則應(yīng)外接300 pF的電容,。HS3282和HS3182的連接示意圖如圖2所示,。

連接示意圖


 
  3.3 PCI總線接口設(shè)計

  PCI總線是Intel公司推出的一種高性能局部總線,其數(shù)據(jù)總線為32位,,且可擴展成64位,,最大數(shù)據(jù)傳輸速率為128 Mb/s~256 Mb/s,遠遠大于ISA總線5 Mb/s的傳輸速度,,是目前微機系統(tǒng)廣泛使用的一種總線,。PCI總線協(xié)議比較復(fù)雜,一般采用兩種方式:

  (1)采用可編程邏輯器件來設(shè)計控制接口,。它的優(yōu)點是比較靈活,,用戶可以根據(jù)自身的需要開發(fā)出適合于特定功能的電路,而不必實現(xiàn)PCI的全部功能,。但是控制接口設(shè)計難度較大,,開發(fā)周期長,成本高,。

  (2)采用專用PCI接口電路,,例如AMCC公司的AMCCS5920,PLX公司的PCI9054等。通過專用電路可以實現(xiàn)完整的PCI主控模塊和目標(biāo)模塊的功能,。將復(fù)雜的PCI總線接口轉(zhuǎn)換為相對簡單的用戶接口,。用戶只要設(shè)計轉(zhuǎn)換后的總線接口即可。專用接口電路具有較低的成本和通用性,,能夠有效降低接口設(shè)計的難度,,縮短開發(fā)時間,并能獲得較好的數(shù)據(jù)傳輸性能,。

 

  雖然Altera公司也為NIOSⅡ處理器提供了方便使用的PCI核,,但是價格昂貴。本設(shè)計中采用PLX公司的專用接口電路PCI9054,,使其工作在C模式下,。為了降低開發(fā)難度,采用一種較為簡便的通信方式:在NIOSⅡ與PCI橋間插入雙口RAM,一端地址數(shù)據(jù)線接NIOSⅡ,。另一端接PCI9054,。通過雙口RAM轉(zhuǎn)接數(shù)據(jù).將雙口RAM分為上下兩個半?yún)^(qū),PCI橋與NIOSⅡ?qū)﹄p口RAM交叉訪問,,可以大大削弱PCI的時序要求,。只需少量的信號通過FPGA來實現(xiàn)邏輯轉(zhuǎn)換.而無需總線仲裁,這種方式具有時序簡單,、控制信號較少,、編程簡單,應(yīng)用方便等特點,。

  3.4 NIOSⅡ及外圍接口電路設(shè)計

  ALtera公司的QuartusⅡ軟件是一個完整的多平臺設(shè)計環(huán)境,。具有分析、綜合,、布線,、功耗估計等功能,能滿足各種特定設(shè)計的需要,,為可編程片上系統(tǒng)(SoPC)提供全面的設(shè)計環(huán)境,。采用其中的S

 

oPC Builder可在圖形化界面內(nèi)定制一個NIOSⅡ嵌入式系統(tǒng).配合NIOSⅡ的軟件開發(fā)工具NIOSⅡIDE,可以方便地開發(fā)從硬件到軟件的完整系統(tǒng),,大大提高了設(shè)計效率,。

 

  硬件設(shè)計步驟如下:

  1)在SoPC Builder軟件中定制CPU軟核。配置CPU硬件選項,,如指令緩存等,;增加外圍設(shè)備接口,如數(shù)據(jù)存儲器RAM接口,、程序存儲器Flash接口,、JTAG調(diào)試口、HS3282接口模塊等,,添加外設(shè)如PCI總線接口,、Watchdog等。

  2)定義處理器上電復(fù)位地址,。這里指定復(fù)位地址為外部Flash,。系統(tǒng)在復(fù)位后會自動從外部Flash將用戶指令讀取到片內(nèi)RAM中執(zhí)行。

  3)添加用戶自定義指令,,NIOSⅡ允許用戶定制多達256個自定義指令,。采用自定義指令可以用硬件來實現(xiàn)計算量較大的指令。對于頻繁調(diào)用的指令可以有效地節(jié)省運算時間,。本設(shè)計中將ARINC429數(shù)據(jù)的拼接和拆分用自定義指令來實現(xiàn),。

  4)在FPGA內(nèi)完成NIOSⅡ與HS3282接口模塊,、NIOSⅡ與PCI總線的接口模塊及復(fù)位電路等。

  5)系統(tǒng)編譯完成后使用QuartusⅡ 5.0軟件和ByteBlasterⅡ下載電纜通過PC機在線配置FPGA,,軟件設(shè)計完成后若調(diào)試通過就可以將FPGA的配置數(shù)據(jù)下載到FPGA的配置器件中,。

  硬件框圖如圖3所示。

硬件框圖

  4 軟件設(shè)計

  4.1 ARINC429數(shù)據(jù)的接收與發(fā)送

  系統(tǒng)上電后應(yīng)該先初始化HS3282,。外部工作時鐘為1MHz,內(nèi)部接收和發(fā)送速率可設(shè)置為外部時鐘的1/10或1/80,,即100 kb/s或12.5 kb/s,。設(shè)置ARINC429數(shù)據(jù)字格式為32位或者25位。采用中斷的方式接收數(shù)據(jù),,HS3282有兩個接收器,,當(dāng)有一個數(shù)據(jù)字到來后。相應(yīng)的接收數(shù)據(jù)有效標(biāo)志DR變?yōu)榈碗娖?,向主控制器發(fā)送讀數(shù)據(jù)請求,。讀取接收數(shù)據(jù)時,將SEL置為0,,然后給相應(yīng)的EN引腳送入一定寬度的負脈沖信號,,接收第一個16位字。此后把SEL置1,,再給EN引腳送入一個負脈沖信號,,接收第二個16位字。如果處理器忽略了該請求,,則下一個接收數(shù)據(jù)會覆蓋前一個數(shù)據(jù),。HS3282的數(shù)據(jù)字為16位.因此一個ARINC數(shù)據(jù)字(32位)要分兩次才能讀出。發(fā)送數(shù)據(jù)時要先將數(shù)據(jù)寫入HS3282的內(nèi)部FIFO中,,向FIFO寫操作過程中,,當(dāng)PL1由低電平跳變到高電平時.低16位數(shù)據(jù)寫入FIFO的輸入寄存器的低16位;當(dāng)PL2由低電平跳變到高電平時.高16位數(shù)據(jù)寫入FIFO輸入寄存器的高16位,,同時將輸入寄存器的內(nèi)容寫入FIFO單元,,連續(xù)操作8次便可將FIFO寫滿。第一個數(shù)據(jù)字寫入后TX/R由高變低,。FIFO寫滿后,,通過啟動發(fā)送使能信號ENTX.HS-3282便可將這8個數(shù)據(jù)字串行發(fā)送。當(dāng)然也可以根據(jù)實際需要每次發(fā)送小于8個數(shù)據(jù)字,。當(dāng)FIFO為空時,,TX/R由低變高,禁止發(fā)送使能信號,。向FIFO重新寫入數(shù)據(jù),。

  4.2 NIOSⅡ軟件開發(fā)

  NIOSⅡ的軟件開發(fā)是在HAL (hardware abstraction layer)的基礎(chǔ)上進行的。HAL系統(tǒng)庫是一個輕量級的運行環(huán)境.提供了與硬件通訊的簡單設(shè)備驅(qū)動程序。它還集成了ANSIC標(biāo)準(zhǔn)庫,,這些API允許設(shè)計者用標(biāo)準(zhǔn)C函數(shù)(例如:printf,,fopen,fwrite等)去存取設(shè)備,。HAL類似于ARM系統(tǒng)中的BSP(board—support package),,提供了一個一致的設(shè)備存取界面。SoPC Builder和NIOSII IDE緊密集成,,在SoPC Builder生成硬件系統(tǒng)以后.NIOSⅡIDE能夠自動生成對應(yīng)的客戶HAL系統(tǒng)庫,。更新硬件系統(tǒng)設(shè)置以后.NIOSⅡIDE能自動更新HAL的驅(qū)動設(shè)置。

 

  軟件設(shè)計步驟如下:

  1)在NIOSⅡIDE中創(chuàng)建軟件項目,,NIOSⅡIDE會根據(jù)用戶在SoPC Builder中的硬件配置自動生成用戶HAL系統(tǒng)庫.如系統(tǒng)頭文件和初始化文件等,。

  2)利用用戶HAL系統(tǒng)庫在NIOSⅡIDE開發(fā)環(huán)境下編寫程序源代碼C/C++程序,編譯調(diào)試代碼,,調(diào)試完畢后用NIOSⅡIDE提供的Flash軟件Flash Programmer將生成的可執(zhí)行文件燒寫到Flash中,。

  在FPGA產(chǎn)品開發(fā)中嵌入NIOSⅡ軟核微處理器具有高度集成的特點。本設(shè)計不僅在FPGA內(nèi)集成了一個CPU,,而且集成了CPU周邊的硬件邏輯和外部設(shè)備接口,,以及整個系統(tǒng)設(shè)計的邏輯譯碼電路。達到高度集成的目的,。本系統(tǒng)的特點是:

  1)NIOSⅡ嵌入式微處理器成本低,。開發(fā)周期短,提高了產(chǎn)品的性價比和研發(fā)速度,。

  2)采用可編程邏輯器件使系統(tǒng)具有可升級和可擴展性,,不僅可以更改FPGA的內(nèi)部設(shè)計.還可以對NIOSⅡ的軟件進行更新升級,靈活地滿足不同的需求,。

  5 結(jié)束語

 

  采用SoPC開發(fā)產(chǎn)品可縮短開發(fā)時間,,增加系統(tǒng)的靈活性,減小PCB板的體積和布線難度,,其設(shè)計方式正在受到越來越多設(shè)計者的重視,。本文介紹的系統(tǒng)達到了預(yù)期目的,完成了基于NIOSⅡ軟核微處理器的應(yīng)用設(shè)計,,可以很方便的應(yīng)用于PCI總線微處理器中,。隨著新一代NIOS軟核處理器的推出。嵌入式系統(tǒng)的性能將更加強大,,基于NIOSⅡ的開發(fā)將繼續(xù)推進系統(tǒng)在各個技術(shù)領(lǐng)域的應(yīng)用和技術(shù)的創(chuàng)新

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