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