《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于SoPC的智能429總線通信模塊的設(shè)計與實現(xiàn)
基于SoPC的智能429總線通信模塊的設(shè)計與實現(xiàn)
來源:電子技術(shù)應(yīng)用2012年第9期
孫 波, 劉寶明
江蘇自動化研究所,江蘇 連云港222006
摘要: 針對傳統(tǒng)429總線存在的數(shù)據(jù)收發(fā)效率低等問題,提出了基于SoPC的智能429總線通信模塊的設(shè)計方法,采用Nios II軟核處理器作為處理核心,通過可編程邏輯實現(xiàn)429總線控制邏輯、數(shù)據(jù)收發(fā)及與PCI系統(tǒng)總線的數(shù)據(jù)通信等功能。該模塊在PCI總線計算機系統(tǒng)中得到應(yīng)用,能有效提高計算機系統(tǒng)對429總線數(shù)據(jù)的處理效率。
關(guān)鍵詞: SoPC FPGA 429總線
中圖分類號: TP273
文獻標(biāo)識碼: B
文章編號: 0258-7998(2012)09-0075-03
Design of intelligent 429 bus communication module based on SoPC
Sun Bo, Liu Baoming
Jiangsu Automation Research Institute,Lianyungang 222006, China
Abstract: For improving the ability of computer system to process 429 bus data, a kind of intelligent 429 bus communication module based on SoPC is designed. This module has Nios II soft-core processor as its core, 429 bus control, data transmit and PCI system bus communication is based on programmable logic. This module can be used in CPCI computer systems and can improve processing efficiency of 429 bus data of computer system effectively.
Key words : SoPC; FPGA; 429 bus

     ARINC 429總線是由美國航空系統(tǒng)電子工程委員會于1997年制定的一個通信協(xié)議標(biāo)準(zhǔn),詳細規(guī)劃了航空電子系統(tǒng)中各個電子設(shè)備間及電子設(shè)備和系統(tǒng)間的通信方式,定義了電氣特性、傳輸數(shù)據(jù)特性和通信協(xié)議。相比其他航空總線,ARINC 429總線以其規(guī)范定義簡單實用、設(shè)計維護相對容易、設(shè)計成本較低、電子設(shè)備與現(xiàn)有航空電子系統(tǒng)兼容性好等一系列優(yōu)勢,廣泛應(yīng)用于商用運輸機和部分軍用飛機上。

    傳統(tǒng)的ARINC 429總線通信模塊多采用非智能工作機制,主要是通過429總線接口芯片和發(fā)送芯片設(shè)計實現(xiàn),收發(fā)通道相互獨立,硬件體積空間占用較大,在實際應(yīng)用中消耗計算機系統(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中實現(xiàn),使得系統(tǒng)在規(guī)模、可靠性、體積、功耗、功能、性能指標(biāo)等多方面實現(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)是一個軟硬件復(fù)合的系統(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)機,默認(rèn)工作在空閑狀態(tài)。若監(jiān)測到輸入端的H端與L端電平不同,則進入接收狀態(tài)流程:默認(rèn)接收的429總線的數(shù)據(jù)字長度為32 bit,相鄰數(shù)字之間有20個無效的數(shù)據(jù)間隔。若接收未滿32 bit即收到數(shù)據(jù)間隔或者接收超過32 bit后仍未出現(xiàn)數(shù)據(jù)間隔,則認(rèn)為接收的數(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)分支預(yù)測等特性,最高支持到150 DMIPS[3]。Nios II 處理器的復(fù)位向量被設(shè)置在Flash中,中斷向量被設(shè)置在SRAM中,以提高處理的效率。在調(diào)試接口上,可設(shè)置支持LEVEL 3級的JTAG接口,即支持通過JTAG接口實現(xiàn)目標(biāo)連接、軟件下載、硬件斷點、軟件斷點、數(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ā)起占用,支持?jǐn)?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)核使得任務(wù)響應(yīng)時間得以最優(yōu)化。μC/OS-II是一個完整的,具有可移植、可固化、可裁剪、可剝奪實時多任務(wù)內(nèi)核。μC/OS-II自1992年以來已經(jīng)有數(shù)百個商業(yè)應(yīng)用,并獲得了美國聯(lián)邦航空管理局(Federal Aviation Administration)對用于商業(yè)飛機的符合RTCA DO-178B標(biāo)準(zhǔn)的認(rèn)證。這表明μ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采用標(biāo)準(zhǔn)的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)度下的任務(wù)處理流程如圖5所示,SoPC使用兩個線程任務(wù)分別處理429總線數(shù)據(jù)接收與發(fā)送流程。接收任務(wù)的優(yōu)先級高于發(fā)送任務(wù),這種做法提高了數(shù)據(jù)接收事件的優(yōu)先權(quán),可以最大可能地保證接收到的數(shù)據(jù)不丟失。在每次上電復(fù)位后,智能模塊對整個系統(tǒng)的設(shè)備重新進行初始化,包括外設(shè)控制字的配置以及緩存初始化等工作。初始化完成后,在接收流程中,軟件固定周期檢查收到數(shù)據(jù)未處理的時間是否超時,如果超時,則立即去讀取接收FIFO;否則,在接收FIFO未達到接收閾值時,暫不響應(yīng)。如接收的數(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è)計思路也可應(yīng)用在CAN、1553B等總線通信模塊上,可廣泛應(yīng)用于軍用和工業(yè)控制計算機系統(tǒng)等領(lǐng)域。
參考文獻
[1] 譚新洪. ARINC 429技術(shù)在激光陀螺慣測組合中的應(yīng)用研究[J]. 航天控制,2004,22(2):85-89.
[2] 潘松. SoPC技術(shù)實用教程[M].北京:清華大學(xué)出版社,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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。