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