<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>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > CPCI總線(xiàn)的分布式系統設計應用

CPCI總線(xiàn)的分布式系統設計應用

作者: 時(shí)間:2010-11-23 來(lái)源:網(wǎng)絡(luò ) 收藏

圖3板卡數據接收“抽屜”

本文引用地址:http://dyxdggzs.com/article/162663.htm

基于這種報文存儲機制,我們定義幾種地址表來(lái)維護數據傳輸相關(guān)地址信息。板上維護有靜態(tài)的基址表,記載為每個(gè)卡槽上板卡預先分配的基址。所有板卡上都維護有板卡地址映射表和傳輸地址偏移表。板卡地址映射表為一個(gè)結構數組,數組中各項分別代表一個(gè)卡槽,里面包含板卡名稱(chēng)、卡槽號、基址和地址范圍等地址信息以供數據傳輸時(shí)配置所用,其數據結構如下:

typedefstruct_BUS_ADDR_MAPPING_INFO{

charboard_name[BOARD_NAME_LENGTH];

intslot_number;

unsignedlongbase_addr;

unsignedlongrange;

}BUS_AddrMapping_Info,*P_BUS_AddrMapping_Info;

傳輸地址偏移表為一無(wú)符號整型數組,用于記錄板卡間數據傳輸時(shí)各板卡的地址偏移,初值均為零,每次傳輸完畢,接收板卡的地址偏移就增加當次數據傳輸長(cháng)度,當地址空間不足以存放即將傳輸的數據時(shí),則將偏移地址設為零,重新從區域起始處寫(xiě)入。其數據結構定義如下:

u32current_offset_table[NUM_OF_SLOT]={0,0,0,0,0,0,0,0};

3.2數據傳輸實(shí)現

我們定義了一種數據結構IPH(InternalPacketHeader),包含數據類(lèi)型、長(cháng)度、來(lái)源卡槽號等屬性,在傳輸數據前作為包頭對報文進(jìn)行封裝,以便接收方解析包頭后能根據數據業(yè)務(wù)類(lèi)型區分處理。主要IPH類(lèi)型有板卡配置信息,端口注冊信息,路由信息,未知數據類(lèi)型等。定義數據結構iph_attr區別不同IPH_info類(lèi)型,位于數據包首,其數據結構如下:

typedefstruct_IPH_ATTR{

u32board_id;/*fromwhichboard*/

intiph_type;/*datagramtype*/

unsignedlonglength;/*datagramlength(withoutIPH)*/

}IPH_ATTR,*P_IPH_ATTR;

針對各種類(lèi)型IPH信息又分別定義不同數據結構,在數據包頭中依次存放于iph_attr結構之后。

發(fā)送數據時(shí),對數據進(jìn)行IPH封裝,根據前述的板卡地址映射表選擇目的PCI地址,再調用接口函數完成數據傳輸。發(fā)送方通過(guò)寫(xiě)接收板卡橋芯片的mailbox寄存器,將傳輸地址及數據長(cháng)度信息通知接收方,產(chǎn)生中斷觸發(fā)接收。PLX橋芯片支持local對PCI的直接訪(fǎng)問(wèn),它有8個(gè)mailbox寄存器,前四個(gè)能產(chǎn)生中斷,每個(gè)mailbox32位,傳輸地址和數據長(cháng)度信息分別使用mailboxi和mailboxi+4配合工作,這樣接收方收到兩個(gè)參數時(shí)會(huì )產(chǎn)生一次中斷,進(jìn)行數據接收[5]。這種機制使接收處理具有四個(gè)服務(wù)窗口,提高了吞吐量。

接收板卡PLX芯片的mailbox被寫(xiě)入參數即產(chǎn)生本地中斷檢查“抽屜”,產(chǎn)生中斷前,數據實(shí)際上已被發(fā)到目標板卡上了。中斷服務(wù)程序為接收端維護一個(gè)數據隊列,它讀取mailbox中的信息,分析地址找到相應數據并交由底半處理。底半解析數據包的IPH分辨數據類(lèi)型,若為配置、端口、路由等信息則進(jìn)行相應配置,若為數據信息則進(jìn)行處理或轉發(fā)。

綜上所述,通過(guò)“抽屜機制”和對幾種地址表的維護完成了各板卡之間PCI地址空間的映射,板卡將數據寫(xiě)往映射地址空間即能通過(guò)總線(xiàn)將數據傳輸到目標板卡上,實(shí)現了板卡的跨總線(xiàn)內存訪(fǎng)問(wèn);自定義IPH數據包頭來(lái)區分數據類(lèi)型協(xié)助數據信息管理,完成了路由維護,轉發(fā)引擎的邏輯功能,實(shí)現了數據的無(wú)干擾傳輸與有效通信管理。

4.總結及展望

本文作者創(chuàng )新點(diǎn)為:給出了一種基于系統,同時(shí)提出了基于“抽屜機制”的報文存儲機制和地址信息維護策略。文章所述的基于系統,可達到64bit總線(xiàn)寬度、264MB/s的峰值帶寬,系統中各主機能獨立完成數據處理及通信,能夠承載語(yǔ)音、數據多種業(yè)務(wù),用戶(hù)還可通過(guò)用戶(hù)接入板與語(yǔ)音業(yè)務(wù)板所連的PSTN網(wǎng)和數據業(yè)務(wù)板所連Internet進(jìn)行數據通信,在通信、軍事等領(lǐng)域有著(zhù)較大的前景。為使本通信系統更具大規模實(shí)用價(jià)值,未來(lái)的工作包括:

(1)實(shí)現一套易操作的遠程管理系統,以便完成通信業(yè)務(wù)的監控,調配;

(2)支持更多業(yè)務(wù)類(lèi)型的接口板卡,如xDSL,H.264等;

(3)在外界干擾較大情況下,通過(guò)嚴格的性能測試以證明系統能夠滿(mǎn)足電信級的業(yè)務(wù)需求。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(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>