新聞中心

EEPW首頁 > 汽車電子 > Champ-av3主板的開發(fā)和應(yīng)用

Champ-av3主板的開發(fā)和應(yīng)用

——
作者:南京電子技術(shù)研究所 張 西 吳 甜 時(shí)間:2007-11-09 來源:電子報(bào) 收藏

引言 

    是一種功能強(qiáng)大的,內(nèi)嵌vxWorks操作系統(tǒng),具有專門的算法庫,運(yùn)行速度快、實(shí)時(shí)性好,町以配合多種子卡來適應(yīng)不同的接口要求,十分適用于雷達(dá)、聲納、人工智能等應(yīng)用場合。  
    集成了4片Motorola公司的MPC7447/A處理芯片,每片處理器各自擁有256 MB的SDRAM存儲空間。4片處理器通過MV64360橋片掛在內(nèi)部64位100 MHz的PCI-x數(shù)據(jù)總線上,通過這條總線,4片MPC7447/A可以方便快速地傳輸數(shù)據(jù),共享資源。它還具有專門的OBIC模塊,對多處理器之間的聯(lián)系進(jìn)行管理。同時(shí),板上還具備兩個(gè)安裝子卡的接口,支持多種PMC(PCI Mezzanine Card)子卡,使得數(shù)據(jù)的出入接口靈活,便于用戶擴(kuò)展功能。 

    1 硬件結(jié)構(gòu) 

    硬件結(jié)構(gòu)框圖如圖1所示。



  

    提供4個(gè)高性能的處理模塊,每個(gè)模塊包括1個(gè)1 GHz的MPC7447/A處理器、256 MB的SDRAM和MV64360 PCI橋片。這4個(gè)模塊通過構(gòu)成回路的PCI-X總線掛在一起,彼此可以進(jìn)行高速的互連。而MV64360 PCI橋片則給MPC7447/A、SDRAM和PCI-X總線提供丫通暢的連接接口。 

    在多處理器共同工作時(shí),會碰到需要將數(shù)據(jù)發(fā)送給多個(gè)處理器或者數(shù)據(jù)從多個(gè)處理器流水通過的問題,這個(gè)問題常常比處理器的運(yùn)算能力更限制板子的性能。本板的四方回路式結(jié)構(gòu)很好地解決了這個(gè)問題。 

    1.1 存儲器類型和存儲空問的分配 

    Champ-av3在地址空問分配上獨(dú)具特色,它的存儲空間全部統(tǒng)一編址,因此任何一個(gè)處理器都能訪問到其他處理器的存儲空間,也能訪問兩個(gè)PMC子卡的存儲空問和VME總線的空間。而任何一個(gè)子卡模塊或VME主控器也能隨意訪問這些處理器的存儲空問。它的存儲空間分配方式見表1。

 

    Champ-av 3的每個(gè)處理模塊都有128 MB或256 MB的SDRAM,它具有雙倍的傳輸速率,在125 MHz工作頻率下,數(shù)據(jù)傳輸速率可達(dá)2.0 GB/s。每個(gè)SDRAM都可以被所有的處理器訪問,VME總線也可以通過PCI到VME的轉(zhuǎn)換接口訪問到它。 

    為了分擔(dān)SDRAM的壓力,板上還有一片256 kB的高速SRAM,可以專門用來存儲外圍設(shè)備的一些狀態(tài)字。例如在DMA傳輸時(shí),DMA控制器可以一邊從SDRAM中訪問數(shù)據(jù),一邊從SRAM中獲取外圍設(shè)備狀態(tài)。 

    在Champ-av3板上,靠近A處理模塊處有一片64 MB或128 MB、32 bit的Flash存儲空間,它可以被擦除100萬次,數(shù)據(jù)保存可達(dá)20年以上。為了防止意外擦除,板上提供硬件跳線器。實(shí)際應(yīng)用中值得注意的是,這片F(xiàn)lash存儲器只能由A處理模塊直接訪問,A處理模塊將Flash存儲器中的數(shù)據(jù)讀到自己的存儲空間后,其他處理模塊才能共享。這一點(diǎn)也可以從表1的存儲空間分配表看出。 

    Champ-av3主板的處理器讀取存儲器時(shí),先從存儲器搬人高速緩沖存儲器,再進(jìn)行訪問,而外部設(shè)備只能直接訪問存儲器。所以在訪問數(shù)據(jù)時(shí)一定要注意,最新數(shù)據(jù)究竟是在存儲器中還是在高速緩沖存儲器中。這里需要提及兩個(gè)函數(shù)cacheFlush()和cacheIn-validate()。它們是編程中經(jīng)常需要使用的指令。在外部器件讀取數(shù)據(jù)之前,需要將數(shù)據(jù)從高速緩沖存儲器cacheFlush()到存儲器中,以保證外部器件讀到當(dāng)前的最新數(shù)據(jù);在外部器件向存儲器寫了數(shù)據(jù)后,需要將數(shù)據(jù)從存儲器cacheInvalidate()到高速緩沖存儲器中,以保證處理器讀到的是最新數(shù)據(jù)。在DMA傳數(shù)和處理器之間共享數(shù)據(jù)時(shí)必須注意這種數(shù)據(jù)的及時(shí)刷新。 

    1.2 接口 

    Champ-av3有兩個(gè)網(wǎng)口:網(wǎng)口0是百兆網(wǎng),它與前面板上的RJ45連接器和后面板上的P2插座都連在一起;網(wǎng)口1是干兆網(wǎng),它只與后面板上的P2插座連接。這兩個(gè)網(wǎng)口的接口都在A處理模塊上,但是基于vx-Works共享空間網(wǎng)絡(luò)特點(diǎn),所有的處理模塊都可以通過一個(gè)網(wǎng)口通信。這個(gè)特點(diǎn)也可以推廣到多板系統(tǒng)。  

    本板還具有VME64主從接口能力。VME64接口通過PCI-PCI橋掛到A、B處理模塊之間,在DMA方式下,本地存儲器與VME總線之間可以有50 MB/s的傳輸速率。 

    板上還有3個(gè)串口:串口1是EIA-232電平,與前面板后面板都相連;串口2、3有EIA-232和EIA-422兩種傳輸電平,串口2與后面板的P2插座相連,串口3與后面板的P0插座相連。需要注意,串口2、3只有B處理模塊能夠直接使用。 

    同時(shí),板上還具備兩個(gè)安裝PMC子卡的接口,它們都符合PCI和PCI-X總線標(biāo)準(zhǔn),其中PCI-X總線接口支持64 bit、66 MHz或100 MHz的傳輸速率,可以具有800 MB/s的峰值傳輸能力。本板支持多種PMC子卡,使得數(shù)據(jù)的出入接口靈活,便于用戶擴(kuò)展功能。 

    2 軟件設(shè)計(jì) 

    Champ-av3提供一套與硬件相結(jié)合的軟件包,可以對板子進(jìn)行初始化和板內(nèi)自檢。板內(nèi)自檢包括上電自檢和初始自檢,可以保證95%的檢測范圍。  

    用戶編程的開發(fā)環(huán)境在tornarlo2.0以上的版本中進(jìn)行,編程語言址C/C++。但除了用C語言編寫應(yīng)用程序外,還有一些軟包但需要深入了解。 

    1 ) vxWorks BSP  

    vxWorks BSP(板級支持包)支持Tronado2.02和tronado2.2,開發(fā)環(huán)境,主機(jī)操作系統(tǒng)要求足Windows和Solaris,使用GNU編譯器。BSP還包含一系列功能函數(shù),可以進(jìn)行更改系統(tǒng)時(shí)鐘、初始化硬件、串口等操作。 

    需要指出的是,雖然4個(gè)處理模塊的存儲器空間是可以共享的,但是BSP的初始設(shè)定對共享加了權(quán)限限制,使A處理模塊只可以訪問B、C、D處理模塊的頭64 MB空間,B、C、D處理模塊也可以訪問A處川模塊的頭64 MB空間,但B、C、D處理模塊彼此之間小能訪問。如果需要改變設(shè)置,可以到sysLib.c程序的sysH-wlnit子程序中用sysPhysMemAdd函數(shù)更改。 

    2)BSL文件 

    BSL(板級支持庫)文件支持對板子進(jìn)行較為低級的操作和控制,它不依賴操作系統(tǒng),也就是說基于vx-Works操作系統(tǒng)的BSP可以使用BSL,而不需要操作系統(tǒng)的應(yīng)用也可以使用BSL。BSL的功能主要有以下幾大類:板信息類函數(shù):可以控制和獲得板子的狀念信息;DMA類函數(shù):對存儲器直接進(jìn)行訪問的函數(shù);Flash管理類函數(shù):只有A處理器才能管理Flash;中斷類函數(shù):處理器之間的中斷有多種方式,。它們都由板內(nèi)中斷控制器(OBIC模塊)統(tǒng)一管理;PCI、VME總線類函數(shù);串口調(diào)用類函數(shù):只有B處理器才能使用。 

    3)IXLibs-AV 庫函數(shù)  

    這是被優(yōu)化的運(yùn)算函數(shù)庫,提供32位浮點(diǎn)數(shù)據(jù)構(gòu)成的向量和矩陣運(yùn)算。專門有資料顯示這些運(yùn)算的耗時(shí),因?yàn)镸PC7447/A的主頻可以達(dá)到1 GHz,它的運(yùn)算速度非???,但需要注意的是這些資料僅僅顯示運(yùn)算時(shí)間,在實(shí)際算法運(yùn)行時(shí),數(shù)據(jù)從存儲空間搬人高速緩沖存儲器還需要額外的時(shí)間,這足由于Champ-av3的存儲傘問的構(gòu)造方式?jīng)Q定的。所以必須綜合數(shù)據(jù)的更新率、數(shù)據(jù)量和運(yùn)算時(shí)問這3個(gè)因素,才能真正估算算法的牦時(shí)。 

    IXLibs-AV庫函數(shù)可以簡化運(yùn)算,但使用時(shí)最好先對函數(shù)進(jìn)行驗(yàn)證。因?yàn)樗m然足以C語言的方式應(yīng)用,但有些參數(shù)的調(diào)用卻不像按C語言的習(xí)慣那樣使用,而且編譯和運(yùn)行時(shí)不會出現(xiàn)任何提示。 

    3 處理模塊之問協(xié)同工作方式 
  
    多處理芯片涉及協(xié)同工作問題,彼此之間的握手信息可以有多種方式傳遞。  


    1)FIFO-IPI中斷 

    每個(gè)處理器都擁有1個(gè)16位寬度、32位深度的FIFO,用來存儲FIFO_IPI中斷。只要這個(gè)FIFO不空,就會產(chǎn)生INT_ID_FIFO_NOT_EMPTY中斷向量。BSL中專門有這類調(diào)用函數(shù)。這種中斷的優(yōu)點(diǎn)是不會丟失,還可以攜帶不同的中斷信息。 

    2)IPI中斷 

    每個(gè)處理器擁有8個(gè)相互獨(dú)立的IPI中斷:INT_ID_IPIO~I(xiàn)NT_ID_IPI7。IPI中斷無奇存,這意味著如果不能及時(shí)響應(yīng)巾斷,后一個(gè)中斷會丟失。但是IPI中斷支持廣播式中斷,1個(gè)處理器可以向所有的處理器(包括自己)發(fā)送中斷。 

    此外,還有若十種方法如硬件信號量也可以同步多處理器系統(tǒng)。上述這些方式都是通過OBIC模塊統(tǒng)一管理的,每個(gè)處理器都有與OBIC的獨(dú)立通道,因此,這些方式的產(chǎn)生和響應(yīng)不占用CPU總線周期。即使當(dāng)阿系統(tǒng)正在頻繁進(jìn)行傳數(shù)工作,也不會影響系統(tǒng)的同步。 

    4 軟件程序運(yùn)行時(shí)問估算 

    軟件程序的耗時(shí)估算是前期工作不可缺少的一步,大致可分為數(shù)據(jù)傳輸耗時(shí)和算法運(yùn)算耗時(shí)。
        
    數(shù)據(jù)傳輸耗時(shí)主要指DMA傳輸數(shù)據(jù)的時(shí)間,雖然數(shù)據(jù)可以異地共享,但會額外花費(fèi)時(shí)間,尤其在共享數(shù)據(jù)量很大的時(shí)候。所以對于大數(shù)據(jù)量,一般采用DMA方式傳到各個(gè)處理模塊的本地存儲器,以供它們各自訪問。這就涉及到DMA傳輸數(shù)據(jù)的耗時(shí)估算。經(jīng)過實(shí)測,同一個(gè)DMA通道傳輸數(shù)據(jù)量與耗時(shí)之比是常數(shù),但是啟動(dòng)1個(gè)DMA通道的傳輸耗時(shí)與啟動(dòng)多個(gè)DMA通道的傳輸耗時(shí)之比不是常數(shù)。例如:A處理器啟動(dòng)1個(gè)DMA,傳輸10 MB數(shù)據(jù)給B處理器,大約需要25.196 ms;而A處理器同時(shí)啟動(dòng)3個(gè)DMA,分別傳輸10 MB數(shù)據(jù)給B、C、D處理器,只需要37.383 ms。從此叮以看出,選擇適當(dāng)?shù)腄MA傳輸方式,可以大大降低傳輸耗時(shí)。 

    Champ-av3的存儲空間構(gòu)造方式特殊,由于高速緩沖存儲器空間遠(yuǎn)小于存儲空間,所以算法的耗時(shí)和參與運(yùn)算的數(shù)據(jù)量并不成正比。除了了解算法本身的運(yùn)算時(shí)間外,最好充分考慮數(shù)據(jù)的更新率和運(yùn)算數(shù)據(jù)量。如果算法允許,可以將數(shù)據(jù)拆成小包運(yùn)算,減少算法耗時(shí)。 

    5 Champ-av3板的應(yīng)用 

    圖2所示是一則Champ-av3主板的硬件應(yīng)用實(shí)例。它的輸入信號是同步數(shù)據(jù)流,PMC子卡1有64位可用戶自定義的IO口,而且接口電平可以有多種選擇。數(shù)據(jù)進(jìn)入子卡后可以在大容量的FPGA中進(jìn)行預(yù)處理,然后通過PCI總線進(jìn)入主板。需要注意的是PCI總線是64位的,所以數(shù)據(jù)在預(yù)處理時(shí)最好拼接成64位,這樣除了可以提高PCI總線傳輸速率,還便于存儲器存放數(shù)據(jù)。而主板調(diào)用這些數(shù)據(jù)時(shí),由于是C語言編程,可以以C語言允許的數(shù)據(jù)形式任意調(diào)用。  


  

    輸出信號是異步數(shù)據(jù)流,PMC子卡2通過PCI總線與主板連接,任何一個(gè)處理模塊都可以控制它,通過它傳輸或接收數(shù)據(jù)。PMC子卡2最多可以有4對雙向星形結(jié)構(gòu)連接方式,因此它可以實(shí)現(xiàn)點(diǎn)對多傳輸方式,但在這種傳輸方式下,傳輸速率最好不要超過50 MB/s。 

    由于A處理模塊對Flash存儲器的特殊控制地位,讓它處在主控地位是比較方便的。A處理模塊負(fù)責(zé)所有的控制流程,其他模塊可以在A處理模塊的控制下運(yùn)行程序,并行處理數(shù)據(jù)。 

    6 結(jié)束語 

    Champ-av3板內(nèi)部有4片MPC7447/A處理器,每片主頻都是1 GHz,所以本板的運(yùn)算速度很快,可以滿足目前大多數(shù)數(shù)字信號處理的要求。而且它配備各種子卡,有靈活的接口方式,所以是一種功能強(qiáng)大、通用性好的硬件平臺,適用于多種數(shù)字信號處理方面的開發(fā)應(yīng)用。 


linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉