天津濱海職業(yè)學院 胥寶萍
隨著網(wǎng)絡的普及,人們的生活越來越依賴于網(wǎng)絡的應用,從電氣設備使用的角度,對網(wǎng)絡的應用已經(jīng)不再局限于計算機和網(wǎng)絡的連接。很多信息家電、儀表等對網(wǎng)絡的需求也日益明顯,單片機應當網(wǎng)絡通信應用已經(jīng)成為一種趨勢。從原理上講,要實現(xiàn)單片機和網(wǎng)絡的連接,需要遵循TCP/IP協(xié)議,將單片機接入英特網(wǎng),起到單片機與外界信息交流的作用。從技術細節(jié)上看,實現(xiàn)單片機網(wǎng)絡化的技術手段是在電子設備中嵌入TCP/IP協(xié)議,利用內(nèi)置的網(wǎng)絡接口芯片以及微控制器,來實現(xiàn)對網(wǎng)絡數(shù)據(jù)的輸入和輸出。
現(xiàn)在市場上的電器所嵌入的微處理器一般都是8位,因此本文從適應性廣泛的角度出發(fā),在進行系統(tǒng)的硬件設計時以8位單片機為基礎。從硬件之間的關系上看,單片機的內(nèi)嵌微處理器要以TCP/IP協(xié)議和應用層協(xié)議為基礎,并且要借助以太網(wǎng)接口芯片和其他電子元件。以太網(wǎng)接口芯片則負責處理本身實現(xiàn)了物理層和數(shù)據(jù)鏈路層協(xié)議,通過數(shù)據(jù)接口(如RJ45型接口)與網(wǎng)絡進行通信。由此可以得出單片機和網(wǎng)絡之間實現(xiàn)通信的硬件組成和流程結構為:單片機→以太網(wǎng)接口芯片→數(shù)據(jù)接口→集線器→網(wǎng)絡。當然,箭頭的流程順序也可以反過來,從而實現(xiàn)網(wǎng)絡和單片機之間的數(shù)據(jù)交換。
(1)單片機選型
為了提高單片機網(wǎng)絡應用的效率,應當選用性能更為優(yōu)良的高性能單片機,如AT90系列、W78E系列、P89C51系列等,本文所選用的的單片機型號為Winbond公司生產(chǎn)的W78E16B型單片機。
(2)網(wǎng)絡接口芯片選型
以太網(wǎng)控制器是網(wǎng)絡接口的核心部件,在單片機網(wǎng)絡通信系統(tǒng)中的作用是實現(xiàn)和網(wǎng)絡的連通。以太網(wǎng)控制器之間的差異主要體現(xiàn)在集成度上,有的以太網(wǎng)控制器既集成了MAC層和物理層接口,而有的以太網(wǎng)控制器只具備物理層接口。具體選用那種類型的以太網(wǎng)控制器取決于設計時的具體需要,一般選用對物理層和MAC層都集成的芯片。本文中所采用的以太網(wǎng)控制芯片型號為Realtek公司生產(chǎn)的的RTL8019AS,該款芯片的集成度較高,具有全雙工通信接口,可以支持對PNP的自動探測功能。
單片機實現(xiàn)網(wǎng)絡應用除了對硬件方面有要求外,軟件方面同樣有相應的要求,主要體現(xiàn)對如何讓單片機應用TCP/IP協(xié)議。從原理上講,在采用OSI七層參考模型時,物理層和數(shù)據(jù)鏈路層的協(xié)議由以太網(wǎng)控制芯片RTL8019AS來實現(xiàn)。而系統(tǒng)的網(wǎng)絡層面既要實現(xiàn)IP協(xié)議也要實現(xiàn)ICMP協(xié)議,這兩類協(xié)議所負責的內(nèi)容有所不同,由于所采用系統(tǒng)的不同而工作重點也有差異。在本文中是以web server為背景,對數(shù)據(jù)的可靠性要求較高,因此重點是處理TCP協(xié)議的實現(xiàn)問題。由于單片機本身容量和處理能力有限,需要對TCP/IP協(xié)議進行必要的簡化。結合本文的具體情況,以以太網(wǎng)控制芯片為出發(fā)點的系統(tǒng)協(xié)議分為兩個分支:(1)以太網(wǎng)控制芯片(RTL8019AS)→IP→TCP(UDP)→HTTP;(2)太網(wǎng)控制芯片(RTL8019AS)→ICMP→ping。web server的應用流程相對較為復雜,可參照有關文獻,在此不再贅述。
前文已經(jīng)對以太網(wǎng)的接口芯片進行選型,為RTL8019AS。在進行驅動設計時需要以該款芯片的具體構造為基礎來進行。RTL8019AS的SRAM為16KB,并可分為64個存儲頁面。在對SRAM進行初始化時,需要處理接受數(shù)據(jù)包和發(fā)送數(shù)據(jù)包兩個部分,先分別進行討論。SRAM的初始化是比較復雜的過程,初始化的內(nèi)容包括:(1)復位寄存器的初始化;(2)配置寄存器的初始化;(3)接收緩沖區(qū)的初始化;(4)接收緩沖區(qū)邊界寄存器的初始化;(5)接收緩沖區(qū)當前頁面寄存器的初始化;(6)發(fā)送緩沖區(qū)的初始化;(7)接收配置寄存器的初始化;(8)發(fā)送配置寄存器的初始化;(9)數(shù)據(jù)配置寄存器的初始化;(10)設置以太網(wǎng)接口的物理地址。以上各個部分都需要做處理,具體的操作代碼較為繁雜,不在此詳述,可參照有關文獻。
TCP/IP協(xié)議是一組完整的協(xié)議族,協(xié)議中各層分別為鏈路層、網(wǎng)絡層、傳輸層和應用層。由于單片機的資源有限,要在8位單片機上實現(xiàn)TCP/IP協(xié)議,就必須做一定的簡化,否則在嵌入式系統(tǒng)中無法實現(xiàn)。在本文中根據(jù)web server應用的特點,對TCP/IP協(xié)議簡化后各層的要實現(xiàn)的協(xié)議分別為:(1)應用層HTTP協(xié)議;(2)傳輸層TCP協(xié)議和UDP協(xié)議;(3)網(wǎng)絡層IP協(xié)議、ARP協(xié)議和ICMP協(xié)議。本文在編寫協(xié)議時在單片機keil編譯器上進行。
在當前的網(wǎng)絡應用中的主流是Internet,但Internet網(wǎng)絡是主要針對具有較高處理性能32以上的微處理器而設計的,因此要以8位單片機來是實現(xiàn)web server的應用是有困難的。但從目前智能家電的普及和嵌入式單片機性能的提高,基于單片機的web server應用已經(jīng)成為研究的方向之一,本節(jié)將就此進行初步的探討。
單片機的web server實現(xiàn)原理為在單片機EEPROM中存儲網(wǎng)頁信息,單片機應用系統(tǒng)通過Internet來實現(xiàn)遠程客戶端的訪問,在經(jīng)過解析后發(fā)送網(wǎng)頁數(shù)據(jù),并以瀏覽器的形式展示網(wǎng)頁內(nèi)容。在細節(jié)上需要處理以下兩個方面的內(nèi)容一是HTTP協(xié)議,二是系統(tǒng)的實時控制。
HTTP協(xié)議的實現(xiàn)是以數(shù)據(jù)包的處理為基礎的,即系統(tǒng)需要處理有客戶機發(fā)送的含HTTP請求的數(shù)據(jù)包,通過對數(shù)據(jù)請求內(nèi)容的判斷來做系統(tǒng)處理。其步驟為:(1)通過端口接受和存儲遠程數(shù)據(jù)包;(2)對數(shù)據(jù)包進行解析;(3)以數(shù)據(jù)解析結果為基礎,把數(shù)據(jù)存儲到存儲區(qū)并打包,并向客戶機發(fā)送數(shù)據(jù)包;(4)一次數(shù)據(jù)接受和發(fā)送后關閉連接,等待下一次數(shù)據(jù)請求。
系統(tǒng)的實時控制模式取決于對數(shù)據(jù)包的解析要求,以及所提供的服務內(nèi)容。不同的功能設定會有不同的系統(tǒng)實時控制模式,通過編寫具體的控制程序可以實現(xiàn)不同的服務內(nèi)容。顯然,系統(tǒng)能夠提供的服務內(nèi)容會受到系統(tǒng)資源的限制,這也是利用單片機實現(xiàn)web server應用的最大瓶頸所在。但隨著單片機性能的提高,系統(tǒng)能夠提供的服務內(nèi)容將越來越多,因此是值得深入研究的一個方向。
本文的研究內(nèi)容為單片機和網(wǎng)絡之間通信的實施方案,并給出了一種可行的系統(tǒng)結構。在硬件選型上采用較為主流的以太網(wǎng)芯片和8位單片機,在對TCP/IP協(xié)議進行必要的簡化后實現(xiàn)單片機的網(wǎng)絡通信。最后探討了利用單片機實現(xiàn)嵌入式web server應用的途徑。在未來的研究中,需要深入研究的問題是實現(xiàn)了單片機網(wǎng)絡通信后安全問題。因為單片機網(wǎng)絡通信實現(xiàn)的原理并不復雜,要實現(xiàn)對單片機系統(tǒng)的遠程惡意控制的技術難度也不大。這是目前單片機網(wǎng)絡應用中的一個大問題,是值得深入研究的。
[1]Realtek Semiconductor CO.LTD.Realtek Full-Duplex Ethernet Controller with Plug and Play function,2005.
[2]王峰等.嵌入式internet技術及其實現(xiàn)方案[J].微計算機信息,2010(12).