鄭伊喬+鄭全錄+郭永鋒+夏輝麗
摘 要:目前,單片機、計算機網(wǎng)絡實驗大多采用的是實物儀器,如果設計方案有誤或需要調(diào)整,則會浪費較多的時間和經(jīng)濟成本。在此利用Proteus+WinAVR+WinPcap等仿真軟件設計了嵌入式以太網(wǎng)Web服務實驗。實踐結果表明,基于Proteus的虛擬實驗實現(xiàn)了PC機IE瀏覽器訪問嵌入式以太網(wǎng)Web服務。通過該實驗不僅可以掌握單片機、網(wǎng)卡、Web服務等知識,還可以節(jié)省大量的硬件制作、調(diào)試時間,節(jié)省硬件的經(jīng)費投入,從而為實踐教學提供了一種新的現(xiàn)代化手段,有助于培養(yǎng)學生的創(chuàng)新能力。
關鍵詞:單片機;計算機網(wǎng)絡;Web服務;虛擬實驗室
中圖分類號:TP368.1 文獻標識碼:A DOI:10.15913/j.cnki.kjycx.2016.15.060
嵌入式系統(tǒng)一般包括硬件制作、軟件調(diào)試和系統(tǒng)聯(lián)調(diào)。如果設計方案有誤或需要調(diào)試,則需要花費較多的時間和較高的經(jīng)濟成本。本文不需要使用額外的硬件,借助現(xiàn)有的軟件建立了基于Proteus的網(wǎng)絡虛擬實驗,以研制電機控制在線遠程監(jiān)測系統(tǒng)。該系統(tǒng)包括單片機模塊、監(jiān)控終端模塊、電機模塊和以太網(wǎng)通信模塊等。下面,主要介紹了單片機以太網(wǎng)通信模塊在Proteus 環(huán)境下虛擬實驗的設計和實現(xiàn)過程。
1 虛擬實驗設計架構
目前,很多客戶/服務器(B/S)項目都是采用PC計算機進行Web網(wǎng)絡遠程數(shù)據(jù)傳送和控制的,但也有很多項目僅需要Web的一部分功能。為了降低成本,人們提出了無線、紅外、藍牙等技術,但這些技術都存在監(jiān)控距離短的缺點。采用嵌入式微處理器,并為其加上TCP/IP網(wǎng)絡協(xié)議功能已經(jīng)成為了網(wǎng)絡發(fā)展新階段的標志。例如,對大學園區(qū)內(nèi)遠程電機、照明、空調(diào)等電力設備的監(jiān)控。
該項目主要是基于AVR128+RTL8019設計的嵌入式Web服務,利用IE瀏覽器,單擊所設計Web頁中的超鏈接,可以實現(xiàn)用戶密碼設置、電機的啟動與停止、電器運行狀態(tài)的監(jiān)控,并將采集到的信息反饋到IE網(wǎng)頁等。本文的任務是使用計算機網(wǎng)絡硬件平臺(或一臺計算機)、一套仿真軟件構建一個IE瀏覽Web服務環(huán)境,以虛代實,以軟代硬,就相當于一個設備齊全的實驗室。
Proteus軟件是著名的EDA工具軟件,它支持8051、AVR、ARM等處理器和周邊設備,支持AVR、Keil等多種第三方編譯器。同時,其內(nèi)置多種元器件(數(shù)字的、模擬的、交流的和直流的),比如門電路、存儲器、運算器、放大器、數(shù)模轉(zhuǎn)換器、二極管、三極管,電阻、電容和光電器件等,多種輔助儀器儀表,比如虛擬終端、示波器電壓表和電流表等。
Atmega128是適用于嵌入式產(chǎn)品的8位RISC指令單片機,具有128 KB可編程FLASH(程序)、4 KB的數(shù)據(jù)E2PROM和動態(tài)SRAM。但其配套的AVR Studio開發(fā)環(huán)境僅支持匯編語言,未提供C/C++編譯器。不過,它支持第三方提供的C/C++編譯器,比如本文使用的是WinAVR GCC編譯器。使用C語言大大提高了開發(fā)效率,而且程序的可讀性好,便于移植。
實時操作系統(tǒng)是嵌入式應用軟件的基礎,用戶的其他操作都是建立在實時操作系統(tǒng)上的。Nut/OS是針對Ethernet以太網(wǎng)開發(fā)的多任務開源操作系統(tǒng),它將應用程序分割成若干個獨立的線程,提供了大多數(shù)應用所需的API函數(shù),比如文件管理、串行通信和網(wǎng)絡驅(qū)動等。RTL8019AS以太網(wǎng)控制器是與Nut/OS配套使用的以太網(wǎng)控制芯片,它集成了IEEE802.3協(xié)議標準的介質(zhì)訪問控制子層(MAC)和物理層。
Winpcap用于捕獲網(wǎng)絡數(shù)據(jù)包,也就是說在虛擬實驗時,計算機上有2個網(wǎng)卡,一個是主機自身的物理網(wǎng)卡,另一個就是前面介紹的RTL8019AS以太網(wǎng)控制器虛擬的網(wǎng)卡。該虛擬網(wǎng)卡的數(shù)據(jù)收發(fā)需要使用Winpcap軟件捕獲才能顯示在IE瀏覽器中。
2 軟件設計及調(diào)試
該設計是基于Ethernut的HTTP應用案例文件夾設計的,利用IE瀏覽器,單擊所設計Web頁中的超鏈接,就可以實現(xiàn)用戶密碼設置、電機的啟動與停止、對電器運行狀態(tài)的監(jiān)控,并將采集到的信息反饋到IE網(wǎng)頁上。
2.1 HTTP服務程序設計
對于動態(tài)狀態(tài)頁面的返回,可以根據(jù)前面程序中3個鏈接所指向的URL所帶的鏈接表單參數(shù)作相應的處理。
為了防止非法用戶操作電機,增強系統(tǒng)的安全性,在鏈接前面添加了admin,在程序中通過調(diào)用NUT/OS的API函數(shù)NutRegisAuth來保護admin路徑下的文件,調(diào)用語句為:NutRegisterAuth(”admin”,admin_password)。單擊鏈接請求時,瀏覽器會彈出對話框,要求輸入用戶賬號和密碼。
在主程序中,將cgi請求mcu_control.cgi注冊給函數(shù)mcu_control。該函數(shù)的參數(shù)為文件流對象stream和請求對象req,通過調(diào)用Nut/OS的API函數(shù)NutHttpGetParameterName和NutHttpGetParameterValaue分別獲得URL中“?”后面所帶的參數(shù)名和參數(shù)值,即Para_name=NutHttpGetParameterName(req,0)。
2.2 系統(tǒng)調(diào)試
搭建Proteus+AVR Studio+WinAVR+WinPcap開發(fā)環(huán)境后就可以繪制系統(tǒng)原理圖,編寫項目C程序,最后編譯生成目標Hex可執(zhí)行文件。為單片機綁定所生成的Hex文件,綁定RTL8019AS以太網(wǎng)控制器的網(wǎng)卡號和MAC地址,就可以運行Web服務程序了,然后啟動IE瀏覽器,輸入以太網(wǎng)IP地址,就可以看到瀏覽器的運行效果。
3 結束語
這個實驗實際是一個單片機綜合實驗。在這個實驗中,一方面,學生需要掌握單片機內(nèi)部、外部的資源情況,實現(xiàn)對網(wǎng)絡控制器的控制;另一方面,還需掌握外部器件,比如虛擬終端、鎖存器、外部RAM、RJ45網(wǎng)卡接口等的使用情況。通過電路原理圖的設計、編程、調(diào)試和運行驗證,可以加深學生從概念到產(chǎn)品設計全過程的認知。實驗表明,利用軟件仿真縮短了設計周期,降低了成本。該設計可應用于電力設備監(jiān)控、農(nóng)田墑情監(jiān)控、便攜式智能儀表和物聯(lián)網(wǎng)等領域,具有較大的應用價值。
參考文獻
[1]彭偉.單片機C語言程序設計實訓100例[M].北京:北京航空航天大學出版社,2010.
[2]段建紅,喬文長,劉強,等.基于proteus的單片機以太網(wǎng)接口模塊設計[J].數(shù)字技術與應用,2012(6).
[3]劉珂琴,潘雪濤,張美鳳.網(wǎng)絡虛擬實驗室的設計與實現(xiàn)[J].現(xiàn)代電子技術,2011,34(24).
〔編輯:白潔〕