- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于DM642的图像采集驱动系统的开发.doc
基于DM642的图像采集驱动系统的开发
摘 要本论文基于DM642数字信号处理器的基础上开发视频图像采集驱动程序。本驱动采用类驱动与微驱动相结合的结构框架,通过编写FVID函数模块,完成图像数据与应用程序的交互,完成类驱动程序开发;通过微驱动配置和管理各相关底层硬件,完成视频图像的采集;从而实现驱动程序的开发。
【关键词】DM642 类驱动与微驱动 视频图像
随着电子商务行业的迅速发展,物流规模越来越大,对各种商品和快件的快速分拣提出了更高的要求,数字图像识别技术的发展为这一难题提供了技术支持,由于图像处理的数据运算量比较大,所以需要高速的运算器来支持,而DSP硬件技术的发展符合了这种需要。本文研究的重点是在TI公司的一款高性能的运算处理器DM642基础上,开发一种对视频图像高速实时采集的驱动系统。
1 图像采集整体硬件结构
本视频图像采集系统其硬件整体结构示意图如图1,通过A/D转换器SAA7115将视频图像信号转化为Y、Cr、Cb格式的数字信号,采集的数据存储到FIFO视频端口内部,在没有CPU的干预下,EDMA将采集到的数据从FIFO搬运到片外SDRAM中,以供应用程序的使用。
2 图像采集方案选择
图像采集方案共有两种,第一种是采用非驱动程序结构,采集驱动程序与应用程序在同一个框架下编程,应用程序与采集驱动程序直接交互,这种采集程序编写的方式特点是:应用程序直接管理数据缓存区,当底层采集硬件结构改变时,应用程序必须做大的改动。第二种方案是采用驱动程序结构。其特点:采集驱动程序与应用程序分割开来,编写驱动程序时只需知道底层驱动程序与应用程序的标准接口函数和对应的参数设置,无需知道具体硬件,当硬件改变时,只对硬件相关的驱动程序做一些改动而应用程序基本不需要变动。从程序后期的维护和移植性方面考虑,本课题选择第二种方案。
3 图像采集驱动的实现
由于DSP硬件结构复杂,导致配置芯片功能的工作量很大,为降低驱动程序开发难度,DSP/BIOS提供了一种双层驱动模型,它将整个驱动结构分为硬件相关层和硬件无关层,这种分层的驱动结构为“类/微驱动模型”。
3.1 类驱动的实现
类驱动主要提供对外设的I/O请求的串行化和同步的同步机制,同时控制与管理操作设备。本驱动采用GIO类驱动,通过扩展FVID模块以支持新应用领域。编写扩展的GIO API函数:#defineFVID_control、FVID_control、FVID_alloc、FVID_exchange、FVID_free。本类驱动帧缓冲器分为A、B、C,应用程序通过调用FVID_alloc()函数从类驱动中获得帧缓冲器A,在获得帧缓冲器A中的图像数据后对其进行处理。当应用程序处理完缓冲帧A中的数据后,再通过调用FVID_exchange()将视频帧A的地址返还给帧缓冲器A,同时获的最新帧缓冲器B中的数据,处理完视频帧B以后,如果EDMA未装满视频帧A,表明视频帧A未就绪,则应用程序选择最新采集到的视频帧C中的数据进行交互。
3.2 微驱动的实现
微型驱动主要配置相关的硬件设备功能和管理存储器,并且将配置后的设备以特定的接口形式与类驱动交互。本课题微型驱动采用IOM_Packet类型的结构数据与类驱动交换数据。应用程序提交一个数据缓冲区后,类驱动填写完结构数据域IOM_Packet的各个参数后,交给微驱动。微驱动在处理完这一帧数据后,通过回调函数将IOM_Packet返还类驱动,实现微驱动和类驱动缓冲区首地址和缓冲区大小的互换。视频图像采集过程:SAA7115视频解码芯片将摄像头采集的图像信息进行解码,转化为YCrCb数字信息,然后DM642芯片上的视频采集口将转化后的数字信息存放到相应的各个分量FIFO中,通过EDMA将图像数据从FIFO里搬移到外部存储器SDRAM中,整个搬移过程不需要CPU干预。
3.2 I2C总线配置
DM642内部集成I2C模块,SAA7115和SAA7105芯片的配置由I2C总线来完成。具体配置如下:IIC_Config={0, 0, 15, 1, 0x21, 0x4620, 74 }。具体配置流程:
(1)I2C总线是否繁忙,是,继续等待,否,进行下一步。
(2)设置发送模式、子地址、计数器N。
(3)开始发送STT=1。
(4)是否准备好发送xrdy=1,是,下一步,否返回上一步。
(5)发送一个字节,延时。
(6)计数器N减一,且是否为零,是,结束配置,否,返回到第三步。
3.3 EDMA配置
EDMA配置采用Ping-Pong结构。当一次数据传输完后,下一个参数表自动装载,轮流使用两个参数表,不需要CPU的参
文档评论(0)