999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式模塊接口性能測試系統的網絡通信技術

2010-06-05 10:47:36董淵科
電子設計工程 2010年9期
關鍵詞:網絡通信嵌入式系統

李 瑋,董淵科

(1.西北工業大學 軟件與微電子學院,陜西 西安 710072;2.西北工業大學 航海學院,陜西 西安 710072)

隨著ETX、SPT2C、ATPPC等嵌入式模塊的規模化生產,設計技術的成熟,對這些模塊的驗收測試、仿真與其交聯的模塊、驗證其功能、性能及接口的工作也越來越頻繁。現代自動測試系統是由多個分系統組成的,每個分系統由通用系統或專用系統實現,并承擔一部分相對獨立的測控任務,各分系統之間通過信息交換實現并行與協同工作,共同實現整個自動測試系統的功能[1]。提出一種采用客戶機/服務器模式的測試系統。該系統讓每個客戶機負責在本地對嵌入式模塊的接口進行測試,而服務器負責各項測試命令的發送以及結果的接收和顯示,這樣可使測試部分和控制部分分離,便于模塊化設計,提高整個測試系統的運行效率。

1 測試系統網絡通信系統設計

1.1 通信流程

測試系統分為測試平臺和控制平臺2部分,控制平臺相當于服務器,負責測試命令的發送。測試平臺用于對嵌入式模塊接口進行本地測試,它啟動后必須連接到控制平臺獲得測試的相關信息后方可進行測試。對于測試平臺的主體部分,測試人員可以根據被測對象使用不同的語言和方式進行設計,可以不局限于使用與控制平臺相同的語言,這也是采用C/S模式的優勢。測試臺-控制臺通信流程如圖1所示。

在各模塊交聯測試中,測試的命令與結果數據量一般都很小,往往測試平臺反饋給控制平臺的結果只有正常/異常,或者一些簡略的異常信息,但是也有一些測試平臺需要將一些大容量的文件信息發送給控制平臺進行存儲并顯示,在此,以小數據量的通信來設計網絡傳輸中的數據包格式。

1.2 關鍵技術

測試系統的網絡通信是基于TCP/IP協議的。選用TCP/IP協議是因為它在基本的IP數據包上增加了可靠性和流量控制,其流式套接字定義了一種可靠的面向連接的服務,實現了無差錯無重復的順序數據傳輸[2]。

1.2.1 通信協議

測試系統通過發送一定格式的數據包來實現網絡通信。一次發送和接收命令信息的緩沖區大小為1 024字節,一次通信過程(發送/接收)只能包含一個命令或結果。具體協議的格式為:狀態字段+數據長度字段+命令字段+數據字段。信息結構格式見表1。

表1 命令信息結構表Tab.1 Structure of command packet

在此還需注意的是,控制平臺和測試平臺在開發過程中可能是用不同的開發環境或不同的編程語言,由此而產生相同的數據類型可能所占的字節數不同,雙方需要約定數據包中各字段的數據存放方式與所代表的數據類型。同時可以根據具體調試臺系統的需要設計不同的命令字段和狀態字段編碼。

1.2.2 CAsyncSocket特性分析

CAsyncSocket提供全面的由事件驅動的Socket通信能力,應用程序要響應Windows Socket激發的事件,就要創建自己派生的Socket子類捕獲和響應事件[3]。由于CAsyncSocket是虛擬了一個消息池,借助它來完成各部分的消息循環,所有的操作必須在一個線程里完成才可以,其本身是異步的,已經設置了類似于多線程的機制。因此在使用CAsyncSocket實現網絡通信時,不需要使用多線程技術,只要將CAsyncSocket與MFC的消息響應機制進行有效地結合,就可以提高網絡通信的處理效率。

2 測試系統網絡通信控制平臺應用實現

為了說明問題,建立一個會話程序的例子,控制平臺和測試平臺分別獨立編程。因為在工程中控制平臺除了進行網絡通信可能還負擔有別的功能,所以本例中控制平臺被建立為單文檔MFC應用程序ServerProject,使用向導生成,選擇支持WinSock;測試平臺被建立為基于對話框的MFC應用程序ClientProject,使用向導生成,選擇支持 WinSock。在控制平臺和測試平臺都自定義派生于CAsyncSocket類的CMySocket類。

從軟件設計一致性的角度,關于socket的全部處理都使用MFC消息響應機制,所以在控制平臺和測試平臺都需要構造以下4類消息[4]:

1)WM_MY_INITSOCKET 消息,初始化 Socket;

2)WM_MY_MESSAGE消息,發送 Socket數據;

3)WM_MY_RECEIVE消息,接收來自Socket的數據;

4)WM_MY_CLOSE消息,接收Socket連接斷開的事件。

以上消息分別對應于 OnMyInitial (),OnMyMessage(),OnMyReceive(),OnMyClose()等函數。

在實際工程中,控制平臺的應用程序往往會有多個對話框,網絡通信的結果也需要在多個對話框中傳遞,經過實驗,在ServerProjectView類中生成并調用CMySocket類的對象是一種可靠的方法。

2.1 控制平臺ServerProjectView類的實現

在ServerProjectView類中需要一個新的消息WM_MY_ACCEPT,用于處理Socket的OnAccept函數[5],它所對應的函數為OnMyAccept()。在ServerProjectView.cpp中聲明全局變量m_listenSocket用于控制平臺監聽連接請求,m_connectSocket用于處理連接Socket。ServerProjectView類的工作過程如下:

1)應用程序啟動時,響應WM_MY_INITSOCKET消息,在OnMyInitial()函數中初始化全局變量,調用Create函數將端口號與控制平臺本地IP地址綁定于m_listenSocket變量,調用Listen()函數,使m_listenSocket變量處于監聽狀態;

2)測試平臺啟動并發起連接請求后,響應WM_MY_ACCEPT消息,完成Socket連接;

3)測試人員根據相關界面進行操作,確定要發送的測試命令后,響應WM_MY_MESSAGE消息,調用Send函數將這些測試命令數據包發送給測試平臺;

4)Socket接收到測試結果后,響應WM_MY_RECEIVE消息,解析所得數據獲得結果。

2.2 控制平臺CMySocket類的實現

在CMySocket類中需要聲明常量MAX_MSG_PACKET為1 024,還需要聲明如下變量:

1)BYTE m_nBuffer[MAX_MSG_PACKET+1];//m_nBuffer為類的數據緩沖區

2)UINT m_nLength;//m_nLength為緩沖區大小值

3)CView*pView;//視類指針

CMySocket類的工作過程如下:

1)函數 bool CMySocket::GetView()獲取應用程序視類指針,并賦值給pView;

2)函數 void CMySocket::OnAccept(int nErrorCode)接收到連接請求,處理FD_ACCEPT事件,通過視類指針發送WM_MY_ACCEPT消息;

3)函數 void CMySocket::OnReceive(int nErrorCode)處理FD_READ事件,通過視類指針發送WM_MY_RECEIVE消息,將數據緩沖區接收到的數據發送給ServerProjectView類。

3 測試系統網絡通信測試平臺應用實現

測試平臺為一個基于對話框的應用程序ClientProject,在ClientProjectDlg類中生成并調用CMySocket類的對象。

3.1 測試平臺ClientProjectDlg類的實現

在ClientProjectDlg中聲明全局變量m_clientSocket用于與控制平臺進行網絡通信。ClientProjectDlg類的工作過程如下:

1)應用程序啟動時,響應WM_MY_INITSOCKET消息,在OnMyInitial()函數中初始化全局變量,調用Create函數,無需指定端口號,但必須指定控制平臺的IP地址serverIP,因為Create函數中觸發了FD_CONNECT事件,m_clientSocket會自動向控制平臺發起連接請求;

2)Socket接收到測試命令后,響應 WM_MY_RECEIVE消息,解析所得數據獲得命令;

3)執行完成測試命令并得到測試結果后,根據協議將數據構造測試結果數據包,響應WM_MY_MESSAGE消息,調用Send函數將這些測試結果數據包發送給控制平臺。

3.2 測試平臺CMySocket類的實現

在CMySocket類中需要聲明常量MAX_MSG_PACKET為1 024,需要聲明如下變量:

1)YTE m_nBuffer[MAX_MSG_PACKET+1];//m_nBuffer 為類的數據緩沖區

2)INT m_nLength;//m_nLength為緩沖區大小值

3)ClientProjectDlg*pMyDialog;//對話框類指針

CMySocket類的工作過程如下:

1)函數 bool CMySocket::GetDlg()獲取應用程序對話框類指針,并賦值給pMyDialog;

2)函數 void CMySocket::OnReceive(int nErrorCode)處理FD_READ事件,通過視類指針發送WM_MY_RECEIVE消息,將數據緩沖區接收到的數據發送給ClientProjectDlg類。

4 系統運行效果及分析

作為基于網絡通信的測試系統,應具有最大的可擴展性和高穩定性[6]。由于TCP/IP協議采用3次握手建立連接,提供可靠的數據流服務,可以保證其基礎上所搭建的測試系統的高穩定性。在項目測試實驗過程中,網絡通信達到無誤碼率,滿足嵌入式模塊接口測試對結果準確性的需求。

該網絡通信技術應用于地圖嵌入式模塊測試及語音嵌入式模塊測試。其中前者需要進行命令通信,而后者既需要傳輸命令,又需要傳輸大批量的語音文件。此時專用通信協議表現出良好的可移植性,通過對命令信息結構的數據字段的擴展,實現語音文件的可靠和高速傳輸。

在設計過程中,異常處理是影響系統穩定性的關鍵。當網絡電纜被拔出、測試臺程序或控制臺程序被強制關閉時,需要及時被發現并處理。因此,在控制臺設置定時器,周期查詢連接是否正常,結合WM_MY_CLOSE消息的接收情況,對異常情況進行有效識別并處理。

5 結 論

提出了一種針對嵌入式模塊接口性能測試系統的網絡通信方式,使用了Visual C++6.0 MFC平臺,主要運用了MFC封裝的CAsyncSocket類的相關特性,并將之與MFC具有的消息響應機制結合,通過引入自定義的通信協議,達到快速穩定的通信效果。所有代碼均來源于自動化測試軟件的實際工程中,在Visual C++6.0平臺下調試通過。

[1]張元,韓燮.網絡化測試系統中問件的研究與設計[J].計算機工程與設計,2009,30(22):5279-5283.ZHANG Yuan,HAN Xie.Research and design of middleware in network test system[J].Computer Engineering and Design,2009,30(22):5279-5283.

[2]李峰,陳向益.TCP/IP—協議分析與應用編程[M].北京:人民郵電出版社,2008.

[3]李文天,董祥軍,張潔.用MFC CAsyncSocket類實現計算機間的通信[J].山東輕工業學院學報,2001,15(1):21-25.LI Wen-tian,DONG Xiang-jun,ZHANG Jie.Realizing the computer communication by using MFC CAsyncSocket class[J].Journal of Shandong Institute of Light Industry,2001,15(1):21-25.

[4]曾小立.基于TCP/IP的數據遠程傳輸的實現[J].三峽大學學報:自然科學版,2002(24):432-433.ZENG Xiao-li.The implementation of the data-transmission based on TCP/IP[J].Jounal of China Three Gorges University:Natural Science,2002(24):432-433.

[5]羅瑜,胡榮強.遠程監控系統中網絡通信的研究與實現[D].武漢:武漢理工大學,2006.

[6]王瑞斌,李鳳崎,施玉勛,等.基于IOCP機制的網絡游戲服務器通信層的實現[J].計算機工程與應用,2009,45(7):75-78 WANG Rui-bin,LI Feng-qi,SHI Yu-xun,et al.Realization of IOCP-based net layer of online games server[J].Computer Engineering and Applications,2009,45(7):75-78.

猜你喜歡
網絡通信嵌入式系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
海上軍用網絡通信的安全控制技術
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于網絡通信的智能照明系統設計
電子制作(2019年15期)2019-08-27 01:11:48
網絡通信中信息隱藏技術的應用
搭建基于Qt的嵌入式開發平臺
談計算機網絡通信常見問題及技術發展
電子制作(2017年17期)2017-12-18 06:41:06
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
主站蜘蛛池模板: a级毛片免费网站| 97无码免费人妻超级碰碰碰| 毛片大全免费观看| 国产日产欧美精品| 亚洲一级毛片| 久久久久久久久18禁秘| 亚洲第一视频区| 成人国产精品网站在线看| 亚洲中文字幕久久精品无码一区| 久996视频精品免费观看| 欧美日本在线| 国产视频入口| 中文字幕 欧美日韩| 色视频国产| 午夜福利视频一区| 国产大片喷水在线在线视频| 国产嫩草在线观看| 午夜国产小视频| 99精品国产自在现线观看| 日本午夜网站| 国产9191精品免费观看| 国产H片无码不卡在线视频| 欧美在线观看不卡| 亚洲精品无码AⅤ片青青在线观看| 精品一区二区三区中文字幕| 九九九精品视频| 国产日韩欧美黄色片免费观看| 激情综合五月网| 一级片一区| 91成人免费观看| 国内精自线i品一区202| 国产美女无遮挡免费视频| 国产精品欧美日本韩免费一区二区三区不卡 | 久久香蕉国产线看精品| 中文字幕1区2区| 天天综合网亚洲网站| 538精品在线观看| 日本道综合一本久久久88| 日韩精品一区二区三区大桥未久| 国产精品55夜色66夜色| 日本少妇又色又爽又高潮| 久久国产乱子| 久久天天躁狠狠躁夜夜躁| 在线观看的黄网| 成人免费视频一区二区三区 | 91在线一9|永久视频在线| 国产精品无码久久久久久| 成人精品在线观看| 国产高清不卡视频| 亚洲一区免费看| 久久这里只有精品23| 欧美日韩高清在线| 国产成人精品视频一区视频二区| 国产91视频免费观看| 欧美黄色网站在线看| 久久人搡人人玩人妻精品| 久久免费视频6| 亚洲最大福利视频网| 日韩精品成人在线| 欧美成人午夜影院| 国产亚洲欧美在线人成aaaa| 高清免费毛片| 亚洲第一区欧美国产综合 | 天天摸天天操免费播放小视频| 国产精品一区二区无码免费看片| 黄色成年视频| 中文字幕 91| 国产精品久久久久无码网站| 人人看人人鲁狠狠高清| 青青热久免费精品视频6| 91成人在线观看视频| h网站在线播放| 91九色国产porny| 99青青青精品视频在线| 久久一日本道色综合久久| 亚洲高清中文字幕| 国产av一码二码三码无码| 亚洲色无码专线精品观看| 777国产精品永久免费观看| 在线观看免费黄色网址| 一级黄色网站在线免费看| 国产高颜值露脸在线观看|