基于微处理器S3C2440和WinCE嵌入式实时操作系统的视频数据采集

发布时间:2023-02-01  

随着嵌入式技术的不断发展,各种嵌入式微处理器和控制器不断出现,并广泛应用于工控、通信、 PDA、安保等领域。基于ARM920t内核的嵌入式微处理器S3C2440,以其良好的数据处理能力、低功耗、小体积、支持多种嵌入式操作系统(如 WinCE、Linux)、集成多种外设(如I2C控制器、LCD控制器等)等优点,广泛应用于手持设备等。WinCE操作系统具有内核可剪裁、实时性好、支持多种通信、模块化设计、具有丰富的API等特点,广泛用于嵌入式实时操作系统。这里提出的嵌入式图像数据采集系统是某“纳米技术与微系统”实验室开发的“嵌入式传感测控系统”中实现图像采集功能的子系统,该系统是以S3C2440为硬件核心,以WinCE为软件平台,能实时、连续地采集清晰的视频数据。


1 系统结构框图及视频数据采集原理

视频数据采集系统结构如图1所示。

基于微处理器S3C2440和WinCE嵌入式实时操作系统的视频数据采集

从图1中可以看出。系统由嵌入式微处理器S3C2440、存储器(包括Nand Flash和SDRAM)、以太网接口、CMOS图像传感器0V9650、USB主/从口、SD卡、JTAG接口、电源与复位电路、LCD与触摸屏组成。其中,S3C2440为整个系统的硬件核心,负责采集来自图像传感器的数据,控制给各种外设等。Nand Flash存储器与SDRAM构成了系统的存储器,其中SDRAM具有掉电数据不保存的特点,只用作系统内存,用于运行主程序等,而Nand Flash则具有掉电保存数据的特点,用于存储操作系统内核,引导加载程序(Bootloader)、用户应用程序等。


CMOS图像传感器及其接口电路用于采集视频数据。LCD与触摸屏构成人机交互模块,起到数据交互的作用,相当于PC机的键盘和液晶。J- TAG接口用于系统硬件调试和下载Bootloader程序。USB主口不但可以用于外接U盘和移动硬盘等,还可外接带USB接口的鼠标。在触摸屏校正出现大的偏差无法校正时,用鼠标辅助校正。USB从口用于下载WinCE内核文件NK.bin。电源电路包括为微处理器与相关外设提供电压(如微处理器的 1.3 V内核电压、LCD的3.3 V背光电压),以及为摄像头供电。复位电路用于出现故障时系统重启。以太网接口用于扩展系统功能,在视频数据采集的基础上,通过以太网,可以编程实现视频数据的网络传输。


2 摄像头接口及其电源电路

摄像头接口电路如图2所示。本系统选用130万像素的CMOS摄像头0V9650,通过串行摄像头控制总线(Serial Camera Control Bus,SCCB)接口实现对其控制。OV9650支持SXGA、VGA、QVGA、CIF等格式,8位数据输出格式,可以是 YUV/YCbCr(4:2:2)、GRB(4:2:2)和Raw RGB 3种。

基于微处理器S3C2440和WinCE嵌入式实时操作系统的视频数据采集

OV9650内部主要包括1 300xl 028的图像传感器阵列、模拟信号处理器、ADC、DSP、数字视频端口、SCCB接口、定时信号发生器和输出格式器。数据输出位YO只在RAW RGB数据时用作LSB,而Y1只在RGB数据时用作MS,这里都不使用,而用到的主要引脚有:RESET为重置位,用于清空所有的寄存器并重置为默认的值,高电平有效:HREF为内部参考电压引脚,为器件提供参考电压:PWDN为关闭电源模式选择位,高电平有效,为0时是正常模式,为1时电源关闭模式;SIO_D为SCCB串行接口数据I/O,SIO_C为串行接口时钟输入引脚;Y[2:9]为数据输出位,共8位;VSYNC为垂直同步输出引脚:PCLK为像素时钟输出引脚,XCLKl为系统时钟输入引脚。


OV9650的核心供电电压为1.8 V.模拟输入的供电电压为2.45~2.8 V,I/O口的供电电压可以为2.5~3.3 V。本系统设计中,摄像头供电电路如图3所示。采用电源转换器ASlll7为摄像头提供1.8 V和2.8 V电压,其中2.8 V电压是通过可调压器件分压得到。

基于微处理器S3C2440和WinCE嵌入式实时操作系统的视频数据采集

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一般配合 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_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等,通过以太网实现视频数据的网络传输,实现视频远程监控功能。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    嵌入式微处理器的选择是根据具体的应用而决定的。 比如arm公司有各种各样的处理器架构,最经典的cortex系列,它属于ARMv7架构,这是到2010年为止ARM公司最新的指令集架构......
    年总额的4.3%(或44亿美元),而2020年为5%。 值得注意的是,该机构MPU排名基于计算机CPU、嵌入式微处理器和手机AP,销量,但不包括AI/机器学习加速器和独立图形处理单元(GPU)。许多......
    夺性的实时内核,可同时管理64个系统任务。利用移植μCOS-Ⅱ操作系统的嵌入式微处理器来设计和开发产品,对于提高产品的性能,减少产品的开发周期和降低开发成本有着重要的意义。在此较详细地分析和介绍了嵌入式......
    化智能传感器一般由信号采集单元、数据处理单元和网络接口单元组成。这3个单元可以是采用不同芯片构成合成式的,也可以是单片式结构。网络化智能传感器的核心便是嵌入式微处理器嵌入式微处理器具有体积小、功耗低、可靠性高、可抗......
    嵌入式微控制器的设计人员,在熟悉的相同的开发环境中,把原来的基于微控制器的项目升级到基于性能更高的MPU。该软件包含有STM32CubeMX设备配置器、STM32CubeIDE开发......
    微处理器上,将嵌入式系统设计性能提高到一个新的水平。 随着终端用户不断要求日常生活工作设备具有更多的功能和更快的响应速度,设备厂商需要使用有效的解决方案来提高产品性能。工业......
    系统。嵌入式系统一般应用在掌上仪器、便携式系统等设计中,具有便利灵活、功能强大、嵌入性强等特点,可以实现运算、处理、存储和控制等功能。嵌入式系统包括硬件和软件两部分,即嵌入式微处理器和嵌入式操作系统。本文......
    基于LPC2210嵌入式微处理器实现智能安防系统的设计;1 引言 随着社会经济的发展和人民生活水平的不断提高.同时引发入室抢劫、盗窃等暴力事件频频发生.不法分子的作案手段也是越来越向高科技化、高智......
    基于微处理器S3C2440和WinCE嵌入式实时操作系统的视频数据采集;随着嵌入式技术的不断发展,各种嵌入式微处理器和控制器不断出现,并广泛应用于工控、通信、 PDA、安保等领域。基于ARM920t......
    于工业、通信、汽车和物联网(IoT)等广泛终端系统的嵌入式微处理器销售额,预计将在2022年增长9%,达到约215亿美元。 该机构预测,2021年至2026年期间,整体MPU总销售额将以5.3%的复......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>