CPCI總線的分布式系統(tǒng)設計應用
大規(guī)模系統(tǒng)應采用分布式網絡架構,同時應具有開放性和良好的可擴展性,以適應不斷變化的應用環(huán)境和需求;系統(tǒng)中各模塊分工處理不同類型數(shù)據(jù),應具有相對的獨立自主性,同時又在不同的層次上相互關聯(lián),能實現(xiàn)相互訪問和協(xié)同工作;系統(tǒng)也應具有良好的集成性,在功能層次上需要有效的組件構造框架,在組件層次上則應有統(tǒng)一的數(shù)據(jù)交互平臺[1]。
本文引用地址:http://m.butianyuan.cn/article/162663.htm基于以上分析,我們選用CPCI總線作為分布式系統(tǒng)的數(shù)據(jù)通信平臺。CPCI總線技術是PCI總線技術和成熟的歐式卡組裝技術的結合,在電氣、邏輯和軟件功能方面,它與PCI標準完全兼容,又突破了PCI標準4個插槽的限制,相較于VME總線模塊價位低,具有開放性、易于擴展、高密度等優(yōu)點,同時達到99.999%的高可用性。采用CPCI總線技術以及硬件接口設計規(guī)范,能運用其多模塊插卡式的設計優(yōu)點,支持多業(yè)務的分布式處理,并實現(xiàn)模塊化數(shù)據(jù)處理單元的無縫連接,為分布式數(shù)據(jù)交換提供高速、可靠的保證,非常適合作為分布式系統(tǒng)業(yè)務處理通信平臺,也適于在通信及嵌入式系統(tǒng)中的廣泛應用[2-4]。
本文給出一種基于CPCI總線的通信系統(tǒng)設計,系統(tǒng)采用分布式網絡架構,支持多種分組交換業(yè)務的處理及數(shù)據(jù)交互。文章首先給出系統(tǒng)結構及原理設計,并針對分布式業(yè)務處理模塊跨總線通信的難點,提出基于“抽屜機制”的報文存儲和地址信息維護策略,描述了數(shù)據(jù)無干擾傳輸?shù)汝P鍵技術的實現(xiàn),最后給出技術總結和展望。
2.系統(tǒng)總體設計
2.1系統(tǒng)結構特點
我們所設計的分布式系統(tǒng)結構如圖1所示。系統(tǒng)中不同設備板卡獨立對相應業(yè)務數(shù)據(jù)進行處理,將其轉化為統(tǒng)一的IP數(shù)據(jù)進行互通,并維護各自的路由表獨立完成數(shù)據(jù)轉發(fā)。系統(tǒng)將與特定業(yè)務網絡的接口分布到各種設備板卡中進行標準的接入信道適配,并將各類網絡數(shù)據(jù)分布到各板卡進行處理和轉發(fā),實現(xiàn)了集中配置與分布式接入和數(shù)據(jù)處理的完美結合。
在CPCI分布總線架構中,背板為總線交換提供物理連接、電路保證,背板上系統(tǒng)插槽提供總線仲裁、時鐘分配和背板上各板卡重新啟動等功能;外設插槽上可安放簡單的接口板、智能從屬裝置或總線控制裝置[2,3]。每塊CPCI板卡均有處理器和嵌入式實時系統(tǒng),處理器采用Motorola的PowerPC-860,同時采用PLX公司的9054和9056PCI橋芯片在PowerPC-860和CPCI總線之間架起一條高效穩(wěn)定的傳輸橋梁。PLX9054/9056芯片實現(xiàn)了CPCI主控設備的功能,支持PCI2.2規(guī)程,簡化了對連接PowerPC的設計,兼容性較好,很容易擴展成66MHz時鐘及64bit的PCI總線,特別是PLX9056內嵌總線仲裁器,能減小系統(tǒng)規(guī)模,使系統(tǒng)更穩(wěn)定[5]。
圖1數(shù)據(jù)通信系統(tǒng)結構圖
2.2系統(tǒng)資源共享與信息互通
系統(tǒng)采用基于CPCI的單總線多處理器/多操作系統(tǒng)的分布式架構,系統(tǒng)中各塊板卡均擁有獨立的CPU和操作系統(tǒng)、地址和內存空間以及獨立的I/O和中斷,可獨立完成數(shù)據(jù)操作,每塊板卡可看作一臺計算機主機。分布式系統(tǒng)形成的拓撲結構為一個全連通的網絡,網絡中每個節(jié)點都能夠直接訪問其它節(jié)點;從CPCI總線傳輸?shù)慕嵌瓤矗胁宀凵系陌蹇ǘ际菍Φ鹊?,都能夠充當master主動發(fā)起總線傳輸。針對這種基于總線的分布式架構,我們設計了跨總線的內存訪問機制,將系統(tǒng)中其它板卡的系統(tǒng)內存或者設備內存(比如內存擴展卡)映射到本地地址空間,然后以與系統(tǒng)內存相同的方式訪問被映射的內存,這樣每塊板卡都能夠訪問到總線上其他板卡的內存資源了。
2.3統(tǒng)一規(guī)范的訪問接口
異構網絡通過標準信道適配接入分布式系統(tǒng),語音、X.25、串口數(shù)據(jù)等非IP數(shù)據(jù)經由數(shù)據(jù)適配模塊轉換成IP數(shù)據(jù),系統(tǒng)中各板卡的嵌入式實時系統(tǒng)對數(shù)據(jù)進行處理和交互。各種異構網絡掛接在嵌入式系統(tǒng)中相應網絡設備上,網絡設備驅動調用CPCI總線驅動提供的統(tǒng)一接口實現(xiàn)實時系統(tǒng)與總線之間的數(shù)據(jù)傳輸。發(fā)送數(shù)據(jù)時,網絡設備驅動通過總線驅動控制橋芯片進行地址轉換、數(shù)據(jù)轉發(fā)、中斷產生等工作,生成相應的總線操作將數(shù)據(jù)送往總線;接收數(shù)據(jù)時,總線驅動響應中斷,接收總線上相應地址段的數(shù)據(jù),在中斷服務程序中進行數(shù)據(jù)解析、地址轉換、數(shù)據(jù)轉發(fā)、其他中斷產生等操作。我們采用Linux操作系統(tǒng),其網絡系統(tǒng)主要是基于UNIX的socket機制,系統(tǒng)協(xié)議棧和驅動程序之間通過專門的數(shù)據(jù)結構(sk_buff)傳遞數(shù)據(jù)。實時系統(tǒng)內核與CPCI總線間數(shù)據(jù)傳輸流程如圖2所示:
圖2數(shù)據(jù)傳輸流程圖
3.關鍵技術
3.1報文存儲的“抽屜機制”
系統(tǒng)中各板卡共用一條CPCI總線,我們提出基于“抽屜機制”的報文存儲策略,以保證板卡間數(shù)據(jù)無干擾傳輸。在板卡加入系統(tǒng)的初始化階段,系統(tǒng)板為總線上每塊板卡分配獨立的PCI總線地址區(qū)間,其他板卡向其發(fā)送數(shù)據(jù)時將數(shù)據(jù)寫往指定地址區(qū)域。一塊板卡會接收來自不同板卡的數(shù)據(jù),為避免各板卡往同一基址發(fā)送數(shù)據(jù)所引起的干擾,同一板卡地址區(qū)域內又為其他板卡分配大小相同的獨立讀寫空間,我們將它命名為“抽屜”。這樣來自某板卡的數(shù)據(jù)會被送到其對應“抽屜”,每次數(shù)據(jù)依序存放而非覆蓋,以保證板卡數(shù)據(jù)處理時間。當數(shù)據(jù)長度超出抽屜剩余空間時,則似環(huán)狀buffer從頭開始存放。“抽屜機制”如圖3所示,左邊方塊代表總線上不同板卡,右邊則是PCI總線地址空間。板卡B對應地址范圍從a點到e點,其中ab點之間空間僅用于板卡A向B進行數(shù)據(jù)傳送,bc點之間空間僅用于板卡C向B進行數(shù)據(jù)傳送,以此類推。
評論