基于mini2440的ov9650摄像头裸机测试

      mini2440提供了一个摄像头接口,可以输出RGB24,RGB16的原始图像还可以输出编码的如YUV格式的图像,并提供了偏移翻转,放大缩小的功能。与开发板配套的摄像头模块为CAM130,采用ov9650的芯片。操作摄像头接口实现视频的采集与显示,主要配置两个部分的寄存器:ov9650的寄存器,摄像头接口寄存器。
        ov9650寄存器在模块的内部,s3c2440是以sccb总线来与ov9650通信。sccb总线类似iic总线,而且mini2440摄像头接口的sccb总线就接在了他的iic接口上,所以可以通过Iic来配置ov9650的寄存器,同样也可以用gpio来模拟sccb总线的时序。ov9650有大量的寄存器需要设置,但是一般不需要我们关心,厂商将一些常用的配置写成数组,直接赋值就可以了。需要我们关心的是厂商ID寄存器,这个一般在摄像头初始化之前用来判定摄像头是否正确安装。
        摄像头接口寄存器的配置比较麻烦,大体上需要配置三类的寄存器。第一类是摄像头接口输入视频格式寄存器CISRCFMT,功能是设置摄像头接口的输入数据的格式与长宽。s3c2440的摄像头接口提供了两个DMA通道,一个预览输出DMA,有四块DMA缓冲区,这个通道用于将采集到的视频图像直接显示到Lcd上。另外一个是编码输出DMA,也有四块DMA缓冲区,用于后期处理视频。所以第二类是预览输出视频格式寄存器。这类寄存器主要有以下几个:
CIPRTRGFMT      这个寄存器主要设置目标图像的长宽与是否进行旋转与镜像处理
CIPRCTRL        突发长度寄存器,这里的值与目标图像的宽度有关,有计算公式,不需要关许只需要调用函数计算然后赋值给它就可以了
CIPRSCPRERATIO
CIPRSCPREDST
CIPRSCCTRL        这三个寄存器主要是设置缩放比例以及与缩放偏移相关的参数,需要以原始图像以及目变图像的大小作为参数,通过一定的公式计算得出。公式是固定的直接用就可以了,不需要关心。CIPRSCCTRL这个寄存器尤其重要,因为第30位是视频输出的格式,1为RGB24,0为RGB16格式,需要根据LCD的类型设置。我的mini2440采用的T35的lcd就是RGB16的屏,所以这里需要设置成0,否则输出到lcd的图像颜色就不对,如果是RGB24的屏,则第30位要设置成1。
CIPRTAREA    目标图像面积寄存器,这个主要用于决定DMA一次传送的数据量
CIPRCLRSA1
CIPRCLRSA2
CIPRCLRSA3
CIPRCLRSA4   这四个寄存器是DMA目的寄存器,也就是摄像头接口输出存放数据的地方,如果直接显示的话就要都赋值成Lcd的帧缓冲首地址
        第三类寄存器是编码输出视频格式寄存器,与第二类相似。摄像头接口还有一些功能寄存器需要设置,如时钟寄存器CAMDIVN,与控制寄存器CIGCTRL,负责设置信号的极性以及摄像头的复位。综上所述,操作摄像头需要以下几个步骤:

    (1) 读取厂商ID,来判定摄像头是否安装正确,这首先需要正确操作sccb总线,这一步也可以用来判定sccb总线时序是否正确。   

    (2) 配置摄像头,事先将寄存器的地址以及对应的值写入数组,直接通过循环完成配置,配置完成之后就不需要操作sccb总线了,也就是不需要管ov9650这端了。以下的操作设置摄像头接口这端的寄存器就可以了。

    (3) 设置摄像头所需的时钟,设置控制寄存器,复位摄像头。
    (4) 根据lcd的类型以及需要显示视频的大小,设置源图像寄存器,预览输出寄存器等
        以上是使用摄像头接口的预览输出功能的基本操作步骤,还有每采集一帧图像,摄像头都会产生中断。具体程序在我的下载资源里:http://download.csdn.net/detail/yaozhenguo2006/4001720 是在ubuntu下用amr-linux-gcc编译的,如果安装了arm-linux-gcc并且将命令导入到了环境变量里,直接在代码目录下make就可以了,程序参考了http://blog.csdn.net/zhaocj/article/details/5653479,感谢博主对摄像头详尽的讲述。在mini2440开发板上(配套lcd为统宝3.5寸屏)程序是可以正确运行的,如果其他的屏幕需要改一下参数。

 

 

来自:http://blog.csdn.net/yaozhenguo2006/article/details/7179361

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301969.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

据说这是史上最牛逼的可视化神器

全世界只有3.14 % 的人关注了数据与算法之美我们粉丝里面有很多小伙伴喜欢玩数据分析,粗略估计有几千人。数据分析离不开数据可视化。比如我们前面介绍过pandas画图,matplotlib画图,pyecharts画图当然还有Tableau,今天推荐一款更牛…

excel统计分析——S-W正态性检验

参考资料: [1]马兴华,张晋昕.数值变量正态性检验常用方法的对比[J].循证医学,2014,14(02):123-128. 统计推断——正态性检验(图形方法、偏度和峰度、统计(拟合优度)检验)_sm.distributions.ecdf-CSDN博客 【统计学】…

怎能错过这个技术集市!转发有奖,惊喜连连!

点击蓝字 关注我们Learn. Connect. Code. 微软一年一度的Build大会即将拉开帷幕(5月25-27日),今年的主题演讲,全球CEO Satya Nadella将会深入我们的工作,探讨开发者速度,智能云原生应用,以及在…

百度云cdn设置州五年制大专_[百度云CDN]配置过程坑点集合

图片字体图标访问不正常?CDN直接403或404?防盗链挡了自家网站?QPS和CORS莫名其妙?本文将总结百度云CDN使用过程中——回源HOST与源站地址,防盗链白名单Referer,IP访问限频QPS,跨域访问CORS——这…

文件服务器搭建centos,centos8搭建ftp文件服务器

1.安装vsftpdyum install -y vsftpd2.执行以下命令设置FTP服务开机自启动systemctl enable vsftpd.service3.执行以下命令启动FTP服务systemctl start vsftpd.service4.执行以下命令创建ftp用户useradd ftpuser5.执行以下命令并按照提示设置“ftpuser"用户密码passwd ftpu…

CSS 类选择器

在CSS 中,类选择器以一个点号显示: .center {text-align: center} 在上面的例子中,所有拥有 center 类的 HTML 元素均为居中。 在下面的 HTML 代码中,h1 和 p 元素都有 center 类。这意味着两者都将遵守 ".center" 选择…

将历史、数学、语文、地理、政治知识融会贯通的诀窍就是它

▲卢sir特别推荐点击上图进入玩酷屋在这个知识都是碎片化的时代,系统化的知识,显得弥足珍贵。今天小木就专门给大家推荐一套,将知识系统化整理,放到时间轴上展示的——《时间上的人物谱》里。这是一套特别的工具书,是一…

Nginx实战部署常用功能演示(超详细版),绝对给力~~~

前言上次分享了一些开发过程中常用的功能,但如果到真实环境中,其实还需要一些额外的配置,比如说跨域、缓存、配置SSL证书、高可用等,老规矩,还是挑几个平时比较常用的进行演示分享。上篇详见Nginx超详细常用功能演示&a…

程序员,为什么给你50万年薪,你还要搞死我公司?

全世界只有3.14 % 的人关注了数据与算法之美小卢,今天看到一条让人吐血的新闻。1月20日,深圳市某互联网游戏公司程序员燕某在游戏上线测试的当天,锁死了服务器与电脑,并恶意失踪,致公司损失惨重的事在网上曝光并引起热议。这到底是…

访问Web服务器时 使用的协议是,使用SOAP协议访问Web服务

SOAP是简单对象访问协议,它可看成是HTTP与XML的结合,其中XML部分是作为HTTP报文的实体主体部分。SOAP:简单对象访问协议,是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP …

同时画多个饼图_手帐术 | 这个神奇饼图里,藏着时间管理的小秘诀

说起效率管理kk首先想到的就是时间饼了简直就是拖延症的救星啊!!!不仅能帮我们规划日程而且相比于时间轴来说可视化更强今天kk就来介绍一下时间饼的使用方法~时间饼类型时间饼一共分为几种12h、15h、18h、24h等时间越长分的越细12小时12h适合…

Dotnet创建Linux下的Service应用

创建Service应用,是一个服务端开发的必会技能。前言说到服务端应用,最常见的就是API服务。除此之外,还有一类应用,比方一个Socket的服务器。这类型的应用,本身没有Web层,当然也不属于API服务。通常大家会怎…

【转】java io 总结(图)

2019独角兽企业重金招聘Python工程师标准>>> 转载于:https://my.oschina.net/dlpinghailinfeng/blog/91191

TensorFlow的各种应用,你晓得不?

近几年,AI 的重大进展对我们的日常生活产生了积极影响。随着Google发布了《Google AI 原则》( Google AI Principles ),它们为 AI 发展提供了一个框架。由于这一领域的发展非常迅速,一些原则的最佳实践,如 “ 避免制造或加强不公平…

dhcp服务器显示主机名,linux – 当我没有在dhclient.conf中定义一个时,我的DHCP服务器如何知道我的机器的主机名?...

我正试图在我们的网络上解决与DHCP相关的一些时髦的DNS问题(我怀疑我们目前运行的是多个DHCP服务器),并且在试图解决这个问题时,我发现有一些奇怪的新服务器我只是建立.有问题的服务器是运行Ubuntu 9.10服务器的Xen虚拟机.物理Xen服务器也在我们的网络上,当我第一次在Xen中启动…

6月开招|工业互联才是王道,最高可达50k!

就在昨天,工信部发布了《工业互联网十个典型应用场景和五个重点行业实践》,具体介绍10个典型场景及5个重点行业工业互联网的实际应用情况,可以看到国内工业互联网正在蓬勃发展,欣欣向荣,工业4.0的浪潮正在席卷整个行业…

micropython安装ros_ROS2与STM32入门教程-microROS的linux版本

ROS2与STM32入门教程-micro_ros的linux版本说明:介绍如何安装使用micro_ros步骤:安装ros2版本foxy,查看教程加载ros2环境source ~/ros2_foxy/install/setup.bash也可以把这一句加到bashrc文件,新开终端就不用再输入安装micro-xrce…

php引用

php引用允许两个变量指向同一个内容。意思是&#xff0c;当这样做时 <?php $a&$b; ?> 意味着$a与$b指向同一变量&#xff0c;这并不是$a指向了$b或者相反,而是$a和$b指向了同一地方 如果对一个未定义的变量进行引用赋值、引用参数传递或引用返回&#xff0c;则会自…

2018 年最受欢迎的 Python 库,你都用过吗?

全世界只有3.14 % 的人关注了数据与算法之美前段时间&#xff0c;数据科学网站 KDnuggets 评选出了顶级 Python 库 Top15&#xff0c;领域横跨数据科学、数据可视化、深度学习和机器学习。推荐阅读《Python3.0科学计算指南》上图&#xff1a;根据 GitHub star 和贡献评选出的 2…

登录服务器修改数据库吗,如何修改服务器登录数据库 sa

如何修改服务器登录数据库 sa 内容精选换一换为确保华为云关系型数据库服务发挥出最优性能&#xff0c;用户可根据业务需求对用户创建的参数模板中的参数进行调整。您可以修改用户创建的数据库参数模板中的参数值&#xff0c;但不能更改默认数据库参数模板中的参数值。以下是您…