主頁(http://www.130131.com):基于嵌入式Web服務(wù)器的溫室遠(yuǎn)程監(jiān)控的研究 現(xiàn)代溫室大棚多以微電子技術(shù)和計(jì)算機(jī)輔助決策技術(shù)為核心、以上下位機(jī)方式進(jìn)行智能化監(jiān)控。但上下位機(jī)監(jiān)控由于受通訊線路、距離影響,費(fèi)時費(fèi)力。隨著我國設(shè)施農(nóng)業(yè)的快速發(fā)展和廣泛應(yīng)用,研究并開發(fā)基于Internet的連棟溫室室內(nèi)環(huán)境遠(yuǎn)程控制技術(shù)及設(shè)備,成為迫切需要解決的問題。本文提出了一種將溫室控制的嵌入式系統(tǒng)作為服務(wù)器接入網(wǎng)絡(luò),利用廉價的嵌入TCP/IP通信協(xié)議的51系列單片機(jī)來控制網(wǎng)絡(luò)接口芯片RTL8019AS,實(shí)現(xiàn)以太網(wǎng)通訊的系統(tǒng)方案,并對系統(tǒng)硬軟件進(jìn)行了設(shè)計(jì)。 1.系統(tǒng)硬件設(shè)計(jì)方案 1.1 C8051F020微處理器 1.2 以太網(wǎng)控制器RTL8019AS RTL8019AS內(nèi)部分為遠(yuǎn)程DMA口、本地DMA接口、MAC(介質(zhì)訪問控制)邏輯、數(shù)據(jù)編碼解碼邏輯和其他端口。遠(yuǎn)程DMA接口是指單片機(jī)對RTL8019AS內(nèi)部RAM進(jìn)行讀寫的總線,即ISA總線的接口部分。單片機(jī)收發(fā)數(shù)據(jù)只需對遠(yuǎn)程DMA操作。本地DMA接口是指 RTL8019AS與網(wǎng)線的連接通道,通常通過RJ45接口實(shí)現(xiàn)和外部網(wǎng)絡(luò)的連接,完成控制器與網(wǎng)線的數(shù)據(jù)交換。MAC(介質(zhì)訪問控制)邏輯完成以下功能:當(dāng)單片機(jī)向網(wǎng)上發(fā)送數(shù)據(jù)時, 先將一幀數(shù)據(jù)通過遠(yuǎn)程DMA通道送到RTL8019AS中的發(fā)送緩存區(qū),然后發(fā)出傳送命令;當(dāng)RTL8019AS完成了上一幀的發(fā)送后,再開始此幀的發(fā)送。RTL8019AS接收數(shù)據(jù)時,首先把接收到的數(shù)據(jù)通過MAC比較、CRC校驗(yàn)后,由FIFO存到接收緩沖區(qū);收滿一幀后,以中斷或寄存器標(biāo)志的方式通知主處理器。FIFO邏輯對收發(fā)數(shù)據(jù)作16字節(jié)的緩沖,以減少對本地DMA請求的頻率[2]。 1.3 系統(tǒng)硬件設(shè)計(jì)與實(shí)現(xiàn)
2 系統(tǒng)軟件設(shè)計(jì) 溫室中的主控單片機(jī)要作為Web服務(wù)器接入以太網(wǎng),必須嵌入TCP/IP協(xié)議。Internet通信協(xié)議對計(jì)算機(jī)系統(tǒng)的CPU速度、存儲器容量等要求比較高,用于PC機(jī)不存在任何困難,但用于自身資源有限的嵌入式系統(tǒng)就必須考慮性價比,根據(jù)需要有所取舍,合理選擇通信協(xié)議的實(shí)現(xiàn)和處理方案。根據(jù)所選的單片機(jī)C8051F020的資源,對TCP/IP協(xié)議做了裁減,系統(tǒng)中使用了ARP、RARP、ICMP、UDP、HTTP等部分協(xié)議,即可保證單片機(jī)接入以太網(wǎng),同時亦保證有足夠小的代碼量。 根據(jù)實(shí)際需要,該系統(tǒng)采用一種簡化的TCP/IP 4層網(wǎng)絡(luò)模型,分別為:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層。應(yīng)用層傳遞來自以太網(wǎng)和數(shù)據(jù)終端的數(shù)據(jù),并對數(shù)據(jù)作打包拆包處理;傳輸層采用用戶數(shù)據(jù)包協(xié)議UDP;網(wǎng)絡(luò)層實(shí)現(xiàn)IP協(xié)議,還要實(shí)現(xiàn)能報告數(shù)據(jù)傳輸差錯等情況的ICMP協(xié)議;鏈路層由控制同一物理網(wǎng)絡(luò)上不同機(jī)器間數(shù)據(jù)傳送的底層協(xié)議組成。在簡化的TCP/IP協(xié)議4層模型中,鏈路層部分由RTL8019AS完成,網(wǎng)絡(luò)層和傳輸層由溫室控制的單片機(jī)來處理,應(yīng)用層則根據(jù)需要可以在單片機(jī)內(nèi)完成,也可以由單片機(jī)轉(zhuǎn)給用戶或終端設(shè)備完成[3]。 2.2 單片機(jī)控制以太網(wǎng)卡工作過程
當(dāng)系統(tǒng)接入以太網(wǎng)開始運(yùn)行時,首先進(jìn)行地址解析,在網(wǎng)絡(luò)內(nèi)進(jìn)行“身份識別”,當(dāng)用戶通過瀏覽器發(fā)出請求時,網(wǎng)絡(luò)芯片驅(qū)動程序接收以太網(wǎng)幀形式的用戶請求,然后傳輸給上層協(xié)議逐層分離取出用戶請求,控制系統(tǒng)根據(jù)用戶請求調(diào)用單片機(jī)C8051F020外圍傳感器采集溫室內(nèi)相應(yīng)的狀態(tài)數(shù)據(jù),再將數(shù)據(jù)逐層打包,最后交給以太網(wǎng)芯片RTL8019AS封裝成以太網(wǎng)幀發(fā)送出去。如果傳輸?shù)臄?shù)據(jù)量比較大,則重復(fù)多次數(shù)據(jù)發(fā)送過程,便可完成一個數(shù)據(jù)的完整傳輸。在終端可以以Web網(wǎng)頁的形式供用戶瀏覽和做出進(jìn)一步的判斷控制。
|





