文獻標識碼: B
文章編號: 0258-7998(2012)09-0075-03
ARINC 429總線是由美國航空系統(tǒng)電子工程委員會于1997年制定的一個通信協(xié)議標準,,詳細規(guī)劃了航空電子系統(tǒng)中各個電子設備間及電子設備和系統(tǒng)間的通信方式,定義了電氣特性,、傳輸數(shù)據(jù)特性和通信協(xié)議,。相比其他航空總線,ARINC 429總線以其規(guī)范定義簡單實用,、設計維護相對容易,、設計成本較低,、電子設備與現(xiàn)有航空電子系統(tǒng)兼容性好等一系列優(yōu)勢,,廣泛應用于商用運輸機和部分軍用飛機上。
傳統(tǒng)的ARINC 429總線通信模塊多采用非智能工作機制,,主要是通過429總線接口芯片和發(fā)送芯片設計實現(xiàn),,收發(fā)通道相互獨立,硬件體積空間占用較大,,在實際應用中消耗計算機系統(tǒng)較多的資源,,并且通信效率比較低[1]。隨著微電子技術的發(fā)展,可編程的片上系統(tǒng)SoPC(System on Programmable Chip)技術應用于越來越多的電子系統(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],。本設計基于SoPC系統(tǒng),利用FPGA片上邏輯資源實現(xiàn)了Nios II處理器,、429控制邏輯,、PCI核等功能模塊,并在SoPC上運行實現(xiàn)了μC/OS-II操作系統(tǒng)及底層軟件,,具有較高的實時性及可配置性,。
1 硬件系統(tǒng)設計
1.1硬件系統(tǒng)概述
基于SoPC的智能429總線通信模塊硬件系統(tǒng)由FPGA、429總線接口適配電路,、電平轉換電路,、數(shù)據(jù)存儲器、電源等部分構成,。硬件系統(tǒng)總體設計思想為利用FPGA豐富的片上邏輯資源,,以Nios II軟核處理器為核心掛接多個IP核來實現(xiàn)主要的邏輯功能,并在FPGA外圍擴展429總線適配電路,、存儲器等來構建一個SoPC系統(tǒng),。硬件系統(tǒng)如圖1所示。
1.2 429總線接口設計
429總線采用雙極性歸零碼(BPRZ)調制方式編碼,,一般非智能的設計方法為協(xié)議芯片+驅動芯片的方式實現(xiàn),,其中驅動器只實現(xiàn)TTL電平至429電平的轉換,協(xié)議芯片可直接接收429總線發(fā)送信號,。因協(xié)議芯片內部集成的FIFO容量較小,,常需要為其擴展片外FIFO。本設計采用獨立的接收芯片與發(fā)送芯片實現(xiàn)與429總線的接駁,,數(shù)據(jù)處理由FPGA完成,。因此外圍電路較少,且所選芯片都為SOP小體積封裝,,有利于多路429總線在單模塊上的集成,。需要注意的是,接收與發(fā)送芯片的一端可與429總線直接接駁,,另一端為數(shù)據(jù)端,,采用5 V工作電壓,不能與端口電壓為3.3 V的FPGA直接連接,,需要經(jīng)過一級電平轉換芯片,。即FPGA向發(fā)送芯片發(fā)送數(shù)據(jù)時,由電平轉換芯片將3.3 V轉換為5 V電平,FPGA接收來自接收芯片的數(shù)據(jù)時,,將5 V轉換為3.3 V電平,,如圖2所示,。
1.3 電源設計
由于429總線接收端采用5 V電壓供電,而發(fā)送端工作電壓為+15 V/-15 V,,F(xiàn)PGA端口工作電壓為3.3 V,,F(xiàn)PGA核心工作電壓為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之間交換數(shù)據(jù)信號的樞紐,。Avalon總線是一種協(xié)議簡潔高效的片內總線,在基于Nios II處理器的SoPC系統(tǒng)中,外設都是通過Avalon總線與Nios II處理器進行通信,。Avalon總線接口可以分成兩類:Master和Slave,,Master與Slave主要區(qū)別是對于Avalon總線控制權的掌握。對于與其相接的Avalon總線,,Master接口具有控制權,,而Slave接口總是被動的。Avalon總線支持自定制外設,,用戶可將自己的邏輯設計掛接到Avalon總線上,,從而實現(xiàn)Nios II處理器對其的訪問[3]。為了接入SoPC系統(tǒng),,429總線控制邏輯在設計上必須實現(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ù)進行串行/并行轉換后存入FIFO,再轉入空閑狀態(tài),。若狀態(tài)機接收到發(fā)送請求,,則進入發(fā)送狀態(tài)流程:首先從FIFO中取出數(shù)據(jù),進行并行/串行轉換,,將轉換后的數(shù)據(jù)逐位發(fā)出,,完成32 bit數(shù)據(jù)發(fā)送后,再發(fā)送20個數(shù)據(jù)周期的數(shù)據(jù)間隔,,再返回到空閑狀態(tài),。
2.2 Nios II 處理器的配置
Nios II 處理器采用32位架構,可配置成最高級別的full性能,,即具有數(shù)據(jù)緩存與指令緩存,,支持動態(tài)分支預測等特性,最高支持到150 DMIPS[3],。Nios II 處理器的復位向量被設置在Flash中,中斷向量被設置在SRAM中,,以提高處理的效率。在調試接口上,,可設置支持LEVEL 3級的JTAG接口,,即支持通過JTAG接口實現(xiàn)目標連接、軟件下載,、硬件斷點,、軟件斷點、數(shù)據(jù)觸發(fā)和指令跟蹤等多種調試功能,,以方便用戶通過JTAG接口對SoPC系統(tǒng)進行片上跟蹤調試,。
2.3 PCI軟核的配置
配置有PCI軟核的SoPC系統(tǒng)可直接與PCI總線連接,無需在FPGA外部擴展PCI總線-Local總線橋接芯片,。在SoPC系統(tǒng)中配置PCI軟核參數(shù)時,,指定該軟核為“PCI Target-Only Peripheral”,即只作為從設備,不主動對PCI總線發(fā)起占用,,支持數(shù)據(jù)突發(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)之上設計實現(xiàn)429總線控制邏輯初始化,、429總線與PCI總線通信等功能。
航空電子系統(tǒng)對實時性及可靠性有較高的要求,,使用可剝奪型操作系統(tǒng)內核使得任務響應時間得以最優(yōu)化,。μC/OS-II是一個完整的,具有可移植,、可固化,、可裁剪、可剝奪實時多任務內核,。μC/OS-II自1992年以來已經(jīng)有數(shù)百個商業(yè)應用,,并獲得了美國聯(lián)邦航空管理局(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頭文件,,包含了控制邏輯中的控制寄存器的地址、數(shù)據(jù)FIFO的接口地址等信息,,即是將自定制的429總線控制邏輯映射為μC/OS-II中的地址資源,,方便程序調用,。μC/OS-II調度下的任務處理流程如圖5所示,SoPC使用兩個線程任務分別處理429總線數(shù)據(jù)接收與發(fā)送流程,。接收任務的優(yōu)先級高于發(fā)送任務,,這種做法提高了數(shù)據(jù)接收事件的優(yōu)先權,可以最大可能地保證接收到的數(shù)據(jù)不丟失,。在每次上電復位后,,智能模塊對整個系統(tǒng)的設備重新進行初始化,包括外設控制字的配置以及緩存初始化等工作,。初始化完成后,,在接收流程中,軟件固定周期檢查收到數(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內部存儲資源豐富,可以對接收和發(fā)送FIFO開辟得足夠大,,存儲的數(shù)據(jù)足夠多,。
基于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.