首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
» 基于WinCE的嵌入式视频数据采集系统设计(2)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于WinCE的嵌入式视频数据采集系统设计(2)
发短消息
加为好友
我是MT
当前离线
UID
1023166
帖子
6651
精华
0
积分
3328
阅读权限
90
来自
燕山大学
在线时间
230 小时
注册时间
2013-12-19
最后登录
2016-1-5
论坛元老
UID
1023166
性别
男
来自
燕山大学
1
#
打印
字体大小:
t
T
我是MT
发表于 2015-11-27 09:34
|
只看该作者
基于WinCE的嵌入式视频数据采集系统设计(2)
数据采集
,
应用程序
,
嵌入式
,
操作系统
,
接口
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_IOControl()函数。该函数主要用于向设备发送一个命令。应用程序使用DeviceIOControl()函数来通知WinCE调用这个函数,通过参数dwCode通知驱动程序要执行的操作。该函数通过switch()语句为用户提供能操作的语义,以下给出实现播放采集的MPEG4视频数据和退出驱动、停止采集功能的关键代码,“……”表示省略部分代码。
驱动程序编写完成后,通过DEF与Sources文件的编写、流驱动的编译以及加载该驱动进入WinCE内核,则直接可以通过应用程序调用该驱动。
3.3 应用程序开发
应用程序开发在可视化集成开发环境Embedded VisualC++中完成,主要基于MFC编程用C++语言实现。通过给“打开”按钮添加单击事件代码,实现对驱动程序的打开操作。打开驱动程序通过以下语句实现。if语句用于判断m_hFile的初始值是否为1,为1则关闭摄像头驱动,重新赋值为1。CreateFile()函数用于打开驱动,并将结果返回给操作句柄。
给“返回”按钮添加单击时间响应函数代码。通过调用CIS_IOControl()函数中的CAM_IOCTL_MOVIE_STOP,实现对驱动程序的关闭。其实现方式跟“打开”按钮基本一样,这里不再赘述。当然,返回按钮还应添加CDialog∷OnCancel()语句来返回到系统主界面。
4 视频数据采集实验结果
应用程序开发完成后,单击“打开”按钮,弹出“打开CISl成功”对话框,如图5所示,表明摄像头驱动打开成功。单击“显示”按钮,在右边的视频显示区,能实时显示动态的视频数据,如图6所示。实验证明,摄像头驱动工作良好。实时数据采集的“纳米技术与微系统”墙面上的展板画面比较清晰,达到了预期效果。单击“返回”按钮,视频显示画面顺利关闭,返回主界面成功。
5 结束语
以
嵌入式
微处理器S3C2440为硬件核心,以WinCE
嵌入式
实时操作系统为软件开发平台,以EVC为集成开发环境,完成系统的硬件设计,B-SP的开发和应用程序设计。在开发平台上能顺利打开驱动程序,顺利采集到实验室的展板图像并实时连续播放视频数据,表明OV9650驱动程序工作正常,软硬件设计合理。下一步工作主要是采取合适的视频编码算法如H.264、M-JPEG等,通过以太网实现视频数据的网络传输,实现视频远程监控功能。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议