嵌入式系統(tǒng)中運行參數(shù)修改研究及其應(yīng)用
1、引言
以太網(wǎng)技術(shù)的廣泛普及,因特網(wǎng)在工業(yè)、商業(yè)、傳媒家庭、教育業(yè)等方面的廣泛運用,使得基于以太網(wǎng)的系統(tǒng)得到了飛速發(fā)展,配置參數(shù)(黑名單、啟動參數(shù)、運行參數(shù)等)及修改一直是嵌入式系統(tǒng)中的難題,傳統(tǒng)的配置方法是將參數(shù)直接固化在程序中,修改時通過串口進(jìn)行,在實際應(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)行瀏覽和修改,這種方法雖然有著良好的人機界面,使用起來也非常方便,但嵌入式Web Server 需要處理器有較強的數(shù)據(jù)處理能力,一般的MCU并不支持[1]。
在大量實踐的基礎(chǔ)上,本文詳細(xì)闡述了嵌入式系統(tǒng)采用UDP協(xié)議來對參數(shù)進(jìn)行配置修改的技術(shù),較好的解決了嵌入式系統(tǒng)中參數(shù)修改問題。
2、系統(tǒng)原理
嵌入式系統(tǒng)一般由PC管理機和嵌入式終端組成。PC管理機主要對數(shù)據(jù)進(jìn)行讀寫和管理。終端負(fù)責(zé)數(shù)據(jù)的采樣并把數(shù)據(jù)傳給PC機。系統(tǒng)結(jié)構(gòu)如圖1所示,終端和主機通過以太網(wǎng)相連,每個終端都有自己的機號和IP地址。因此,PC機不僅要對這些設(shè)備進(jìn)行管理,還要進(jìn)行數(shù)據(jù)通信。當(dāng)終端收到PC機的命令和數(shù)據(jù)后,把數(shù)據(jù)存放在EEPROM的存儲器里,然后更新系統(tǒng)參數(shù)。本文主要闡述系統(tǒng)的數(shù)據(jù)通信部分的具體實現(xiàn),包括上位機和下位機的實現(xiàn)過程。
3、應(yīng)用協(xié)議
3.1 UDP用戶數(shù)據(jù)報協(xié)議
UDP是一個簡單的面向數(shù)據(jù)報的傳輸層協(xié)議,應(yīng)用程序進(jìn)程的每個輸出操作產(chǎn)生一個UDP數(shù)據(jù)報,并組裝成待發(fā)送的IP數(shù)據(jù)報。UDP提供基本、低延時的傳輸。UDP數(shù)據(jù)報格式如圖2所示[2][3]。
3.2應(yīng)用數(shù)據(jù)幀封裝格式
應(yīng)用數(shù)據(jù)是以幀的格式封裝在UDP數(shù)據(jù)里面的,它的幀格式是:幀開頭(1字節(jié))+數(shù)據(jù)長度(1字節(jié))+機號(2字節(jié))+命令(1字節(jié))+數(shù)據(jù)+效驗(1字節(jié))+幀結(jié)尾(1字節(jié))。幀以0x02開頭,數(shù)據(jù)長度表示機號、命令和數(shù)據(jù)總的長度字節(jié),效驗是對前面數(shù)據(jù)和效驗,幀結(jié)尾是0x03。
500)this.style.width=500;" border="0" />
4、程序?qū)崿F(xiàn)
4.1上位機程序
上位機采用VC6.0進(jìn)行程序設(shè)計,網(wǎng)絡(luò)通信部分主要由套接字Socket完成,在UDP應(yīng)用編程中,一般調(diào)用Socket的RecvFrom() 和SendTo()兩個主要函數(shù)即可完成數(shù)據(jù)通信,其工作流程如圖3所示。
500)this.style.width=500;" border="0" />
下面代碼是解析下位機所返回信息。[!--empirenews.page--]
iRecv =Socket.ReceiveFrom(m_temp,sizeof(m_temp),
m_nip,uPort,0);
if (iRecv)
{ if(m_temp[4]==0x3e)
MessageBox("設(shè)置成功");
else if(m_temp[4]==0x3f)
MessageBox("設(shè)置失敗");
else
MessageBox("通信錯誤");
iRecv=0;
}
4.2下位機程序
終端正確的接收完一幀數(shù)據(jù)后,根據(jù)命令來處理相應(yīng)的事務(wù)。系統(tǒng)提供最基本的5個命令:0x50(設(shè)置系統(tǒng)參數(shù)),0x51(讀取配置參數(shù)),0x43 (初始化EEPROM,0x3e (正確操作應(yīng)答),0x3f(不正確操作應(yīng)答),工作流如圖4所示。
500)this.style.width=500;" border="0" />
5、在“家校通”中的具體應(yīng)用
近年來,智能IC卡得到了廣泛的應(yīng)用,除了應(yīng)用于信用卡、收費卡、保險卡、密鑰卡等外,在學(xué)校也得到廣泛使用,像校園“一卡通”,“家校通”到處隨處可見?!凹倚Mā笔抢矛F(xiàn)代信息技術(shù)實現(xiàn)家庭與學(xué)校快捷、實時溝通的教育網(wǎng)絡(luò)平臺,是一套可以有效解決老師和家長之間溝通,幫助孩子健康成長的、集先進(jìn)的計算機技術(shù)和網(wǎng)絡(luò)技術(shù)于一體的信息交流系統(tǒng)。它可以讓家長每天都能了解到自己孩子在學(xué)校的情況,也可以讓家長隨時隨地的向老師提出建議或反映孩子在家里的表現(xiàn)。系統(tǒng)硬件主要采用網(wǎng)絡(luò)型讀卡機,它主要由主控MCU89C52、讀卡模塊RC500、8位LED和網(wǎng)絡(luò)通組成。它不能單獨工作,必須聯(lián)網(wǎng)與PC機進(jìn)行通信,圖5是“家校通”典型拓?fù)鋱D。
500)this.style.width=500;" border="0" />
5.1 “家校通”基本工作原理[!--empirenews.page--]
網(wǎng)絡(luò)型讀卡器是由網(wǎng)絡(luò)通和讀卡器組成,網(wǎng)絡(luò)通有自己的IP地址,讀卡器有自己的機號,通信服務(wù)器也有自己的IP地址和機號。
當(dāng)讀卡器有數(shù)據(jù)時,會通過網(wǎng)絡(luò)通送到嵌入通信服務(wù)器,嵌入通信服務(wù)器收到數(shù)據(jù)后,提取網(wǎng)絡(luò)通的地址和讀卡器的機號,做成一個動態(tài)的IP地址和機號對應(yīng)表。當(dāng)PC機有數(shù)據(jù)給通信服務(wù)器時,提取數(shù)據(jù)中的機號,查找IP地址和機號對應(yīng)表,然后按照查到IP地址發(fā)送數(shù)據(jù)給讀卡器,這樣完成了讀卡器和PC機之間的通信。
5.2 “家校通”參數(shù)修改及其實現(xiàn)
為確?!凹倚Mā毕到y(tǒng)的正常運行,系統(tǒng)要維護(hù)每個網(wǎng)絡(luò)型讀卡機的網(wǎng)絡(luò)參數(shù)(IP地址)和黑名單,這些參數(shù)的維護(hù)工作既煩瑣又必不可少,應(yīng)用我們的研究成果,這些參數(shù)可以通過我們的研究成果快速方便進(jìn)行。
圖6所示的軟件可以通過網(wǎng)絡(luò)實現(xiàn)系統(tǒng)的參數(shù)在線更新,包括IP地址的設(shè)置和黑名單的更新,使得系統(tǒng)維護(hù)更方便靈活。
500)this.style.width=500;" border="0" />
6、結(jié)論
本文作者創(chuàng)新點采用UDP協(xié)議來對嵌入式系統(tǒng)中參數(shù)進(jìn)行配置修改,在現(xiàn)實當(dāng)中具有很大的意義,為嵌入式系統(tǒng)維護(hù)人員提供良好的應(yīng)用程序接口,體現(xiàn)了系統(tǒng)的人性化程序設(shè)計和以人為本的思想。