基于嵌入式系統(tǒng)的溫室遠(yuǎn)程監(jiān)控設(shè)計(jì)
3.2 單片機(jī)控制以太網(wǎng)卡工作過程
系統(tǒng)在上電工作時(shí)首先要進(jìn)行初始化,即初始化單片機(jī)C8051F020和RTL8019AS,進(jìn)行工作參數(shù)和條件的設(shè)置,主要是一些寄存器的配置和內(nèi)置RAM空間的分配。初始化之后,由于MCU系統(tǒng)中的TCP/IP是直接面向硬件的,沒有嵌入式實(shí)時(shí)操作系統(tǒng)的支持,程序結(jié)構(gòu)一般采用順序執(zhí)行和硬件中斷相結(jié)合的方式,與操作系統(tǒng)的多進(jìn)程并發(fā)執(zhí)行的方式截然不同。當(dāng)所有初始化完成之后,就采用查詢方式開始工作,程序流程圖見圖2。
當(dāng)系統(tǒng)接入以太網(wǎng)開始運(yùn)行時(shí),首先進(jìn)行地址解析,在網(wǎng)絡(luò)內(nèi)進(jìn)行“身份識(shí)別”,當(dāng)用戶通過瀏覽器發(fā)出請(qǐng)求時(shí),網(wǎng)絡(luò)芯片驅(qū)動(dòng)程序接收以太網(wǎng)幀形式的用戶請(qǐng)求,然后傳輸給上層協(xié)議逐層分離取出用戶請(qǐng)求,控制系統(tǒng)根據(jù)用戶請(qǐng)求調(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ā)送過程,便可完成一個(gè)數(shù)據(jù)的完整傳輸。在終端可以以Web網(wǎng)頁(yè)的形式供用戶瀏覽和做出進(jìn)一步的判斷控制。
溫室控制系統(tǒng)中單片機(jī)主要完成來自網(wǎng)絡(luò)數(shù)據(jù)的解包和接受溫室傳感器采集的數(shù)據(jù)的打包,當(dāng)以太網(wǎng)有數(shù)據(jù)到達(dá)該設(shè)備時(shí),單片機(jī)采用查詢方式讀取網(wǎng)絡(luò)數(shù)據(jù)并分析,先將其目的地址與系統(tǒng)的物理地址相比較,如果地址不相符,則將該數(shù)據(jù)丟棄,如果相符,則判斷是否是ARP數(shù)據(jù)包,是則轉(zhuǎn)入ARP處理程序,并發(fā)送RARP數(shù)據(jù)包。如果是UDP數(shù)據(jù)包且IP地址和端口號(hào)正確,則開始數(shù)據(jù)接收。當(dāng)傳感器傳來的數(shù)據(jù)要發(fā)送時(shí),單片機(jī)先將待發(fā)送的數(shù)據(jù)按UDP 協(xié)議格式打包進(jìn)行封裝,需要設(shè)置以太網(wǎng)目的地址、源地址、協(xié)議類型,再按所設(shè)置的協(xié)議類型來設(shè)置數(shù)據(jù)段。然后給出發(fā)送緩沖區(qū)首地址和數(shù)據(jù)包長(zhǎng)度,啟動(dòng)發(fā)送命令。通過遠(yuǎn)程DMA通道送到RTL8019AS中的發(fā)送緩沖區(qū),即可實(shí)現(xiàn)RTL8019AS的發(fā)送功能,并將結(jié)果寫入狀態(tài)寄存器中。再啟動(dòng)本地DMA,將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)上。
圖2 系統(tǒng)程序流程圖
4 結(jié)論
(1)提出將單片微處理器提升為具有系統(tǒng)軟件和TCP/IP協(xié)議的嵌入式Web服務(wù)器,并用于溫室環(huán)境控制的方案。這種嵌入TCP/IP協(xié)議的單片機(jī)系統(tǒng)成本低、硬件少、傳輸速度快、使用方便,可在遠(yuǎn)程數(shù)據(jù)采集和傳輸、遠(yuǎn)程監(jiān)控等方面有廣泛應(yīng)用前景。
(2)設(shè)計(jì)了系統(tǒng)的軟硬件,通過用單片機(jī)控制網(wǎng)絡(luò)接口芯片RTL8019AS,同時(shí)嵌入精簡(jiǎn)的TCP/IP協(xié)議,將溫室控制器擴(kuò)展成嵌入式Web服務(wù)器,實(shí)現(xiàn)溫室內(nèi)各種狀態(tài)數(shù)據(jù)的采集與控制。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)tcp/ip相關(guān)文章:tcp/ip是什么
評(píng)論