原创 基于嵌入式控制器的远程监控系统的开发

2008-6-16 09:21 2052 6 6 分类: 测试测量
基于嵌入式控制器的远程监控系统的开发
2008年5月22日 14:50     


1 引言

在仪器仪表迅速发展的同时,计算机和网络技术也在迅速发展,PC机已经从高速增长进入到平稳发展时期,单纯由PC机带领电子产业蒸蒸日上的时代己经成为历史,嵌入式系统的出现和广泛应用,使计算机和网络进入了后PC时代。基于嵌入式智能仪表远程监控系统作为工业控制网络重要发展方向之一,是工业数据通讯与控制网络技术、互联网技术等多种技术共同发展的结果[1]。该项技术的发展与成熟将会给人们的生产生活带来深远的影响。

2 嵌入式控制器硬件设计

控制器的定义:嵌入式控制器以高速处理器为核心,由高速处理器和其他芯片协同工作来控制的电子设备或装置,能够完成监视、控制等各种自动化处理任务[4]。嵌入式控制器是系统的核心部分。

2.1 系统硬件结构图


6fb4aa5f-f31f-4e15-81c1-2f2ce1d6c763.jpg


图1 嵌入式控制器系统硬件结构图
嵌入式控制器的系统硬件结构图见图1所示。由5V、3.3V和1.8V二种直流电源供电。系统主要由DSP芯片TMS320C5402、256K FLASH存储器、以太网接口芯片RTL8019AS、 A/D转换芯片、串口芯片等组成。

从嵌入式控制器的系统硬件结构图以看出嵌入式控制器是嵌入式远程监控系统的关键部分。现场智能仪器仪表可以通过嵌入式控制器的模拟量和数字量接口输入信号,由控制器内嵌的服务程序,通过以太网或Modem,在远程由客户端程序对现场智能仪表进行信号的查看和控制,从而实现智能仪表的远程监控。

2.2 处理器DSP 5402最小系统设计

(1)复位电路。同时设计上电复位电路和人工复位电路,当系统运行中出现故障时可方便地人工复位。复位电路一方面应确保复位低电平时间足够长,保证DSP可靠复位;另一方面应保证稳定性良好,防止DSP误复位。复位电路采用MAX706R芯片组成自动复位电路。MAX706R是一种能与具有3.3V工作电压的DSP芯片相匹配的自动复位芯片。该芯片的具体接法如图2所示。

(2)时钟电路。一般DSP系统中经常使用外部时钟输入,因为使用外部时钟时,时钟的精度高,稳定性好,使用方便。由于DSP工作是以时钟为基准,如果时钟质量不高,那么系统的可靠性、稳定性就很难保证。因此,本系统拟采用外部时钟源提供时钟,如图3所示。将外部的时钟信号直接加到DSP芯片的X2/CLKIN引脚,X1引脚悬空。设置CLKMEI=1,CLKMD2=1,CLKMD3=1。复位后使DSP芯片的时钟为外部晶振频率的1/2,即2分频。
d3c5f14c-bfe8-47e0-9a1e-af40f495b176.jpg


图2 系统自动复位电路


982f9e06-8ecb-4a76-b54d-6d2dd5e0044e.jpg


2 CodeTest嵌入式测试工具概述

CodeTest具有强大的测试分析功能。

由于CodeTest对软件打点技术和从总线捕获数据进行了改善和提升,正是这种原理上的优势,使得CodeTest具有强大的性能分析、内存分析、高级覆盖率分析和代码跟踪功能。

CodeTest工具主要有三个版本:一个是纯硬件版,由于它不能满足用户的需求,早已被淘汰;另外两个是纯软件版和硬件辅助软件版,其中以硬件辅助软件版最好。

纯软件测试工具的测试原理有两个必需的任务——插桩函数和预处理任务。由于插入插桩函数和预处理任务的存在,使系统的代码增大,对系统的运行效率有一定的影响。但是,随着CPU速度和存储技术不断提高,纯软件版方案仍然可行。

3 DCS系统嵌入式测试方案设计

由于DCS系统比较复杂,服务器上有15个lib文件、20个exe任务,操作员站有4个dll工程和6个exe任务,这些模块在管理网层构成一个实时运行的整体。测试一个程序或者一个测试用例,必将影响其他任务,例如:在操作员站上写一个值到I/0控制站,改变一个阀门的开关状态,这个值会被传到实时数据库,完成操作历史记录,然后送到系统网驱动,由与I/0站通信的gateway.exe和GatewayMonitor模块发到现场控制站。工程师站主要用于离线组态,其dll工程和exe工程一共有十几个,在进行工程组态时,会出现多个模块同时运行。在下装时,下装任务模块和服务器操作员站程序会同时运行(至少与操作员站、服务器的守护程序同时运行),此时,要想把覆盖率数据收集齐全,在以前是非常困难的。因为测试者的一个动作将会引起几台机器上的多个模块的代码执行。使用CodeTest测试工具,运用其设计巧妙的测试方案,终于解决了这个难题。

3.1 纯软件版CodoTest测试方法

用纯软件版CodeTest工具测试时,先用CodeTest进行插桩(打点),生成exe或者其他可执行文件,然后在装载测试程序的机器A上运行CodeTest的ctserver.exe,并设定其收集测试数据的端口,格式如下:
ctserver-p 3050

接着在机器B上(A和B也可以是同一台机器)运行CodeTest Manager(ctmgr),创建workspace,指定插桩文件、内存检查目标文件、端口和etserver所在机器的IP地址,连接ctserver并执行。最后在A上运行需要测试的程序C.exe,这样C.exe的执行情况、性能、覆盖率、内存是否泄漏等数据都被采集在CodeTest Manager的Software Probe中。CodeTest Manager提供了友好的窗口界面,可以查看每个函数的运行覆盖率,也可以查看每个文件的覆盖率,还可以对测试结果进行保存、导出、合并等。



 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条