基于嵌入式WinCE 6.0 的脉冲/数据发生器软件设计
alAlloc和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嵌入式系统,制定脉冲/数据发生器软件实现方案,实现了脉冲/数据发生器界面设计、嵌入式应用程序移植、上层软件与底层硬件的数据通信等工作。经过实际测试及运行,开发的脉冲发生器软件平台运行稳定,界面简洁美观且易于操作,上层应用软件功能齐全,系统的实时响应能力达到仪器的设计要求。
嵌入式WinCE6 相关文章:
- 电源设计小贴士 1:为您的电源选择正确的工作频率(12-25)
- 用于电压或电流调节的新调节器架构(07-19)
- 超低静态电流电源管理IC延长便携应用工作时间(04-14)
- 电源设计小贴士 2:驾驭噪声电源(01-01)
- 负载点降压稳压器及其稳定性检查方法(07-19)
- 电源设计小贴士 3:阻尼输入滤波器(第一部分)(01-16)