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