新闻中心

EEPW首页>嵌入式系统>设计应用> 基于嵌入式Windows CE5.0的无线监控系统研究

基于嵌入式Windows CE5.0的无线监控系统研究

作者: 时间:2009-04-24 来源:网络 收藏

2.2 GPRS模块的接口设计
S3C2440有3个UART通道,利用其中一个通道设计串口,使其与GPRS模块连接,由于S3C2440自带的UART控制器,使得硬件开发和软件设计都比较简单。但RS 232标准所定义的高、低电平信号,与一般的微控制器系统的电路所定义的高、低电平信号完全不同,如S3C2440系统的标准逻辑“1”对应电平2~3 V,标准逻辑“O”对应0~4 V电平。显然,与RS 232标准所述的电平信号完全不同。两者之间要进行通信,必须经过信号电平的转换,目前常使用的电平转换芯片有MAX232,MAX3221和MAX324.3,具体设计电路如图7和图8所示。

本文引用地址://m.amcfsurvey.com/article/152523.htm

3 操作系统平台的定制
CE是高度模块化的操作系统,正因为如此,用户为了满足特定的要求而对操作系统进行定制,如果为自己的设备定制CE操作系统,则须进行创建、构建、运行和发布OS等一系列操作。在视频中,根据功能要求,利用Platform Builder5.0定制系统的流程如下:
(1)导入BSP开发包。由于用的是三星公司的ARM920T核的S3C2440,所以在BSP包中找到SMDK2440文件下的SMDK2440.CEC文件将其导入。打开“Platform Builder5.0”,选择“File”菜单下的 “Manage Catalog Features”,如图9所示。在弹出的对 话框中单击“Import”,浏览到SMDK2440文件下的 smdk2440.cec文件,将其导入。

(2)创建项目。根据WinCE的要求,在定制系统的过程中选择合适的组件来实现。其中包括的组件有:支持应用程序开发的MFC组件和支持网络的相关组件等。
(3)编译项目:点击菜单“Build OS”→“Sysgen”开始编译项目。
(4)下载运行时映像,调试成功后启动。编译成功后会在目WinCES00PBWorkspacestestlRelDirsmdk2 440_ARMV4I_Release下生成nk.bin和nk.nb0等文件,将nk.nb0下载到硬件平台上运行。

4 驱动程序的开发
4.1 摄像头驱动的开发
摄像头驱动开发是设计中的一个难点,也是一个关键部分。由于摄像头采集的视频数据可以当作数据流来处理,所以对于摄像头的驱动将采用流式接口的方法来开发。
(1)在Platform Builder中打开前面定制的操作系统工程,然后在新建一个WIN32 DLL项目,添加2个C++的源文件,即:camera.cpp和IIc.cpp,其中camer―a.cpp包含驱动的入口函数DLLMain();驱动的前缀为“CIS”,IIc.cpp包含通过ICC接口对摄像头相关寄存器进行配置的函数。
(2)根据前面的硬件电路和OV9650芯片的工作时序,通过编写流接口的CIS_Init函数实现OV9650初始化。主要包括以下3步:调用InterruptInitialize(SYSINTR_CAM,CameraEvent,NULL,0)函数通知系统注册中断;调用CreateEvent()函数创建一个CameraEvent事件;调用CreateThread()函数创建CameraThread线程。在Camera Capture Thread服务函数中调用WaitForSingleObject(CameraEvent,Dis―play Time)函数等待Camera Event事件的发生。此事件由与其关联的SYSINTR_CAM中断来触发。此外还有其它流接口函数(CIS_IOControl等)也可以以类似的方法实现。
(3)编写DLL的导出函数定义文件.DEF。.DEF文件定义了DLL的导出函数类表。.DEF文件可以就用一般的记事本编辑,保存时后缀名改为.DEF即可,关于本摄像头驱动的.DEF文件内容如下:


(4)为驱动程序配置注册表。在platform.reg中添加以下注册项即可:


在摄像头驱动开发完成后,通过编写应用程序在终端的触摸屏上显示出来,如图10所示。首先通过CreateWindow这个API函数创建一个用来显示图像的窗体,然后创建回调函数CaptureThreadProc的线程,在回调函数中根据不同的操作向操作系统发送不同的消息值,处理图像的读取、显示等。测试结果如图11所示。

4.2 串口驱动开发

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭