楊素萍, 張遠(yuǎn)峰
(北京工商大學(xué) 計(jì)算機(jī)與信息工程學(xué)院, 北京 100048)
計(jì)算機(jī)網(wǎng)絡(luò)課程緊隨時(shí)代脈搏跳動(dòng)而不斷演進(jìn),具有實(shí)踐性、交叉性、復(fù)雜性強(qiáng)等特點(diǎn),目前已經(jīng)成為國(guó)內(nèi)外高等院校IT專業(yè)的本科生和研究生廣泛開(kāi)設(shè)的課程[1].
從教學(xué)目的來(lái)說(shuō),可將計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)分為三類:驗(yàn)證性實(shí)驗(yàn)、實(shí)踐性實(shí)驗(yàn)和探索性實(shí)驗(yàn)[1]. 其中實(shí)踐性實(shí)驗(yàn)主要目的是幫助學(xué)生提高計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用和維護(hù)的技能,同時(shí)有助于他們深入理解網(wǎng)絡(luò)原理,為服務(wù)社會(huì)做好準(zhǔn)備. 這類實(shí)驗(yàn)最好在真實(shí)網(wǎng)絡(luò)環(huán)境下由學(xué)生實(shí)際操作完成,如配置和維護(hù)各種網(wǎng)絡(luò)設(shè)備和應(yīng)用服務(wù)器[1]. 為培養(yǎng)專業(yè)型技術(shù)和管理人才,針對(duì)某高校的以太網(wǎng)交換機(jī)這一網(wǎng)絡(luò)設(shè)備的教學(xué)需求設(shè)計(jì)了一款多種交換機(jī)仿真教學(xué)系統(tǒng),下面簡(jiǎn)稱為教學(xué)系統(tǒng). 該教學(xué)系統(tǒng)采用軟硬件結(jié)合的形式,軟件應(yīng)用層實(shí)現(xiàn)教學(xué)系統(tǒng)的人機(jī)界面并提供靈活的教學(xué)實(shí)驗(yàn),而硬件支持平臺(tái)則為軟件應(yīng)用層提供物理層支持、硬件相關(guān)實(shí)驗(yàn)及必需的通信接口.
該教學(xué)系統(tǒng)是一款自主設(shè)計(jì)的八口自適應(yīng)交換機(jī)設(shè)備(10 M/100 MHz),其特點(diǎn)及創(chuàng)新意義如下:
1) 該教學(xué)系統(tǒng)最大的特點(diǎn)之一是能仿真若干典型品牌交換機(jī)的配置命令和配置方法,如選取思科、H3C、華為等品牌的若干型號(hào)產(chǎn)品為仿真對(duì)象,這是目前市面上的交換機(jī)所不具有的功能[2-4],也是交換機(jī)仿真教學(xué)系統(tǒng)的設(shè)計(jì)出發(fā)點(diǎn)所在,具有一定的創(chuàng)新意義.
2) 自主研發(fā),可以設(shè)計(jì)盡可能多的教學(xué)實(shí)驗(yàn),且可以自如安排實(shí)驗(yàn)內(nèi)容,如可以靈活地設(shè)置入口/出口流量控制,讓使用者更深刻地了解交換機(jī)的工作原理.
3) 該教學(xué)系統(tǒng)可以提供命令行方式及Web方式配置,遠(yuǎn)程網(wǎng)管,設(shè)置端口的工作模式,QoS(quality of service,服務(wù)質(zhì)量),定義VLAN(virtual local access network,虛擬局域網(wǎng))等功能[5],其創(chuàng)新意義還在于可以自由地摘除和重裝特定功能. 如啟用或禁止廣播風(fēng)暴控制,啟用或禁用某些端口的發(fā)送或接收數(shù)據(jù)包功能等,具有很高的靈活性.
4) 能提供交換機(jī)的配置界面和實(shí)際硬件連接,即能構(gòu)建真實(shí)的網(wǎng)絡(luò)環(huán)境,提供若干網(wǎng)口資源,具備標(biāo)準(zhǔn)快速以太網(wǎng)交換機(jī)所擁有的功能,如設(shè)置端口工作模式、VLAN劃分等[5].
圖2 RTL8309SC的結(jié)構(gòu)示意Fig.2 Block diagram of RTL8309SC
該教學(xué)系統(tǒng)的軟件應(yīng)用層在億陽(yáng)網(wǎng)警的SJW13網(wǎng)絡(luò)密碼機(jī)上運(yùn)行,這是考慮到路由器和防火墻實(shí)驗(yàn)的開(kāi)發(fā)需求而特意選擇的一款設(shè)備,在該教學(xué)系統(tǒng)中僅作一臺(tái)專用小型計(jì)算機(jī)使用. 研究主要對(duì)硬件支持平臺(tái)的設(shè)計(jì)和實(shí)現(xiàn)進(jìn)行論述.
經(jīng)過(guò)分析比較幾種主流交換機(jī)硬件體系結(jié)構(gòu),研究決定采用MCU+ASIC作為教學(xué)系統(tǒng)硬件支持平臺(tái)的體系結(jié)構(gòu). 使用ASIC(application specific intergrated circuits,專用集成電路)專用芯片高速處理各種傳統(tǒng)的業(yè)務(wù),滿足對(duì)交換機(jī)處理性能和教學(xué)系統(tǒng)硬件實(shí)驗(yàn)的需求;而使用MCU(micro controller unit,微處理器單元)可實(shí)現(xiàn)對(duì)教學(xué)系統(tǒng)的管理和與軟件層的通信等功能. 因此,這是一種開(kāi)發(fā)周期適中、開(kāi)發(fā)成本符合項(xiàng)目預(yù)算且便捷的方式.
根據(jù)確定的硬件體系結(jié)構(gòu),設(shè)計(jì)的教學(xué)系統(tǒng)硬件結(jié)構(gòu)示意如圖1.
圖1 教學(xué)系統(tǒng)總體硬件結(jié)構(gòu)示意Fig.1 Hardware structure diagram of the whole teaching system
經(jīng)過(guò)調(diào)研,綜合考慮以太網(wǎng)交換機(jī)教學(xué)系統(tǒng)對(duì)背板帶寬、網(wǎng)口資源及交換機(jī)的若干特性要求,同時(shí)考慮了芯片市場(chǎng)供需條件和成本因素,最后選擇了Realtek公司的一款集MAC(media access control,介質(zhì)訪問(wèn)控制)和PHY(physical layer,物理層)于一體、低功耗的ASIC RTL8309SC作為該教學(xué)系統(tǒng)的交換核心,選擇了MSP430F149單片機(jī)為MCU.
根據(jù)RTL8309SC和 MSP430F149的特點(diǎn),下面對(duì)各個(gè)模塊間的接口進(jìn)行設(shè)計(jì).
在進(jìn)行接口設(shè)計(jì)之前,有必要介紹一下交換機(jī)工作原理.
1)交換機(jī)工作原理
RTL8309SC的內(nèi)部結(jié)構(gòu)示意如圖2. 網(wǎng)路上的以太網(wǎng)數(shù)據(jù)幀從RJ45進(jìn)來(lái)后,幀進(jìn)來(lái)的端口被稱為源端口,經(jīng)過(guò)物理通道(包括A/D轉(zhuǎn)換電路,編碼/解碼器,加擾/解擾器等)的處理,以并行bit形式進(jìn)入MAC,在進(jìn)行地址查表搜尋、優(yōu)先級(jí)隊(duì)列機(jī)制等控制操作后,該數(shù)據(jù)幀被轉(zhuǎn)發(fā)至其對(duì)應(yīng)目的端口,經(jīng)過(guò)該端口的物理通道的反向處理后傳送到RJ45,最后以符合一定標(biāo)準(zhǔn)的模擬信號(hào)形式在網(wǎng)絡(luò)上傳輸.
2)I2C接口、SMI接口及串行接口的設(shè)計(jì)
在本設(shè)計(jì)中,采取了EEPROM和Strapping Pins結(jié)合的初始化配置方式. 通過(guò)跳線組對(duì)Strapping Pins配置的方式可以方便地通過(guò)一個(gè)或多個(gè)管腳組合的不同設(shè)置來(lái)達(dá)到直觀的教學(xué)效果.
EEPROM AT24C02B用以存儲(chǔ)教學(xué)系統(tǒng)的出廠配置數(shù)據(jù),在上電復(fù)位后,RTL8309SC自動(dòng)搜索AT24C02B并從其下載配置數(shù)據(jù),完成初始化操作. 另外添加一片EEPROM AT24C02A,這是為了在學(xué)生進(jìn)行不同的實(shí)驗(yàn)內(nèi)容時(shí),不僅可以實(shí)時(shí)地改變教學(xué)系統(tǒng)的功能配置(通過(guò)SMI接口來(lái)實(shí)現(xiàn),SMI:串行管理接口,serial management interface),還可以通過(guò)“是否恢復(fù)為上次保存的配置”命令使教學(xué)系統(tǒng)的初始化配置修改為用戶最后一次保存過(guò)的配置. 對(duì)AT24C02A的讀寫是使用MSP430F149實(shí)現(xiàn)的,但該單片機(jī)不支持I2C接口,因此使用單片機(jī)的普通I/O P4.1和P4.0與SCL/SDA連接,見(jiàn)圖3,再編寫一個(gè)驅(qū)動(dòng)文件就實(shí)現(xiàn)了與AT24C02A的通信.
硬件支持平臺(tái)與軟件層之間的通信接口采用標(biāo)準(zhǔn)的RS232串行通信接口. RS232串行口為9針異步串行通信接口,用于接收來(lái)自軟件層的指令(用戶在人機(jī)界面輸入的命令經(jīng)過(guò)了軟件層的解析和轉(zhuǎn)換),并把單片機(jī)執(zhí)行的結(jié)果發(fā)送給軟件層.
1)10 M/100 Mbps網(wǎng)口的實(shí)現(xiàn)
選用的RTL8309SC支持8個(gè)10 M/100 Mbps網(wǎng)口,由產(chǎn)品直觀性和設(shè)計(jì)易行性考慮,定制四組內(nèi)置網(wǎng)絡(luò)隔離變壓器帶LED的雙層RJ45 71F-1201GYD2NL作為本系統(tǒng)的網(wǎng)絡(luò)接口. 該RJ45座符合RTL8309SC的阻抗匹配要求. 經(jīng)筆者的多次實(shí)驗(yàn)證明,該產(chǎn)品能良好代替RTL8309SC的分立網(wǎng)絡(luò)隔離變壓器設(shè)計(jì)方式,相比之下減少了PCB布線,降低了出錯(cuò)率,提高了系統(tǒng)的抗干擾性和可靠性.
為了讓學(xué)生實(shí)時(shí)掌握每個(gè)網(wǎng)口的工作狀態(tài),設(shè)計(jì)三組LED以顯示端口的速度、Duplex/Collision(雙工/沖突)、Link/ACT(鏈接/通信)多組合的狀態(tài).
2)JTAG接口
JTAG接口(joint test action group,一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議)用以下載在IAR Embedded Workbench軟件開(kāi)發(fā)集成環(huán)境里編譯好的驅(qū)動(dòng)代碼,還可用以升級(jí)固件.
以上各個(gè)接口之間的連接關(guān)系見(jiàn)圖3.
圖3 教學(xué)系統(tǒng)的硬件設(shè)計(jì)示意Fig.3 Hardware design sketch map of the teaching system
以太網(wǎng)交換機(jī)教學(xué)系統(tǒng)的電源供給有三組:數(shù)字1.8 V(D1V8),模擬1.8 V(A1V8)和數(shù)字3.3 V(D3V3). 其中,D1V8提供RTL8309SC的核電壓,A1V8提供網(wǎng)口部分的電源供給,而I2C總線接口及SMI接口加上控制模塊,均由D3V3提供. 設(shè)計(jì)采取3組電源獨(dú)立供電設(shè)計(jì),每組電源均達(dá)到了電平匹配、驅(qū)動(dòng)負(fù)載能力、穩(wěn)定性和可靠性等性能指標(biāo)的要求.
交換模塊的時(shí)鐘信號(hào)由25 M晶振組成的時(shí)鐘電路提供. MSP430F149的時(shí)鐘信號(hào)使用8 M晶振信號(hào)來(lái)提供更高的波特率. 復(fù)位信號(hào)為低電平有效,參考設(shè)計(jì)電路不再詳述.
供電運(yùn)輸中,電力電纜是最為重要的一個(gè)保證。一旦電力電纜出現(xiàn)了運(yùn)行故障,會(huì)給社會(huì)帶來(lái)巨大的影響和損失,尤其是給電力企業(yè)帶來(lái)極其嚴(yán)重的后果[1]。因此,加強(qiáng)日常電力電纜的運(yùn)行故障分析,對(duì)維護(hù)社會(huì)正常運(yùn)轉(zhuǎn)是有重要的現(xiàn)實(shí)意義的。本文對(duì)10kV及以上電力電纜運(yùn)行故障的原因進(jìn)行分析。
系統(tǒng)的硬件原理圖和PCB圖的設(shè)計(jì)在Protel DXP2004上進(jìn)行.
分析功能需求及硬件的特點(diǎn)后,采用結(jié)構(gòu)化程序設(shè)計(jì)思想對(duì)驅(qū)動(dòng)程序進(jìn)行設(shè)計(jì),開(kāi)發(fā)語(yǔ)言使用C語(yǔ)言. 主程序的流程圖如圖4,LPM0為低功耗模式0[7],在進(jìn)入中斷后自動(dòng)退出,詳見(jiàn)芯片文檔.
圖4 主程序流程圖設(shè)計(jì)Fig.4 Design of main program flow chart
串口通信采取接收中斷方式,中斷處理程序的流程圖見(jiàn)圖5.
圖5 中斷處理程序流程圖設(shè)計(jì)Fig.5 Design of interrupt service routine flow chart
命令處理程序的主體結(jié)構(gòu)為一個(gè)Switch語(yǔ)句,當(dāng)滿足某個(gè)條件時(shí)即調(diào)用對(duì)應(yīng)的功能函數(shù),從而實(shí)現(xiàn)該功能函數(shù)所定義的功能. 每個(gè)功能函數(shù)對(duì)若干16位內(nèi)部寄存器進(jìn)行設(shè)置以實(shí)現(xiàn)所需功能,并且及時(shí)保存修改后的配置,在程序結(jié)束前均返回執(zhí)行結(jié)果給軟件層.
功能函數(shù)主要有:
1) 函數(shù)原型:void CallLastS(void),功能是恢復(fù)為最后一次保存的配置.
2) 函數(shù)原型:Set-Port( ),設(shè)置端口工作模式,包括端口速度、雙工/半雙工、自協(xié)商能力等工作參數(shù).
3) 函數(shù)原型:Show-Port( ),顯示網(wǎng)口工作狀態(tài),即顯示某個(gè)網(wǎng)口的速度、Link/Act、Duplex/Collision.
4) 函數(shù)原型:Do-VLAN( ),VLAN實(shí)驗(yàn),主要包括新建VLAN、劃分VLAN、刪除VLAN、Enable/Disable VLAN等.
該交換機(jī)仿真教學(xué)系統(tǒng)用于以太網(wǎng)交換機(jī)的實(shí)踐教學(xué),在教學(xué)實(shí)驗(yàn)中的典型應(yīng)用可分為單機(jī)實(shí)驗(yàn)和小型局域網(wǎng)搭建實(shí)驗(yàn)兩種類型. 單機(jī)實(shí)驗(yàn)即平均一個(gè)學(xué)生配一臺(tái)教學(xué)系統(tǒng),一臺(tái)PC及雙絞線等器材,可在多種以太網(wǎng)交換機(jī)仿真用戶界面上進(jìn)行IP地址設(shè)置,靈活設(shè)置端口工作模式等,并可從LED上觀察設(shè)置前后的狀態(tài)變化;搭建局域網(wǎng)實(shí)驗(yàn)既可在一臺(tái)教學(xué)系統(tǒng)上進(jìn)行,也可通過(guò)級(jí)聯(lián)方式進(jìn)行網(wǎng)絡(luò)擴(kuò)容,需要兩臺(tái)以上PC. 實(shí)驗(yàn)內(nèi)容如任意劃分VLAN,本設(shè)計(jì)中的以太網(wǎng)交換機(jī)教學(xué)系統(tǒng)可支持9個(gè)VLAN,還有Trunk匯聚鏈路實(shí)驗(yàn)等.
本文設(shè)計(jì)的以太網(wǎng)交換機(jī)仿真教學(xué)系統(tǒng)硬件支持平臺(tái)不僅給整個(gè)系統(tǒng)的上層應(yīng)用提供了穩(wěn)定性高的硬件基礎(chǔ),實(shí)驗(yàn)必需的底層工作參數(shù)及標(biāo)準(zhǔn)的通信接口,而且以相對(duì)經(jīng)濟(jì)實(shí)惠的價(jià)格設(shè)計(jì)了盡可能多的教學(xué)實(shí)驗(yàn).
多種以太網(wǎng)交換機(jī)仿真教學(xué)系統(tǒng)緊扣網(wǎng)絡(luò)設(shè)備教學(xué)實(shí)踐要求,提供了多種以太網(wǎng)交換機(jī)的仿真配置界面和方法,為高校計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)室的以太網(wǎng)交換機(jī)教學(xué)搭建了一個(gè)理論學(xué)習(xí)與實(shí)際操作緊密結(jié)合的實(shí)驗(yàn)平臺(tái),實(shí)現(xiàn)了較高的性價(jià)比,具有很強(qiáng)的應(yīng)用意義和推廣價(jià)值.