基于多用户无线仿真器系统的研究

2018-05-03 10:00杨清祥齐东坤
铁路计算机应用 2018年4期
关键词:仿真器嵌入式软件管理软件

杨清祥,齐东坤

(河南思维轨道交通技术研究院有限公司, 郑州 450001)

在嵌入式系统设计过程中,仿真器主要应用于对嵌入式软件进行仿真调试、设置断点、观察变量等操作,提高了嵌入式软件的开发效率,节约了设计成本,增强了嵌入式软件验证的广度和深度。目前,用于嵌入式软件仿真的仿真器主要采用USB或RS232等有线方式和PC机连接[1],通过PC机操控仿真器实现软件的仿真调试,该方式由于受线缆长度及运用场景限制,无法满足密封箱体、无人机等特定嵌入式软件仿真的需求,且无法实现多人并行使用同一仿真器系统进行多插件软件的远程联调。

随着WiFi和网络技术的不断发展,基于WiFi和网络技术[2-3]设计一种支持多用户并行使用的无线[4]仿真器系统,是我们亟待解决的问题。本文就针对该问题展开基于多用户无线仿真器系统的技术研究,并提出了系统的框架模型、软硬件设计等详细方案。

1 系统框架模型

无线仿真器系统主要由控制单元和仿真接口单元组成,并与PC客户端共同组成多用户无线仿真器系统(简称:系统)。其中,控制单元与PC客户端通过网络连接,与仿真接口单元间通过无线连接。框架模型[5],如图1所示。

图1 系统框架模型示意图

2 硬件设计

2.1 控制单元

控制单元主要由核心控制器、仿真调试单元、电源单元3部分组成[6],其中,仿真调试单元由若干个仿真器调试端及USB HUB构成[7]。控制单元结构,如图2所示。

图2 控制单元结构示意图

2.1.1 核心控制器

平台控制采用目前已比较成熟的Intel集成南桥板卡,配置2.4 GHz、4核的Intel Core i7-4700EQ控制器,8 GB的SDRAM,16G SATA NAND SSD,且集成千兆网卡。核心控制器内安装Windows 7操作系统、仿真器管理软件、单片机仿真调试软件(如Keil、IAR)等。

核心控制器主要实现如下功能:

(1)负责为不同的客户端动态分配唯一权限的工作区,且工作区仅对具备权限的客户有效,并负责各工作区的管理。

(2)通过USB接口与仿真调试单元进行通信,并负责仿真器调试端的管理、仿真器调试端与仿真器目标端的匹配。

(3)负责仿真器管理软件、单片机仿真调试软件存储和管理,并为软件提供运行环境。

2.1.2 仿真调试单元

仿真调试单元由若干个相对独立的仿真器调试端组成,每个仿真器调试端通过USB HUB与核心控制器相连。仿真器调试端主要功能是负责核心控制器与仿真器目标端的数据交互,对仿真数据包进行转发。每个仿真器调试端由控制器NRF52840、USB接口(包括USB外设口和USB插座)、无线收发器(2.4 GHz Radio)、调试接口、LED显示等组成,USB接口用于与外部设备连接,无线收发器用于通过2.4 GHz Radio与仿真器目标端通信,调试接口用于内嵌软件的下载、调试。结构示意图,如图3所示。

图3 仿真器调试端结构示意图

仿真器调试端采用nRF52840作为主控芯片。nRF52840是无线控制芯片,该芯片内嵌32 bitARM Cortex-M4F CPU,支持蓝牙5.0、IEEE802.15.4及2.4 GHz私有协议,同时与nRF51及nRF24系列兼容。考虑到无线仿真器调试效率,保证较高的有效通信速率,无线通信没有使用蓝牙5.0等协议,而采用了2.4 GHz私有协议,2.4 GHz无线通信包结构,如图4所示。

2.4 GHz私有协议无法保证相关通信数据可靠性,存在丢包可能。为此制定了以下无线通信交互过程:空闲状态时仿真器调试端和目标端的2.4 GHz均处于接收模式,每次通信过程均由仿真器调试端发起,调试端在发送数据时先切换为发送模式,发送数据成功后,立刻切换为接收模式等待接收数据,目标端处理方式类似,这样可保证数据无线传输时不冲突。为保证无线通信的可靠性,无线通信采用交互应答模式,同时在有效载荷部分增加包号信息,保证仿真数据包可靠地进行交互。交互流程,如图5所示。

2.1.3 电源单元

图4 无线通信包结构示意图

电源单元主要负责将控制单元外接的AC220 V电压转换成DC5 V、DC3.3 V,用于给核心控制器、仿真调试单元供电。

图5 无线通信交互流程示意图

2.2 仿真接口单元

仿真接口单元由若干个相对独立的仿真器目标端组成,每个仿真器目标端通过JTAG/SW接口插在一个待仿真调试目标板的CPU调试端口上,各仿真器目标端独立工作,通过2.4 GHz Radio与其匹配仿真器调试端通信。仿真器目标端由控制器NRF52840、无线收发器(2.4 GHz Radio)、LED显示及拨码开关、JTAG/SW接口、调试接口等组成,无线收发器用于通过2.4 GHz Radio与仿真器调试端通信,LED显示及拨码开关用于通信显示及设置仿真器目标端ID,JTAG/SW接口用于与待仿真调试目标板的CPU相连,调试接口用于内嵌软件的下载、调试。结构示意图,如图6所示。

图6 仿真器目标端结构示意图

2.3 客户端

客户端由若干台通过互联网与控制单元相连的独立PC机组成,客户端通过远程桌面的方式连接至控制单元的核心控制器,并将嵌入式软件仿真时所需的源码、动态库等上传至预先分配的唯一权限工作区,然后运行仿真器管理软件请求进行仿真调试,运行单片机仿真调试软件进行嵌入式软件的远程仿真调试。

3 软件设计

3.1 用户账户设置

在进行嵌入式软件仿真调试前,需要将嵌入式软件仿真时所需的源码、动态库等上传至核心控制器,为了保证用户上传文件的安全性和可靠性,且禁止相互访问,采用Windows自带的用户账户管理功能为每个客户建立一个私有账户及私有密码。

用户使用各自的账户远程登录核心控制器,此时仅能看到系统已预先分配给自己的目录及文件,并能远程运行核心控制器上的仿真器管理软件及单片机仿真调试软件,进行仿真器的动态分配及嵌入式软件的仿真调试。

3.2 远程多用户并行访问设置

由于允许多用户并行使用无线仿真器系统进行不同软件的仿真调试,且客户端是通过远程桌面方式访问核心控制器上的仿真器管理软件和单片机仿真调试软件[8-9],但由于远程桌面方式存在并行访问客户数量限制,无法完全实现多用户并行远程访问的目的,需借助其他特定设置工具来实现,这里以Windows 7为例介绍如何解除远程桌面并行访问用户数量的限制。

(1)远程服务器管理工具安装及设置。从微软官方网站下载远程服务器管理工具(文件名为Windows6.1-KB958830-x86-RefreshPkg.msu)并安装,安装完成后依次点击“控制面板—程序—打开或关闭Windows功能”,进入如图7所示界面,在图中选中“远程桌面服务工具”项。

(2)并行访问用户数量限制的解除。下载允许多用户并行访问的补丁文件(文件名为Universal-TermsrvPatch),并以管理员的身份安装,重新启动后运行gpedit.msc,依次点击“计算机配置—管理模板—Windows组件—远程桌面服务—远程桌面会话主机—连接”,并将“限制连接数量”设置为“禁用”或“未配置”。

通过上述两步即可实现多用户通过远程桌面方式并行访问核心控制器。

图7 远程桌面服务工具选择示意图

3.3 仿真器管理软件

仿真器管理软件主要用于无线仿真器的管理、仿真器调试端的动态分配、仿真器调试端与目标端的匹配、客户端仿真调试请求的受理、仿真器目标端ID与待仿真嵌入式软件对应关系的建立等。

3.4 仿真器调试端和目标端动态链接

无线仿真器调试端和目标端并不是唯一匹配,即一个仿真器调试端可以根据应用需要分别与不同的仿真器目标端组成不同的无线仿真器。仿真器管理软件负责控制单元中多个仿真器调试端的动态管理,并根据实际应用分配不同的工作频段;仿真器目标端可通过拨码开关预先设置唯一的ID,该ID用于与仿真器调试端匹配。仿真器调试端和目标端通信的初始频段为系统预先设置的默认工作频段。

无线仿真器动态链接流程如下:

(1)当客户端通过运行核心控制器上的仿真器管理软件发送某软件的仿真调试请求时,仿真器管理软件首先判断该软件是否预先在配置,若配置,从配置库中查找该软件隶属目标板所插的仿真器目标端ID号。

(2)仿真器管理软件结合控制单元中各仿真器调试端的空闲状况及工作频段的使用情况,给申请客户端分配仿真器调试端及仿真器调试端与目标端通信的工作频段。

(3)仿真器管理软件驱使已分配的仿真器调试端通过默认工作频段向仿真接口单元广播仿真器匹配信息包,且匹配信息包中应包含仿真器目标端ID及双方后续通信的工作频段。

(4)与仿真器匹配信息包中ID一致的仿真器目标端收到匹配信息包后,通过默认工作频段应答仿真器调试端;然后,仿真器调试端、目标端自动按仿真器匹配信息包中约定的工作频段进行设置,并自动连接,组成一个完整的无线仿真器。

当客户端完成软件的仿真调试后,通过仿真器管理软件解除仿真器调试端和目标端的匹配,工作频段恢复至默认工作频段;同时,将该仿真器调试端状态设置为空闲。

4 无线仿真器应用步骤

当需要同时进行多个嵌入式软件仿真调试时,需先将多用户无线仿真器系统连入网络,并设置IP,然后进行下列操作:

(1)将仿真器目标端分别插在待仿真调试目标板的CPU调试端口,并通过拨动仿真器目标端上的拨码开关设置仿真器目标端ID,且ID唯一。

(2)运行核心控制器上的仿真器管理软件,建立仿真器目标端ID与待仿真嵌入式软件的一一对应关系。

(3)软件仿真调试人员使用已预先分配的私有账户和密码,通过远程桌面的方式登录至多用户无线仿真器的核心控制器,并使用仿真器管理软件发送仿真调试请求。

(4)仿真器管理软件根据仿真器请求,并结合仿真器调试端的空闲状况及工作频段的使用情况,给请求账户分别分配不同的仿真器调试端,及仿真器调试端与目标端通信的工作频段;并驱使已分配的仿真器调试端通过默认工作频段广播仿真器匹配信息包,匹配信息包中包含仿真器目标端ID及双方后续通信的工作频段。

(5)与仿真器匹配信息包中ID一致的仿真器目标端收到匹配信息包后,通过默认工作频段应答仿真器调试端;然后仿真器调试端和目标端各自按约定的工作频段进行设置,并自动建立连接,组成一个完整的无线仿真器。

(6)软件仿真调试人员将软件仿真调试所需的源码、动态库等上传至核心控制器对应目录。

(7)运行单片机仿真调试软件,进行软件的仿真调试。

(8)当软件仿真调试完成后,仿真器管理软件自动断开仿真器调试端与目标端的连接,解除仿真器目标端ID与待仿真嵌入式软件的对应关系,并将仿真器调试端状态设置为空闲。

(9)仿真器调试端和目标端分别将各自的工作频段恢复至默认工作频段。

(10)软件仿真调试人员退出远程桌面链接,并从仿真调试目标板上拔出仿真器目标端,重置ID。

5 结束语

本文针对传统仿真器无法满足密封箱体、无人机运动场景及多用并行使用同一仿真器系统进行软件仿真调试等问题,进行了基于云端多用户无线仿真器系统的技术研究,该方案已在新一代列车运行监控系统(LKJ)软件仿真测试系统中成功试用,解决了软件仿真调试的空间范围限制,实现了在集成机箱内对多插件软件联调仿真,提高了软件研发效率,尤其在设备型式试验排错过程中,体现出本方案的优势。

参考文献:

[1] 汪安民,张松灿.基于USB2.0接口的DSP仿真器技术[J].单片机与嵌入式系统应用,2005(10):57-59.

[2] 刘安玲,冯晓虹.铁路平交道口远程图像监控系统的设计与实现[J]. 铁路计算机应用, 2008,17(5):39-42.

[3] 左长进.铁路统型云端复示系统的开发与应用[J]. 铁路计算机应用,2015,24(1):29-32.

[4] 刘晓虎. 基于无线网络技术实现LKJ车载数据的换装[J]. 铁路计算机应用,2012,21(7):52-54.

[5] 高振国,赵藴龙,李 香,等.GloMoSim无线网络仿真器剖析[J].系统仿真学报,2006,18(s2):672-675.

[6] 危 蓉,徐 伟,麦永浩.ARM模拟器的设计与实现[J].海军工程大学学报,2016,28(2):9-14.

[7] 高 扬.USB接口无线仿真器—硬件模块设计[J].电子测试,2015(2):6-9.

[8] 胡伟南.关于团城桌面控制的几个实用性问题[J].网络安全技术与应用,2010(4):37-38.

[9] 唐 红,徐文胜,李 楠.云制造环境下基于远程虚拟桌面的软件资源共享研究[J].计算机应用与软件,2015,32(7):29-34.

猜你喜欢
仿真器嵌入式软件管理软件
仓储管理软件在物流自动化解决方案中的应用与发展
AI仿真器将大大提高科学领域的仿真模拟速度
嵌入式软件测试数据传输稳定性检测方式分析
全景相机遥控器嵌入式软件V1.0 相关操作分析
基于Eclipse的航天嵌入式软件集成开发环境设计与实现
航天嵌入式软件浮点运算误差分析与控制
车辆自组织网络的仿真趋势
基于32位SPARC处理器的JTAG仿真器设计与实现
2007年中国管理软件评选-获奖名单
“2008年度中国管理软件行业评选”