摘要: 介紹了高速網(wǎng)絡(luò)通信系統(tǒng)的網(wǎng)絡(luò)構(gòu)建,、拓?fù)浣Y(jié)構(gòu)、節(jié)點(diǎn)架構(gòu),,詳細(xì)描述了系統(tǒng)的整體設(shè)計(jì)方案,、硬件設(shè)計(jì)、軟件設(shè)計(jì)和工作過(guò)程,。經(jīng)實(shí)驗(yàn)驗(yàn)證,,該網(wǎng)絡(luò)可以實(shí)現(xiàn)最高400 Mb/s的高速數(shù)據(jù)實(shí)時(shí)傳輸,證明了這種網(wǎng)絡(luò)通信系統(tǒng)具有可行性和高可靠性,。
引言
IEEE1394作為一種高性能的串行總線技術(shù),,具有數(shù)據(jù)傳輸速率高、支持異步和等時(shí)傳輸,、點(diǎn)對(duì)點(diǎn)連接,、可熱插拔、線纜提供電源等優(yōu)點(diǎn)[1],。多臺(tái)設(shè)備可以通過(guò)樹(shù)狀或菊*鏈狀拓?fù)溥B接到網(wǎng)絡(luò)中,,并共享總線傳輸帶寬。雖然IEEE1394a協(xié)議相對(duì)比較復(fù)雜,,但功耗較低,,數(shù)據(jù)傳輸更加穩(wěn)定,組網(wǎng)方便(無(wú)需路由器)[2],。IEEE1394已經(jīng)在高速通信中表現(xiàn)出了優(yōu)異的數(shù)據(jù)傳輸性能,,并可確保數(shù)據(jù)傳輸?shù)陌踩院涂煽啃浴?/p>
1 系統(tǒng)方案
IEEE1394高速網(wǎng)絡(luò)通信系統(tǒng)采用樹(shù)狀拓?fù)浣Y(jié)構(gòu)來(lái)構(gòu)建網(wǎng)絡(luò),通過(guò)軟件將主控計(jì)算機(jī)上的1394節(jié)點(diǎn)設(shè)為根節(jié)點(diǎn),,其他設(shè)備上的1394節(jié)點(diǎn)設(shè)為葉節(jié)點(diǎn),,目的是使主控計(jì)算機(jī)能對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行控制和監(jiān)管。組建好的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示,。
圖1 高速網(wǎng)絡(luò)通信系統(tǒng)拓?fù)浣Y(jié)構(gòu)圖
在圖1中,,根節(jié)點(diǎn)與葉節(jié)點(diǎn)之間、葉節(jié)點(diǎn)與葉節(jié)點(diǎn)之間都采用IEEE1394a標(biāo)準(zhǔn)線纜連接,。本網(wǎng)絡(luò)中根節(jié)點(diǎn)下有兩棵樹(shù),,它們都在同一條總線Bus0上。不在一棵樹(shù)上的1394節(jié)點(diǎn)也可位于同一個(gè)設(shè)備上,,如Node1,、Node2和Node5都在同一個(gè)設(shè)備上。
2 硬件設(shè)計(jì)
主控計(jì)算機(jī)上的1394節(jié)點(diǎn)采用PowerPC作為通信和數(shù)據(jù)處理的核心,。采用PowerPC的原因是它的體系結(jié)構(gòu)是開(kāi)放的,,而且PowerPC在大數(shù)據(jù)量、高速信號(hào)處理中具有強(qiáng)大的優(yōu)勢(shì)和很好的應(yīng)用潛力,。由于大多數(shù)PC機(jī)上都具有PCI接口,,PCI總線應(yīng)用廣泛,,PCI接口驅(qū)動(dòng)的通用性較強(qiáng),,所以主控計(jì)算機(jī)與PowerPC可通過(guò)主控計(jì)算機(jī)上的PCI接口進(jìn)行通信,,這就簡(jiǎn)化了在主控計(jì)算機(jī)上開(kāi)發(fā)PCI接口驅(qū)動(dòng)的工作。而IEEE 1394接口采用雙接口芯片設(shè)計(jì),,并配備了SDRAM作為大容量數(shù)據(jù)緩沖,,用Flash來(lái)存放軟件。1394節(jié)點(diǎn)都是通過(guò)1394總線連接的,。主控計(jì)算機(jī)上的1394節(jié)點(diǎn)(已設(shè)為根節(jié)點(diǎn))通過(guò)1394總線與網(wǎng)絡(luò)中其他某個(gè)設(shè)備上的1394節(jié)點(diǎn)(已設(shè)為葉節(jié)點(diǎn))相連的整體框圖如圖2所示,。左側(cè)為根節(jié)點(diǎn)架構(gòu),右側(cè)為葉節(jié)點(diǎn)架構(gòu),。葉節(jié)點(diǎn)的架構(gòu)與根節(jié)點(diǎn)的架構(gòu)是類(lèi)似的,,但由于只有根節(jié)點(diǎn)與主控計(jì)算機(jī)連接,而葉節(jié)點(diǎn)不與主控計(jì)算機(jī)相連,,所以葉節(jié)點(diǎn)并不需要PCI總線,。
圖2 主控計(jì)算機(jī)上的1394節(jié)點(diǎn)架構(gòu)
IEEE1394接口采用的是鏈路層芯片TSB12LV32和物理層芯片TSB41AB3。TSB41AB3是支持3個(gè)線纜接口的物理層芯片,。TSB12LV32是一款支持IEEE1394a總線標(biāo)準(zhǔn)的高性能通用鏈路層芯片,,最高傳輸速率為400 Mb/s[5],本網(wǎng)絡(luò)可采100 Mb/s,、200 Mb/s,、400 Mb/s來(lái)進(jìn)行數(shù)據(jù)的傳輸。TSB12LV32為后端提供了主機(jī)接口,,系統(tǒng)中PowerPC采用主機(jī)接口完成寄存器的配置和異步流包的傳輸,。TSB12LV32還為PowerPC提供了中斷輸出INT和可編程狀態(tài)STAT[0:2],用于總線復(fù)位,、傳輸錯(cuò)誤和內(nèi)部FIFO狀態(tài)指示,。
對(duì)于數(shù)據(jù)的收發(fā),采用DMA來(lái)進(jìn)行數(shù)據(jù)的搬運(yùn)而完成,。通過(guò)中斷機(jī)制來(lái)把收到消息事件報(bào)告給核心處理器PowerPC,,由處理器對(duì)消息進(jìn)行處理。
圖3 軟件層次圖
3 軟件設(shè)計(jì)
根據(jù)軟件要實(shí)現(xiàn)的功能,,可把軟件劃分為3個(gè)層次,,如圖3所示。
3.1 1394內(nèi)核軟件
對(duì)1394內(nèi)核的物理層和鏈路層寄存器進(jìn)行配置,,對(duì)OHCI,、總線管理器配置等[3],并對(duì)這些內(nèi)核函數(shù)進(jìn)行了封裝,。這種隔離的好處是可使用戶(hù)不必關(guān)心底層硬件,,只需調(diào)用內(nèi)核函數(shù)就可開(kāi)發(fā)出用戶(hù)軟件,。通過(guò)建立結(jié)構(gòu)體來(lái)將這些函數(shù)進(jìn)行分類(lèi)、鏈接,,驅(qū)動(dòng)軟件在調(diào)用內(nèi)核函數(shù)時(shí)可通過(guò)結(jié)構(gòu)體來(lái)直接找到相應(yīng)的內(nèi)核函數(shù),,從而進(jìn)行調(diào)用,這樣就把1394內(nèi)核軟件和上層驅(qū)動(dòng)鏈接了起來(lái),。
3.2 驅(qū)動(dòng)軟件
由于1394協(xié)議支持異步傳輸和等時(shí)傳輸,,且為了保證傳輸?shù)目煽啃裕什捎卯惒搅靼M(jìn)行數(shù)據(jù)的傳輸,。對(duì)于發(fā)送,,驅(qū)動(dòng)軟件先根據(jù)異步流包的格式,對(duì)通信軟件中的消息進(jìn)行組幀打包,,然后調(diào)用內(nèi)核函數(shù)進(jìn)行發(fā)送,。對(duì)于接收,是利用中斷機(jī)制來(lái)接收消息的,。
3.3 通信軟件
上電后,,1394總線上首先會(huì)出現(xiàn)持續(xù)125 μs左右的總線復(fù)位(bus reset)狀態(tài),之后進(jìn)行樹(shù)標(biāo)識(shí)和自標(biāo)識(shí)工作,。樹(shù)標(biāo)識(shí)進(jìn)程定義了總線的拓?fù)浣Y(jié)構(gòu),。樹(shù)標(biāo)識(shí)之前,每一1394節(jié)點(diǎn)都知道自己和其他的節(jié)點(diǎn)相連,,此過(guò)程過(guò)后,,整個(gè)網(wǎng)絡(luò)的拓?fù)渚托纬闪耍O(shè)置計(jì)算機(jī)為根節(jié)點(diǎn)(root),,其他的節(jié)點(diǎn)為分支節(jié)點(diǎn),。樹(shù)標(biāo)識(shí)后是自標(biāo)識(shí)進(jìn)程,自標(biāo)識(shí)通過(guò)根節(jié)點(diǎn)發(fā)送自標(biāo)識(shí)授權(quán)信號(hào)和節(jié)點(diǎn)返回自標(biāo)識(shí)數(shù)據(jù)包來(lái)完成,,其實(shí)現(xiàn)的功能主要有:為每個(gè)節(jié)點(diǎn)分配物理標(biāo)識(shí),,相鄰節(jié)點(diǎn)交換傳輸速度信息,將樹(shù)標(biāo)識(shí)進(jìn)程定義的拓?fù)湓谡麄€(gè)網(wǎng)絡(luò)中廣播,。
根據(jù)內(nèi)核函數(shù),,對(duì)整個(gè)通信網(wǎng)絡(luò)進(jìn)行初始化,包括初始化PCI總線init_pci(),、初始化1394設(shè)備init_1394dev(),、樹(shù)標(biāo)識(shí)和自標(biāo)識(shí)、主控機(jī)上的1394節(jié)點(diǎn)設(shè)為根節(jié)點(diǎn)(葉節(jié)點(diǎn)不進(jìn)行此步),、初始化中斷等,。
初始化完畢后,首先掛接中斷服務(wù)程序。然后根節(jié)點(diǎn)采用發(fā)送STOF包來(lái)進(jìn)行網(wǎng)絡(luò)同步,,即以發(fā)送STOF包作為一幀的開(kāi)始,,葉節(jié)點(diǎn)收到STOF包后立即與整個(gè)網(wǎng)絡(luò)同步。對(duì)于發(fā)送過(guò)程,,通信軟件把要發(fā)送的消息傳遞給驅(qū)動(dòng)軟件,,進(jìn)行發(fā)送。對(duì)于接收過(guò)程,,若接收到新消息,,就會(huì)報(bào)中斷給處理器,,并根據(jù)中斷號(hào)進(jìn)入相應(yīng)的中斷服務(wù)程序,,中斷服務(wù)程序就會(huì)置標(biāo)志位,通知通信軟件中的接收函數(shù)把接收到的消息進(jìn)行處理,。
結(jié)語(yǔ)
結(jié)合高速網(wǎng)絡(luò)通信系統(tǒng)的通信要求,,自行設(shè)計(jì)的網(wǎng)絡(luò)通信系統(tǒng)完成了網(wǎng)絡(luò)中主控計(jì)算機(jī)與網(wǎng)絡(luò)之間、根節(jié)點(diǎn)與葉節(jié)點(diǎn)之間,、葉節(jié)點(diǎn)與葉節(jié)點(diǎn)之間的通信,,實(shí)驗(yàn)表明,系統(tǒng)通信良好,。由于此網(wǎng)絡(luò)遵循IEEE1394標(biāo)準(zhǔn),,所以可應(yīng)用于家庭數(shù)字化網(wǎng)絡(luò)、車(chē)載信息系統(tǒng),、工業(yè)自動(dòng)化系統(tǒng)等[4],。隨著IEEE1394技術(shù)的不斷發(fā)展,其應(yīng)用也從商用向更多領(lǐng)域擴(kuò)展,。