摘? 要:介紹了采用Dallas公司的高速處理器DS80C320設(shè)計(jì)和實(shí)現(xiàn)的路由器交換網(wǎng)板" title="網(wǎng)板">網(wǎng)板控制模塊" title="控制模塊">控制模塊,給出了控制模塊的硬件結(jié)構(gòu)圖,并闡明了控制模塊對(duì)交換芯片" title="交換芯片">交換芯片的控制功能。?
關(guān)鍵詞: 高速路由器? 交換網(wǎng)板控制模塊? DS80C320?
?
近幾年來(lái),隨著Internet規(guī)模的進(jìn)一步擴(kuò)大,對(duì)高性能、寬帶接入的IP路由器的需求急劇增加。路由器的主要功能是數(shù)據(jù)包的轉(zhuǎn)發(fā),該功能由交換芯片來(lái)實(shí)現(xiàn)。因此,需要有一個(gè)處理器來(lái)實(shí)現(xiàn)對(duì)交換芯片數(shù)據(jù)包轉(zhuǎn)發(fā)功能的控制,同時(shí)控制交換網(wǎng)板與主控板" title="主控板">主控板的通信,筆者采用DS80C320處理器。本系統(tǒng)的技術(shù)核心是如何利用EPLD產(chǎn)生的控制信號(hào)" title="控制信號(hào)">控制信號(hào)實(shí)現(xiàn)DS80C320與主控板間的通信和DS80C320對(duì)交換芯片的控制。?
1 高速路由器的基本結(jié)構(gòu)?
高速路由器主要由主控板、交換網(wǎng)板和線(xiàn)路接口板等組成。主控板是路由器的控制核心,完成整個(gè)路由器的管理和控制,直接接收網(wǎng)管中心的指令。交換網(wǎng)板在路由器中完成高速數(shù)據(jù)交換,它由交換模塊和控制模塊組成。交換模塊包括兩片交換芯片,完成數(shù)據(jù)包轉(zhuǎn)發(fā)功能;控制模塊是交換網(wǎng)板的控制核心,實(shí)現(xiàn)對(duì)網(wǎng)板內(nèi)各功能模塊的狀態(tài)檢測(cè)和控制,保證交換芯片轉(zhuǎn)發(fā)數(shù)據(jù)包的正常工作??刂颇K與路由器的主控板通過(guò)HSCX(串行通信控制器)進(jìn)行通信,完成主控板對(duì)交換網(wǎng)板功能請(qǐng)求的應(yīng)答處理,還可以通過(guò)RS232串口與PC機(jī)進(jìn)行通信,完成交換網(wǎng)板的功能調(diào)試。?
2 控制模塊的硬件結(jié)構(gòu)?
本系統(tǒng)的路由器交換網(wǎng)板控制模塊主要由DS80C320處理器和一些外圍器件組成,這些外圍器件包括EPLD、FLASH、外部RAM和HSCX通道??刂颇K的硬件結(jié)構(gòu)如圖1中虛線(xiàn)框部分所示。?
?
?
2.1 DS80C320的特點(diǎn)?
DS80C320屬于Dallas公司的高速處理器系列。采用該芯片完成交換網(wǎng)板的控制功能,主要是DS80C320有以下幾個(gè)特點(diǎn):(1)具有新型高速結(jié)構(gòu),最大晶振頻率33MHz,機(jī)器周期為4個(gè)時(shí)鐘周期(普通MCS-51系列單片機(jī)的機(jī)器周期為12個(gè)時(shí)鐘周期),從而使每條8051指令的執(zhí)行速度在相同的晶振下快了3倍。(2)DS80C320與51系列單片機(jī)完全兼容,并采用標(biāo)準(zhǔn)的8051指令集,給設(shè)計(jì)與開(kāi)發(fā)帶來(lái)了方便。(3)可以通過(guò)改變MOVX指針的執(zhí)行時(shí)間來(lái)訪(fǎng)問(wèn)速度不同的RAM和其他外圍器件。?
DS80C320提供16位地址線(xiàn),可尋址64KB的數(shù)據(jù)空間和程序空間。由于DS80C320內(nèi)不含片內(nèi)ROM,所以程序代碼是存儲(chǔ)在FLASH中的。雖然目前系統(tǒng)的軟件不到60KB,但考慮到系統(tǒng)升級(jí)需要程序的擴(kuò)展,選用了128KB的FLASH空間,需要17位地址線(xiàn)。這樣就產(chǎn)生處理器的尋址能力不足的問(wèn)題,采用EPLD內(nèi)部的20H寄存器來(lái)產(chǎn)生FLASH的第14、15、16位地址及片選信號(hào)和讀寫(xiě)信號(hào)。128KB的FLASH空間分成了2頁(yè),每頁(yè)有64KB,第16位地址線(xiàn)決定FLASH空間的頁(yè)號(hào),DS80C320通過(guò)這種方式訪(fǎng)問(wèn)FLASH的128KB空間。?
2.2 EPLD功能描述?
本系統(tǒng)的EPLD采用ALTERA公司的EPM7512,該芯片屬于MAX7000系列。除了2.1中的尋址擴(kuò)展功能外,EPLD還用作處理器與其外圍電路控制信號(hào)的接口。由于本系統(tǒng)的控制信號(hào)比較多,若采用普通的邏輯門(mén)電路則整個(gè)系統(tǒng)的連線(xiàn)會(huì)非常復(fù)雜,功耗也會(huì)增加。所以采用EPLD來(lái)產(chǎn)生DS80C320與交換芯片、FLASH和HSCX之間的控制信號(hào)和地址信號(hào)。EPLD與處理器的接口主要實(shí)現(xiàn)了低位地址的鎖存和一些器件的片選信號(hào)。CP_DATA[0:7]是地址和數(shù)據(jù)復(fù)用的信號(hào),鎖存后輸出低位地址LOW_CP_ADD[0:7]。EPLD對(duì)HSCX通道的控制信號(hào)包括使能信號(hào)ENABLE_HSCX、復(fù)位信號(hào)RESET_HSCX、數(shù)據(jù)發(fā)送控制信號(hào)TXD_ENABLE等。EPLD對(duì)交換芯片的控制信號(hào)包括讀寫(xiě)信號(hào)READ_OCM、WRITE_OCM、OCM操作類(lèi)型選擇信號(hào)EMB_MODE_OUT等。?
2.3 DS80C320與HSCX間的通信?
本系統(tǒng)的HSCX采用SIEMENS公司的SAB82525,該芯片提供兩個(gè)全雙工的高級(jí)鏈路控制(HDLC)通道,它的最高傳輸速率可達(dá)到4M bit/s。它用于主控板與交換網(wǎng)板間的數(shù)據(jù)通信,包括主控板發(fā)送、交換網(wǎng)板接收的功能請(qǐng)求,交換網(wǎng)板發(fā)送、主控板接收的應(yīng)答及上報(bào)。由EPLD提供HSCX的數(shù)據(jù)線(xiàn)、地址線(xiàn)、使能信號(hào)和讀寫(xiě)信號(hào)線(xiàn)。DS80C320對(duì)SAB82525的控制是通過(guò)讀寫(xiě)SAB82525的內(nèi)部寄存器來(lái)實(shí)現(xiàn)的;與HSCX之間的數(shù)據(jù)傳送采用中斷方式。當(dāng)SAB82525滿(mǎn)足產(chǎn)生中斷的條件(如接收到數(shù)據(jù)幀)時(shí),它向處理器發(fā)出中斷請(qǐng)求,處理器讀取中斷寄存器ISTA、EXIR確定中斷發(fā)生的原因并做出相應(yīng)的處理。?
3 基于DS80C320的控制模塊對(duì)交換芯片的控制?
采用的交換芯片PRS28G屬于IBM公司的第二代高性能包路由交換產(chǎn)品。其端口速率達(dá)到OC48(2.5Gbps)并具有很好的擴(kuò)展性,可通過(guò)速率擴(kuò)展或者端口擴(kuò)展構(gòu)造出更大容量的交換網(wǎng)絡(luò),是數(shù)據(jù)幀和信元交換系統(tǒng)的理想解決方案。?
交換芯片內(nèi)部包含一個(gè)狀態(tài)寄存器、32個(gè)應(yīng)用寄存器及一個(gè)OCM接口。OCM接口是串行接口,用于處理器編程應(yīng)用寄存器或是讀取狀態(tài)寄存器內(nèi)容。交換芯片與DS80C320之間的通信和控制是通過(guò)EPLD內(nèi)的OCM控制接口完成的。處理器并行讀寫(xiě)EPLD。而OCM與EPLD的接口是串行的,串并轉(zhuǎn)換是通過(guò)在EPLD內(nèi)設(shè)置特定寄存器空間來(lái)完成的。處理器與交換芯片之間的數(shù)據(jù)傳輸過(guò)程是:處理器向EPLD特定寄存器寫(xiě)數(shù)據(jù),數(shù)據(jù)通過(guò)EPLD輸出EMB_DATA_IN串行信號(hào),寫(xiě)入OCM指令寄存器,再根據(jù)OCM的指令集定義,決定其操作,包括讀/寫(xiě)應(yīng)用寄存器、讀取狀態(tài)寄存器、交換芯片復(fù)位等。每次操作的結(jié)果存儲(chǔ)在響應(yīng)寄存器中,在處理器控制下通過(guò)EMB_DATA_OUT信號(hào)移入EPLD特定地址空間,供處理器讀取。?
4 系統(tǒng)的軟件構(gòu)成?
此系統(tǒng)的軟件是由主函數(shù)及其調(diào)用的子函數(shù)和三個(gè)中斷程序組成。?
4.1 主函數(shù)(包括它調(diào)用的子函數(shù))?
主函數(shù)首先檢測(cè)交換網(wǎng)板上的各種設(shè)備,初始化整個(gè)系統(tǒng),然后開(kāi)始一個(gè)主循環(huán),在系統(tǒng)上電狀態(tài)下程序總在這個(gè)循環(huán)中運(yùn)行。在沒(méi)有中斷或復(fù)位請(qǐng)求的情況下,循環(huán)檢測(cè)各功能模塊的執(zhí)行標(biāo)志位,當(dāng)標(biāo)志位有效時(shí),執(zhí)行相應(yīng)的功能模塊。?
主函數(shù)的概要流程如圖2所示。?
?
?
4.2 中斷處理程序?
三個(gè)中斷處理程序分別是:?
(1) 定時(shí)器中斷處理程序,完成周期性功能模塊標(biāo)志位的產(chǎn)生。?
(2) 外部中斷1,完成來(lái)自HSCX的數(shù)據(jù)接收、存儲(chǔ)及應(yīng)答數(shù)據(jù)的發(fā)送功能。?
(3) 串口中斷,實(shí)現(xiàn)串口數(shù)據(jù)的接收、存儲(chǔ)及應(yīng)答數(shù)據(jù)的發(fā)送功能。?
5 實(shí)驗(yàn)結(jié)果與討論?
為檢測(cè)該系統(tǒng)是否能夠穩(wěn)定地運(yùn)行,在軟件中設(shè)計(jì)了FUNC_TEST子函數(shù)。該子函數(shù)負(fù)責(zé)向交換芯片的每個(gè)端口發(fā)送14個(gè)數(shù)據(jù)包,其中數(shù)據(jù)域的內(nèi)容為隨機(jī)值,這些數(shù)據(jù)在交換芯片內(nèi)部循環(huán),形成一定的負(fù)載流量,模擬路由器的實(shí)際工作環(huán)境。經(jīng)檢測(cè),整個(gè)系統(tǒng)工作穩(wěn)定,處理器DS80C320完成了本交換網(wǎng)板控制模塊的控制功能。?
參考文獻(xiàn)?
1 High-Speed Microcontroller Data Book. Dallas semiconductor,1995?
2 李朝青.單片機(jī)原理及接口技術(shù). 北京:北京航空航天大學(xué)出版社,1999.6?
3 張 濤.一種高速路由器交換控制.代碼的分析和優(yōu)化.天津大學(xué)碩士學(xué)位論文. 2001