基于嵌入式的遠程測試控制技術(shù)
本應用是在測試終儀中增加網(wǎng)絡(luò )接口模塊,以互聯(lián)網(wǎng)為傳輸平臺,在遠端接入診斷PC而實(shí)現遠程控制及診斷功能的,其框圖如圖1所示。
診斷專(zhuān)家人員可在診斷PC上通過(guò)Internet向異地測試儀發(fā)送指令,測試儀接收并按照指令要求完成對故障設備的自動(dòng)測試,將測試數據通過(guò)網(wǎng)絡(luò )傳回診斷PC,建立數據實(shí)時(shí)交互的傳輸平臺[1]。
2 基本原理
2.1 互聯(lián)網(wǎng)的基本結構和特征
設備的遠程監測診斷是計算 機科學(xué)、通訊技術(shù)與故障診斷技術(shù)相結合的一種新的設備故障診斷模式。TCP/IP是發(fā)展至今最成功的通信協(xié)議。該協(xié)議分為4層,由上到下依次為應用層、傳輸層、網(wǎng)絡(luò )層和鏈路層。
本應用使用的是EM2000網(wǎng)絡(luò )模塊,底下3層的較復雜的協(xié)議已經(jīng)固化在他的ASIC中,能夠實(shí)現透明的數據通信。這樣,研究工作主要集中在應用層的設計和功能實(shí)現上。這包括建立在傳輸層上的數據幀定義、交換數據的定義、應用功能的設計和人機交互界面的設計等。
本應用中使用的是EM2000網(wǎng)關(guān),他是用來(lái)在嵌入式系統與互聯(lián)網(wǎng)建立數據連接和協(xié)議轉換的設備。
一方面PC端的網(wǎng)絡(luò )應用程序將應用層數據打包成為IP包在網(wǎng)絡(luò )上傳送,EM2000將辨識和解析這些數據包,把應用層的原始數據轉發(fā)至RS 232接口。
另一方面EM2000也將RS 232接口的數據封裝成為IP包,傳送至PC端的網(wǎng)絡(luò )應用程序。支持透明傳輸和簡(jiǎn)單協(xié)議兩種工作方式;EM2002網(wǎng)關(guān)在網(wǎng)絡(luò )接口部分具有WWW接口,用戶(hù)可以通過(guò)瀏覽器在網(wǎng)絡(luò )上實(shí)現對EM2002及串行設備的配置和管理。在網(wǎng)絡(luò )中的具體位置如圖2所示。
2.2 傳輸幀的定義
下面主要考慮第4層應用層的具體使用,即數據傳輸的幀格式、具體的定義等。根據本測試設備的狀態(tài)和顯示的功能,其格式可設計成2大類(lèi),即測試數據幀和命令控制幀。格式的設計應能實(shí)現系統對端間信息的無(wú)障礙交流、易于識別和判斷,同時(shí),還應保證傳輸的可靠性,兼顧信息利用率。對該系統,經(jīng)過(guò)實(shí)際信息交互統計,確定使用一個(gè)字節的長(cháng)度,即256種狀態(tài)。
(1)幀類(lèi)型定義
傳輸幀格式的定義如表1所示。第7位為類(lèi)型定義位,“1”表示為數據幀;“0”為命令控制幀。
(2)數據幀
數據幀格式的定義如表2所示,主要用來(lái)傳送檢測的數據結果。根據需檢測信道數量和檢測項目來(lái)設置數據幀的字節。本系統設置8個(gè)數據信道,8個(gè)測試項目和“正?!保肮收稀?個(gè)參數。
對于數據幀,考慮到本設備測試信道的數量和測試項目的多少,兼顧處理速度的快慢和復雜程度,最后確定信道號范圍為0~7,占用數據幀的第6位至第4位,以二進(jìn)制表示,高位在前,低位在后;測試項目范圍為0~7,占用數據幀的第3位到第1位,表示方式同上(根據需要,以后擴容時(shí),適當增加字節即可)。數據幀的最后一位定義為測試結果,“0”表示正確無(wú)誤,“1”表示故障。這里沒(méi)有采用通常的校驗位,主要是因為該通信速率較低,目前網(wǎng)絡(luò )傳輸的可靠性非常高,這方面可以忽略,以提高處理效率,簡(jiǎn)化程序編寫(xiě)難度。
(3)命令控制幀
命令控制幀的格式定義如表3所示。字節的最高位固定為“0”,主要用來(lái)傳輸測試終端和遠端診斷終端的控制命令和設備狀態(tài)信息。
命令控制幀按傳送方向不同,可分為命令控制字和狀態(tài)表示字2種。對于命令控制字,第6位到第4位為“101”,是命令識別位;后4位為命令代碼,表示不同種類(lèi)的測試進(jìn)程。測試平臺將自動(dòng)返回相應的信息,其幀格式為第6至4位為“001”,這是信息數據的識別位,其余位為不同類(lèi)型的定義。對于硬件復位命令,測試端返回1EH;鏈路檢測為1F H。
3 具體實(shí)現
3.1 網(wǎng)絡(luò )接口設計
嵌入式系統和微型計算機系統一樣,必須通過(guò)TCP/IP協(xié)議轉換才能接入Internet。在這里數據通信的設計主要體現在串口的設計[2],將MCU的數據按照預先定義的格式通過(guò)與轉換芯片連接的串行接口發(fā)送或接收即可。設計中只要MCU的串口和EM2000網(wǎng)關(guān)的交換速率匹配即可,按照字節方式逐字發(fā)送和接收。另外,EM2000網(wǎng)關(guān)的接口電平與TTL兼容,這就省略了電平變換電路,使得設計實(shí)現起來(lái)更簡(jiǎn)便。
3.2 MCU的軟件設計
嵌入式MCU系統軟件主要由MCS-51匯編程序編寫(xiě)。為了實(shí)現本地鍵盤(pán)控制與異地遠端控制同步工作,需要對部分軟件進(jìn)行重新編寫(xiě)。主要包括初始化程序、掃描程序、執行程序、串口中斷調用程序、協(xié)議翻譯程序等。
(1)存儲單元初始化的特殊要求
眾所周知,測試主程序首先對系統所用變量進(jìn)行初始化,包含堆棧棧底的指針設定、寄存器、狀態(tài)字的初始值設定、串口模式/狀態(tài)字的初始設置等,但在這里由于遠程通信的特殊情況,具有特殊要求。雖然部分存儲單元在從加電到復位完成時(shí),單元值已經(jīng)被置位,但是仍需再置位。這主要考慮當在平臺運行期間,各個(gè)寄存器和存儲單元都會(huì )有不斷變化的新值存入,這樣,當進(jìn)行遠端復位操作時(shí),有些存儲單元的值不會(huì )自動(dòng)復位,如果按原程序執行就會(huì )發(fā)生不確定的問(wèn)題。為保證存儲單元內容的一致性和可控性,對寄存器空間進(jìn)行初始化是必不可少的。
(2)子程序間的通信機制
在處理鍵盤(pán)控制和遠端控制同步運行時(shí),嵌入式實(shí)時(shí)操作系統常采用郵箱查詢(xún)方式。首先掃描及防抖程序[3]負責對鍵盤(pán)的操作進(jìn)行掃描,經(jīng)消除抖動(dòng)和干擾影響后,將鍵盤(pán)值放入35H,并向郵箱發(fā)送“鍵盤(pán)動(dòng)作事件”的信件;同時(shí),串口通信程序不間斷掃描端口數據,如果判斷有命令數據注入,則將命令值放入36H內,同時(shí)向郵箱發(fā)送。串口命令發(fā)生事件”的信件。這樣通過(guò)對主程序信箱的查詢(xún),如果發(fā)現有信件存在,則對信件進(jìn)行相應翻譯,變成機器可以執行的代碼,對設備進(jìn)行動(dòng)作調度和相關(guān)信息處理。
3.3 TCP/IP端口配置
TCP/IP端口相當于掛在Internet網(wǎng)上的一塊標準網(wǎng)絡(luò )設備,具有惟一的全球識別MAC地址,可以接入任意的網(wǎng)段而不受限制。在配置網(wǎng)絡(luò )參數時(shí),只要知道通信雙方的網(wǎng)絡(luò )IP和路由,即可以輕松實(shí)現網(wǎng)絡(luò )連接。該模塊設置了1 B的緩沖區,通信速率為2 400 b/s,提高了IP包傳輸效率。
3.4 遠端診斷終端的設計
遠程診斷終端主要為軟件程序設計,該部分采用Visual Basic,HTML等語(yǔ)言進(jìn)行編寫(xiě),主要分為2個(gè)部分。
(1)通信模塊配置網(wǎng)頁(yè)的設計及上傳
在遠程測試之前,需要對通信模塊相關(guān)參數進(jìn)行網(wǎng)絡(luò )配置,使遠程軟件能夠對測試終端進(jìn)行訪(fǎng)問(wèn)和控制操作。本設計采用HTML語(yǔ)言編寫(xiě)了Web網(wǎng)頁(yè)風(fēng)格的界面,上載至模塊FLASH存儲器,用戶(hù)可通過(guò)瀏覽器對硬件訪(fǎng)問(wèn)和網(wǎng)絡(luò )配置。為加強保密安全,還增添了Password入口參數的設置。
(2)遠端終端主程序的設計
主程序采用Microsoft Visual Basic語(yǔ)言編寫(xiě),主要功能包括控制和測試2部分。測試前,先輸入分配到的IP地址與要偵聽(tīng)的端口號,然后根據網(wǎng)絡(luò )狀況,利用VB語(yǔ)言中WinSock插件的Connect方法在本地計算機與測試平臺之間建立一個(gè)Socket,以便完成控制等數據的傳送和接收。各項操作的運行狀態(tài)和操作結果都將由當前狀態(tài)框實(shí)時(shí)顯示。當本地計算機與遠程測試平臺連接正常之后,便可以開(kāi)始測試。
4 應用驗證
首先測試通信模塊,在單臺計算機上建立2個(gè)超級終端,一個(gè)與串口建立連接,另一個(gè)與Socket建立連接。在超級終端的一窗口內輸入數據,另一窗口即時(shí)響應,說(shuō)明網(wǎng)絡(luò )接口模塊功能正常。其次測試MCU串行通信性能,通過(guò)電平轉換電路建立與計算機的串口連接,用超級終端進(jìn)行數據傳輸驗證。完成后,對全系統進(jìn)行聯(lián)調,先進(jìn)行直連試驗,即將測試終端與診斷終端通過(guò)交叉網(wǎng)線(xiàn)直連,驗證功能的正確性;然后將測試平臺接入Internet網(wǎng),通過(guò)異地連接,驗證功能的正確性。目前,經(jīng)過(guò)多項調試驗證,能夠建立診斷終端與測試終端的連接,并可進(jìn)行異地的各項狀態(tài)顯示、控制測試、復位等功能,實(shí)現了原設計目標。
5 結 論
本文介紹的方法,能夠非常容易地實(shí)現將嵌入式系統與互聯(lián)網(wǎng)相連。研發(fā)人員不用精通TCP/IP協(xié)議和具體的網(wǎng)絡(luò )知識,即可以設計出具有網(wǎng)絡(luò )功能的電子產(chǎn)品,大大縮短開(kāi)發(fā)周期。該方法在遠程監測、網(wǎng)絡(luò )監控、遠程診斷等方面具有很大的應用空間。目前,該項技術(shù)正在向單位相關(guān)領(lǐng)域推廣。
tcp/ip相關(guān)文章:tcp/ip是什么
評論