郭建昌
(中國(guó)礦業(yè)大學(xué)(北京)機(jī)電與信息工程學(xué)院1,北京 100083;南陽理工學(xué)院電子與電氣工程學(xué)院2,河南 南陽 473000)
虛擬串口測(cè)試系統(tǒng)設(shè)計(jì)
郭建昌1,2
(中國(guó)礦業(yè)大學(xué)(北京)機(jī)電與信息工程學(xué)院1,北京 100083;南陽理工學(xué)院電子與電氣工程學(xué)院2,河南 南陽 473000)
針對(duì)嵌入式工程師基于串口的實(shí)際測(cè)試需要,對(duì)虛擬儀器技術(shù)、Proteus電路仿真技術(shù)、ARM多串口技術(shù)和虛擬串口技術(shù)進(jìn)行了研究,設(shè)計(jì)了基于Proteus和ARM7的虛擬串口測(cè)試系統(tǒng),并給出了系統(tǒng)總體設(shè)計(jì)方案。具體介紹了系統(tǒng)工作原理、Proteus電路詳細(xì)設(shè)計(jì)和對(duì)應(yīng)的軟件設(shè)計(jì),并通過了工程應(yīng)用測(cè)試。試驗(yàn)結(jié)果驗(yàn)證了該設(shè)計(jì)能實(shí)現(xiàn)串口測(cè)試命令生成和測(cè)試結(jié)果分析的功能,滿足嵌入式工程師基于串口的測(cè)試需要。
Proteus ARM接口 測(cè)試系統(tǒng) 虛擬串口 串口調(diào)試助手 仿真
煤礦用手持巡檢儀設(shè)計(jì)采用ARM7芯片LP2101,功能測(cè)試中需要通過PC機(jī)中串口調(diào)試助手發(fā)送測(cè)試命令,需要對(duì)串口調(diào)試助手接收到的巡檢儀響應(yīng)數(shù)據(jù)進(jìn)行分析。但通過串口調(diào)試助手發(fā)送的測(cè)試命令比較長(zhǎng)、種類比較多,所以需要人工不斷地輸入不同的測(cè)試命令。同時(shí),巡檢儀響應(yīng)數(shù)據(jù)也比較長(zhǎng)、種類比較多,所以需要人工不斷地分析響應(yīng)數(shù)據(jù)。
針對(duì)這個(gè)問題,希望能有一款串口測(cè)試軟件,能自動(dòng)生成測(cè)試命令、自動(dòng)發(fā)送測(cè)試命令、自動(dòng)分析響應(yīng)數(shù)據(jù)、直接顯示分析結(jié)果。遺憾的是如同很多嵌入式工程師一樣,筆者對(duì)諸如VB、Visual C或虛擬儀器軟件LabVIEW等可視化開發(fā)環(huán)境熟悉度不深,不能針對(duì)不同應(yīng)用編寫基于串口的測(cè)試界面及通信程序[1]。而對(duì)嵌入式系統(tǒng)開發(fā)中經(jīng)常用到的電路仿真軟件Proteus則相對(duì)比較熟悉。
通過研究分析和工程測(cè)試應(yīng)用,設(shè)計(jì)了一套基于Proteus和ARM7的虛擬串口測(cè)試系統(tǒng),能很好地解決這個(gè)問題。
基于Proteus和ARM7的虛擬串口測(cè)試系統(tǒng)如圖1所示[2-8]。圖1中,虛線框中代表的是軟件,實(shí)線框中代表的是硬件。
圖1 系統(tǒng)總體設(shè)計(jì)圖Fig.1 General design of the system
測(cè)試系統(tǒng)硬件包括PC機(jī)、PC機(jī)串口(物理串口或者USB轉(zhuǎn)串口都可以),軟件包括串口調(diào)試助手、Proteus軟件、虛擬串口軟件、ARM編譯軟件。其中,Proteus軟件設(shè)計(jì)測(cè)試系統(tǒng)電路,建立電路模型;ARM編譯軟件編譯ARM程序;虛擬串口軟件建立串口調(diào)試助手與Proteus電路中ARM7元件的串口連接;串口調(diào)試助手通過串口發(fā)送測(cè)試命令數(shù)據(jù)和顯示測(cè)試結(jié)果。本測(cè)試系統(tǒng)由相關(guān)常用的軟件集成構(gòu)成。這些軟件對(duì)嵌入式工程師來說是比較簡(jiǎn)單且經(jīng)常使用的軟件。
測(cè)試系統(tǒng)工作原理如下。
①生成測(cè)試命令。
PC機(jī)中串口調(diào)試助手通過虛擬串口發(fā)送簡(jiǎn)易測(cè)試命令數(shù)據(jù),串口0接收簡(jiǎn)易測(cè)試命令數(shù)據(jù)。ARM7元件分析接收到的簡(jiǎn)易測(cè)試命令數(shù)據(jù),生成實(shí)際測(cè)試命令數(shù)據(jù)。串口1發(fā)送實(shí)際測(cè)試命令數(shù)據(jù),命令通過PC串口發(fā)送給被測(cè)試的嵌入式系統(tǒng)。
②測(cè)試結(jié)果分析。
串口1通過PC機(jī)串口接收嵌入式系統(tǒng)響應(yīng)的測(cè)試數(shù)據(jù),ARM7元件分析測(cè)試響應(yīng)數(shù)據(jù)。串口0通過虛擬串口把分析結(jié)果發(fā)送給串口調(diào)試助手顯示,從而直接顯示響應(yīng)結(jié)果。
基于Proteus和ARM7的虛擬串口測(cè)試系統(tǒng)采用雙串口的ARM7元件,主要是因?yàn)榍度胧焦こ處煂?duì)串口調(diào)試助手和PC機(jī)串口最熟悉,應(yīng)用最多,而嵌入式系統(tǒng)一般都具有串口通信接口。本測(cè)試系統(tǒng)中所有的通信節(jié)點(diǎn)都采用串口,通過ARM7元件解析串口助手發(fā)送的簡(jiǎn)易測(cè)試命令數(shù)據(jù),獲得實(shí)際發(fā)送的測(cè)試命令數(shù)據(jù)。也就是說,串口調(diào)試助手發(fā)送的命令不變,但通過ARM7元件的不同解析可以發(fā)出不同的實(shí)際測(cè)試命令,減輕了工程師的測(cè)試工作量和復(fù)雜程度,特別是生成具有校驗(yàn)碼的測(cè)試命令。通過ARM7元件分析接收到的測(cè)試響應(yīng)數(shù)據(jù),把分析結(jié)果發(fā)送給串口調(diào)試助手直接顯示,工程師可以直接看到測(cè)試結(jié)果。針對(duì)不同的測(cè)試需要,工程師只需要調(diào)整ARM7元件命令解析和響應(yīng)數(shù)據(jù)分析功能即可。另外,串口調(diào)試助手和ARM7元件串口0的通信參數(shù)可以固定不變,這樣可以進(jìn)一步減少發(fā)送測(cè)試命令的復(fù)雜程度;而ARM7元件串口1可以根據(jù)實(shí)際測(cè)試的嵌入式系統(tǒng)串口通信參數(shù)來設(shè)定。
基于Proteus和ARM7的虛擬串口測(cè)試系統(tǒng)電路設(shè)計(jì)包括ARM7元件電路和串口電路設(shè)計(jì),如圖2所示。整個(gè)電路設(shè)計(jì)元件比較少,主要包括一個(gè)ARM7元件LPC2101[9]和兩個(gè)串口元件COMPIM,Proteus元件庫(kù)直接添加即可,整個(gè)電路設(shè)計(jì)比較簡(jiǎn)單。LPC2101具有雙串口,即串口0(TXD0和RXD0)和串口1(TXD1和RXD1)。串口0與串口元件P0直接連接,P0通過虛擬串口與串口調(diào)試助手通信。串口1與串口元件P1直接連接,P1通過PC機(jī)串口(物理串口)與被測(cè)試的嵌入式系統(tǒng)串口通信。
圖2 測(cè)試系統(tǒng)電路圖Fig.2 Circuit of the testing system
本測(cè)試系統(tǒng)的軟件設(shè)計(jì)同樣也是基于ARM7元件串口的,比較簡(jiǎn)單。軟件設(shè)計(jì)包括ARM7元件LP2101串口參數(shù)設(shè)置,簡(jiǎn)易測(cè)試命令數(shù)據(jù)接收、解析及生成實(shí)際測(cè)試命令,測(cè)試響應(yīng)數(shù)據(jù)分析。測(cè)試系統(tǒng)程序流程如圖3所示。
圖3 測(cè)試系統(tǒng)程序流程圖Fig.3 Flowchart of the program of testing system
首先進(jìn)行LP2101初始化,主要是設(shè)置串口的通信參數(shù)?;赑roteus和ARM7的串口測(cè)試系統(tǒng)中串口調(diào)試助手和ARM7元件串口0的通信參數(shù)設(shè)置如下:9 600 bit/s,無校驗(yàn)位,8 bit(data),1 bit(stop)。針對(duì)不同的嵌入式設(shè)備,可以保持不變,簡(jiǎn)化新測(cè)試系統(tǒng)的程序修改,也可以采用別的通信參數(shù)。ARM7元件串口1可以根據(jù)被測(cè)試的嵌入式系統(tǒng)串口通信參數(shù)設(shè)定。串口通信設(shè)置完畢后進(jìn)入接收簡(jiǎn)易測(cè)試命令狀態(tài),解析串口0接收到的簡(jiǎn)易測(cè)試命令,生成實(shí)際測(cè)試命令。在實(shí)際軟件設(shè)計(jì)中,可以采用把實(shí)際測(cè)試命令放入數(shù)組中的方式,建立簡(jiǎn)易測(cè)試命令與實(shí)際測(cè)試命令數(shù)組的關(guān)聯(lián)。這樣實(shí)際測(cè)試命令需要改變時(shí)只需要改變命令數(shù)組數(shù)據(jù)即可。然后通過串口1發(fā)送實(shí)際測(cè)試命令,接著等待接收響應(yīng)的數(shù)據(jù)并分析,獲得測(cè)試結(jié)果。測(cè)試結(jié)果也可以采用數(shù)組方式,設(shè)置幾種可能的結(jié)果,比如:OK、ERROR。根據(jù)分析的結(jié)果,直接通過串口0發(fā)送給串口助手顯示。
筆者參與設(shè)計(jì)的煤礦用手持巡檢儀測(cè)試通信協(xié)議基于Modbus協(xié)議[10],在Modbus數(shù)據(jù)包基礎(chǔ)上增加數(shù)據(jù)包頭和校驗(yàn)碼。測(cè)試命令和響應(yīng)數(shù)據(jù)格式詳細(xì)情況如下。
(1)測(cè)試命令格式:包長(zhǎng)度+分組信息+設(shè)備地址+功能代碼+寄存器地址高位+寄存器地址低位+ CRCH+CRCL+CC。
①包長(zhǎng)度:不包括CC校驗(yàn)碼。即包長(zhǎng)度僅包括Modbus標(biāo)準(zhǔn)協(xié)議數(shù)據(jù)包。
②分組信息:指的是各功能模塊。01代表GPS模塊采集到的數(shù)據(jù),02代表ZigBee模塊采集到的數(shù)據(jù),03代表RFID模塊采集到的數(shù)據(jù),04代表氣體檢測(cè)、A/D和開關(guān)量模塊采集到的數(shù)據(jù)。
③設(shè)備地址、功能代碼、寄存器地址高位、寄存器地址低位、CRCL和CRCH:標(biāo)準(zhǔn)的Modbus通信協(xié)議數(shù)據(jù)包。
④CC:累加和校驗(yàn),是指前面所有字節(jié)相加取一個(gè)字節(jié)(不包括CRC校驗(yàn)碼)。
(2)巡檢儀響應(yīng)數(shù)據(jù)格式:包長(zhǎng)度+分組信息+設(shè)備地址+功能代碼+數(shù)據(jù)數(shù)量+數(shù)據(jù)+CRCH+ CRCL+CC。
①包長(zhǎng)度、分組信息和設(shè)備地址與測(cè)試命令中相同。
②CC:累加和校驗(yàn),是指前面所有字節(jié)相加取一個(gè)字節(jié)(包括CRC校驗(yàn)碼)。
③功能代碼、數(shù)據(jù)數(shù)量、數(shù)據(jù)1,…,數(shù)據(jù)n、CRCL和CRCH是標(biāo)準(zhǔn)的Modbus協(xié)議數(shù)據(jù)包。
測(cè)試過程如下。串口調(diào)試助手采用2.2版本。虛擬串口軟件采用VSP虛擬串口軟件,運(yùn)行后建立一對(duì)虛擬串口,分別與串口調(diào)試助手和LP2101串口0相連接。編譯LP2101程序,獲得對(duì)應(yīng)的HEX文件,在Proteus中指定LP2101對(duì)應(yīng)的HEX文件后運(yùn)行。此時(shí),基于Proteus和ARM7的虛擬串口測(cè)試系統(tǒng)已經(jīng)建立,通過串口調(diào)試助手發(fā)送簡(jiǎn)易測(cè)試命令,即可進(jìn)行測(cè)試。
測(cè)試中需要發(fā)送4組9 B的測(cè)試命令,特別是還包含CRC校驗(yàn)碼及累加和校驗(yàn)碼計(jì)算。響應(yīng)的數(shù)據(jù)最短為9 B,需要分析其中的數(shù)據(jù),包括CRC校驗(yàn)碼及累加和校驗(yàn)碼。但通過基于Proteus和ARM7的虛擬串口測(cè)試系統(tǒng),簡(jiǎn)易測(cè)試命令只需要4組1 B的命令,分別為01~04。響應(yīng)數(shù)據(jù)直接顯示為對(duì)應(yīng)設(shè)備的具體數(shù)據(jù),如GPS經(jīng)度+實(shí)際數(shù)據(jù)維度+實(shí)際數(shù)據(jù),即直接顯示分析結(jié)果。
測(cè)試結(jié)果完全達(dá)到基于Proteus和ARM7的虛擬串口測(cè)試系統(tǒng)設(shè)計(jì)的目的,實(shí)現(xiàn)了相關(guān)功能。
基于Proteus和ARM7的虛擬串口測(cè)試系統(tǒng)把嵌入式工程師掌握的 ARM7接口及程序設(shè)計(jì)技術(shù)、Proteus仿真技術(shù)、虛擬串口技術(shù)有機(jī)的集成在一起,不需要使用復(fù)雜的Visual Basic、Visual C或虛擬儀器軟件LabVIEW等工具開發(fā)測(cè)試系統(tǒng),可實(shí)現(xiàn)同樣的測(cè)試功能,對(duì)嵌入式工程師來說靈活度比較高,難度低,并且與對(duì)應(yīng)的產(chǎn)品設(shè)計(jì)很好地融合在一起,不需要額外的開發(fā)工具,可以說是虛擬儀器技術(shù)的靈活應(yīng)用。根據(jù)不同測(cè)試對(duì)象,只需要修改ARM7元件的簡(jiǎn)易命令解析和響應(yīng)數(shù)據(jù)分析功能部分程序即可構(gòu)建新的測(cè)試系統(tǒng)。該系統(tǒng)具有串口測(cè)試命令生成和測(cè)試結(jié)果分析的功能。
[1]馮雪飛,陳文亮.Windows平臺(tái)下串行通信的幾種實(shí)現(xiàn)方法[J].機(jī)械制造與自動(dòng)化,2002(1):33-38.
[2]朱清慧,張鳳蕊,翟天嵩,等.Proteus教程—電子線路設(shè)計(jì)、制版與仿真[M].北京:清華大學(xué)出版社,2008:125-150.
[3]吳海峰,鄧世建,李紅.基于LabVIEW和Proteus的單片機(jī)數(shù)據(jù)采集系統(tǒng)仿真[J].礦山機(jī)械,2008,36(24):18-21.
[4]周潤(rùn)景,張麗娜,丁莉.基于PROTEUS的電路及單片機(jī)設(shè)計(jì)與仿真[M].2版.北京:北京航空航天大學(xué)出版社,2010:200-234.
[5]張宇,黃偉志,郝巖.基于LabVIEW的多功能數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].自動(dòng)化儀表,2013,34(8):24-6.
[6]夏偉,鄭詩(shī)程,葛蘆生.基于AVR單片機(jī)的電網(wǎng)參數(shù)監(jiān)控系統(tǒng)[J].自動(dòng)化儀表,2008,29(8):35-40.
[7]金昊,柯冬香.PC自動(dòng)化測(cè)試技術(shù)及軟件結(jié)構(gòu)[J].自動(dòng)化儀表,1999,20(4):1-3,9.
[8]汝彥冬.新型井下監(jiān)控分站的設(shè)計(jì)[J].自動(dòng)化儀表,2010,31(6):64-66.
[9]陳健.基于微控制器LPC2101的煤礦安全監(jiān)控系統(tǒng)分站的設(shè)計(jì)[J].中國(guó)礦業(yè),2009,18(1):104-108.
[10]胡文翔,蔡政,郭偉瑋,等.面向RS-485控制網(wǎng)絡(luò)的Modbus協(xié)議擴(kuò)展及應(yīng)用[J].自動(dòng)化儀表,2013,34(4):59-61,65.
Design of the Virtual Serial Port Testing System
In accordance with the practical test demand based on serial port for embedded engineer,the technologies of virtual instrument,Proteus circuit simulation,ARM multi-serial port,and virtual serial port are researched,and the virtual serial port testing system has been designed based on Proteus and ARM7.The general design scheme of the system is proposed and theworking principle of the system,the design of Proteus circuit and the corresponding software are introduced.The engineering application test of the system is conducted.The experimental results show that the design achieves the functions of serial port command generation and test results analysis,and satisfies the test demands based on serial port for embedded engineer.
Proteus ARM interface Testing system Virtual serial port Serial debugging assistant Simulation
TP391+.9
A
國(guó)家高技術(shù)研究發(fā)展計(jì)劃(863)基金資助項(xiàng)目(編號(hào):2012AA062203)。
修改稿收到日期:2014-03-11。
作者郭建昌(1978-),男,現(xiàn)為中國(guó)礦業(yè)大學(xué)(北京)通信與信息系統(tǒng)專業(yè)在讀博士研究生,講師;主要從事通信與信息系統(tǒng)的研究。