您当前的位置:首页 > 行业资讯

基于WinCE的嵌入式视频数据采集系统设计

时间:2015-01-15  来源:扁平线圈电感厂家  点击:

3 系统软件设计

系统的软件设计应当包括两部分:BSP的开发与应用程序的开发。本文分别从这两个方面简单论述,BSP的开发主要介绍Bootloader程序设计及OV9650驱动程序开发。

3.1 Bootloader的开发

BSP的开发一般包括3个方面的内容:Bootloader程序设计、OAL层及驱动程序开发。Bootloader是操作系统内核运行之前运行的一段小程序,用于初始化系统的硬件设备,如初始化MMU、屏蔽所有中断、初始化NandFlash等,建立系统的内存空间映射。从而将系统的软硬件环境带到一个已知的状态,为操作系统内核的最终调用准备正确的环境。最后Bootloader把操作系统内核映像加载到RAM中,并将系统的控制权传递于它,其作用类似于基于X86的PC中的BIOS。

本系统设计的Bootloader,采用Eboot+Nboot的形式,支持USB从机下载通信手段和Nand flash存储介质。NandFlash不支持xip,故必须有一个可执行的程序将烧写在其中的Eboot搬到SDRAM中。Nboot一般配合tdk电感器Eboot一起使用。Eboot与Nboot同样为启动代码,但是Eboot的大小远超过4 KB,故不能直接将Eboot存放在block0中。Nboot的作用是初始化Flash等硬件,将Eboot搬到SDRAM运行。而Eboot则负责内存地址的映射以及其余设备的初始化、加载NK.bin内核文件等。Nboot与Eboot在其中的位置如图4所示。


3.2 0V9650驱动程序的开发

WinCE的驱动程序按不同的分类方式分为:本机驱动和流驱动。而OV9650驱动程序则属于流驱动程序。流接口驱动程序由Device.exe统一加载和管理;用户编写的应用程序通过使用WinCE操作系统的文件API函数如CloseHandler()函数、CreateFile()函数等与流接口进行通信,达到应用程序访问驱动程序最终操作硬件的目的。流接口驱动程序具有固定的入口点函数,WinCE的文件系统通过这些入口点函数与流接口驱动进行通信。OV9650流接口驱动程序的入口点函数包括:CIS_Init,CIS_Deinit,CIS_Open,CIS_Close,CIS_IOControl,CIS_Read,CIS_Write,CIS_PowerUp,CIS_PowerDown等,CIS前缀表示设备的名称。

驱动程序首先调用Virtual_Alloc()函数来完成将物理地址映射到虚拟空间内,以申请摄像头I2C寄存器地址对应的虚拟地址,随后初始化I2C,通过下列语句打开I2C,并设定其电感生产访问权限。


接着调用Cam_Init()函数,该函数主要负责摄像头的一些硬件初始化工作,包括:摄像头与S3C2440连接的GPI0的初始化、时钟的初始化等。随后调用InitInterruptThread()函数,初始化中断线程,通知系统注册中断;调用CreateEven()函数创建一个CameraEvent事件,在CameraCapturerTbread()函数中,调用WaitForSingle()biect()函数来等待CameraEvent事件的发生。

这里重点说明CIS_IOContr一体成型电感ol()函数。该函数主要用于向设备发送一个命令。应用程序使用DeviceIOControl()函数来通知WinCE调用这个函数,通过参数dwCode通知驱动程序要执行的操作。该函数通过switch()语句为用户提供能操作的语义,以下给出实现播放采集的MPEG4视频数据和退出驱动、停止采集功能的关键代码,“…&he塑封电感器llip;”表示省略部分代码


驱动程序编写完成后,通过DEF与Sources文件的编写、流驱动的编译以及加载该驱动进入WinCE内核模压电感器,则直接可以通过应用程序调用该驱动。

3.3 应用程序开发

应用程序开发在可视化集成开发环境Embedded VisualC++中完成,主要基于MFC编程用C++语言实现。通过给“打开”按钮添加单击事件代码,实现对驱动程序的打开操作。打开驱动程序通过以下语句实现。if语句用于判断m_hFile的初始值是否为1,为1则关闭摄像头驱动,重新赋值为1。CreateFile()函数用于打开驱动,并将结果返回给操作句柄。

大电流电感

基于PROFIBUS的系统诊断技术长久以来,PROFIBUS 技术为广大的用户提供了优良的产品和解决方案。但是随着自动化技术的进一步发展,用户对自动化系统的期望越来越高。他们不仅仅满足于使用自动化产品来构造一个自动化系统和实施一个自动

LLC 谐振半桥,有没有做到1000V输入的?LLC 谐振半桥,有没有做到1000V输入的?宽范围输入电压,输入400V-1000V,好像参数比较难确定消灭零回复
功率呢?

4串磷酸铁锂电池均衡保护板求助 本帖最后由 mcu_c10g16 于 2010-9-16 10:31 编辑 现正设计一款4串磷酸铁锂电池均衡保护板,电池总电压为13.2V, 电容量为20AH。 采用MCU控制4只大功率的电阻来保持电池充电和放电过程的均衡。 我只知道这样一个概念,请大侠在硬件上还有软件上点拨点拨。 或者提供相关资料,让我了解了解也好。 自己顶一个在网上找了相关资料,终有所悟.锂电池组均衡主要有以下2种方式1,电阻分流式 2,能量转移式我打算采用方式1,电阻分流式.这种方式是市面

注塑加工厂


上一篇LED背光与无彩色滤光片技术分析

下一篇一种嵌入式智能网络视频监控终端的研究与设计


  
  温馨提示
网站首页 | 产品展示 | 科技前沿 | 行业资讯
本公司专业研发、设计、生产、销售贴片电感、插件电感、功率电感、大电流电感、扁平线圈电感、一体成型电感。
专业电感生产制造商,品质优异、交期快。
在线客服
热线电话