APP下载

虚拟串口测试系统设计

2014-10-22郭建昌

自动化仪表 2014年8期
关键词:助手串口命令

郭建昌

(中国矿业大学(北京)机电与信息工程学院1,北京 100083;南阳理工学院电子与电气工程学院2,河南 南阳 473000)

虚拟串口测试系统设计

郭建昌1,2

(中国矿业大学(北京)机电与信息工程学院1,北京 100083;南阳理工学院电子与电气工程学院2,河南 南阳 473000)

针对嵌入式工程师基于串口的实际测试需要,对虚拟仪器技术、Proteus电路仿真技术、ARM多串口技术和虚拟串口技术进行了研究,设计了基于Proteus和ARM7的虚拟串口测试系统,并给出了系统总体设计方案。具体介绍了系统工作原理、Proteus电路详细设计和对应的软件设计,并通过了工程应用测试。试验结果验证了该设计能实现串口测试命令生成和测试结果分析的功能,满足嵌入式工程师基于串口的测试需要。

Proteus ARM接口 测试系统 虚拟串口 串口调试助手 仿真

0 引言

煤矿用手持巡检仪设计采用ARM7芯片LP2101,功能测试中需要通过PC机中串口调试助手发送测试命令,需要对串口调试助手接收到的巡检仪响应数据进行分析。但通过串口调试助手发送的测试命令比较长、种类比较多,所以需要人工不断地输入不同的测试命令。同时,巡检仪响应数据也比较长、种类比较多,所以需要人工不断地分析响应数据。

针对这个问题,希望能有一款串口测试软件,能自动生成测试命令、自动发送测试命令、自动分析响应数据、直接显示分析结果。遗憾的是如同很多嵌入式工程师一样,笔者对诸如VB、Visual C或虚拟仪器软件LabVIEW等可视化开发环境熟悉度不深,不能针对不同应用编写基于串口的测试界面及通信程序[1]。而对嵌入式系统开发中经常用到的电路仿真软件Proteus则相对比较熟悉。

通过研究分析和工程测试应用,设计了一套基于Proteus和ARM7的虚拟串口测试系统,能很好地解决这个问题。

1 测试系统总体设计

基于Proteus和ARM7的虚拟串口测试系统如图1所示[2-8]。图1中,虚线框中代表的是软件,实线框中代表的是硬件。

图1 系统总体设计图Fig.1 General design of the system

测试系统硬件包括PC机、PC机串口(物理串口或者USB转串口都可以),软件包括串口调试助手、Proteus软件、虚拟串口软件、ARM编译软件。其中,Proteus软件设计测试系统电路,建立电路模型;ARM编译软件编译ARM程序;虚拟串口软件建立串口调试助手与Proteus电路中ARM7元件的串口连接;串口调试助手通过串口发送测试命令数据和显示测试结果。本测试系统由相关常用的软件集成构成。这些软件对嵌入式工程师来说是比较简单且经常使用的软件。

测试系统工作原理如下。

①生成测试命令。

PC机中串口调试助手通过虚拟串口发送简易测试命令数据,串口0接收简易测试命令数据。ARM7元件分析接收到的简易测试命令数据,生成实际测试命令数据。串口1发送实际测试命令数据,命令通过PC串口发送给被测试的嵌入式系统。

②测试结果分析。

串口1通过PC机串口接收嵌入式系统响应的测试数据,ARM7元件分析测试响应数据。串口0通过虚拟串口把分析结果发送给串口调试助手显示,从而直接显示响应结果。

基于Proteus和ARM7的虚拟串口测试系统采用双串口的ARM7元件,主要是因为嵌入式工程师对串口调试助手和PC机串口最熟悉,应用最多,而嵌入式系统一般都具有串口通信接口。本测试系统中所有的通信节点都采用串口,通过ARM7元件解析串口助手发送的简易测试命令数据,获得实际发送的测试命令数据。也就是说,串口调试助手发送的命令不变,但通过ARM7元件的不同解析可以发出不同的实际测试命令,减轻了工程师的测试工作量和复杂程度,特别是生成具有校验码的测试命令。通过ARM7元件分析接收到的测试响应数据,把分析结果发送给串口调试助手直接显示,工程师可以直接看到测试结果。针对不同的测试需要,工程师只需要调整ARM7元件命令解析和响应数据分析功能即可。另外,串口调试助手和ARM7元件串口0的通信参数可以固定不变,这样可以进一步减少发送测试命令的复杂程度;而ARM7元件串口1可以根据实际测试的嵌入式系统串口通信参数来设定。

2 测试系统电路设计

基于Proteus和ARM7的虚拟串口测试系统电路设计包括ARM7元件电路和串口电路设计,如图2所示。整个电路设计元件比较少,主要包括一个ARM7元件LPC2101[9]和两个串口元件COMPIM,Proteus元件库直接添加即可,整个电路设计比较简单。LPC2101具有双串口,即串口0(TXD0和RXD0)和串口1(TXD1和RXD1)。串口0与串口元件P0直接连接,P0通过虚拟串口与串口调试助手通信。串口1与串口元件P1直接连接,P1通过PC机串口(物理串口)与被测试的嵌入式系统串口通信。

图2 测试系统电路图Fig.2 Circuit of the testing system

3 测试系统软件设计

本测试系统的软件设计同样也是基于ARM7元件串口的,比较简单。软件设计包括ARM7元件LP2101串口参数设置,简易测试命令数据接收、解析及生成实际测试命令,测试响应数据分析。测试系统程序流程如图3所示。

图3 测试系统程序流程图Fig.3 Flowchart of the program of testing system

首先进行LP2101初始化,主要是设置串口的通信参数。基于Proteus和ARM7的串口测试系统中串口调试助手和ARM7元件串口0的通信参数设置如下:9 600 bit/s,无校验位,8 bit(data),1 bit(stop)。针对不同的嵌入式设备,可以保持不变,简化新测试系统的程序修改,也可以采用别的通信参数。ARM7元件串口1可以根据被测试的嵌入式系统串口通信参数设定。串口通信设置完毕后进入接收简易测试命令状态,解析串口0接收到的简易测试命令,生成实际测试命令。在实际软件设计中,可以采用把实际测试命令放入数组中的方式,建立简易测试命令与实际测试命令数组的关联。这样实际测试命令需要改变时只需要改变命令数组数据即可。然后通过串口1发送实际测试命令,接着等待接收响应的数据并分析,获得测试结果。测试结果也可以采用数组方式,设置几种可能的结果,比如:OK、ERROR。根据分析的结果,直接通过串口0发送给串口助手显示。

4 工程应用

笔者参与设计的煤矿用手持巡检仪测试通信协议基于Modbus协议[10],在Modbus数据包基础上增加数据包头和校验码。测试命令和响应数据格式详细情况如下。

(1)测试命令格式:包长度+分组信息+设备地址+功能代码+寄存器地址高位+寄存器地址低位+ CRCH+CRCL+CC。

①包长度:不包括CC校验码。即包长度仅包括Modbus标准协议数据包。

②分组信息:指的是各功能模块。01代表GPS模块采集到的数据,02代表ZigBee模块采集到的数据,03代表RFID模块采集到的数据,04代表气体检测、A/D和开关量模块采集到的数据。

③设备地址、功能代码、寄存器地址高位、寄存器地址低位、CRCL和CRCH:标准的Modbus通信协议数据包。

④CC:累加和校验,是指前面所有字节相加取一个字节(不包括CRC校验码)。

(2)巡检仪响应数据格式:包长度+分组信息+设备地址+功能代码+数据数量+数据+CRCH+ CRCL+CC。

①包长度、分组信息和设备地址与测试命令中相同。

②CC:累加和校验,是指前面所有字节相加取一个字节(包括CRC校验码)。

③功能代码、数据数量、数据1,…,数据n、CRCL和CRCH是标准的Modbus协议数据包。

测试过程如下。串口调试助手采用2.2版本。虚拟串口软件采用VSP虚拟串口软件,运行后建立一对虚拟串口,分别与串口调试助手和LP2101串口0相连接。编译LP2101程序,获得对应的HEX文件,在Proteus中指定LP2101对应的HEX文件后运行。此时,基于Proteus和ARM7的虚拟串口测试系统已经建立,通过串口调试助手发送简易测试命令,即可进行测试。

测试中需要发送4组9 B的测试命令,特别是还包含CRC校验码及累加和校验码计算。响应的数据最短为9 B,需要分析其中的数据,包括CRC校验码及累加和校验码。但通过基于Proteus和ARM7的虚拟串口测试系统,简易测试命令只需要4组1 B的命令,分别为01~04。响应数据直接显示为对应设备的具体数据,如GPS经度+实际数据维度+实际数据,即直接显示分析结果。

测试结果完全达到基于Proteus和ARM7的虚拟串口测试系统设计的目的,实现了相关功能。

5 结束语

基于Proteus和ARM7的虚拟串口测试系统把嵌入式工程师掌握的 ARM7接口及程序设计技术、Proteus仿真技术、虚拟串口技术有机的集成在一起,不需要使用复杂的Visual Basic、Visual C或虚拟仪器软件LabVIEW等工具开发测试系统,可实现同样的测试功能,对嵌入式工程师来说灵活度比较高,难度低,并且与对应的产品设计很好地融合在一起,不需要额外的开发工具,可以说是虚拟仪器技术的灵活应用。根据不同测试对象,只需要修改ARM7元件的简易命令解析和响应数据分析功能部分程序即可构建新的测试系统。该系统具有串口测试命令生成和测试结果分析的功能。

[1]冯雪飞,陈文亮.Windows平台下串行通信的几种实现方法[J].机械制造与自动化,2002(1):33-38.

[2]朱清慧,张凤蕊,翟天嵩,等.Proteus教程—电子线路设计、制版与仿真[M].北京:清华大学出版社,2008:125-150.

[3]吴海峰,邓世建,李红.基于LabVIEW和Proteus的单片机数据采集系统仿真[J].矿山机械,2008,36(24):18-21.

[4]周润景,张丽娜,丁莉.基于PROTEUS的电路及单片机设计与仿真[M].2版.北京:北京航空航天大学出版社,2010:200-234.

[5]张宇,黄伟志,郝岩.基于LabVIEW的多功能数据采集系统的设计与实现[J].自动化仪表,2013,34(8):24-6.

[6]夏伟,郑诗程,葛芦生.基于AVR单片机的电网参数监控系统[J].自动化仪表,2008,29(8):35-40.

[7]金昊,柯冬香.PC自动化测试技术及软件结构[J].自动化仪表,1999,20(4):1-3,9.

[8]汝彦冬.新型井下监控分站的设计[J].自动化仪表,2010,31(6):64-66.

[9]陈健.基于微控制器LPC2101的煤矿安全监控系统分站的设计[J].中国矿业,2009,18(1):104-108.

[10]胡文翔,蔡政,郭伟玮,等.面向RS-485控制网络的Modbus协议扩展及应用[J].自动化仪表,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

国家高技术研究发展计划(863)基金资助项目(编号:2012AA062203)。

修改稿收到日期:2014-03-11。

作者郭建昌(1978-),男,现为中国矿业大学(北京)通信与信息系统专业在读博士研究生,讲师;主要从事通信与信息系统的研究。

猜你喜欢

助手串口命令
只听主人的命令
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
浅谈AB PLC串口跟RFID传感器的通讯应用
基于EM9000工控板高性能双串口通信模型设计与实现
安装和启动Docker
移防命令下达后
船舶电子设备串口数据的软件共享方法
小助手
灵感助手表彰大会(二)
灵感助手表彰大会(一)