CPCI總線在分布式系統(tǒng)中的設(shè)計
出處:黃穎 杜旭 發(fā)布于:2011-08-26 20:05:43
1. 引言
Compact PCI(Compact Peripheral Component Interconnect)簡稱CPCI,中文又稱緊湊型PCI,是國際工業(yè)計算機制造者聯(lián)合會(PCI Industrial Computer Manufacturer's Group,簡稱PICMG)于1994提出來的一種總線接口標(biāo)準(zhǔn)。是以PCI電氣規(guī)范為標(biāo)準(zhǔn)的高性能工業(yè)用總線。為了將PCI SIG的PCI總線規(guī)范用在工業(yè)控制計算機系統(tǒng),1995年11月PCI工業(yè)計算機制造者聯(lián)合會(PICMIG)頒布了CPCI規(guī)范1.0版,以后相繼推出了PCI-PCI Bridge規(guī)范、Computer Telephony TDM規(guī)范和User-defined I/O pin assignment規(guī)范。
隨著網(wǎng)絡(luò)及通信技術(shù)的高速發(fā)展,網(wǎng)絡(luò)環(huán)境中數(shù)據(jù)運算和通信的任務(wù)不斷增大,在越來越多的領(lǐng)域中需要大規(guī)模系統(tǒng)來承擔(dān)繁重的數(shù)據(jù)任務(wù)并支持多種類型的任務(wù)處理。為能實時得處理大量數(shù)據(jù)業(yè)務(wù),大規(guī)模系統(tǒng)需將數(shù)據(jù)分布到多個模塊上進行并行處理,同時針對多種異構(gòu)網(wǎng)絡(luò)數(shù)據(jù),通過不同功能模塊對各類數(shù)據(jù)分別處理,再基于統(tǒng)一平臺進行實時通信。針對這樣的需求,大規(guī)模系統(tǒng)應(yīng)采用分布式網(wǎng)絡(luò)架構(gòu),同時應(yīng)具有開放性和良好的可擴展性,以適應(yīng)不斷變化的應(yīng)用環(huán)境和需求;系統(tǒng)中各模塊分工處理不同類型數(shù)據(jù),應(yīng)具有相對的獨立自主性,同時又在不同的層次上相互關(guān)聯(lián),能實現(xiàn)相互訪問和協(xié)同工作;系統(tǒng)也應(yīng)具有良好的集成性,在功能層次上需要有效的組件構(gòu)造框架,在組件層次上則應(yīng)有統(tǒng)一的數(shù)據(jù)交互平臺。
本文給出一種基于CPCI總線的通信系統(tǒng)設(shè)計,系統(tǒng)采用分布式網(wǎng)絡(luò)架構(gòu),支持多種分組交換業(yè)務(wù)的處理及數(shù)據(jù)交互。文章首先給出系統(tǒng)結(jié)構(gòu)及原理設(shè)計,并針對分布式業(yè)務(wù)處理模塊跨總線通信的難點,提出基于“抽屜機制”的報文存儲和地址信息維護策略,描述了數(shù)據(jù)無干擾傳輸?shù)汝P(guān)鍵技術(shù)的實現(xiàn),給出技術(shù)總結(jié)和展望。
2. 系統(tǒng)總體設(shè)計
2.1 系統(tǒng)結(jié)構(gòu)特點
系統(tǒng)中不同設(shè)備板卡獨立對相應(yīng)業(yè)務(wù)數(shù)據(jù)進行處理,將其轉(zhuǎn)化為統(tǒng)一的IP數(shù)據(jù)進行互通,并維護各自的路由表獨立完成數(shù)據(jù)轉(zhuǎn)發(fā)。系統(tǒng)將與特定業(yè)務(wù)網(wǎng)絡(luò)的接口分布到各種設(shè)備板卡中進行標(biāo)準(zhǔn)的接入信道適配,并將各類網(wǎng)絡(luò)數(shù)據(jù)分布到各板卡進行處理和轉(zhuǎn)發(fā),實現(xiàn)了集中配置與分布式接入和數(shù)據(jù)處理的完美結(jié)合。
在CPCI分布總線架構(gòu)中,背板為總線交換提供物理連接、電路保證,背板上系統(tǒng)插槽提供總線仲裁、時鐘分配和背板上各板卡重新啟動等功能;外設(shè)插槽上可安放簡單的接口板、智能從屬裝置或總線控制裝置。
圖1 數(shù)據(jù)通信系統(tǒng)結(jié)構(gòu)圖
2.2系統(tǒng)資源共享與信息互通
系統(tǒng)采用基于CPCI的單總線多處理器/多操作系統(tǒng)的分布式架構(gòu),系統(tǒng)中各塊板卡均擁有獨立的CPU和操作系統(tǒng)、地址和內(nèi)存空間以及獨立的I/O和中斷,可獨立完成數(shù)據(jù)操作,每塊板卡可看作一臺計算機主機。分布式系統(tǒng)形成的拓?fù)浣Y(jié)構(gòu)為一個全連通的網(wǎng)絡(luò),網(wǎng)絡(luò)中每個節(jié)點都能夠直接訪問其它節(jié)點;針對這種基于總線的分布式架構(gòu),我們設(shè)計了跨總線的內(nèi)存訪問機制,將系統(tǒng)中其它板卡的系統(tǒng)內(nèi)存或者設(shè)備內(nèi)存(比如內(nèi)存擴展卡)映射到本地地址空間,然后以與系統(tǒng)內(nèi)存相同的方式訪問被映射的內(nèi)存,這樣每塊板卡都能夠訪問到總線上其他板卡的內(nèi)存資源了。
2.3統(tǒng)一規(guī)范的訪問接口
異構(gòu)網(wǎng)絡(luò)通過標(biāo)準(zhǔn)信道適配接入分布式系統(tǒng),語音、X.25、串口數(shù)據(jù)等非IP數(shù)據(jù)經(jīng)由數(shù)據(jù)適配模塊轉(zhuǎn)換成IP數(shù)據(jù),系統(tǒng)中各板卡的嵌入式實時系統(tǒng)對數(shù)據(jù)進行處理和交互。各種異構(gòu)網(wǎng)絡(luò)掛接在嵌入式系統(tǒng)中相應(yīng)網(wǎng)絡(luò)設(shè)備上,網(wǎng)絡(luò)設(shè)備驅(qū)動調(diào)用CPCI總線驅(qū)動提供的統(tǒng)一接口實現(xiàn)實時系統(tǒng)與總線之間的數(shù)據(jù)傳輸。發(fā)送數(shù)據(jù)時,網(wǎng)絡(luò)設(shè)備驅(qū)動通過總線驅(qū)動控制橋芯片進行地址轉(zhuǎn)換、數(shù)據(jù)轉(zhuǎn)發(fā)、中斷產(chǎn)生等工作,生成相應(yīng)的總線操作將數(shù)據(jù)送往總線;接收數(shù)據(jù)時,總線驅(qū)動響應(yīng)中斷,接收總線上相應(yīng)地址段的數(shù)據(jù),在中斷服務(wù)程序中進行數(shù)據(jù)解析、地址轉(zhuǎn)換、數(shù)據(jù)轉(zhuǎn)發(fā)、其他中斷產(chǎn)生等操作。我們采用Linux操作系統(tǒng),其網(wǎng)絡(luò)系統(tǒng)主要是基于UNIX的socket機制,系統(tǒng)協(xié)議棧和驅(qū)動程序之間通過專門的數(shù)據(jù)結(jié)構(gòu)(sk_buff)傳遞數(shù)據(jù)。實時系統(tǒng)內(nèi)核與CPCI總線間數(shù)據(jù)傳輸流程如圖2所示:
圖2 數(shù)據(jù)傳輸流程圖
3. 關(guān)鍵技術(shù)
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ū)域內(nèi)又為其他板卡分配大小相同的獨立讀寫空間,我們將它命名為“抽屜”。

圖3 板卡數(shù)據(jù)接收“抽屜”
系統(tǒng)板上維護有靜態(tài)的基址表,記載為每個卡槽上板卡預(yù)先分配的基址。所有板卡上都維護有板卡地址映射表和傳輸?shù)刂菲票怼0蹇ǖ刂酚成浔頌橐粋€結(jié)構(gòu)數(shù)組,數(shù)組中各項分別代表一個卡槽,里面包含板卡名稱、卡槽號、基址和地址范圍等地址信息以供數(shù)據(jù)傳輸時配置所用,其數(shù)據(jù)結(jié)構(gòu)如下:
typedef struct _BUS_ADDR_MAPPING_INFO{
char board_name[BOARD_NAME_LENGTH];
int slot_number;
unsigned long base_addr;
unsigned long range;
}BUS_AddrMapping_Info, *P_BUS_AddrMapping_Info;
3.2 數(shù)據(jù)傳輸實現(xiàn)
我們定義了一種數(shù)據(jù)結(jié)構(gòu)IPH(Internal Packet Header),包含數(shù)據(jù)類型、長度、來源卡槽號等屬性,在傳輸數(shù)據(jù)前作為包頭對報文進行封裝,以便接收方解析包頭后能根據(jù)數(shù)據(jù)業(yè)務(wù)類型區(qū)分處理。主要IPH類型有板卡配置信息,端口注冊信息,路由信息,未知數(shù)據(jù)類型等。定義數(shù)據(jù)結(jié)構(gòu)iph_attr區(qū)別不同IPH_info類型,位于數(shù)據(jù)包首,其數(shù)據(jù)結(jié)構(gòu)如下:
typedef struct _IPH_ATTR {
u32 board_id; /*from which board*/
int iph_type; /*datagram type*/
unsigned long length; /*datagram length(without IPH)*/
}IPH_ATTR, *P_IPH_ATTR;
針對各種類型IPH信息又分別定義不同數(shù)據(jù)結(jié)構(gòu),在數(shù)據(jù)包頭中依次存放于iph_attr結(jié)構(gòu)之后。
發(fā)送數(shù)據(jù)時,對數(shù)據(jù)進行IPH封裝,根據(jù)前述的板卡地址映射表選擇目的PCI地址,再調(diào)用總線接口函數(shù)完成數(shù)據(jù)傳輸。發(fā)送方通過寫接收板卡橋芯片的mailbox寄存器,將傳輸?shù)刂芳皵?shù)據(jù)長度信息通知接收方,產(chǎn)生中斷觸發(fā)接收。PLX橋芯片支持local總線對PCI總線的直接訪問,它有8個mailbox寄存器,前四個能產(chǎn)生中斷,每個mailbox32位,傳輸?shù)刂泛蛿?shù)據(jù)長度信息分別使用mailbox i 和mailbox i+4配合工作,這樣接收方收到兩個參數(shù)時會產(chǎn)生中斷,進行數(shù)據(jù)接收[5]。這種機制使接收處理具有四個服務(wù)窗口,提高了系統(tǒng)吞吐量。
接收板卡PLX芯片的mailbox被寫入?yún)?shù)即產(chǎn)生本地中斷檢查 “抽屜”,產(chǎn)生中斷前,數(shù)據(jù)實際上已被發(fā)到目標(biāo)板卡上了。中斷服務(wù)程序為接收端維護一個數(shù)據(jù)隊列,它讀取mailbox中的信息,分析地址找到相應(yīng)數(shù)據(jù)并交由底半處理。底半解析數(shù)據(jù)包的IPH分辨數(shù)據(jù)類型,若為配置、端口、路由等信息則進行相應(yīng)配置,若為數(shù)據(jù)信息則進行處理或轉(zhuǎn)發(fā)。
綜上所述,系統(tǒng)通過 “抽屜機制”和對幾種地址表的維護完成了各板卡之間PCI地址空間的映射,板卡將數(shù)據(jù)寫往映射地址空間即能通過總線將數(shù)據(jù)傳輸?shù)侥繕?biāo)板卡上,實現(xiàn)了板卡的跨總線內(nèi)存訪問;自定義IPH數(shù)據(jù)包頭來區(qū)分?jǐn)?shù)據(jù)類型協(xié)助數(shù)據(jù)信息管理,完成了路由維護,轉(zhuǎn)發(fā)引擎的邏輯功能,實現(xiàn)了數(shù)據(jù)的無干擾傳輸與有效通信管理。
4. 總結(jié)及展望
本文作者創(chuàng)新點為:給出了一種基于CPCI的分布式系統(tǒng)設(shè)計,同時提出了基于“抽屜機制”的報文存儲機制和地址信息維護策略。文章所述的基于CPCI的分布式系統(tǒng),可達到64bit總線寬度、264MB/s的峰值帶寬,系統(tǒng)中各主機能獨立完成數(shù)據(jù)處理及通信,能夠承載語音、數(shù)據(jù)多種業(yè)務(wù),用戶還可通過用戶接入板與語音業(yè)務(wù)板所連的PSTN網(wǎng)和數(shù)據(jù)業(yè)務(wù)板所連Internet進行數(shù)據(jù)通信,在通信、軍事等領(lǐng)域有著較大的應(yīng)用前景。為使本通信系統(tǒng)更具大規(guī)模實用價值,未來的工作包括:
(1) 實現(xiàn)一套易操作的遠程管理系統(tǒng),以便完成通信業(yè)務(wù)的監(jiān)控,調(diào)配;
(2) 設(shè)計支持更多業(yè)務(wù)類型的CPCI接口板卡,如xDSL,H.264等;
(3) 在外界干擾較大情況下,通過嚴(yán)格的性能測試以證明系統(tǒng)能夠滿足電信級的業(yè)務(wù)需求。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 什么是氫氧燃料電池,氫氧燃料電池的知識介紹2025/8/29 16:58:56
- SQL核心知識點總結(jié)2025/8/11 16:51:36
- 等電位端子箱是什么_等電位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重復(fù)控制的復(fù)合控制策略2025/7/29 16:58:24
- 什么是樹莓派?一文快速了解樹莓派基礎(chǔ)知識2025/6/18 16:30:52
- 高速PCB信號完整性(SI)設(shè)計核心實操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護設(shè)計
- 連接器耐腐蝕性能測試方法
- PCB電磁兼容(EMC)設(shè)計與干擾抑制核心實操規(guī)范
- 用于相位噪聲測量的低通濾波器設(shè)計與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計要點
- 連接器結(jié)構(gòu)設(shè)計常見問題分析









