基于ARM的電子負(fù)載網(wǎng)絡(luò)監(jiān)控系統(tǒng)
(1)測(cè)試工作在上位機(jī)集中進(jìn)行,通過(guò)自動(dòng)測(cè)試降低測(cè)試人員勞動(dòng)強(qiáng)度,減少冗余人員,提高測(cè)試效率;
(2)便于及時(shí)、準(zhǔn)確、全面直觀、高效、連續(xù)地反映電源測(cè)試狀態(tài),利于科學(xué)管理;
(3)遠(yuǎn)程監(jiān)控可長(zhǎng)期保存大量工作數(shù)據(jù),并以此為依據(jù)進(jìn)行科學(xué)的測(cè)試分析。
目前,傳統(tǒng)電子負(fù)載通常利用RS232,RS485或CAN等總線進(jìn)行網(wǎng)絡(luò)通訊。但這些網(wǎng)絡(luò)的有效半徑較短,并且孤立于Internet網(wǎng)絡(luò)以外,無(wú)法采用現(xiàn)代化網(wǎng)絡(luò)管理實(shí)現(xiàn)大范圍高效率的遠(yuǎn)程監(jiān)控。針對(duì)以上不足,文中采用三星公司高性能的ARM處理器S3C2440作為核心,開(kāi)發(fā)了基于以太網(wǎng)電子負(fù)載監(jiān)控系統(tǒng),對(duì)于實(shí)現(xiàn)電源設(shè)備遠(yuǎn)程自動(dòng)化測(cè)試有著重要意義。
1 監(jiān)控系統(tǒng)的總體結(jié)構(gòu)
電子負(fù)載監(jiān)控系統(tǒng)是一個(gè)以ARM為核心的通訊網(wǎng)絡(luò)。系統(tǒng)結(jié)構(gòu),如圖1所示。本文引用地址:http://m.butianyuan.cn/article/151901.htm
ARM在以太網(wǎng)通訊中作為服務(wù)器端構(gòu)成網(wǎng)絡(luò)上的一個(gè)節(jié)點(diǎn),具有獨(dú)立的IP地址,上位機(jī)作為客戶端通過(guò)對(duì)不同IP地址的訪問(wèn)實(shí)現(xiàn)與網(wǎng)絡(luò)上不同節(jié)點(diǎn)的ARM服務(wù)器通訊,連接或監(jiān)控某個(gè)節(jié)點(diǎn)上的電子負(fù)載。上位機(jī)通過(guò)以太網(wǎng)發(fā)送給負(fù)載的控制命令由ARM網(wǎng)絡(luò)控制器接收,再通過(guò)ARM網(wǎng)絡(luò)控制器由RS232總線發(fā)送給電子負(fù)載。電子負(fù)載根據(jù)接收到的控制命令將被測(cè)電源的各種數(shù)據(jù)和負(fù)載工作的各個(gè)參數(shù)通過(guò)RS232總線上傳給ARM。ARM將來(lái)自負(fù)載的數(shù)據(jù)采用TCP/IP協(xié)議通過(guò)以太網(wǎng)上傳給上位機(jī),ARM可以通過(guò)擴(kuò)張串口連接多個(gè)負(fù)載,同時(shí)通過(guò)路由器擴(kuò)展網(wǎng)絡(luò),實(shí)現(xiàn)多個(gè)ARM系統(tǒng)并行工作,提高整個(gè)監(jiān)控系統(tǒng)的負(fù)載能力。
2 ARM網(wǎng)絡(luò)控制器硬件設(shè)計(jì)
ARM系統(tǒng)硬件部分采用三星公司的ARM芯片S3C2440,S3C2440基于32 bit ARM920T內(nèi)核,標(biāo)稱工作頻率為400 MHz,配置一片64 MBytes Nand Flash和兩片32 MBtyes SDRAM,網(wǎng)絡(luò)芯片采用DM9000A,配置了MAX3232擴(kuò)展串口與電子負(fù)載進(jìn)行連接。結(jié)構(gòu)圖,如圖2所示。
3 ARM網(wǎng)絡(luò)控制器軟件設(shè)計(jì)
ARM嵌入式網(wǎng)絡(luò)控制器的操作系統(tǒng)采用WindowsCE 5.0,Windows CE 5.0是一個(gè)32位、多線程、多任務(wù)的操作系統(tǒng),同時(shí)也是模塊型的操作系統(tǒng),可選擇、組合和配置windows CE 5.0的模塊和組件來(lái)創(chuàng)建用戶版的操作系統(tǒng)。windows CE 5.0通過(guò)中斷嵌套與優(yōu)先級(jí)處理機(jī)制滿足了測(cè)控系統(tǒng)的實(shí)時(shí)性要求,同時(shí)具有類似于桌面系統(tǒng)的人機(jī)界面和應(yīng)用程序開(kāi)發(fā)工具。
在windows CE 5.0的開(kāi)發(fā)中。有兩個(gè)重要的方面,一是內(nèi)核定制,二是應(yīng)用程序的開(kāi)發(fā)。
3.1 Windows CE內(nèi)核定制
由于應(yīng)用環(huán)境的多樣性,需要對(duì)Windows CE系統(tǒng)做不同的內(nèi)核定制。采用微軟公司的PlatformBuilder集成開(kāi)發(fā)環(huán)境,針對(duì)電子負(fù)載網(wǎng)絡(luò)監(jiān)控的特點(diǎn),添加、刪除和修改某些系統(tǒng)模塊,包括添加串口通信支持,以太網(wǎng)通訊支持,ActiveSync支持(軟件調(diào)試時(shí)的通信支持)等。此外,注冊(cè)表模式修改為HIVE模式,使掉電后數(shù)據(jù)的存放到Flash中保存實(shí)現(xiàn)程序的自啟動(dòng),參數(shù)掉電保存等功能。
3.2 ARM端通訊軟件開(kāi)發(fā)
ARM網(wǎng)絡(luò)控制器作為負(fù)載和上位機(jī)連接的橋梁,實(shí)現(xiàn)RS232總線和以太網(wǎng)的互聯(lián)完成電子負(fù)載的遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控功能。因此,ARM端通訊軟件功能包括:與多個(gè)電子負(fù)載的串行通信;與上位機(jī)基于TCP/IP協(xié)議的通信,提供可視化界面顯示當(dāng)前網(wǎng)絡(luò)連接參數(shù)和狀態(tài),用戶可以通過(guò)觸摸屏設(shè)置網(wǎng)絡(luò)連接參數(shù)如波特率和IP地址等,系統(tǒng)提供連接日志供用戶查閱。其中的核心功能是實(shí)現(xiàn)RS232總線和以太網(wǎng)的通訊互聯(lián),互聯(lián)模塊采用多線程的調(diào)用方式,保證了系統(tǒng)通訊的實(shí)時(shí)性。
通訊幀格式定義為長(zhǎng)度26位,格式為:同步頭,負(fù)載地址,命令字,4~25 bit為相關(guān)信息內(nèi)容,校驗(yàn)碼。
(1)同步頭為AAH,占l bit;
(2)負(fù)載地址范圍為0~FE,占1 bit,確定該幀發(fā)送的目標(biāo)負(fù)載或接收源負(fù)載;
(3)命令字占1 bit,標(biāo)示了該幀的功能;
(4)4~25 bit為命令參數(shù)和反饋參數(shù)。
套接字即Socket是支持TCP/IP協(xié)議的網(wǎng)絡(luò)通信的基本操作單元。通過(guò)Socket編程,可以方便的訪問(wèn)TCP/IP開(kāi)發(fā)以太網(wǎng)通訊程序。Embedded VC++中基于TCP的Socket編程的服務(wù)器端程序工作流程如下:
(1)創(chuàng)建套接字Socket();
(2)將套接字綁定到一個(gè)本地地址和端口上bind();
(3)將套接字設(shè)置為監(jiān)聽(tīng)模式,接收上位機(jī)的請(qǐng)求(listen);
(4)等待上位機(jī)請(qǐng)求,當(dāng)請(qǐng)求到來(lái)后,接受連接請(qǐng)求,返回一個(gè)新的對(duì)應(yīng)于此次連接的套接字accept();
(5)用返回的套接字于上位機(jī)進(jìn)行通信(send/reev);
(6)關(guān)閉套接字。
串口通訊在Windows CE環(huán)境下與桌面Windows環(huán)境下類似,通過(guò)CreateFile函數(shù)打開(kāi)串口,ReadFile和WriteFile函數(shù)讀寫串口數(shù)據(jù)。
修改注冊(cè)表使ARM系統(tǒng)上電后自動(dòng)運(yùn)行通訊軟件:首先進(jìn)行串口和以太網(wǎng)的初始化,對(duì)每個(gè)串口創(chuàng)建單獨(dú)的接收線程和發(fā)送線程,Socket監(jiān)聽(tīng)到上位機(jī)連接后,創(chuàng)建與上位機(jī)連接的數(shù)據(jù)收發(fā)線程。當(dāng)串口的接收線程接收到數(shù)據(jù)時(shí),觸發(fā)相應(yīng)的回調(diào)函數(shù),調(diào)用Socket的發(fā)送線程把數(shù)據(jù)發(fā)送給上位機(jī)。當(dāng)上位機(jī)發(fā)送數(shù)據(jù)給ARM服務(wù)器時(shí),Socket的接收線程觸發(fā)相應(yīng)的回調(diào)函數(shù),根據(jù)幀中負(fù)載地址,調(diào)用對(duì)應(yīng)的串口發(fā)送線程向指定的目標(biāo)負(fù)載轉(zhuǎn)發(fā)數(shù)據(jù)。工作流程,如圖3所示。
評(píng)論