嵌入式系統(tǒng)中運(yùn)行參數(shù)修改研究及其應(yīng)用
1、引言
以太網(wǎng)技術(shù)的廣泛普及,因特網(wǎng)在工業(yè)、商業(yè)、傳媒家庭、教育業(yè)等方面的廣泛運(yùn)用,使得基于以太網(wǎng)的系統(tǒng)得到了飛速發(fā)展,配置參數(shù)(黑名單、啟動參數(shù)、運(yùn)行參數(shù)等)及修改一直是嵌入式系統(tǒng)中的難題,傳統(tǒng)的配置方法是將參數(shù)直接固化在程序中,修改時(shí)通過串口進(jìn)行,在實(shí)際應(yīng)用中很不方便。對于要經(jīng)常改變參數(shù)的嵌入式系統(tǒng),通過串口進(jìn)行參數(shù)修改后再重新燒錄程序,在儀器很多的情況下,技術(shù)人員的維護(hù)工作非常困難。
近來發(fā)展起來的方法是利用嵌入式Web Server和TCP/IP協(xié)議,技術(shù)人員可以通過CGI網(wǎng)頁對嵌入式系統(tǒng)的參數(shù)進(jìn)行瀏覽和修改,這種方法雖然有著良好的人機(jī)界面,使用起來也非常方便,但嵌入式Web Server 需要處理器有較強(qiáng)的數(shù)據(jù)處理能力,一般的MCU并不支持[1]。
在大量實(shí)踐的基礎(chǔ)上,本文詳細(xì)闡述了嵌入式系統(tǒng)采用UDP協(xié)議來對參數(shù)進(jìn)行配置修改的技術(shù),較好的解決了嵌入式系統(tǒng)中參數(shù)修改問題。
2、系統(tǒng)原理
嵌入式系統(tǒng)一般由PC管理機(jī)和嵌入式終端組成。PC管理機(jī)主要對數(shù)據(jù)進(jìn)行讀寫和管理。終端負(fù)責(zé)數(shù)據(jù)的采樣并把數(shù)據(jù)傳給PC機(jī)。系統(tǒng)結(jié)構(gòu)如圖1所示,終端和主機(jī)通過以太網(wǎng)相連,每個(gè)終端都有自己的機(jī)號和IP地址。因此,PC機(jī)不僅要對這些設(shè)備進(jìn)行管理,還要進(jìn)行數(shù)據(jù)通信。當(dāng)終端收到PC機(jī)的命令和數(shù)據(jù)后,把數(shù)據(jù)存放在EEPROM的存儲器里,然后更新系統(tǒng)參數(shù)。本文主要闡述系統(tǒng)的數(shù)據(jù)通信部分的具體實(shí)現(xiàn),包括上位機(jī)和下位機(jī)的實(shí)現(xiàn)過程。
3、應(yīng)用協(xié)議
3.1 UDP用戶數(shù)據(jù)報(bào)協(xié)議
UDP是一個(gè)簡單的面向數(shù)據(jù)報(bào)的傳輸層協(xié)議,應(yīng)用程序進(jìn)程的每個(gè)輸出操作產(chǎn)生一個(gè)UDP數(shù)據(jù)報(bào),并組裝成待發(fā)送的IP數(shù)據(jù)報(bào)。UDP提供基本、低延時(shí)的傳輸。UDP數(shù)據(jù)報(bào)格式如圖2所示[2][3]。
3.2應(yīng)用數(shù)據(jù)幀封裝格式
應(yīng)用數(shù)據(jù)是以幀的格式封裝在UDP數(shù)據(jù)里面的,它的幀格式是:幀開頭(1字節(jié))+數(shù)據(jù)長度(1字節(jié))+機(jī)號(2字節(jié))+命令(1字節(jié))+數(shù)據(jù)+效驗(yàn)(1字節(jié))+幀結(jié)尾(1字節(jié))。幀以0x02開頭,數(shù)據(jù)長度表示機(jī)號、命令和數(shù)據(jù)總的長度字節(jié),效驗(yàn)是對前面數(shù)據(jù)和效驗(yàn),幀結(jié)尾是0x03。
4、程序?qū)崿F(xiàn)
4.1上位機(jī)程序
上位機(jī)采用VC6.0進(jìn)行程序設(shè)計(jì),網(wǎng)絡(luò)通信部分主要由套接字Socket完成,在UDP應(yīng)用編程中,一般調(diào)用Socket的RecvFrom() 和SendTo()兩個(gè)主要函數(shù)即可完成數(shù)據(jù)通信,其工作流程如圖3所示。
下面代碼是解析下位機(jī)所返回信息。
評論