<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-12-18 來(lái)源:網(wǎng)絡(luò ) 收藏

  大規模系統應采用分布式網(wǎng)絡(luò )架構,同時(shí)應具有開(kāi)放性和良好的可擴展性,以適應不斷變化的應用環(huán)境和需求;系統中各模塊分工處理不同類(lèi)型數據,應具有相對的獨立自主性,同時(shí)又在不同的層次上相互關(guān)聯(lián),能實(shí)現相互訪(fǎng)問(wèn)和協(xié)同工作;系統也應具有良好的集成性,在功能層次上需要有效的組件構造框架,在組件層次上則應有統一的數據交互平臺[1]。

  基于以上分析,我們選用CPCI總線(xiàn)作為的數據通信平臺。CPCI總線(xiàn)技術(shù)是PCI總線(xiàn)技術(shù)和成熟的歐式卡組裝技術(shù)的結合,在電氣、邏輯和軟件功能方面,它與PCI標準完全兼容,又突破了PCI標準4個(gè)插槽的限制,相較于 VME總線(xiàn)模塊價(jià)位低,具有開(kāi)放性、易于擴展、高密度等優(yōu)點(diǎn),同時(shí)達到99.999%的高可用性。采用CPCI總線(xiàn)技術(shù)以及硬件接口設計規范,能運用其多模塊插卡式的設計優(yōu)點(diǎn),支持多業(yè)務(wù)的分布式處理,并實(shí)現模塊化數據處理單元的無(wú)縫連接,為分布式數據交換提供高速、可靠的保證,非常適合作為業(yè)務(wù)處理通信平臺,也適于在通信及嵌入式系統中的廣泛應用[2-4]。

  本文給出一種基于CPCI總線(xiàn)的通信系統設計,系統采用分布式網(wǎng)絡(luò )架構,支持多種分組交換業(yè)務(wù)的處理及數據交互。文章首先給出系統結構及原理設計,并針對分布式業(yè)務(wù)處理模塊跨總線(xiàn)通信的難點(diǎn),提出基于“”的報文存儲和地址信息維護策略,描述了數據無(wú)干擾傳輸等關(guān)鍵技術(shù)的實(shí)現,最后給出技術(shù)總結和展望。

  2. 系統總體設計

  2.1 系統結構特點(diǎn)

  我們所設計的結構如圖1所示。系統中不同設備板卡獨立對相應業(yè)務(wù)數據進(jìn)行處理,將其轉化為統一的IP數據進(jìn)行互通,并維護各自的路由表獨立完成數據轉發(fā)。系統將與特定業(yè)務(wù)網(wǎng)絡(luò )的接口分布到各種設備板卡中進(jìn)行標準的接入信道適配,并將各類(lèi)網(wǎng)絡(luò )數據分布到各板卡進(jìn)行處理和轉發(fā),實(shí)現了集中配置與分布式接入和數據處理的完美結合。

  在CPCI分布總線(xiàn)架構中,背板為總線(xiàn)交換提供物理連接、電路保證,背板上系統插槽提供總線(xiàn)仲裁、時(shí)鐘分配和背板上各板卡重新啟動(dòng)等功能;外設插槽上可安放簡(jiǎn)單的接口板、智能從屬裝置或總線(xiàn)控制裝置[2,3]。每塊CPCI板卡均有處理器和嵌入式實(shí)時(shí)系統,處理器采用Motorola的PowerPC-860,同時(shí)采用PLX公司的9054和9056 PCI橋芯片在PowerPC- 860和CPCI總線(xiàn)之間架起一條高效穩定的傳輸橋梁。PLX 9054/9056芯片實(shí)現了CPCI主控設備的功能,支持PCI2.2規程,簡(jiǎn)化了對連接PowerPC的設計,兼容性較好,很容易擴展成66MHz時(shí)鐘及64bit的PCI總線(xiàn),特別是PLX 9056內嵌總線(xiàn)仲裁器,能減小系統規模,使系統更穩定[5]。

數據通信系統結構圖
圖1 數據通信系統結構圖

  2.2系統資源共享與信息互通

  系統采用基于CPCI的單總線(xiàn)多處理器/多操作系統的分布式架構,系統中各塊板卡均擁有獨立的CPU和操作系統、地址和內存空間以及獨立的I/O和中斷,可獨立完成數據操作,每塊板卡可看作一臺計算機主機。分布式系統形成的拓撲結構為一個(gè)全連通的網(wǎng)絡(luò ),網(wǎng)絡(luò )中每個(gè)節點(diǎn)都能夠直接訪(fǎng)問(wèn)其它節點(diǎn);從CPCI總線(xiàn)傳輸的角度看,所有插槽上的板卡都是對等的,都能夠充當master主動(dòng)發(fā)起總線(xiàn)傳輸。針對這種基于總線(xiàn)的分布式架構,我們設計了跨總線(xiàn)的內存訪(fǎng)問(wèn)機制,將系統中其它板卡的系統內存或者設備內存(比如內存擴展卡)映射到本地地址空間,然后以與系統內存相同的方式訪(fǎng)問(wèn)被映射的內存,這樣每塊板卡都能夠訪(fǎng)問(wèn)到總線(xiàn)上其他板卡的內存資源了。

  2.3統一規范的訪(fǎng)問(wèn)接口

  異構網(wǎng)絡(luò )通過(guò)標準信道適配接入分布式系統,語(yǔ)音、X.25、串口數據等非IP數據經(jīng)由數據適配模塊轉換成IP數據,系統中各板卡的嵌入式實(shí)時(shí)系統對數據進(jìn)行處理和交互。各種異構網(wǎng)絡(luò )掛接在嵌入式系統中相應網(wǎng)絡(luò )設備上,網(wǎng)絡(luò )設備驅動(dòng)調用 CPCI總線(xiàn)驅動(dòng)提供的統一接口實(shí)現實(shí)時(shí)系統與總線(xiàn)之間的數據傳輸。發(fā)送數據時(shí),網(wǎng)絡(luò )設備驅動(dòng)通過(guò)總線(xiàn)驅動(dòng)控制橋芯片進(jìn)行地址轉換、數據轉發(fā)、中斷產(chǎn)生等工作,生成相應的總線(xiàn)操作將數據送往總線(xiàn);接收數據時(shí),總線(xiàn)驅動(dòng)響應中斷,接收總線(xiàn)上相應地址段的數據,在中斷服務(wù)程序中進(jìn)行數據解析、地址轉換、數據轉發(fā)、其他中斷產(chǎn)生等操作。我們采用Linux操作系統,其網(wǎng)絡(luò )系統主要是基于UNIX的socket機制,系統協(xié)議棧和驅動(dòng)程序之間通過(guò)專(zhuān)門(mén)的數據結構(sk_buff)傳遞數據。實(shí)時(shí)系統內核與CPCI總線(xiàn)間數據傳輸流程如圖2所示:

數據傳輸流程圖
圖2 數據傳輸流程圖

  3. 關(guān)鍵技術(shù)

  3.1 報文存儲的“

  系統中各板卡共用一條CPCI總線(xiàn),我們提出基于“”的報文存儲策略,以保證板卡間數據無(wú)干擾傳輸。在板卡加入系統的初始化階段,系統板為總線(xiàn)上每塊板卡分配獨立的PCI總線(xiàn)地址區間,其他板卡向其發(fā)送數據時(shí)將數據寫(xiě)往指定地址區域。一塊板卡會(huì )接收來(lái)自不同板卡的數據,為避免各板卡往同一基址發(fā)送數據所引起的干擾,同一板卡地址區域內又為其他板卡分配大小相同的獨立讀寫(xiě)空間,我們將它命名為“抽屜”。這樣來(lái)自某板卡的數據會(huì )被送到其對應“抽屜”,每次數據依序存放而非覆蓋,以保證板卡數據處理時(shí)間。當數據長(cháng)度超出抽屜剩余空間時(shí),則似環(huán)狀buffer從頭開(kāi)始存放?!俺閷蠙C制”如圖3所示,左邊方塊代表總線(xiàn)上不同板卡,右邊則是PCI總線(xiàn)地址空間。板卡B對應地址范圍從a點(diǎn)到 e點(diǎn),其中ab點(diǎn)之間空間僅用于板卡A向B進(jìn)行數據傳送,bc點(diǎn)之間空間僅用于板卡C向B進(jìn)行數據傳送,以此類(lèi)推。

板卡數據接收

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

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

  typedef struct _BUS_ADDR_MAPPING_INFO{

  char board_name[BOARD_NAME_LENGTH];

  int slot_number;

  unsigned long base_addr;

  unsigned long range;

 ?。鼴US_AddrMapping_Info, *P_BUS_AddrMapping_Info;

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

  u32 current_offset_table[NUM_OF_SLOT] = {0,0,0,0,0,0,0,0};

  3.2 數據傳輸實(shí)現

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

  typedef struct _IPH_ATTR {

  u32 board_id; /*from which board*/

  int iph_type; /*datagram type*/

  unsigned long length; /*datagram length(without IPH)*/

 ?。齀PH_ATTR, *P_IPH_ATTR;

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

  發(fā)送數據時(shí),對數據進(jìn)行IPH封裝,根據前述的板卡地址映射表選擇目的PCI地址,再調用總線(xiàn)接口函數完成數據傳輸。發(fā)送方通過(guò)寫(xiě)接收板卡橋芯片的mailbox寄存器,將傳輸地址及數據長(cháng)度信息通知接收方,產(chǎn)生中斷觸發(fā)接收。 PLX橋芯片支持local總線(xiàn)對PCI總線(xiàn)的直接訪(fǎng)問(wèn),它有8個(gè)mailbox寄存器,前四個(gè)能產(chǎn)生中斷,每個(gè)mailbox32位,傳輸地址和數據長(cháng)度信息分別使用mailbox i 和mailbox i+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)為:給出了一種基于CPCI的分布式系統設計,同時(shí)提出了基于“抽屜機制”的報文存儲機制和地址信息維護策略。文章所述的基于CPCI的分布式系統,可達到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)的工作包括:

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

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

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



評論


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