閆 曉,楊福彪,朱 勇
(江蘇自動化研究所,江蘇 連云港 222006)
在車載、航空等計算機硬平臺領(lǐng)域,早期的外圍接口設(shè)計都是專用的總線協(xié)議控制芯片與PCI總線協(xié)議芯片組成,直接由主機通過PCI總線管理數(shù)據(jù)傳輸。這種設(shè)計方式的缺點首先是所有的數(shù)據(jù)傳輸、處理任務(wù)都由主機完成,導(dǎo)致主機的壓力過大;其次,在多任務(wù)的計算機系統(tǒng)中,低優(yōu)先級的總線模塊數(shù)據(jù)常常得不到及時處理,很容易發(fā)生數(shù)據(jù)丟失、延遲的情況。目前常用的智能總線接口卡的設(shè)計都是由智能端處理器芯片、總線協(xié)議控制芯片、PCI總線協(xié)議芯片組成,其中智能端與主機端通過雙口RAM通信。國內(nèi)外的公司和科研院所都有此類芯片推出,如SENBO公司的 SCP_1553B總線通信模塊、中船重工某所研制的1553B通訊板,采用ARM7兼容的CPU作為智能端處理器,對外提供1路1553B總線,對內(nèi)提供CPCI標(biāo)準(zhǔn)接口。文獻[1]中采用的是 8096單片機作為智能端處理器通過雙口RAM與主機通信,通過此智能卡,微機可以與使用此總線的機載電子設(shè)計建立連接,從而PC機在地面上就可以對機載設(shè)備進行自動測試[4]。這種設(shè)計能夠規(guī)避上述缺點。但是這種設(shè)計方式缺乏靈活性,印制板一旦生成不能進行修改、升級,而且擴展性也差。并且由于設(shè)計的復(fù)雜性帶來了智能接口卡占用空間比較大,難以在單塊小尺寸接口卡中實現(xiàn)多路設(shè)計。
針對以上情況,本文提出了一種采用軟核方式實現(xiàn)智能1553B接口的集成實現(xiàn)技術(shù)。這種軟核集成實現(xiàn)技術(shù)采用Nios II軟核處理器作為智能接口處理器,協(xié)助主處理器提高計算機處理能力,采用軟核實現(xiàn)的智能端,其主要組成可在一片F(xiàn)PGA內(nèi)實現(xiàn),可以滿足計算機系統(tǒng)小型化的需求。并且由于FPGA靈活的可編程特性,因此可方便地進行外圍接口的修改、擴展和升級。
智能1553B接口處理功能是由軟硬件協(xié)同工作來實現(xiàn)的[2]。主處理器板、智能1553B接口板為軟件工作提供了硬件平臺,硬件功能依靠運行于主處理器、Nios II處理器的軟件來實現(xiàn),同時軟件的編寫也只能在硬件的實際設(shè)計架構(gòu)下完成。圖1為智能1553B接口處理系統(tǒng)的總體架構(gòu)。硬件設(shè)計包括主處理器板、智能1553B接口板兩部分。首先,主處理器端通過雙口RAM與智能端處理器實現(xiàn)數(shù)據(jù)通訊[3]。其次,通過在智能1553B接口模塊中嵌入自主設(shè)計1553B橋接IP實現(xiàn)智能端處理器與1553B控制器互連。針對此種硬件設(shè)計結(jié)構(gòu),軟件設(shè)計應(yīng)用程序、驅(qū)動程序、操作系統(tǒng)均包括主機端與智能端兩部分,來完成1553B接口數(shù)據(jù)處理。
圖1 智能1553B接口處理系統(tǒng)架構(gòu)圖
智能1553B接口板為3U尺寸的CPCI總線接口板。FPGA作為智能接口板的主器件,SOPC系統(tǒng)就在其內(nèi)部實現(xiàn)。FPGA內(nèi)部生成的SOPC系統(tǒng)作為核心部件,通過雙口 RAM 與主機進行通訊,通過對1553B控制器的操作完成對1553B總線數(shù)據(jù)的處理。其中主要器件的選型為:FPGA采用Cyclone II系列的EP2C35F672I8N,PCI接口轉(zhuǎn)換芯片采用PCI9054,1553B控制器采用DDC的BU61580。FPGA片外存儲器包括 FLASH和 SRAM。FLASH的型號為AM29LV128ML,它與片內(nèi)具有 Avalon接口的通用FLASH接口(CFI)相連,在Avalon總線4G尋址范圍內(nèi)為FLASH開辟了16MB的空間。片外SRAM存儲器采用Cypress公司的CY7C1380C芯片。
圖2 SOPC系統(tǒng)結(jié)構(gòu)組成圖
SOPC將處理器、存儲器、總線和總線控制器、I/O口、鎖相環(huán)等系統(tǒng)設(shè)計所必需的模塊集成到一片F(xiàn)PGA上,構(gòu)成可編程片上系統(tǒng),使得所設(shè)計的電路系統(tǒng)在可靠性等方面實現(xiàn)最優(yōu)化[4]。SOPC系統(tǒng)集成設(shè)計是采用Altera公司的Quartus II設(shè)計軟件中集成的SOPC Builder工具。完整的SOPC系統(tǒng)包括軟核處理器、各類接口、片內(nèi)存儲器等。本設(shè)計中,SOPC系統(tǒng)以Nios II處理器作為CPU通過Avalon總線與外圍接口及片內(nèi)ROM、雙口RAM互連等組成。本設(shè)計的Nios II處理器為Nios II/s(標(biāo)準(zhǔn))型。主要的外圍接口包括PCI接口、FLASH接口、SRAM接口、LED接口、定時器接口、調(diào)試UART接口、1553B橋接IP。圖2為SOPC系統(tǒng)結(jié)構(gòu)組成圖。
1553B橋接IP則是根據(jù)Avalon總線與1553B總線的特性,通過狀態(tài)機的使用來實現(xiàn)總線協(xié)議的轉(zhuǎn)換。通過討論Avalon總線及1553B總線兩種總線標(biāo)準(zhǔn)、使用狀態(tài)機來建立總線轉(zhuǎn)換橋的模型,并使用軟件仿真的方法建立模型來驗證總線轉(zhuǎn)換橋的可用性,通過總線轉(zhuǎn)換橋的設(shè)計實現(xiàn)符合1553B總線體系結(jié)構(gòu)的總線接口控制器可以與采用 Avalon總線結(jié)構(gòu)的智能接口模塊的數(shù)據(jù)通訊。根據(jù)Avalon總線等待周期讀寫時序可以得到Avalon總線的7個狀態(tài)(`idle、`read_add、`write_add、`read_wait、`write_wait、`read_ready、`write_ready),進而得到圖3關(guān)于Avalon總線狀態(tài)的轉(zhuǎn)換圖。
圖3 Avalon總線狀態(tài)轉(zhuǎn)換圖
根據(jù)圖3及處理器讀寫1553B總線RAM/Register的時序圖可列出對 1553B總線的 SELECT_n、STRBD_n、MEM/REG_n、RD/WR_n、IOEN_n、READYD_n以及地址線、數(shù)據(jù)線狀態(tài)的操作。上述信號的產(chǎn)生及有效與否的條件都是由整個系統(tǒng)的CLOCK、reset_n以及Avalon總線的輸入輸出信號來決定。因此可最終實現(xiàn) 1553B總線接口控制器與Avalon總線的數(shù)據(jù)傳輸。整個1553B橋接IP的實現(xiàn)使用Verilog HDL語言實現(xiàn),最后集成到SOPC系統(tǒng)中。
為了驗證該技術(shù),在Quartus II環(huán)境下編譯了該橋轉(zhuǎn)換代碼,并在Quartus II環(huán)境下仿真并驗證了該轉(zhuǎn)換橋邏輯代碼,其總線轉(zhuǎn)換橋時序仿真圖如圖4所示,總線轉(zhuǎn)換橋?qū)崿F(xiàn)了符合1553B總線體系結(jié)構(gòu)的數(shù)據(jù)與符合Avalon總線體系結(jié)構(gòu)的數(shù)據(jù)相互轉(zhuǎn)換。將由上述代碼實現(xiàn)的1553B橋接IP核作為自行設(shè)計的IP核集成到FPGA內(nèi)部,就能實現(xiàn)1553B控制器與智能接口模塊的數(shù)據(jù)通訊。
圖4 1553B橋接IP核時序仿真圖
本設(shè)計的硬件描述語言為 Verilog HDL,主要的設(shè)計要點有:
1)根據(jù)實際所選外部存儲芯片SRAM和FLASH的功能特性,定制存儲器接口IP核對外I/O信號,對于不用的信號作拉高或懸空處理;
2)在 Avalon總線和外部存儲器(SRAM 與FLASH)之間添加Avalon三態(tài)橋,以使Nios II可以訪問外部存儲器空間;
3)在 IP生成向?qū)聦?dǎo)入自行設(shè)計的Avalon/1553B總線轉(zhuǎn)換橋邏輯代碼,生成自定義 IP存放在自定義IP庫中,以備調(diào)用;
4)在分配外設(shè)地址和中斷時盡量按照系統(tǒng)默認給出的分配方式,除非有特殊需要;分配管腳時注意管腳特性匹配,不用管腳做三態(tài)輸出處理。
本系統(tǒng)的軟件設(shè)計采用Altera公司的Nios II IDE軟件集成開發(fā)工具,設(shè)計語言為C語言。軟件設(shè)計以硬件組成作為基礎(chǔ),硬件組成中主機端與智能端通過雙口RAM互連,因此軟件設(shè)計中主機端與智能端通過讀寫雙口RAM來實現(xiàn)通信。
主機端運行 VxWorks操作系統(tǒng),智能端運行ucos/II操作系統(tǒng)。智能端通過不同的任務(wù)入口配置成BC、RT、MT[5]三種模式下的一種。以智能端配置為BC模式為例:
1)主機端設(shè)置為BC模式并進行初始化;
2)以主機端BC模式下BC接收RT數(shù)據(jù)為例,主機端將命令碼、RT地址、RT子地址、數(shù)據(jù)個數(shù)、等待時間、是否重發(fā)等參數(shù)信息寫入雙口RAM,然后通知智能端;
3)智能端將主機端寫入RAM的參數(shù)讀出,通過讀取命令碼來決定調(diào)用的函數(shù)為實現(xiàn)BC接收RT數(shù)據(jù)功能的函數(shù),把RT地址等上述其余參數(shù)信息作為調(diào)用函數(shù)的參數(shù)來執(zhí)行調(diào)用函數(shù);
4)智能端執(zhí)行調(diào)用函數(shù),將數(shù)據(jù)及相應(yīng)參數(shù)值寫入雙口RAM,并通知主機;
5)主機端響應(yīng)智能端中斷,將雙口RAM中的數(shù)據(jù)讀出,并在主機端操作系統(tǒng)界面中打印出接收到的數(shù)據(jù)。
這樣就完成了在BC模式下接收RT數(shù)據(jù)的整個過程。由于篇幅有限,其它方式的數(shù)據(jù)傳輸不做具體介紹,但都是采用以雙口RAM為媒介的形式實現(xiàn)主機端與智能端數(shù)據(jù)傳輸[6]。
本文提出了采用軟核方式實現(xiàn)智能1553B接口的設(shè)計技術(shù)。本設(shè)計以航空系統(tǒng)常用的1553B總線接口為實例,在 FPGA內(nèi)部生成以軟核處理器為核心的SOPC系統(tǒng)的設(shè)計,能夠有效減少接口模塊提起中斷的頻率、防止數(shù)據(jù)丟失,同時減小接口板空間,方便修改、擴展和升級。系統(tǒng)設(shè)計由硬件設(shè)計和軟件設(shè)計兩部分組成。硬件設(shè)計完成了智能1553B接口的電路設(shè)計,在此基礎(chǔ)上,軟件設(shè)計實現(xiàn)了1553B數(shù)據(jù)通訊功能。
與傳統(tǒng)方式相比,這種設(shè)計方式靈活(軟核可裁剪、可重構(gòu))、高效(設(shè)計周期短)、集成度高(其主要功能在一片F(xiàn)PGA內(nèi)實現(xiàn)),同時由于不需要支付知識產(chǎn)權(quán)費用,因而降低了設(shè)計成本[7]。后續(xù)研究將對此板卡展開工作性能的分析,一是研究單個智能端所能同時處理的1553B數(shù)據(jù)量;二是評估主機端所能處理的1553B數(shù)據(jù)量,以評估整個系統(tǒng)的工作潛能。
[1]宋東,鄭海良,馬存寶.微機 ARINC429總線智能接口卡設(shè)計[J].儀器儀表學(xué)報,2002,23(3):719-720.
[2]左震,黃芝平,唐貴林,等. 基于 Nios軟核處理器的嵌入式系統(tǒng)設(shè)計[J].電子測試, 2008,11(11):55-59.
[3]劉少華,閆建國,劉歌群.基于雙口RAM的智能429總線接口卡設(shè)計[J].計算機技術(shù)與應(yīng)用.2005,25(1):44-45.
[4]吳年祥,謝發(fā)忠. 基于FPGA的SOPC嵌入式系統(tǒng)設(shè)計[J].中國西部科技,2009,3(8):3-5.
[5]MIL-STD-1553 DATA SHEET [Z].DDC Corporation,1999.
[6]錢瑞霞,程遠楚,朱登攀,等.基于雙口 RAM 的智能數(shù)據(jù)采集卡設(shè)計 [J].中國儀器儀表.2001(3):24-26.
[7]侯建軍, 郭勇. SOPC技術(shù)基礎(chǔ)教程[M]. 北京:清華大學(xué)出版社,2008.