基于ARM处理器S3C2440的无线监控系统设计
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所示。
3 操作系统平台的定制
Windows CE是高度模块化的嵌入式操作系统,正因为如此,用户为了满足特定的要求而对操作系统进行定制,如果为自己的嵌入式设备定制Windows 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等)也可以以类似的方法实现。
- 构建平安城市无线监控解决方案(10-06)
- 基于Q2686无线CPU和Lonworks技术的无线监控网关的设计(05-11)
- Strix无线Mesh组建蒙西煤矿无线监控系统 (09-18)
- 3G无线监控与WIFI无线监控的区别(09-25)
- 无线Mesh网状网构建机场安全防范系统(02-08)
- 基于GPRS的动车组无线监控系统(07-14)