<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 汽車(chē)電子 > Champ-av3主板的開(kāi)發(fā)和應用

Champ-av3主板的開(kāi)發(fā)和應用

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

引言 

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

    1 硬件結構 

    硬件結構框圖如圖1所示。



  

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

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

    1.1 存儲器類(lèi)型和存儲空問(wèn)的分配 

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

 

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

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

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

    Champ-av3主板的處理器讀取存儲器時(shí),先從存儲器搬人高速緩沖存儲器,再進(jìn)行訪(fǎng)問(wèn),而外部設備只能直接訪(fǎng)問(wèn)存儲器。所以在訪(fǎng)問(wèn)數據時(shí)一定要注意,最新數據究竟是在存儲器中還是在高速緩沖存儲器中。這里需要提及兩個(gè)函數cacheFlush()和cacheIn-validate()。它們是編程中經(jīng)常需要使用的指令。在外部器件讀取數據之前,需要將數據從高速緩沖存儲器cacheFlush()到存儲器中,以保證外部器件讀到當前的最新數據;在外部器件向存儲器寫(xiě)了數據后,需要將數據從存儲器cacheInvalidate()到高速緩沖存儲器中,以保證處理器讀到的是最新數據。在DMA傳數和處理器之間共享數據時(shí)必須注意這種數據的及時(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(yíng)處理模塊上,但是基于vx-Works共享空間網(wǎng)絡(luò )特點(diǎn),所有的處理模塊都可以通過(guò)一個(gè)網(wǎng)口通信。這個(gè)特點(diǎn)也可以推廣到多板系統。  

    本板還具有VME64主從接口能力。VME64接口通過(guò)PCI-PCI橋掛到A、B處理模塊之間,在DMA方式下,本地存儲器與VME總線(xiàn)之間可以有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總線(xiàn)標準,其中PCI-X總線(xiàn)接口支持64 bit、66 MHz或100 MHz的傳輸速率,可以具有800 MB/s的峰值傳輸能力。本板支持多種PMC子卡,使得數據的出入接口靈活,便于用戶(hù)擴展功能。 

    2 軟件設計 

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

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

    1 ) vxWorks BSP  

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

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

    2)BSL文件 

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

    3)IXLibs-AV 庫函數  

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

    IXLibs-AV庫函數可以簡(jiǎn)化運算,但使用時(shí)最好先對函數進(jìn)行驗證。因為它雖然足以C語(yǔ)言的方式應用,但有些參數的調用卻不像按C語(yǔ)言的習慣那樣使用,而且編譯和運行時(shí)不會(huì )出現任何提示。 

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


    1)FIFO-IPI中斷 

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

    2)IPI中斷 

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

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

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

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

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

    5 Champ-av3板的應用 

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


  

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

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

    6 結束語(yǔ) 

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


linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>