微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于嵌入式的远程测试控制技术

基于嵌入式的远程测试控制技术

时间:09-17 来源:互联网 点击:
1 总体方案

本应用是在测试终仪中增加网络接口模块,以互联网为传输平台,在远端接入诊断PC而实现远程控制及诊断功能的,其框图如图1所示。



诊断专家人员可在诊断PC上通过Internet向异地测试仪发送指令,测试仪接收并按照指令要求完成对故障设备的自动测试,将测试数据通过网络传回诊断PC,建立数据实时交互的传输平台。

2 基本原理

2.1 互联网的基本结构和特征  

设备的远程监测诊断是计算机科学、通讯技术与故障诊断技术相结合的一种新的设备故障诊断模式。TCP/IP是发展至今最成功的通信协议。该协议分为4层,由上到下依次为应用层、传输层、网络层和链路层。  

本应用使用的是EM2000网络模块,底下3层的较复杂的协议已经固化在他的ASIC中,能够实现透明的数据通信。这样,研究工作主要集中在应用层的设计和功能实现上。这包括建立在传输层上的数据帧定义、交换数据的定义、应用功能的设计和人机交互界面的设计等。

本应用中使用的是EM2000网关,他是用来在嵌入式系统与互联网建立数据连接和协议转换的设备。

一方面PC端的网络应用程序将应用层数据打包成为IP包在网络上传送,EM2000将辨识和解析这些数据包,把应用层的原始数据转发至RS 232接口。

另一方面EM2000也将RS 232接口的数据封装成为IP包,传送至PC端的网络应用程序。支持透明传输和简单协议两种工作方式;EM2002网关在网络接口部分具有WWW接口,用户可以通过浏览器在网络上实现对EM2002及串行设备的配置和管理。在网络中的具体位置如图2所示。



2.2 传输帧的定义

下面主要考虑第4层应用层的具体使用,即数据传输的帧格式、具体的定义等。根据本测试设备的状态和显示的功能,其格式可设计成2大类,即测试数据帧和命令控制帧。格式的设计应能实现系统对端间信息的无障碍交流、易于识别和判断,同时,还应保证传输的可靠性,兼顾信息利用率。对该系统,经过实际信息交互统计,确定使用一个字节的长度,即256种状态。  

(1)帧类型定义

传输帧格式的定义如表1所示。第7位为类型定义位,“1”表示为数据帧;“0”为命令控制帧。



(2)数据帧

数据帧格式的定义如表2所示,主要用来传送检测的数据结果。根据需检测信道数量和检测项目来设置数据帧的字节。本系统设置8个数据信道,8个测试项目和“正常”/“故障”2个参数。



对于数据帧,考虑到本设备测试信道的数量和测试项目的多少,兼顾处理速度的快慢和复杂程度,最后确定信道号范围为0~7,占用数据帧的第6位至第4位,以二进制表示,高位在前,低位在后;测试项目范围为0~7,占用数据帧的第3位到第1位,表示方式同上(根据需要,以后扩容时,适当增加字节即可)。数据帧的最后一位定义为测试结果,“0”表示正确无误,“1”表示故障。这里没有采用通常的校验位,主要是因为该通信速率较低,目前网络传输的可靠性非常高,这方面可以忽略,以提高处理效率,简化程序编写难度。

(3)命令控制帧  

命令控制帧的格式定义如表3所示。字节的最高位固定为“0”,主要用来传输测试终端和远端诊断终端的控制命令和设备状态信息。



命令控制帧按传送方向不同,可分为命令控制字和状态表示字2种。对于命令控制字,第6位到第4位为“101”,是命令识别位;后4位为命令代码,表示不同种类的测试进程。测试平台将自动返回相应的信息,其帧格式为第6至4位为“001”,这是信息数据的识别位,其余位为不同类型的定义。对于硬件复位命令,测试端返回1EH;链路检测为1FH。

3 具体实现

3.1 网络接口设计

嵌入式系统和微型计算机系统一样,必须通过TCP/IP协议转换才能接入Internet。在这里数据通信的设计主要体现在串口的设计,将MCU的数据按照预先定义的格式通过与转换芯片连接的串行接口发送或接收即可。设计中只要MCU的串口和EM2000网关的交换速率匹配即可,按照字节方式逐字发送和接收。另外,EM2000网关的接口电平与TTL兼容,这就省略了电平变换电路,使得设计实现起来更简便。

3.2 MCU的软件设计

嵌入式MCU系统软件主要由MCS-51汇编程序编写。为了实现本地键盘控制与异地远端控制同步工作,需要对部分软件进行重新编写。主要包括初始化程序、扫描程序、执行程序、串口中断调用程序、协议翻译程序等。  

(1)存储单元初始化的特殊要求

众所周知,测试主程序首先对系统所用变量进行初始化,包含堆栈栈底的指针设定、寄存器、状态字的初始值设定、串口模式/状态字的初始设置等,但在这里由于远程通信的特殊情况,具有特殊要求。虽然部分存储单元在从加电到复位完成时,单元值已经被置位,但是仍需再置位。这主要考虑当在平台运行期间,各个寄存器和存储单元都会有不断变化的新值存入,这样,当进行远端复位操作时,有些存储单元的值不会自动复位,如果按原程序执行就会发生不确定的问题。为保证存储单元内容的一致性和可控性,对寄存器空间进行初始化是必不可少的。  

(2)子程序间的通信机制

在处理键盘控制和远端控制同步运行时,嵌入式实时操作系统常采用邮箱查询方式。首先扫描及防抖程序负责对键盘的操作进行扫描,经消除抖动和干扰影响后,将键盘值放入35H,并向邮箱发送“键盘动作事件”的信件;同时,串口通信程序不间断扫描端口数据,如果判断有命令数据注入,则将命令值放入36H内,同时向邮箱发送。串口命令发生事件”的信件。这样通过对主程序信箱的查询,如果发现有信件存在,则对信件进行相应翻译,变成机器可以执行的代码,对设备进行动作调度和相关信息处理。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top