??? 摘??要: 介紹了MC9S12NE64單片機(jī)的功能特性及以MC9S12NE64為CPU的交換機(jī)設(shè)計,詳細(xì)闡述了8FE+2GE千兆以太網(wǎng)交換機(jī)的軟硬件設(shè)計,比較了本設(shè)計與單芯片實(shí)現(xiàn)以太網(wǎng)設(shè)計的優(yōu)缺點(diǎn)。本設(shè)計突出特點(diǎn)是交換機(jī)之間可以連成自愈環(huán),有快速故障檢測和恢復(fù)的功能。?
??? 關(guān)鍵詞: MC9S12NE64; 千兆以太網(wǎng); 88E6095交換模塊
?
??? 千兆位以太網(wǎng)能提供10倍于快速以太網(wǎng)的性能,以高效、高速、高性能而著稱。已經(jīng)廣泛應(yīng)用在金融、商業(yè)、教育、政府機(jī)關(guān)及廠礦企業(yè)等各行各業(yè)。?
??? 千兆位以太網(wǎng)最大的優(yōu)點(diǎn)在于它對現(xiàn)有以太網(wǎng)的兼容性,提供了完美無缺的遷移途徑,充分保護(hù)在現(xiàn)有網(wǎng)絡(luò)基礎(chǔ)設(shè)施上的投資。千兆位以太網(wǎng)將保留802.3和以太網(wǎng)幀格式以及 802.3 受管理的對象規(guī)格,從而將使企業(yè)能夠在升級至千兆性能的同時,保留現(xiàn)有的線纜、操作系統(tǒng)、協(xié)議、桌面應(yīng)用程序和網(wǎng)絡(luò)管理戰(zhàn)略與工具。?
??? 現(xiàn)有的千兆以太網(wǎng)交換機(jī)設(shè)計是基于FPGA的。它沒有內(nèi)嵌的功能模塊,如MAC、PHY,需要外部的器件支持,也不能實(shí)時調(diào)試,相對設(shè)計比較復(fù)雜。?
??? 而本設(shè)計用MC9S12NE64為CPU設(shè)計千兆以太網(wǎng)交換機(jī)。MC9S12NE64單片機(jī)內(nèi)部帶有EMAC功能模塊,是專用在以太網(wǎng)上的CPU,而且網(wǎng)站上有免費(fèi)的TCP/IP協(xié)議棧使用。?
1 MC9S12NE64功能簡介?
??? MC9S12NE64是Freescale公司生產(chǎn)的基于HCS12 CPU內(nèi)核的16位單片機(jī),內(nèi)嵌EMAC和EPHY模塊,針對以太網(wǎng)設(shè)計的高性能嵌入式處理器。MC9S12NE64的內(nèi)部功能模塊框圖如圖1所示,主要特性如下:?
?

?
??? (1)內(nèi)核采用高性能16位HCS12CPU,工作頻率為25MHz。提供免費(fèi)的軟件開發(fā)工具Freescale Codewarrior,可以用C/C++語言編程,具有優(yōu)化的C語言體系結(jié)構(gòu),可以生成十分簡潔的代碼,以提高可讀性。?
??? (2)內(nèi)部帶有BDM調(diào)試模塊,可以進(jìn)行實(shí)時在線仿真和調(diào)試,而無需仿真器。集成了64KB的Flash內(nèi)存和8KB的靜態(tài)RAM,能夠滿足大多數(shù)的應(yīng)用場合,如果需要還可以通過PTA、PTB口外部擴(kuò)展。?
??? (3)內(nèi)部嵌入10/100Mb/s的以太網(wǎng)媒介訪問控制器(EMAC),支持標(biāo)準(zhǔn)的媒介獨(dú)立接口(MII),可以實(shí)現(xiàn)地址識別及過濾、以太類型過濾,支持半雙工和全雙工通信。EMAC還有可配置的一個發(fā)送緩沖區(qū)和兩個接收緩沖器,并與8KB RAM共用。MC9S12N64的RAM以2倍于CPU的速度運(yùn)行,使得CPU和EMAC緩沖區(qū)可以交叉存取數(shù)據(jù)。?
??? (4)內(nèi)部嵌入10/100Mb/s以太網(wǎng)物理層(EPHY),支持自動協(xié)商模式,支持半雙工和全雙工的通信,并具有自診斷功能。
??? (5)內(nèi)部還包含有6個模塊:8通道10位模數(shù)轉(zhuǎn)換器(ADC)、4通道16位定時器、2個串行通信接口(SCI)、1個高速串行外設(shè)接口(SPI)、1個具有256種時鐘速度選項(xiàng)的I2C接口、具備使用鎖相回路的時鐘及復(fù)位發(fā)生器(CRG)模塊。?
??? MC9S12NE64具有80引腳TQFP-EP和112引腳LQFP兩種封裝,多達(dá)70個通用I/O口。基于MC9S12NE64的設(shè)計方案與同等功能的多芯片方案相比,具有體積小、結(jié)構(gòu)簡單、集成度高、可靠性好等優(yōu)點(diǎn)。?
2 工業(yè)以太網(wǎng)交換機(jī)硬件設(shè)計?
??? 硬件設(shè)計主要有兩個部分:CPU模塊和交換模塊。?
2.1 CPU模塊?
??? CPU模塊由電源和CPU及外圍電路部分構(gòu)成,其原理框圖如圖2所示。?
?

?
2.1.1 電源?
??? 該設(shè)計中交換機(jī)采用并聯(lián)的雙電源電路,采用冗余電源的供電方式,這兩路電源互為備份,只要其中一路電源是正常的,即可使系統(tǒng)正常供電。?
??? 電源部分要求提供兩路12~24V的直流電源,這兩路電源的正常與否由連接單片機(jī)的兩個LED發(fā)光管指示。當(dāng)其中某一電源通路出現(xiàn)故障時,控制電路能夠使故障電源自動從系統(tǒng)中斷開,并進(jìn)行故障報警,此時由另一個電源通路向交換機(jī)供電,因此出現(xiàn)供電中斷的情況非常小。?
??? 電源的輸入電壓是12~24V,通過穩(wěn)壓器MIC4575輸出3.3V。同時低壓降的穩(wěn)壓芯片MAX1818把3.3V的電壓降到2.5V。?
2.1.2? CPU外圍電路?
??? 本設(shè)計中CPU采用Freescale公司的MC9S12NE64單片機(jī)。該單片機(jī)內(nèi)部集成有8KB RAM、64KB Flash,采用外部PHY的形式,通過MII接口與交換模塊連接進(jìn)行傳輸管理數(shù)據(jù)。通過MC9S12NE64單片機(jī)的SMI_MAC和SMI_PHY來配置交換芯片MAC和PHY的初始化狀態(tài),例如,對端口狀態(tài)、傳輸速率、全/半雙工及流量的控制等。?
??? MC9S12NE64單片機(jī)和交換模塊使用的外部時鐘都是25MHz,用同一個時鐘源。?
??? (1)IIC電路:64KB的AT24C64N的IIC芯片,與單片機(jī)的IIC模塊接口SDA、SCL相連。開機(jī)時CPU讀取存儲在AT24C64N的配置數(shù)據(jù)。?
??? (2)電源LED:兩路電源的工作指示燈,一個雙色報警指示,通過CPU單片機(jī)來控制指示狀況,主從電源都正常時,報警指示綠色常亮;有一路不正常時,常熄;電路有不可修復(fù)的錯誤時,黃色常亮。?
??? (3)復(fù)位電路:對MC9S12NE64單片機(jī)的電源監(jiān)測復(fù)位,單片機(jī)的Reset引腳接ADM708AR芯片。?
??? (4)編程口:MC9S12NE64單片機(jī)有實(shí)時調(diào)試的功能,用multilink P&E下載調(diào)試程序。?
??? (5)交換模塊Reset信號:開機(jī)時,CPU單片機(jī)給交換模塊傳輸一個外部的復(fù)位信號,使交換模塊各引腳都處于讀取狀態(tài),初始化配置交換模塊。?
2.2 交換模塊?
??? 交換模塊用了一塊Marvell公司生產(chǎn)的88E6095主芯片。該芯片集成MAC和PHY,有11個端口,可配置成8FE+3GE,時鐘源頻率為25MHz。其中P0~P7 8個端口支持10BAST-T/100BAST-T;P8、P9、P10端口都支持三種接口:SERDES接收器、外接10/10/1000M Copper PHYs、1000BASE-X的光纖端口,直接連接到光放大器。?
??? 另外,P9還支持MII-MAC/PHY,P10還支持(G)MII-MAC/PHY,該接口可以同MC9S12NE64的MII接口相連,傳輸并處理MGMT幀和網(wǎng)絡(luò)層數(shù)據(jù)。?
??? 交換模塊的原理框圖如圖3所示。本設(shè)計把88E6095的11個端口配置成8FE+2GE+MII。?
?

?
??? (1)8個FE端口:P0~P7配成10/100M快速以太網(wǎng)端口,支持半/全雙工。?
??? (2)2個GE端口:P8和P10配置成SERDES接口,外接88E1112_PHY接收器,配置成2個GE的銅纜或光纖接口。這兩個接口可以連成自愈環(huán),鏈路發(fā)生故障時,可以很快啟動備用鏈路,以防止故障帶來的損失。?
??? (3)1個MII接口:P9端口與CPU連接,來接收處理MGMT數(shù)據(jù)及網(wǎng)絡(luò)管理數(shù)據(jù)。?
??? 本應(yīng)用是8FE+2GE 88E6095×1,還可以通過88E6095的SERDES接口進(jìn)行級聯(lián)擴(kuò)展。例如,16FE+2GE 88E6095×2、24FE+2GE 88E6095×3、48FE+4GE 88E6095×6+88E6185等。?
??? 88E6095的工作電壓有3.3V、2.5V、1.5V、1.2V。其中,1.5V和1.2V通過88E6095引腳control_15、control_12外接PNP晶體管產(chǎn)生。?
3 軟件設(shè)計?
??? MC9S12NE64有免費(fèi)的軟件開發(fā)工具 Freescale codewarrior,可以實(shí)現(xiàn)C/C++語言的編程,使代碼更具有可讀性。其軟件設(shè)計主要實(shí)現(xiàn)以下功能:?
??? (1)初始化?
??? 主要完成對MC9S12NE64各寄存器的初始值設(shè)置和對交換模塊的各個寄存器的初始值設(shè)置。?
??? MC9S12NE64單片機(jī)在工作之前,必須進(jìn)行必要的初始化,主要包括時鐘、復(fù)位發(fā)生器(CRG)模塊和EMAC模塊。?
??? 剛上電時,MC9S12NE64單片機(jī)I/O口對交換模塊發(fā)送一個復(fù)位信號,使得交換模塊各端口為輸入,讀取各端口的狀態(tài),啟動交換模塊開始工作。再通過SWI_MAC和SWI_PHY接口對88E6095和88E1112端口寄存器進(jìn)行初始化,使它們能正常工作。?
??? (2)快速生成樹算法?
??? 本設(shè)計的交換機(jī)是千兆光纖環(huán)自愈的設(shè)計思想,所以在初始化以后,進(jìn)入主程序。執(zhí)行生成樹算法,去除環(huán)冗余回路,確定拓?fù)浣Y(jié)構(gòu)。?
??? (3)網(wǎng)絡(luò)協(xié)議?
??? 要實(shí)現(xiàn)以太網(wǎng)交換機(jī)與以太網(wǎng)上其他設(shè)備(如PC機(jī))的通信,只需要實(shí)現(xiàn)TCP/IP協(xié)議棧就可以了。由于單片機(jī)內(nèi)部資源不足,難以支持完整的TCP/IP協(xié)議棧,故針對各個系統(tǒng)的特點(diǎn)和功能來設(shè)定特定的TCP/IP協(xié)議棧,僅實(shí)現(xiàn)與需要相關(guān)的協(xié)議即可,如ARP協(xié)議、IP協(xié)議、ICMP協(xié)議、TCP協(xié)議、UDP協(xié)議、SMTP協(xié)議、HTTP協(xié)議等。?
??? (4)網(wǎng)絡(luò)管理及功能設(shè)置?
??? 通過MC9S12NE64的MII接口傳輸和接收網(wǎng)絡(luò)數(shù)據(jù)。在實(shí)現(xiàn)上述網(wǎng)絡(luò)協(xié)議的基礎(chǔ)上,可以直接通過網(wǎng)絡(luò)實(shí)現(xiàn)對交換機(jī)的參數(shù)設(shè)置和實(shí)時狀態(tài)監(jiān)視。?
??? (5)故障診斷及自愈實(shí)現(xiàn)?
??? 當(dāng)電源及交換機(jī)其他部件出現(xiàn)故障時,有自診斷和報警功能。交換機(jī)在鏈路上定時發(fā)送MGMT數(shù)據(jù),監(jiān)視網(wǎng)絡(luò)當(dāng)前的連接狀態(tài),當(dāng)出現(xiàn)故障時,立即實(shí)現(xiàn)網(wǎng)絡(luò)的自愈功能。?
4 與單芯片設(shè)計比較?
??? 單芯片以太網(wǎng)設(shè)計用了MC9S12NE64 內(nèi)部嵌入的EMAC和EPHY,單RJ45連接。雖然設(shè)計簡單,但只有一個快速以太網(wǎng)端口可以用,不支持千兆端口,而且不易擴(kuò)展,只能完成簡單的數(shù)據(jù)存儲轉(zhuǎn)發(fā),不支持生成樹、VLAN和故障自恢復(fù)等功能。?
??? 本設(shè)計用MC9S12NE64的MAC和Marvell公司生產(chǎn)的88E6095交換芯片的PHY,通過MII相連。雖然提高了成本,但它帶來了性能的大幅度提高,擴(kuò)展到8個快速以太網(wǎng)端口,另有2個千兆以太網(wǎng)光纖端口。這2個端口可以連成自愈環(huán),當(dāng)發(fā)生鏈路故障時,可以很快恢復(fù),適合用在工業(yè)以太網(wǎng)上。且可擴(kuò)展性好,112腳的MC9S12NE64可擴(kuò)展外部地址和數(shù)據(jù),以及擴(kuò)展EEPROM等模塊。通過級聯(lián)88E6095,可以生成16FE+2GE、24FE+2GE、48FE+4GE等結(jié)構(gòu)。?
??? 本設(shè)計用MC9S12NE64單片機(jī)為CPU,88E6095為外部的PHY,設(shè)計了千兆以太網(wǎng)交換機(jī)。MC9S12NE64單片機(jī)接收和處理MGMT幀,監(jiān)測和管理鏈路。同時,MC9S12NE64單片機(jī)可以嵌入開發(fā)商免費(fèi)提供的TCP/IP協(xié)議棧。對交換機(jī)參數(shù)也可以通過網(wǎng)管軟件進(jìn)行配置,增加了靈活性,用戶可以配置成自己所需要的交換機(jī)。而且通過級聯(lián)多塊88E6095,可以用來擴(kuò)展工業(yè)以太網(wǎng)接口和千兆以太網(wǎng)接口。?
參考文獻(xiàn)?
[1] Freescale, Inc. MC9S12NE64V1 datasheet. 2004.?
[2] 88E6092/6095/6095F. Marvell datesheet.2005.?
[3] 葛永明.光纖環(huán)路工業(yè)以太網(wǎng)交換機(jī)的設(shè)計.自動化與儀器儀表,2003,(3).?
[4] 胡榮強(qiáng), 李濤.基于MC9S12NE64 型單片機(jī)的嵌入式以太網(wǎng)連接. 國外電子元器件,2006,(10).?
[5] 楊振倫,李軍.基于MC9S12NE64的以太網(wǎng)數(shù)據(jù)采集終端的設(shè)計與實(shí)現(xiàn).現(xiàn)在電子科技,2006,(10).?
[6] 牟 濱,陶智勇.彈性分組環(huán)的兩種保護(hù)方式研究[J].光通信研究,2003,(2).
