脉冲/数据产生器作为通用测验信号源,能够产生脉冲、群脉冲和数据三种类型的信号输出。参数接连可调的脉冲信号和大容量、多样化的数字信号,满意了高速数字设备中噪声容限的测验要求以及大型集成电路和射频体系的规划初期对鼓励信号源的需求。跟着嵌入式技能的飞速发展以及广泛运用,运用嵌入式操作体系支撑进行智能仪器设备开发正成为干流。Win CE体系是美国微软公司推出的一种32位嵌入式操作体系,能够完结实时、多任务、多线程操作,一起具有超卓的图形用户界面。本文完结了一种以嵌入式WinCE 体系为支撑的脉冲/数据产生器运用软件规划。
1 体系规划计划
脉冲/数据产生器体系结构如图1所示,包含嵌入式体系、操控主板模块、触发模块、时钟模块以及模仿通道输出模块。整个体系中,各个模块依照必定效果互相支撑,和谐作业。
时钟模块能够产生体系所需的接连可调、高精度的时钟信号;触发模块用以接纳外部触发信号,完结与外部电路的同步;模仿通道输出模块完结对前级产生的脉冲和数据信号的起伏、电平、沿的操控与调整;操控主板模块选用FPGA 来构建主操控逻辑体系,完结触发方式、时钟频率、脉冲产生和数据地址产生等相关操控。
嵌入式体系以及运转于其上的运用软件在整个体系结构中处于最前端。
通过仪器人机界面接纳操作人员的指令并与后级的操控主板进行数据交换,终究由操控主板操控这今后硬件模块完结用户指令,在模仿通道输出端得到相应的脉冲信号和串行数据信号。为了满意仪器设备实时性的要求,嵌入式操作体系选取WinCE 6.0,微处理器挑选三星公司的S3C2440A,其内核为ARM920T,能够满意低价格、低功耗、高性能的需求。
2 人机界面开发软件集成开发环境选取微软公司供给的VisualStudio 2005.用于定制体系的Platform Builder for CE6.0 被作为插件集成到Visual Studio 2005 中,这样定制操作体系和开发运用程序都在同一开发环境下,防止频频切换开发环境的费事。在完结WinCE 操作体系的定制、导出软件开发包SDK之后,便能够进行驱动程序和运用程序的开发[4].脉冲产生器作为现代电子丈量仪器,其软件开发包含两部分:界面规划以及功用规划。
界面是人机之间信息传递的桥梁,是仪器的重要组成部分。界面规划需求完结简练、友爱的人机界面,用户通过操作界面完结对仪器的操控。人机界面软件流程如图2所示。功用规划则是树立在硬件模块的根底之上,环绕硬件模块别离完结仪器体系各个功用。
体系发动后,软件开机主动运转,首要进行开机自检,承认仪器各个硬件设备是否作业正常。然后主线程发动,进行初始化作业,顺次初始化一切工程变量,创立并初始化一切页面为最近一次关机前的状况。接着进入音讯循环和树立过错信息陈述循环。程序不断检测过错音讯行列看是否有过错产生,一旦发现过错音讯行列有过错需求呼应时,顺次读取并处理过错音讯陈述,转而履行相应的功用。比方用户操作过错时,过错信息显现就会弹出,提示用户正确的操作办法,直至用户操作正确。假如有键盘音讯抵达,则通过主线程交给相应的各个页面去呼应控件音讯,到达与仪器操作人员进行信息交互的意图。整个人机界面规划根据CFormView类。键盘信息处理等模块被规划成动态链接库的方式,既节省了体系资源,一起也便于程序今后的保护和晋级。
3 数据传输的完结
数据传输的功用为完结脉冲/信号产生器上层运用软件和底层硬件体系之间的数据通信。嵌入式WinCE6.0 操作体系通过对操控主板模块进行操作,终究完结对各个硬件的操控。ARM 的GPIO 口操作能够完结此功用需求。S3C2440A 供给了130个通用IO 口。
GPIO 操作主要由端口装备寄存器GPXCON、端口数据寄存器GPXDAT、设置接口上拉电阻寄存器GPXUP(其间X标明对应的GPA到GPJ端口)等寄存器来完结。
在WinCE 6.0 体系下,将GPIO 的实地址(例如S3C2440A 的GPIO 的基地址为0X56000000)映射到虚拟地址空间(对应为0XB1600000),通过对这段虚拟地址空间的操作,就能够完结对GPIO或许其他片内资源的操控、输入输出作业。在编程中需求运用到两个要害函数VirtualAlloc 和VirtualCopy.首要通过VirtualAlloc来取得一段虚拟地址空间的分配,然后VirtualCopy将一个虚拟地址绑定到一个物理地址上,然后完结对物理硬件的拜访。为了增强体系的安全性和安稳性,WinCE 6.0加强了对虚拟地址拜访的约束,驱动被放到内核空间下,使得WinCE6.0在运用程序中不能再直接对物理地址进行操作。虽然在上层运用程序中无法调用Virtu-alAlloc和VirtualCopy,可是能够在内核态下编写驱动程序,通过VirtualAlloc和VirtualCopy进行内存映射,故在WinCE6.0 体系下,拜访物理地址能够采纳的一种办法是:在内核方式中编写流驱动程序,将驱动程序编译到内核后再下载到NandFlash中。相关代码如下: volatile S3C2440A_IOPReg *v_pIOPRegs;
/*请求空间*/
v_pIOPRegs=
(volatile S3C2440A_IOPReg *) VirtualAlloc (0,
sizeof
(S3C2440A_IOPReg),
MEM_RESERVE,PAGE_NOACCESS);
i(f /*请求空间失利*/)
{/*进行过错处理并回来*/
} else {/*进行映射*/
if (!VirtualCopy ( (PVOID) v_pIOPRegs, (PVOID)
(S3C2440A_IOBase》8) , sizeof (S3C2440A_IOPReg) ,
PAGE_READWRITE|PAGE_NOCACHE ))
{/
*假如映射失利,开释请求的空间并回来*/}}
S3C2440A整合了多种接口和总线。根据通用片选nGCSn 的SRAM 接口具有装备简略、逻辑操控信号少、寻址以及数据读写的速度高的特色,因而挑选nGCS2作为片选信号,一起调配写使能信号nWE 以及读使能信号nOE完结对脉冲/数据产生器奇数据通道的操作。
nGCS2片选信号为低有用,对应的端口是PortA,其第13 位用来完结nGCS2 的操控,对应的装备寄存器是GPACON,数据寄存器是GPADAT,它们别离对应的物理地址为0X56000000 和0X56000004.当GPA13 设置成0时分,nGCS2为一般输入输出口;设制成1的时分,nGCS2成为使能信号。其他信号设置与此相似。在本项目中,nGCS2依照要求被设置成使能信号:
v_pIOPRegs->rGPACON |=(0×01《13);
BWSCON 是总线位宽和延时操控寄存器,它能够用来装备8 b、16 b或许32 b的总线宽度。将其设置为32 b的总线宽度:
v_pMEMRegs – >rBWSCON=(v_pMEMRegs – >rBWSCON~(0XF《8))(| 0XE《8);驱动编译到内核的进程如下:在BSP中创立驱动文件夹并开发流驱动程序。完结后,再创立makefile 文件、模块导出文件以及用于编译的sources文件。最终在注册表中增加GPIO 流驱动程序,将驱动增加到NK中,用Visual Studio 2005 中的Platform Builder 6.0 编译得到NK.bin文件,下载到NandFlash中。
4 程序移植及体系测验
人机界面以及各功用模块开发完结之后,需求进行运用程序的移植。ActiveSync 6.1能够完结衔接装有桌面Windows的PC机和WinCE设备。通过它能够运用串口、USB端口、以太网或红外线衔接在移动设备和PC之间创立同步联系。在本项目中,挑选运用USB口树立衔接,这就需求首要装置BSP下面的USB驱动。树立衔接之后,将编译好了的运用程序下载到定制好的WinCE 6.0体系中,即可完结运用程序在嵌入式WinCE 6.0体系中的运转。脉冲/数据产生器功用包含多样化触发、时钟产生、脉冲生成、脉冲参数可控、信号时延可控、串行数据产生等各项功用。运用嵌入式软件编程完结的友爱简练的人机界面如图3所示。通过现场测验标明该软件操作简练,运用函数生成数据时界面改写无显着迟滞,具有必定健壮性,能有用处理用户误操作。图4显现为频率设置成50 MHz、脉宽设置为1 ns 时,脉冲/数据产生器输出通道所输出的脉冲波形。
5 结语
本文结合WinCE 6.0嵌入式体系,拟定脉冲/数据产生器软件完结计划,完结了脉冲/数据产生器界面规划、嵌入式运用程序移植、上层软件与底层硬件的数据通信等作业。通过实践测验及运转,开发的脉冲产生器软件渠道运转安稳,界面简练漂亮且易于操作,上层运用软件功用完全,体系的实时呼应才能到达仪器的规划要求。