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