基于ARM的電子負(fù)載網(wǎng)絡(luò)監(jiān)控系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
(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等總線(xiàn)進(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所示。
ARM在以太網(wǎng)通訊中作為服務(wù)器端構(gòu)成網(wǎng)絡(luò)上的一個(gè)節(jié)點(diǎn),具有獨(dú)立的IP地址,上位機(jī)作為客戶(hù)端通過(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總線(xiàn)發(fā)送給電子負(fù)載。電子負(fù)載根據(jù)接收到的控制命令將被測(cè)電源的各種數(shù)據(jù)和負(fù)載工作的各個(gè)參數(shù)通過(guò)RS232總線(xiàn)上傳給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)稱(chēng)工作頻率為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位、多線(xiàn)程、多任務(wù)的操作系統(tǒng),同時(shí)也是模塊型的操作系統(tǒng),可選擇、組合和配置windows CE 5.0的模塊和組件來(lái)創(chuàng)建用戶(hù)版的操作系統(tǒng)。windows CE 5.0通過(guò)中斷嵌套與優(yōu)先級(jí)處理機(jī)制滿(mǎn)足了測(cè)控系統(tǒng)的實(shí)時(shí)性要求,同時(shí)具有類(lèi)似于桌面系統(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總線(xiàn)和以太網(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),用戶(hù)可以通過(guò)觸摸屏設(shè)置網(wǎng)絡(luò)連接參數(shù)如波特率和IP地址等,系統(tǒng)提供連接日志供用戶(hù)查閱。其中的核心功能是實(shí)現(xiàn)RS232總線(xiàn)和以太網(wǎng)的通訊互聯(lián),互聯(lián)模塊采用多線(xià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)境下類(lèi)似,通過(guò)CreateFile函數(shù)打開(kāi)串口,ReadFile和WriteFile函數(shù)讀寫(xiě)串口數(shù)據(jù)。
修改注冊(cè)表使ARM系統(tǒng)上電后自動(dòng)運(yùn)行通訊軟件:首先進(jìn)行串口和以太網(wǎng)的初始化,對(duì)每個(gè)串口創(chuàng)建單獨(dú)的接收線(xiàn)程和發(fā)送線(xiàn)程,Socket監(jiān)聽(tīng)到上位機(jī)連接后,創(chuàng)建與上位機(jī)連接的數(shù)據(jù)收發(fā)線(xiàn)程。當(dāng)串口的接收線(xiàn)程接收到數(shù)據(jù)時(shí),觸發(fā)相應(yīng)的回調(diào)函數(shù),調(diào)用Socket的發(fā)送線(xiàn)程把數(shù)據(jù)發(fā)送給上位機(jī)。當(dāng)上位機(jī)發(fā)送數(shù)據(jù)給ARM服務(wù)器時(shí),Socket的接收線(xiàn)程觸發(fā)相應(yīng)的回調(diào)函數(shù),根據(jù)幀中負(fù)載地址,調(diào)用對(duì)應(yīng)的串口發(fā)送線(xiàn)程向指定的目標(biāo)負(fù)載轉(zhuǎn)發(fā)數(shù)據(jù)。工作流程,如圖3所示。[!--empirenews.page--]
用戶(hù)界面提供了各項(xiàng)通訊參數(shù)設(shè)置,服務(wù)器控制,系統(tǒng)連接狀態(tài)顯示,日志記錄顯示功能。使用Embedded VC++中的Remote Zoomin抓取的軟件界面,如圖4所示。
4 上位機(jī)監(jiān)控軟件設(shè)計(jì)
上位機(jī)監(jiān)控軟件采用Delphi作為開(kāi)發(fā)環(huán)境,控制電子負(fù)載在不同的工作模式下運(yùn)行如恒電流模式,恒電阻模式,恒功率模式等。依據(jù)電子負(fù)載的實(shí)時(shí)反饋數(shù)據(jù),將整個(gè)工作過(guò)程中負(fù)載的電壓、電流、功率等參數(shù)的變化以圖像、文本等多種形式顯示和記錄,同時(shí)對(duì)負(fù)載瞬態(tài)運(yùn)行數(shù)據(jù)進(jìn)行綜合分析,計(jì)算相關(guān)的性能指標(biāo)。上位機(jī)作為監(jiān)控網(wǎng)絡(luò)中的客戶(hù)端,采用Intelnet Direct(Indy)控件,Indy是一組開(kāi)放源代碼的Internet組件,采用阻塞通訊方式,為避免通訊環(huán)節(jié)中阻塞主線(xiàn)程工作,所以創(chuàng)建單獨(dú)的接收線(xiàn)程實(shí)現(xiàn)網(wǎng)絡(luò)通訊,軟件工作流程,如圖5所示。
上位機(jī)在初始化過(guò)程中按照設(shè)置的IP地址和端口范圍對(duì)網(wǎng)絡(luò)進(jìn)行掃描,得到網(wǎng)絡(luò)中ARM服務(wù)器的運(yùn)行狀態(tài),將可用ARM服務(wù)器IP地址和端口返回。用戶(hù)選擇可用的目標(biāo)ARM服務(wù)器完成負(fù)載監(jiān)控系統(tǒng)的網(wǎng)絡(luò)連接,實(shí)現(xiàn)上位機(jī)對(duì)負(fù)載的監(jiān)控。上位機(jī)監(jiān)控軟件按照設(shè)定時(shí)間間隔向目標(biāo)負(fù)載發(fā)送控制命令,如狀態(tài)參數(shù)查詢(xún)命令,負(fù)載接收到命令后發(fā)送返回?cái)?shù)據(jù),監(jiān)控軟件根據(jù)返回?cái)?shù)據(jù)得到負(fù)載當(dāng)前運(yùn)行狀態(tài)信息。
上位機(jī)監(jiān)控軟件采用多頁(yè)面,對(duì)每個(gè)負(fù)載動(dòng)態(tài)生成單獨(dú)的監(jiān)控界面,保證系統(tǒng)資源的有效利用。保留公共控制區(qū)域負(fù)載全局運(yùn)行狀態(tài)的顯示和全局控制功能按鈕,便于對(duì)全體負(fù)載運(yùn)行狀態(tài)進(jìn)行觀察并且完成多負(fù)載同步操作。監(jiān)控軟件工作狀態(tài);如圖6所示。
5 結(jié)束語(yǔ)
文中提出了一種基于ARM的電子負(fù)載網(wǎng)絡(luò)監(jiān)控系統(tǒng),給出了系統(tǒng)軟硬件的結(jié)構(gòu),充分利用以太網(wǎng)的優(yōu)勢(shì),實(shí)現(xiàn)靈活、可靠的通訊。本系統(tǒng)可以完成對(duì)整個(gè)電子負(fù)載系統(tǒng)的運(yùn)行監(jiān)控,彌補(bǔ)了當(dāng)前市場(chǎng)上電子負(fù)載監(jiān)控系統(tǒng)的不足。本系統(tǒng)已成功應(yīng)用于某科研單位電源實(shí)驗(yàn)室的電源測(cè)試系統(tǒng)中,與傳統(tǒng)系統(tǒng)相比,擴(kuò)展了監(jiān)控范圍,提高了電源測(cè)試效率。