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