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