李泓淵
隨著計(jì)算機(jī)網(wǎng)絡(luò)化的日趨普及,網(wǎng)絡(luò)幾乎出現(xiàn)在我們生活的每一個(gè)角落。在眾多的互聯(lián)網(wǎng)技術(shù)中,以太網(wǎng)由于技術(shù)成熟、性能良好、聯(lián)網(wǎng)成本低等優(yōu)勢(shì),成為最流行的計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)之一。另一方面,嵌入式系統(tǒng)在工業(yè)控制、自動(dòng)化儀器儀表及智能家電等領(lǐng)域得到了大量的應(yīng)用。如何使嵌入式系統(tǒng)接入到以太網(wǎng)網(wǎng)絡(luò)便成了嵌入式工程師不得不思考的一個(gè)問題。
事實(shí)上,人們已經(jīng)提出了一些可行的嵌入式系統(tǒng)以太網(wǎng)硬件設(shè)計(jì)方案。大部分的硬件方案中,根據(jù)性能與成本的要求,一般使用 32位微處理器作為系統(tǒng)的主控芯片,如ARM7[1,2]、ARM9[3]等。另一些低成本設(shè)計(jì)方案中,考慮到移植協(xié)議棧時(shí)的大容量RAM需求以及以太網(wǎng)性能的需要,選擇高性能8位單片機(jī)作為主控芯片,如AVR ATMega64[4]或 C8051F020[5]等。此外,也可以使用 FPGA[6]作為嵌入式系統(tǒng)的主控芯片。然而,無(wú)論使用哪種方案,都需要根據(jù)處理器的片內(nèi)外設(shè)的不同而選擇不同的以太網(wǎng)芯片方案。
若處理器中不包含任何以太網(wǎng)外設(shè),則必須使用包含MAC和PHY的以太網(wǎng)控制器,如Silicon Labs的CP2200、Davicom的DM9000;如果單片機(jī)或微處理器的外設(shè)只包含MAC,如ST的STM32F107、NXP的LPC1788等微控制器,則在系統(tǒng)中需要使用一片含有 PHY的芯片,如 TI的DP83856A。
以上這些方案,無(wú)論怎么搭配,都需要2片芯片。相比于單芯片方案,這樣的設(shè)計(jì)中,布線都較復(fù)雜。不僅如此,最終成品的PCB面積也往往比較大。這會(huì)產(chǎn)生一些問題,比如,復(fù)雜的布線不僅導(dǎo)致了設(shè)計(jì)和制造成本的增加,而且過多的芯片外部連線更容易受到干擾從而降低系統(tǒng)工作的可靠性。另一方面,較大的PCB面積也會(huì)導(dǎo)致生產(chǎn)成本的進(jìn)一步增加。
在本方案中,將使用基于 ARM Cortex-M3內(nèi)核的LM3S6100微控制器,單芯片配合外圍元件器,實(shí)現(xiàn)嵌入式以太網(wǎng)接入的硬件設(shè)計(jì)。
LM3S6100是一款32位的RISC處理器,使用的是32位的ARM Cortex-M3 v7M架構(gòu)。事實(shí)上,這是一款非常適合應(yīng)用于嵌入式以太網(wǎng)的微控制器。以下是與設(shè)計(jì)有關(guān)的一些硬件特性:
(1)支持硬件除法和單周期乘法;
(2)內(nèi)部包含64KB的單周期Flash以及16KB的SRAM
(3)集成ARM SWD的JTAG接口;
(4)根據(jù)不同的配置,具有10到30個(gè)能夠5V耐壓的可配置GPIO ;
(5)3個(gè)通用定時(shí)器模塊,每個(gè)由2個(gè)16位定時(shí)/計(jì)數(shù)器組成;
(6)兼容IEEE 8023-2002規(guī)格的10/100M以太網(wǎng)控制器;
(7)片上低壓差穩(wěn)壓器,帶有用戶可編程的2.25V至2.75V輸出。
在這里,由于受篇幅的限制,對(duì)于LM3S6100的特性,只列舉了與本設(shè)計(jì)相關(guān)的部分。
本設(shè)計(jì)使用的 LM3S6100芯片的封裝為 100個(gè)引腳的LQFP封裝。關(guān)于芯片以及以太網(wǎng)的主要設(shè)計(jì)方案參考了LM3S6100的數(shù)據(jù)手冊(cè)[7]。
不同于使用ARM7或ARM9微處理器的嵌入式系統(tǒng),在使用LM3S6100微控制器時(shí),不需要分別對(duì)內(nèi)核和外設(shè)提供不同的電壓。由于該微控制器中集成了片上低壓差穩(wěn)壓器,因此,在使用LM3S6100微控制器的電路中,只需要提供3.3V的電壓即可。在本系統(tǒng)中,電源電路原理圖如圖1所示:
圖1 電源電路原理圖
在該電源電路中,使用了Sipex的SP6201低壓差穩(wěn)壓電源芯片將5V直流輸入電壓轉(zhuǎn)換為3.3V直流輸出電壓。電源輸入端和輸出端分別對(duì)地接 10uF的濾波電容 C33和C34,這些電容分別降低了輸入電壓與輸出電壓的干擾,起到了穩(wěn)定電壓的作用。圖1中的VDD是輸出的3.3V直流電壓的標(biāo)號(hào)。
在本文中,模擬地和數(shù)字地根據(jù)經(jīng)驗(yàn)而被盡可能地合理設(shè)計(jì)以使模擬信號(hào)與數(shù)字信號(hào)間的相互干擾最小。為了簡(jiǎn)化描述,本文原理圖中出現(xiàn)的標(biāo)號(hào)及本文的描述不區(qū)分模擬地和數(shù)字地。
此外,對(duì)于2.5V內(nèi)部LDO輸出,芯片的第7腳和第62腳分別對(duì)地接1個(gè)2.2uF和1個(gè)100nF的電容。
由于LM3S6100是低電平復(fù)位的,因此,正常工作時(shí),復(fù)位引腳需要接一個(gè)上拉電阻到系統(tǒng)高電平,即 3.3V。同時(shí),為了使系統(tǒng)在上電后有一定的延時(shí)以滿足其他外設(shè)的初始化需要,上拉電阻對(duì)地接一個(gè)100nF的電容。該電容的另一個(gè)作用是使復(fù)位引腳的電位不會(huì)發(fā)生突變,因而,不會(huì)由于該引腳上的干擾信號(hào)而發(fā)生錯(cuò)誤的復(fù)位,從而有效地提高了系統(tǒng)的穩(wěn)定性。復(fù)位電路原理圖如圖2所示:
圖2 復(fù)位電路原理圖
在圖2中,按鍵K1提供了手動(dòng)復(fù)位的功能。
在LM3S6100中有一個(gè)內(nèi)置的振蕩器,頻率為12MHz。然而,這個(gè)振蕩器的誤差較大,達(dá)到了正負(fù)30%??紤]到以太網(wǎng)對(duì)于時(shí)鐘準(zhǔn)確性的要求,本設(shè)計(jì)使用了外部石英晶體振蕩器作為系統(tǒng)主時(shí)鐘的輸入。
通過該處理器內(nèi)置的 PLL,能夠?qū)⒈对龊蟮闹髡袷幤鳎ㄔ诒痉桨钢袨槭⒕w振蕩器)的頻率作為系統(tǒng)的時(shí)鐘信號(hào)。因此,石英晶體振蕩器的頻率不需要很高就能滿足要求。本設(shè)計(jì)使用了 6MHz的石英晶體振蕩器。時(shí)鐘電路如圖 3所示:
圖3 時(shí)鐘電路原理圖
該圖中,C25和C26為兩個(gè)18pF的匹配電容,起到了穩(wěn)定晶體振蕩器頻率的作用。
值得注意的是,為了進(jìn)一步減小系統(tǒng)的PCB面積,本設(shè)計(jì)沒有采用在 ARM 微處理器系統(tǒng)中常用的 20引腳的JTAG接口方案。在本系統(tǒng)中,SWD接口被用來(lái)替代傳統(tǒng)的設(shè)計(jì)方案。
實(shí)際中,SWD接口只需要 4根連線就可以實(shí)現(xiàn)對(duì)LM3S6100的仿真與程序燒寫的功能。本系統(tǒng)的SWD接口電路設(shè)計(jì)如圖4所示:
圖4 SWD接口電路原理圖
圖4中,R4和R5的作用是使得SWDIO和SWCLK引腳在空閑時(shí)上拉到高電平。SWD接口的第 1號(hào)引腳連接LM3S6100的復(fù)位引腳。
LM3S6100片內(nèi)集成的兼容 IEEE 8023-2002規(guī)格的10/100M 以太網(wǎng)控制器為整個(gè)以太網(wǎng)相關(guān)電路的設(shè)計(jì)提供了極大的方便。由于該控制器已經(jīng)包含了MAC和PHY,所以,一個(gè)隔離變壓器、一個(gè)RJ45接口,以及一些外圍元器件,就能夠完成以太網(wǎng)電路部分的設(shè)計(jì)。
考慮到集成隔離變壓器的RJ45接口能夠進(jìn)一步減少最終的PCB面積,本設(shè)計(jì)使用了漢仁公司的HR911105a型號(hào)的RJ-45接口,如圖5所示:
圖5 HR911105A RJ-45接口原理圖
在LM3S6100的引腳中,與以太網(wǎng)有關(guān)的引腳名稱分別為 ERBIAS、GNDPHY、VCCPHY 、LED0、LED1、XTALNPHY、XTALPPHY、MDIO、RXIN、RXIP、TXON和TXOP。
ERBIAS引腳是一個(gè)12.4kΩ的1%精度的電阻,該電阻被PHY內(nèi)部使用。本設(shè)計(jì)中,該引腳接地。
GNDPHY和VCCPHY引腳分別是PHY的地和電源,分別接地和3.3V電壓。值得注意的是,VCCPHY的每一個(gè)引腳需要對(duì)地接100nF的電容以提高引腳電壓的穩(wěn)定性。
LED0和LED1引腳分別串聯(lián)一個(gè)1KΩ的限流電阻后分別連接到RJ45接口的GLED+和YLED+腳。GLED-和YLED-引腳接地。
XTALNPHY和XTALPPHY引腳分別是25MHz石英晶體振蕩器的輸出與輸入端。這部分電路與圖3的時(shí)鐘電路類似。不同之處在于,這兩個(gè)引腳需要連接一個(gè)25MHz的石英晶體振蕩器而非6MHz。這部分電路原理圖如圖6所示:
圖6 以太網(wǎng)時(shí)鐘電路原理圖
其余的引腳都與以太網(wǎng)的PHY有關(guān)。在本設(shè)計(jì)中這幾個(gè)引腳分別與RJ-45接口的相應(yīng)引腳連接后,如圖7所示:
圖7 PHY引腳連接原理圖
此外,RJ-45接口的2個(gè)隔離變壓器的中心抽頭RX-CT和TX-CT引腳分別對(duì)地連接10nF電容后接3.3V電源。
本論文列舉了一些傳統(tǒng)的以太網(wǎng)硬件設(shè)計(jì)方案,對(duì)存在的問題進(jìn)行了討論,并提出了一種基于LM3S6100微控制器的嵌入式以太網(wǎng)硬件方案。本文詳細(xì)描述了LM3S6100的核心硬件電路以及與以太網(wǎng)有關(guān)的電路?;诒疚乃岢龅囊蕴W(wǎng)硬件方案已經(jīng)成功設(shè)計(jì)制造出樣品。該樣品測(cè)試正常,工作穩(wěn)定可靠。
[1]王欽玉,馬維華.基于LPC2292的嵌入式Ethernet-CAN轉(zhuǎn)換器[J].南京航空航天大學(xué)學(xué)報(bào),2007,39(5):607-611.
[2]陳紅彥,費(fèi)凌,鄭亮等.基于RTL8019的ARM和PC機(jī)間的TCP/IP通信[J].工業(yè)控制計(jì)算機(jī),2010,23(8):57,89.
[3]袁安富,夏生鳳.基于ARM和Linux的DM9000網(wǎng)絡(luò)接口設(shè)計(jì)及驅(qū)動(dòng)實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2011,33(2):27-31.
[4]張宇翔,劉偉,郭敏等.基于AVR高性能單片機(jī)的以太網(wǎng)接口設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2009,32(3):81-84.
[5]王天杰,原明亭.基于C8051F020的以太網(wǎng)遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)[J].化工自動(dòng)化及儀表,2007,34(5):36-39.
[6]盧珞先,任立志.基于FPGA的網(wǎng)絡(luò)接口設(shè)計(jì)與應(yīng)用[J].電測(cè)與儀表,2008,45(12):56-58.
[7]TI公司.Stellaris LM3S6100 Microcontroller Data Sheet[R].http://www.ti.com.cn/cn/lit/ds/symlink/lm3s6100.pdf