李 楠,張亞瓊 ,任鵬飛
(1.河南工程學(xué)院 電氣信息工程學(xué)院,河南 鄭州 451191; 2.河南輕工職業(yè)學(xué)院 機(jī)電工程系,河南 鄭州 450000)
圖1 六節(jié)點(diǎn)系統(tǒng)兩種連接方式對(duì)比Fig.1 The comparison of two kinds of topology of 6 endpoints
表1 兩種拓?fù)浣Y(jié)構(gòu)收發(fā)線數(shù)量對(duì)比Tab.1 The comparison of two kinds of topology
RapidIO總線非主從結(jié)構(gòu),各個(gè)節(jié)點(diǎn)地位平等,所有模塊都是RapidIO總線的節(jié)點(diǎn),在系統(tǒng)內(nèi)并無差異,每個(gè)節(jié)點(diǎn)都可以發(fā)起對(duì)其他任意節(jié)點(diǎn)的訪問。RapidIO嵌入式平臺(tái)由機(jī)箱和節(jié)點(diǎn)板卡及交換機(jī)板卡共同組成,本研究主要討論交換機(jī)板卡的設(shè)計(jì)。
交換機(jī)板卡的主要功能是提供節(jié)點(diǎn)間數(shù)據(jù)交換,除交換機(jī)橋片外,還需要處理器對(duì)其進(jìn)行軟件配置,但處理器只在上電配置橋片使用,其余時(shí)間空閑,所以該模塊在配置橋片后可以當(dāng)作處理器模塊,這樣可充分利用處理器,也節(jié)省了一個(gè)背板槽位。綜上所述,設(shè)計(jì)該模塊時(shí)需要橋片、處理器和RapidIO節(jié)點(diǎn)(通常由FPGA完成),ZYNQ芯片包含雙核ARM芯片和FPGA,配上交換機(jī)橋片即可實(shí)現(xiàn)交換機(jī)及處理器節(jié)點(diǎn)的功能。ARM通過I2C配置交換芯片,F(xiàn)PGA的RapidIO端口與交換機(jī)橋片的一個(gè)端口相連,作為系統(tǒng)內(nèi)的一個(gè)節(jié)點(diǎn),交換機(jī)的其他端口通向背板,可連接系統(tǒng)內(nèi)的其他節(jié)點(diǎn)。交換機(jī)板卡硬件如圖2所示。
圖2 交換機(jī)板卡硬件Fig.2 The diagram of switch hardware
交換機(jī)板卡的核心是交換機(jī)橋片的設(shè)計(jì),交換機(jī)橋片選用IDT公司的CPS1616,該芯片延時(shí)低,有16個(gè)交換口,符合RapidIO 2.0協(xié)議,峰值吞吐率可達(dá)80 Gb/s,每個(gè)端口支持1.25 Gb/s、2.5 Gb/s、3.125 Gb/s、5 Gb/s、6 Gb/s的通信速率,支持X1、X2、X4等模式。該芯片支持8級(jí)優(yōu)先級(jí),支持各種路由模式,支持I2C或者維護(hù)包等多種配置方法,有診斷、性能監(jiān)控等功能。
交換機(jī)的配置分為硬件和軟件兩類,硬件配置主要包括設(shè)置交換機(jī)的通信速率和通信模式、I2C設(shè)備地址及總線速率,以及配置端口是否使能等。
交換機(jī)每個(gè)端口有多種通信速率可選,通信速率越高,通信帶寬就越大,會(huì)帶來卓越的通信性能,但同時(shí)也會(huì)帶來成本上升和設(shè)計(jì)風(fēng)險(xiǎn)增加的后果,這對(duì)背板的布局布線帶來較大的挑戰(zhàn),對(duì)節(jié)點(diǎn)的器件選擇也提出了更高的要求,所以要根據(jù)需求合理選擇通信速率,兼顧性能和成本。該橋片配置可通過撥碼開關(guān)SPD[0]~SPD[2]來改變交換機(jī)的串行通信速率[3]。該交換機(jī)還支持端口配置成X1、X2、X4等模式,可通過配置QCFG[0]~QCFG[7]改變端口的通信模式。
交換機(jī)寄存器軟件配置有多種方法,可分為本地配置和遠(yuǎn)程配置。遠(yuǎn)程配置是系統(tǒng)內(nèi)的任一節(jié)點(diǎn)通過發(fā)送維護(hù)包來配置交換機(jī),本地配置通過I2C配置,所以硬件配置需要先配置ID[0]~I(xiàn)D[9]來確定橋片的I2C地址,然后配置FSEL[0]~FSEL[2]來確定I2C的總線速率。交換機(jī)橋片最多可連16個(gè)節(jié)點(diǎn),通信速率高,故功耗大、發(fā)熱量大,所以需要關(guān)閉不用的端口以減少功耗和發(fā)熱,通過配置PD[0]~PD[15]來確定16個(gè)端口是否使能。
綜上所述,交換機(jī)橋片的配置主要為通信速率和通信模式的配置、I2C接口的配置和端口使能的配置。圖3為橋片配置部分的原理圖。
橋片除配置管腳外[4],還有16對(duì)差分輸入管腳和16對(duì)差分輸出管腳,用于連接16個(gè)RapidIO節(jié)點(diǎn),其中一對(duì)通向本板,連接本板FPGA節(jié)點(diǎn),其余的連到背板,連接系統(tǒng)內(nèi)的其他節(jié)點(diǎn)。圖4為橋片通信部分的原理圖。
圖3 橋片配置部分原理圖Fig.3 The schematic of configuration
圖4 橋片通信部分原理圖Fig.4 The schematic of communication
交換機(jī)橋片的軟件配置主要包括橋片寄存器的初始化和橋片路由表的配置。
橋片上電后,在軟件配置之前,橋片根據(jù)硬件配置的通信速率和通信模式,首先完成各個(gè)端口的link。link是橋片和各個(gè)RapidIO節(jié)點(diǎn)建立物理鏈接的過程,這個(gè)過程是純粹的物理層鏈接,鏈接能否正確建立與軟件配置無關(guān),只和交換機(jī)硬件配置及節(jié)點(diǎn)的硬件狀態(tài)有關(guān)[5]。端口link成功后,就可以對(duì)該端口進(jìn)行軟件配置,否則就關(guān)閉該端口以降低功耗。
軟件配置首先讀出橋片各端口的link情況,根據(jù)link情況配置該橋片各個(gè)端口的寄存器。軟件初始化主要包括訪問橋片的ID,來確定橋片是否可以通過I2C訪問。讀取橋片每個(gè)端口的link狀態(tài),設(shè)置訪問超時(shí)時(shí)間(超時(shí)時(shí)間指的是讀背板節(jié)點(diǎn)的超時(shí)閾值)、復(fù)位及初始化端口等。橋片的具體初始化流程如圖5所示。
RapidIO的數(shù)據(jù)包通信方式和以太網(wǎng)比較相似,支持單播、組播和廣播,都需要配置路由表,其中廣播和單播的路由配置相對(duì)固定,橋片收到任意廣播包后把數(shù)據(jù)包轉(zhuǎn)發(fā)到所有端口。對(duì)于單播,橋片把數(shù)據(jù)包轉(zhuǎn)發(fā)到每一個(gè)目的地址固定對(duì)應(yīng)的端口,這兩種數(shù)據(jù)包的路由配置邏輯相對(duì)固定,可以直接設(shè)計(jì)固定的路由配置表。
組播的路由表和應(yīng)用需求結(jié)合緊密,每一個(gè)節(jié)點(diǎn)可能屬于一個(gè)組,也可能屬于幾個(gè)組,每個(gè)組的節(jié)點(diǎn)數(shù)為 2~15,故組播情況靈活多變,并且橋片只支持40個(gè)組播包ID,不可能用窮舉法來設(shè)置每一種可能的組播路由。傳統(tǒng)的配置方法是每個(gè)工程應(yīng)用設(shè)計(jì)一套工程配置軟件,由于工程繁多且復(fù)雜多樣,故需要維護(hù)和測(cè)試大量的配置軟件,給工程師帶來了很大的負(fù)擔(dān)。因此,本研究提出的通用組播配置方法通過增加配置文件滿足各種應(yīng)用,使用統(tǒng)一的組播配置軟件即可滿足各種工程需求。
交換機(jī)橋片轉(zhuǎn)發(fā)數(shù)據(jù)包的原理是通過識(shí)別目標(biāo)ID來判斷數(shù)據(jù)包是如何轉(zhuǎn)發(fā)的。根據(jù)橋片手冊(cè),當(dāng)ID為0X0~0XF時(shí)[6],認(rèn)定為單播ID,轉(zhuǎn)發(fā)到相應(yīng)的單個(gè)端口,當(dāng)ID為0X40~0X67時(shí),認(rèn)定為組播ID,根據(jù)每個(gè)ID對(duì)應(yīng)路由表發(fā)送到組內(nèi)所有端口。組播配置文件需要組播ID信息和該組所有的端口號(hào),配置文件的數(shù)據(jù)格式用一個(gè)32位數(shù)代表一條配置信息,包含組播ID及組內(nèi)包含的所有端口,數(shù)據(jù)格式如下:① 0~15位代表組播包含的端口,這16位對(duì)應(yīng)16個(gè)端口,1代表轉(zhuǎn)發(fā),0代表不轉(zhuǎn)發(fā);②16~23位為組播ID;③31~24位為保留位。
設(shè)計(jì)好配置文件,拷入交換機(jī)板卡的板載SD卡[7],ARM上電后先讀取路由配置文件,再來逐條生成路由表寫入橋片,完成組播路由配置。具體流程如圖6 所示。
圖5 橋片初始化流程Fig.5 The flowchart of initiation
圖6 橋片路由表配置流程Fig.6 The flowchart of route configuration
本研究主要討論了基于CPS1616型芯片的RapidIO交換板的設(shè)計(jì),針對(duì)交換機(jī)的硬件配置及設(shè)計(jì)、橋片軟件的初始化、路由表的配置,特別是組播路由表的配置都提出了相應(yīng)的方法,可以為其他設(shè)計(jì)者提供參考。目前RapidIO交換板已經(jīng)設(shè)計(jì)完成并且投入使用,使用情況良好。