《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于SoPC的智能429總線通信模塊的設(shè)計(jì)與實(shí)現(xiàn)
基于SoPC的智能429總線通信模塊的設(shè)計(jì)與實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2012年第9期
孫 波, 劉寶明
江蘇自動(dòng)化研究所,江蘇 連云港222006
摘要: 針對(duì)傳統(tǒng)429總線存在的數(shù)據(jù)收發(fā)效率低等問題,提出了基于SoPC的智能429總線通信模塊的設(shè)計(jì)方法,采用Nios II軟核處理器作為處理核心,通過可編程邏輯實(shí)現(xiàn)429總線控制邏輯、數(shù)據(jù)收發(fā)及與PCI系統(tǒng)總線的數(shù)據(jù)通信等功能。該模塊在PCI總線計(jì)算機(jī)系統(tǒng)中得到應(yīng)用,能有效提高計(jì)算機(jī)系統(tǒng)對(duì)429總線數(shù)據(jù)的處理效率。
關(guān)鍵詞: SoPC FPGA 429總線
中圖分類號(hào): TP273
文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 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總線是由美國(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.

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