双模手机测试系统的软件设计
作者:翁志恒,饶楠,张定会 时间:2006-12-05 21:17 来源:电子设计信息网-www.edires.net
摘要:本文着重介绍了GSM/WCDMA双模手机测试软件(DOLL Y) PC部分的设计, 详细描述了该软件PC端的相关线程, 并对各线程之间的数据交换方式作了说明。该软件用于手机待机状态( idle mode) 的信号测试, 项目已进入系统调试阶段, 与以往的测试方法和手段相比, 其测试性能得到了较大的提高。
关键词:GSM;WCDMA ;GPIB;线程
1 引 言 文中描述的是手机测试软件(整体工程以DOLLY 命名) PC部分的驱动程序。该软件与三菱公司提供的硬件系统结合, 构成GSM/WCDMA双模手机测试系统(即DOLLY Tool)。整个系统分为PC 部分(DOLLY PC) 和嵌入式部分(eDOLLY) 两块。文中介绍的是PC 部分的软件实现(即DOLLY PC)。该系统的PC 端(DOLLY PC) 按要求执行预先编写的测试脚本(GPIB 设备驱动脚本、手机测试脚本和消息格式文件脚本) , 完成手机待机状态测试内容。嵌入式端(eDOLL Y) 模拟DoCoMo L ayer2-3 的功能(图1中的L1 wrapper) , 驱动手机Layer1 (图1中的L1)。此外该软件在测试模式下能够根据外部要求自动调整测试仪器的设定, 如CMD55, CMU200 和Agilent 8960等。
2 测试软件描述
DOLLY PC是以VC610 作为开发工具, 运行于W indows2000 SP4环境下, 其概念如图1所示。测试软件的基本功能是提高脚本文件在PC 端测试的灵活性。

图1 测试软件概念示意图
图1中右上侧的PC (W indow s2000 SP4) 为DOLLY工程的DOLLY PC 部分。所有的测试脚本运行于DOLLY PC 上。与DOLL Y PC 对应且运行于嵌入式系统上的部分为eDOLLY(图1 的左侧部分)。eDOLLY 承担着DOLLY PC 与L 1 wrapper 的消息传递, 并根据DOLLY PC上测试脚本的执行情况模拟DoCoMo Layer2-3 (L 1 wrapper) 功能, 此外, eDOLLY还负责嵌入式部分与PC部分的串口连接。DOLLY PC 与eDOLLY 包括以下部分:
(1) PC 端用户界面模块,UI Interface Thread;
(2) PC 端的脚本解析模块, Responder Thread;
(3) PC 端串口连接模块,MCOM Thread;
(4) PC 端GP IB 控制模块, GPIB Thread;
(5) 嵌入式系统模块, eDOLLY Task。
3 测试系统PC 部分的软件设计
DOLLY PC的驱动部分由四个线程构成, 包括一个用户界面线程(UI Interface Thread) 和3个工作线程: 脚本解析线程(Responder Thread)、串口控制线程(MCOM Thread) 和GPIB 设备线程(GPIB Thread)。用户线程是进入主程序后立即开启的线程, 它提供了人机界面, 测试者能够在此界面上完成操作步骤; 脚本解析线程的主要功能是解析脚本, 其作用相当于编译器; 串口控制线程的主要功能是控制PC和嵌入式系统之间的数据传输; GPIB线程根据测试要求自动设定GPIB设备参数。
3.1 用户界面线程
用户界面线程, 简称UI线程, 定义为用户线程。它响应用户界面的控键触发事件, 是测试软件PC 端(DOLLY PC) 的主线程。用户界面控键示意图如图2所示。

图2 用户界面控键示意图
图2中的Mobile, Load, Test, Help 和Quit 为主程序界面中的按钮下拉菜单, 其包含的控键如图3所示。Mobile中控键作用分别为串口连接, 串口断开和串口设置。Load的目的是选择单个载入或批载入测试脚本文件。Test为开始测试按键, 用户也可选择Stop停止测试。Q uit是退出测试环境。Help选择相关资料查询。用户可按照图3 的流程说明进入主程序, 并对照上文中提到的按钮功能完成测试步骤。

图3 UI 线程(UI Thread) 程序流程图
3.2 脚本解析线程
脚本解析线程是PC端软件的工作线程, 该线程响应UI线程发送的控件消息; 控制串口线程数据的接收和发送。该线程负责解析脚本文件并执行解析后脚本。手机测试脚本由一系列的动作关键字组成。它描述了解析过程的运算法则(即测试动作和其状态)。脚本解析线程将这些关键字翻译成可执行代码。这一过程相当于编译器, 并遵守YACC&L EX 编译语法。
消息格式文件脚本是以XML语言编写。它描述消息所依据的运算法则(即每一消息的名称, 大小和参数)。脚本解析线程将解析这些XML语言编写消息的内容及结构, 并存入计算机内存。分包/组包(ungroup/group ) 模块将根据消息名访问该内存, 获得特定消息的结构并进行比较和处理相应消息。GPIB设备驱动脚本是INI格式文件, 它设定GPIB所联接测试仪器的参数。
图4所示当用户正确载入测试脚本并连接无误后, 可选择Execute按钮开始自动测试。程序运行后即启动脚本解析线程对各载入的脚本文件进行解析, 并根据脚本要求执行测试内容。其中各线程间有消息传递, 脚本解析线程要根据要求显示或应答。Compare选择框是脚本解析线程对从串口收到的消息与自身文件解析出的消息进行比较, 一致时执行该动作, 否则报错处理。Single表示该次测试只进行一次。

图4 脚本解析线程(Responder Thread) 流程图
3.3 串口线程
串口线程作为计算机与嵌入式单元串口连接的通信部分, 它为脚本解析线程接收或发送数据, 并对在串口上传输的消息数据流作分包和组包( ungroup/group ) 处理。它与UI线程和脚本解析线程都有直接联系。来自串口驱动部分或脚本解析线程的相关消息都能被串口线程所处理。
图5中WaitEventFlag框为串口启动后等待其它线程的消息, 包括用户从主界面发出的, eDOLLY端和脚本解析线程发来的消息, 串口收到这些消息后作相应的处理, 并决定是否执行相应的消息。

图5 串口线程(MCOM Thread) 流程图
3.4 GPIB 设备线程
GPIB设备线程是包括GPIB设备驱动软件的工作线程。它设定GPIB设备参数, 控制GPIB设备运行,并接受其响应消息。该工作线程与脚本解析线程和UI线程都有直接联系, 它们之间也有消息传递,UI线程可直接终止该线程运行, 脚本解析线程决定该线程的启动和数据传递, 并接收其消息响应。GPIB设备线程包含对不同GPIB设备驱动的设定, 如: CMD55, CMU200, 或Agilent8960。在GPIB设备线程中直接调用这些设备所提供的A PI函数。在此线程中可根据提供的三种测试仪器自动选择相关测试文件。
图6 中的程序比较简单, 在脚本解析线程读到启动GPIB设备线程的指令时该线程开始执行, 按照图6所示过程设置GPIB设备, 在结束前判断是否执行一次, 如是则结束; 如选择否, 则重复这一步骤。

图6 GPIB设备线程(GPIB Thread) 流程图
4 结束语 该测试系统可以作为手机硬件设计的辅助工具,与以往的测试方法相比, 缩短了测试时间, 明确了测试目的, 具有友好的人机界面, 极大地提高了测试的灵活性和方便性, 同时缩短了手机产品的开发周期。该测试系统亦可在现有基础上作进一步改进, 使之用于多种制式手机的测试。