李泓淵
隨著計算機網(wǎng)絡化的日趨普及,網(wǎng)絡幾乎出現(xiàn)在我們生活的每一個角落。在眾多的互聯(lián)網(wǎng)技術中,以太網(wǎng)由于技術成熟、性能良好、聯(lián)網(wǎng)成本低等優(yōu)勢,成為最流行的計算機網(wǎng)絡技術之一。另一方面,嵌入式系統(tǒng)在工業(yè)控制、自動化儀器儀表及智能家電等領域得到了大量的應用。如何使嵌入式系統(tǒng)接入到以太網(wǎng)網(wǎng)絡便成了嵌入式工程師不得不思考的一個問題。
事實上,人們已經(jīng)提出了一些可行的嵌入式系統(tǒng)以太網(wǎng)硬件設計方案。大部分的硬件方案中,根據(jù)性能與成本的要求,一般使用 32位微處理器作為系統(tǒng)的主控芯片,如ARM7[1,2]、ARM9[3]等。另一些低成本設計方案中,考慮到移植協(xié)議棧時的大容量RAM需求以及以太網(wǎng)性能的需要,選擇高性能8位單片機作為主控芯片,如AVR ATMega64[4]或 C8051F020[5]等。此外,也可以使用 FPGA[6]作為嵌入式系統(tǒng)的主控芯片。然而,無論使用哪種方案,都需要根據(jù)處理器的片內(nèi)外設的不同而選擇不同的以太網(wǎng)芯片方案。
若處理器中不包含任何以太網(wǎng)外設,則必須使用包含MAC和PHY的以太網(wǎng)控制器,如Silicon Labs的CP2200、Davicom的DM9000;如果單片機或微處理器的外設只包含MAC,如ST的STM32F107、NXP的LPC1788等微控制器,則在系統(tǒng)中需要使用一片含有 PHY的芯片,如 TI的DP83856A。
以上這些方案,無論怎么搭配,都需要2片芯片。相比于單芯片方案,這樣的設計中,布線都較復雜。不僅如此,最終成品的PCB面積也往往比較大。這會產(chǎn)生一些問題,比如,復雜的布線不僅導致了設計和制造成本的增加,而且過多的芯片外部連線更容易受到干擾從而降低系統(tǒng)工作的可靠性。另一方面,較大的PCB面積也會導致生產(chǎn)成本的進一步增加。
在本方案中,將使用基于 ARM Cortex-M3內(nèi)核的LM3S6100微控制器,單芯片配合外圍元件器,實現(xiàn)嵌入式以太網(wǎng)接入的硬件設計。
LM3S6100是一款32位的RISC處理器,使用的是32位的ARM Cortex-M3 v7M架構。事實上,這是一款非常適合應用于嵌入式以太網(wǎng)的微控制器。以下是與設計有關的一些硬件特性:
(1)支持硬件除法和單周期乘法;
(2)內(nèi)部包含64KB的單周期Flash以及16KB的SRAM
(3)集成ARM SWD的JTAG接口;
(4)根據(jù)不同的配置,具有10到30個能夠5V耐壓的可配置GPIO ;
(5)3個通用定時器模塊,每個由2個16位定時/計數(shù)器組成;
(6)兼容IEEE 8023-2002規(guī)格的10/100M以太網(wǎng)控制器;
(7)片上低壓差穩(wěn)壓器,帶有用戶可編程的2.25V至2.75V輸出。
在這里,由于受篇幅的限制,對于LM3S6100的特性,只列舉了與本設計相關的部分。
本設計使用的 LM3S6100芯片的封裝為 100個引腳的LQFP封裝。關于芯片以及以太網(wǎng)的主要設計方案參考了LM3S6100的數(shù)據(jù)手冊[7]。
不同于使用ARM7或ARM9微處理器的嵌入式系統(tǒng),在使用LM3S6100微控制器時,不需要分別對內(nèi)核和外設提供不同的電壓。由于該微控制器中集成了片上低壓差穩(wěn)壓器,因此,在使用LM3S6100微控制器的電路中,只需要提供3.3V的電壓即可。在本系統(tǒng)中,電源電路原理圖如圖1所示:

圖1 電源電路原理圖
在該電源電路中,使用了Sipex的SP6201低壓差穩(wěn)壓電源芯片將5V直流輸入電壓轉換為3.3V直流輸出電壓。電源輸入端和輸出端分別對地接 10uF的濾波電容 C33和C34,這些電容分別降低了輸入電壓與輸出電壓的干擾,起到了穩(wěn)定電壓的作用。圖1中的VDD是輸出的3.3V直流電壓的標號。
在本文中,模擬地和數(shù)字地根據(jù)經(jīng)驗而被盡可能地合理設計以使模擬信號與數(shù)字信號間的相互干擾最小。為了簡化描述,本文原理圖中出現(xiàn)的標號及本文的描述不區(qū)分模擬地和數(shù)字地。
此外,對于2.5V內(nèi)部LDO輸出,芯片的第7腳和第62腳分別對地接1個2.2uF和1個100nF的電容。
由于LM3S6100是低電平復位的,因此,正常工作時,復位引腳需要接一個上拉電阻到系統(tǒng)高電平,即 3.3V。同時,為了使系統(tǒng)在上電后有一定的延時以滿足其他外設的初始化需要,上拉電阻對地接一個100nF的電容。該電容的另一個作用是使復位引腳的電位不會發(fā)生突變,因而,不會由于該引腳上的干擾信號而發(fā)生錯誤的復位,從而有效地提高了系統(tǒng)的穩(wěn)定性。復位電路原理圖如圖2所示:

圖2 復位電路原理圖
在圖2中,按鍵K1提供了手動復位的功能。
在LM3S6100中有一個內(nèi)置的振蕩器,頻率為12MHz。然而,這個振蕩器的誤差較大,達到了正負30%。考慮到以太網(wǎng)對于時鐘準確性的要求,本設計使用了外部石英晶體振蕩器作為系統(tǒng)主時鐘的輸入。
通過該處理器內(nèi)置的 PLL,能夠將倍增后的主振蕩器(在本方案中為石英晶體振蕩器)的頻率作為系統(tǒng)的時鐘信號。因此,石英晶體振蕩器的頻率不需要很高就能滿足要求。本設計使用了 6MHz的石英晶體振蕩器。時鐘電路如圖 3所示:

圖3 時鐘電路原理圖
該圖中,C25和C26為兩個18pF的匹配電容,起到了穩(wěn)定晶體振蕩器頻率的作用。
值得注意的是,為了進一步減小系統(tǒng)的PCB面積,本設計沒有采用在 ARM 微處理器系統(tǒng)中常用的 20引腳的JTAG接口方案。在本系統(tǒng)中,SWD接口被用來替代傳統(tǒng)的設計方案。
實際中,SWD接口只需要 4根連線就可以實現(xiàn)對LM3S6100的仿真與程序燒寫的功能。本系統(tǒng)的SWD接口電路設計如圖4所示:

圖4 SWD接口電路原理圖
圖4中,R4和R5的作用是使得SWDIO和SWCLK引腳在空閑時上拉到高電平。SWD接口的第 1號引腳連接LM3S6100的復位引腳。
LM3S6100片內(nèi)集成的兼容 IEEE 8023-2002規(guī)格的10/100M 以太網(wǎng)控制器為整個以太網(wǎng)相關電路的設計提供了極大的方便。由于該控制器已經(jīng)包含了MAC和PHY,所以,一個隔離變壓器、一個RJ45接口,以及一些外圍元器件,就能夠完成以太網(wǎng)電路部分的設計。
考慮到集成隔離變壓器的RJ45接口能夠進一步減少最終的PCB面積,本設計使用了漢仁公司的HR911105a型號的RJ-45接口,如圖5所示:

圖5 HR911105A RJ-45接口原理圖
在LM3S6100的引腳中,與以太網(wǎng)有關的引腳名稱分別為 ERBIAS、GNDPHY、VCCPHY 、LED0、LED1、XTALNPHY、XTALPPHY、MDIO、RXIN、RXIP、TXON和TXOP。
ERBIAS引腳是一個12.4kΩ的1%精度的電阻,該電阻被PHY內(nèi)部使用。本設計中,該引腳接地。
GNDPHY和VCCPHY引腳分別是PHY的地和電源,分別接地和3.3V電壓。值得注意的是,VCCPHY的每一個引腳需要對地接100nF的電容以提高引腳電壓的穩(wěn)定性。
LED0和LED1引腳分別串聯(lián)一個1KΩ的限流電阻后分別連接到RJ45接口的GLED+和YLED+腳。GLED-和YLED-引腳接地。
XTALNPHY和XTALPPHY引腳分別是25MHz石英晶體振蕩器的輸出與輸入端。這部分電路與圖3的時鐘電路類似。不同之處在于,這兩個引腳需要連接一個25MHz的石英晶體振蕩器而非6MHz。這部分電路原理圖如圖6所示:

圖6 以太網(wǎng)時鐘電路原理圖
其余的引腳都與以太網(wǎng)的PHY有關。在本設計中這幾個引腳分別與RJ-45接口的相應引腳連接后,如圖7所示:

圖7 PHY引腳連接原理圖
此外,RJ-45接口的2個隔離變壓器的中心抽頭RX-CT和TX-CT引腳分別對地連接10nF電容后接3.3V電源。
本論文列舉了一些傳統(tǒng)的以太網(wǎng)硬件設計方案,對存在的問題進行了討論,并提出了一種基于LM3S6100微控制器的嵌入式以太網(wǎng)硬件方案。本文詳細描述了LM3S6100的核心硬件電路以及與以太網(wǎng)有關的電路。基于本文所提出的以太網(wǎng)硬件方案已經(jīng)成功設計制造出樣品。該樣品測試正常,工作穩(wěn)定可靠。
[1]王欽玉,馬維華.基于LPC2292的嵌入式Ethernet-CAN轉換器[J].南京航空航天大學學報,2007,39(5):607-611.
[2]陳紅彥,費凌,鄭亮等.基于RTL8019的ARM和PC機間的TCP/IP通信[J].工業(yè)控制計算機,2010,23(8):57,89.
[3]袁安富,夏生鳳.基于ARM和Linux的DM9000網(wǎng)絡接口設計及驅動實現(xiàn)[J].計算機工程與科學,2011,33(2):27-31.
[4]張宇翔,劉偉,郭敏等.基于AVR高性能單片機的以太網(wǎng)接口設計[J].現(xiàn)代電子技術,2009,32(3):81-84.
[5]王天杰,原明亭.基于C8051F020的以太網(wǎng)遠程監(jiān)控系統(tǒng)的設計[J].化工自動化及儀表,2007,34(5):36-39.
[6]盧珞先,任立志.基于FPGA的網(wǎng)絡接口設計與應用[J].電測與儀表,2008,45(12):56-58.
[7]TI公司.Stellaris LM3S6100 Microcontroller Data Sheet[R].http://www.ti.com.cn/cn/lit/ds/symlink/lm3s6100.pdf