文獻標識碼: B
文章編號: 0258-7998(2012)09-0075-03
ARINC 429總線是由美國航空系統(tǒng)電子工程委員會于1997年制定的一個通信協(xié)議標準,詳細規(guī)劃了航空電子系統(tǒng)中各個電子設(shè)備間及電子設(shè)備和系統(tǒng)間的通信方式,,定義了電氣特性,、傳輸數(shù)據(jù)特性和通信協(xié)議。相比其他航空總線,,ARINC 429總線以其規(guī)范定義簡單實用,、設(shè)計維護相對容易、設(shè)計成本較低,、電子設(shè)備與現(xiàn)有航空電子系統(tǒng)兼容性好等一系列優(yōu)勢,,廣泛應用于商用運輸機和部分軍用飛機上。
傳統(tǒng)的ARINC 429總線通信模塊多采用非智能工作機制,,主要是通過429總線接口芯片和發(fā)送芯片設(shè)計實現(xiàn),,收發(fā)通道相互獨立,硬件體積空間占用較大,,在實際應用中消耗計算機系統(tǒng)較多的資源,,并且通信效率比較低[1]。隨著微電子技術(shù)的發(fā)展,可編程的片上系統(tǒng)SoPC(System on Programmable Chip)技術(shù)應用于越來越多的電子系統(tǒng)中,。SoPC將盡可能大而完整的電子系統(tǒng),,包括嵌入式處理器系統(tǒng)、接口系統(tǒng),、數(shù)字通信系統(tǒng)及普通數(shù)字系統(tǒng)等,,在單一FPGA中實現(xiàn),使得系統(tǒng)在規(guī)模,、可靠性,、體積、功耗,、功能,、性能指標等多方面實現(xiàn)最大優(yōu)化,并具有可裁減,、可擴充,、可升級以及軟硬件系統(tǒng)在線可編程的功能[2]。本設(shè)計基于SoPC系統(tǒng),,利用FPGA片上邏輯資源實現(xiàn)了Nios II處理器,、429控制邏輯、PCI核等功能模塊,,并在SoPC上運行實現(xiàn)了μC/OS-II操作系統(tǒng)及底層軟件,,具有較高的實時性及可配置性。
1 硬件系統(tǒng)設(shè)計
1.1硬件系統(tǒng)概述
基于SoPC的智能429總線通信模塊硬件系統(tǒng)由FPGA,、429總線接口適配電路,、電平轉(zhuǎn)換電路、數(shù)據(jù)存儲器,、電源等部分構(gòu)成,。硬件系統(tǒng)總體設(shè)計思想為利用FPGA豐富的片上邏輯資源,以Nios II軟核處理器為核心掛接多個IP核來實現(xiàn)主要的邏輯功能,,并在FPGA外圍擴展429總線適配電路,、存儲器等來構(gòu)建一個SoPC系統(tǒng)。硬件系統(tǒng)如圖1所示,。
1.2 429總線接口設(shè)計
429總線采用雙極性歸零碼(BPRZ)調(diào)制方式編碼,,一般非智能的設(shè)計方法為協(xié)議芯片+驅(qū)動芯片的方式實現(xiàn),其中驅(qū)動器只實現(xiàn)TTL電平至429電平的轉(zhuǎn)換,,協(xié)議芯片可直接接收429總線發(fā)送信號,。因協(xié)議芯片內(nèi)部集成的FIFO容量較小,常需要為其擴展片外FIFO,。本設(shè)計采用獨立的接收芯片與發(fā)送芯片實現(xiàn)與429總線的接駁,,數(shù)據(jù)處理由FPGA完成。因此外圍電路較少,,且所選芯片都為SOP小體積封裝,,有利于多路429總線在單模塊上的集成。需要注意的是,,接收與發(fā)送芯片的一端可與429總線直接接駁,,另一端為數(shù)據(jù)端,,采用5 V工作電壓,不能與端口電壓為3.3 V的FPGA直接連接,,需要經(jīng)過一級電平轉(zhuǎn)換芯片,。即FPGA向發(fā)送芯片發(fā)送數(shù)據(jù)時,由電平轉(zhuǎn)換芯片將3.3 V轉(zhuǎn)換為5 V電平,FPGA接收來自接收芯片的數(shù)據(jù)時,,將5 V轉(zhuǎn)換為3.3 V電平,,如圖2所示。
1.3 電源設(shè)計
由于429總線接收端采用5 V電壓供電,,而發(fā)送端工作電壓為+15 V/-15 V,,F(xiàn)PGA端口工作電壓為3.3 V,F(xiàn)PGA核心工作電壓為1.25 V,,工作電源的種類較多,,因此對電源部分的設(shè)計有較高的要求。5 V和3.3 V電壓可采用從PCI接口上的電源引腳獲取,,1.25 V電壓輸出可采用TI公司的PTH05000W模塊,,該模塊支持單5 V輸入,1.25 V輸出,,驅(qū)動能力6 A,。+15 V/-15 V電源采用村田公司的BWR-15/275-D5A電源模塊,單5 V電壓輸入,固定+15 V/-15 V雙路輸出,,驅(qū)動電流分別可達275 mA,,能夠滿足多路429總線發(fā)送器的工作需要。
2 SoPC系統(tǒng)的構(gòu)建
基于Nios II處理器的SoPC系統(tǒng)是一個軟硬件復合的系統(tǒng),,智能通信模塊的SoPC系統(tǒng)的構(gòu)建,,主要包括429總線控制邏輯的設(shè)計與集成、Nios II 處理器的配置與系統(tǒng)集成以及PCI軟核的配置與集成等,。而429總線控制邏輯為用戶自定制外設(shè),,具有自定制的指令與特性,也是設(shè)計的難點所在,。
2.1 429總線控制邏輯的設(shè)計
在SoPC系統(tǒng)中,,Avalon總線是Nios II處理器與外設(shè)、片外Flash,、SRAM之間交換數(shù)據(jù)信號的樞紐,。Avalon總線是一種協(xié)議簡潔高效的片內(nèi)總線,在基于Nios II處理器的SoPC系統(tǒng)中,外設(shè)都是通過Avalon總線與Nios II處理器進行通信,。Avalon總線接口可以分成兩類:Master和Slave,,Master與Slave主要區(qū)別是對于Avalon總線控制權(quán)的掌握。對于與其相接的Avalon總線,,Master接口具有控制權(quán),,而Slave接口總是被動的,。Avalon總線支持自定制外設(shè),用戶可將自己的邏輯設(shè)計掛接到Avalon總線上,,從而實現(xiàn)Nios II處理器對其的訪問[3],。為了接入SoPC系統(tǒng),429總線控制邏輯在設(shè)計上必須實現(xiàn)兩類端口:一類為串行總線控制端口,,主要實現(xiàn)對429總線數(shù)據(jù)的收發(fā),另一類為Avalon總線端口,,實現(xiàn)與Avalon總線之間的通信,。如圖3所示,429總線控制邏輯工作機制可抽象為一個有限狀態(tài)機,,默認工作在空閑狀態(tài),。若監(jiān)測到輸入端的H端與L端電平不同,則進入接收狀態(tài)流程:默認接收的429總線的數(shù)據(jù)字長度為32 bit,相鄰數(shù)字之間有20個無效的數(shù)據(jù)間隔,。若接收未滿32 bit即收到數(shù)據(jù)間隔或者接收超過32 bit后仍未出現(xiàn)數(shù)據(jù)間隔,,則認為接收的數(shù)據(jù)無效并丟棄,否則將數(shù)據(jù)進行串行/并行轉(zhuǎn)換后存入FIFO,,再轉(zhuǎn)入空閑狀態(tài),。若狀態(tài)機接收到發(fā)送請求,則進入發(fā)送狀態(tài)流程:首先從FIFO中取出數(shù)據(jù),,進行并行/串行轉(zhuǎn)換,,將轉(zhuǎn)換后的數(shù)據(jù)逐位發(fā)出,完成32 bit數(shù)據(jù)發(fā)送后,,再發(fā)送20個數(shù)據(jù)周期的數(shù)據(jù)間隔,,再返回到空閑狀態(tài)。
2.2 Nios II 處理器的配置
Nios II 處理器采用32位架構(gòu),,可配置成最高級別的full性能,,即具有數(shù)據(jù)緩存與指令緩存,支持動態(tài)分支預測等特性,,最高支持到150 DMIPS[3],。Nios II 處理器的復位向量被設(shè)置在Flash中,中斷向量被設(shè)置在SRAM中,以提高處理的效率,。在調(diào)試接口上,,可設(shè)置支持LEVEL 3級的JTAG接口,即支持通過JTAG接口實現(xiàn)目標連接,、軟件下載,、硬件斷點、軟件斷點,、數(shù)據(jù)觸發(fā)和指令跟蹤等多種調(diào)試功能,,以方便用戶通過JTAG接口對SoPC系統(tǒng)進行片上跟蹤調(diào)試,。
2.3 PCI軟核的配置
配置有PCI軟核的SoPC系統(tǒng)可直接與PCI總線連接,無需在FPGA外部擴展PCI總線-Local總線橋接芯片,。在SoPC系統(tǒng)中配置PCI軟核參數(shù)時,,指定該軟核為“PCI Target-Only Peripheral”,即只作為從設(shè)備,,不主動對PCI總線發(fā)起占用,,支持數(shù)據(jù)突發(fā)傳輸、33 MHz系統(tǒng)時鐘,、32位總線寬度,。在PCI映射的空間分配上,支持BAR0~BAR2共3段地址空間,,其中BAR0映射為PCI總線控制寄存器組,,空間大小16 KB, BAR1映射為FIFO的存取接口,空間大小16 B,,考慮到FIFO的存取接口為單一地址,,與FIFO的大小無關(guān),因此取16 B的空間是合適的,。BAR2映射為429總線控制邏輯,,空間大小32 B。配置完成后的系統(tǒng)結(jié)構(gòu)及資源分配如圖4所示,。
3 SoPC系統(tǒng)軟件設(shè)計
SoPC系統(tǒng)軟件設(shè)計主要是在SoPC中嵌入μC/OS-II操作系統(tǒng),,并且在操作系統(tǒng)之上設(shè)計實現(xiàn)429總線控制邏輯初始化、429總線與PCI總線通信等功能,。
航空電子系統(tǒng)對實時性及可靠性有較高的要求,,使用可剝奪型操作系統(tǒng)內(nèi)核使得任務響應時間得以最優(yōu)化。μC/OS-II是一個完整的,,具有可移植,、可固化、可裁剪,、可剝奪實時多任務內(nèi)核,。μC/OS-II自1992年以來已經(jīng)有數(shù)百個商業(yè)應用,并獲得了美國聯(lián)邦航空管理局(Federal Aviation Administration)對用于商業(yè)飛機的符合RTCA DO-178B標準的認證,。這表明μC/OS-II具有足夠的安全性與穩(wěn)定性,,能用于與人性命攸關(guān)的、安全性條件極為苛刻的航空電子系統(tǒng)中[4],。
SoPC系統(tǒng)軟件設(shè)計開發(fā)使用Altera公司提供的開發(fā)環(huán)境Nios II IDE,,Nios II IDE采用標準的C/C++語言作為編程語言。設(shè)計軟件時,,除了包含指定的system.h,、alt_main.h等頭文件,,針對自定制的429總線控制邏輯,需編寫arc429.h頭文件,,包含了控制邏輯中的控制寄存器的地址,、數(shù)據(jù)FIFO的接口地址等信息,即是將自定制的429總線控制邏輯映射為μC/OS-II中的地址資源,,方便程序調(diào)用,。μC/OS-II調(diào)度下的任務處理流程如圖5所示,SoPC使用兩個線程任務分別處理429總線數(shù)據(jù)接收與發(fā)送流程,。接收任務的優(yōu)先級高于發(fā)送任務,,這種做法提高了數(shù)據(jù)接收事件的優(yōu)先權(quán),可以最大可能地保證接收到的數(shù)據(jù)不丟失,。在每次上電復位后,智能模塊對整個系統(tǒng)的設(shè)備重新進行初始化,,包括外設(shè)控制字的配置以及緩存初始化等工作,。初始化完成后,在接收流程中,,軟件固定周期檢查收到數(shù)據(jù)未處理的時間是否超時,,如果超時,則立即去讀取接收FIFO,;否則,,在接收FIFO未達到接收閾值時,暫不響應,。如接收的數(shù)據(jù)已達到閾值,,則再通知Nios II CPU將數(shù)據(jù)全部取走,并通過PCI總線將數(shù)據(jù)發(fā)給計算機系統(tǒng),。此種做法充分利用了PCI總線的數(shù)據(jù)帶寬,,提高數(shù)據(jù)吞吐率的同時,降低了系統(tǒng)資源消耗,避免了低速的429總線每次接收到數(shù)據(jù)后頻繁提請中斷對系統(tǒng)性能的影響,。發(fā)送流程中,,則始終等待發(fā)送請求,如有請求,。則將接收FIFO中的數(shù)據(jù)全部發(fā)送出去,;否則處理空閑等待狀態(tài)。由于FPGA內(nèi)部存儲資源豐富,,可以對接收和發(fā)送FIFO開辟得足夠大,,存儲的數(shù)據(jù)足夠多。
基于SoPC的智能429總線通信模塊采用了智能化的設(shè)計技術(shù),,相比于非智能信號轉(zhuǎn)換模塊,,具有處理效率高,、系統(tǒng)資源占用低、可配置性強和體積占用小等特點,,可以滿足多路429總線的通信需求,,其設(shè)計思路也可應用在CAN、1553B等總線通信模塊上,,可廣泛應用于軍用和工業(yè)控制計算機系統(tǒng)等領(lǐng)域,。
參考文獻
[1] 譚新洪. ARINC 429技術(shù)在激光陀螺慣測組合中的應用研究[J]. 航天控制,2004,,22(2):85-89.
[2] 潘松. SoPC技術(shù)實用教程[M].北京:清華大學出版社,,2005.
[3] 吳繼華,王誠.Altera FPGA/CPLD設(shè)計(高級篇)[M].北京:人民郵電出版社,2005.
[4] LABROSSE J J. MicroC/OS-II: The Real-time Kernel[M].Second Edition, CMP Books,2002.