打印

如何用51单片机连接摄像头

[复制链接]
23357|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
枫恋00|  楼主 | 2012-3-13 23:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
chunyang| | 2012-3-13 23:26 | 只看该作者
方案基本上是不可行的,改用ARM或DSP吧,非用51,需要先外扩或使用带原生USB主机的型号,然后还要自己写驱动及控制程序以及图像处理程序,从你问的问题来看,恐怕你是做不了的。现在很多ARM都带USB主机接口,驱动可以借助嵌入式操作系统解决,开发难度会大幅度下降,性能也会更好。

使用特权

评论回复
板凳
枫恋00|  楼主 | 2012-3-14 12:23 | 只看该作者
2# chunyang 那如果是外接一个ch375的芯片,这个方案可不可行,我摄像头是用普通电脑用的带usb接口的。它里面有一块芯片,型号是Vimicro_VC0342

使用特权

评论回复
地板
枫恋00|  楼主 | 2012-3-14 12:47 | 只看该作者
2# chunyang 那如果只做图像,这个方案可不可行

使用特权

评论回复
5
tangzzbb| | 2012-3-14 13:48 | 只看该作者
从LZ的描述来看,采用USB接口摄像头恐怕搞不定,不如换个思路,采用RS232接口的摄像头模块即可!

使用特权

评论回复
6
枫恋00|  楼主 | 2012-3-15 22:25 | 只看该作者
5# tangzzbb 这个有考虑过,不过预算有点超了

使用特权

评论回复
7
chunyang| | 2012-3-15 23:47 | 只看该作者
前面已经说过,光有USB host是不够的,你要自己写驱动以及控制程序、图像处理程序之类,而且还是在51平台上,当然,要求不高时在理论上可行,可问题是,以你的能力,你用这个方案能做出来么?即使是高手,这么玩也是不适当的,除了说明思维钻牛角尖外什么也不代表。

使用特权

评论回复
8
tangzzbb| | 2012-4-1 13:32 | 只看该作者
真是太无语了!:dizzy:

使用特权

评论回复
9
zjp8683463| | 2012-4-1 14:31 | 只看该作者
你的图像在哪里显示?

使用特权

评论回复
10
枫恋00|  楼主 | 2012-4-5 22:03 | 只看该作者
9# zjp8683463 在电脑上

使用特权

评论回复
11
枫恋00|  楼主 | 2012-4-5 22:04 | 只看该作者
8# tangzzbb 是不是这个想法太异想天开了

使用特权

评论回复
12
江腾科技| | 2012-4-19 17:12 | 只看该作者
我想做一个无线视频传输装置,图像不需要太清晰,也没必要要多么的流畅,只要有图像显示就行,现在有51单片机,还有一个usb摄像头,现在不知道如何用单片机设置usb摄像头的驱动,请各位大侠帮帮忙, ...
枫恋00 发表于 2012-3-13 23:13

成都江腾科技,专注无线模块。如需交流学习,欢迎进入:http://jiangteng.taobao.com/

使用特权

评论回复
13
tangzzbb| | 2012-4-19 19:13 | 只看该作者
8# tangzzbb 是不是这个想法太异想天开了
枫恋00 发表于 2012-4-5 22:04

这个想法很正常,符合很多刚刚开始做的微型科技企业的想法,要实现也不是不可能。:lol
但是,真正要做出来,以下两条标准至少得满足一条,否则真得很让人无语。
一就是在公司研发人员相对素质较差,啥啥都不懂的情况下,采用我说的别人已做好的带串口的摄像模块,网下载一下对应51的helloword程序,搞定串口通讯,了解下第三方的接口协议,搞出一个产品来,虽然成本高些但人轻松些,而且比较现实,是一种可行的方案。
二是公司有牛人存在,这样更简单,你不就想连USB口的摄像头吗?直接用IO口模拟USB口就行了,可以省下一笔不菲的USB芯片的钱。至于说到USB口传输的流媒体数据不是需要驱动吗?可这些驱动都尽是操作系统下的,反正水平高,改改拿来用不就得了。至于于TFT屏的接口,不就是地址和数据总线把,写个就行了,项目不就完成了吗?
因为牛人也是需要花大价钱来养的,未必就比直接买串口模块来得便宜。所以我觉得很无语。

使用特权

评论回复
14
Tinnal| | 2012-4-20 10:46 | 只看该作者
用51来驱动USB摄像头不是不可能,但难度会很大。而且你51还得接个USB HOST 控制器。成本上也不划算。
一般这种应用我们都会用ARM Linux来实现。但如果你的公司对成本要求真的很紧(毕竟上LINUX后,会对内存、FLASH容量有要求,不仅仅是CPU的价格问题了),你可以用M3来实现。

我这里给出一份LINUX下的OV511我驱动源码。你可以按如下的顺序去实现。
1. 先把STM32的USB相关的参考手册、应用手册看一下,了解一下M3的USB OTG接口的用法。
2. 了解一下STM32的USB库的使用(有使用手册)。
3. 下载STM32的USB DEMO看一下(好像是U盘的代码),深入了解USB库的使用
4. 参照我给的驱动,把驱动低层USB的操作用USB库的函数替换。把操作系统的接口(如framebuffer)去掉。
5. 插个摄像头试试枚举能不能成功,不成功的话慢慢调。
6. 这部最好有个ARM-Linux开发板作参照,用linux捉一个JPEG图像(JPEG的压缩摄像头已经做完了,不用我们做),看看都执行了什么函数,你个函数的返回是什么。
7. 按这个流程自己做M3上跟着调用。
8. 最终完成

这里有几点声明:
1. 为什么没有采用Linux下当前最流行的spca5xx驱动?因为哪个大,不好移。
2.为什么不直接看着OV511的数据手册去做?数据手册只有一大堆的寄存器说明,对于这种复杂设备,看了也不会用,只能参照别人的(如Linux)用法。(七万别抱怨LINUX代码难懂,有源码已经很不错了,我记得当年只能在Windows里捉USB包,然后一个劲地猜,头发都白几根了)
6. 6000行代码很长?其实也还可以了。慢慢看还行。比较wifi的驱动,好多了。

最后总结一句,对成本要求不是很苛刻的话,上ARM LINUX吧。
ov511.rar (35.83 KB)

使用特权

评论回复
15
Tinnal| | 2012-4-20 10:49 | 只看该作者
这个想法很正常,符合很多刚刚开始做的微型科技企业的想法,要实现也不是不可能。:lol
但是,真正要做出来,以下两条标准至少得满足一条,否则真得很让人无语。
一就是在公司研发人员相对素质较差,啥啥都不懂的情 ...
tangzzbb 发表于 2012-4-19 19:13


呵呵,直接用IO口模拟USB是一个馊主意,你的噩梦伴随你离开这家公司

使用特权

评论回复
16
Tinnal| | 2012-4-22 09:25 | 只看该作者
本帖最后由 Tinnal 于 2012-4-22 09:28 编辑

1# 枫恋00
呵呵,你的运气很好,刚才在网上有个帖。用STM32驱动OV7660的。有源码下在。你自己看看吧。
http://blog.sina.com.cn/s/blog_4cd5d2bb0100h8k3.html
可以用的话就不要再去想USB接口的了。手机的摄像头也有很好很便宜的呀。接口又好用。

使用特权

评论回复
17
枫恋00|  楼主 | 2012-4-24 23:11 | 只看该作者
16# Tinnal 好的,谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

60

帖子

0

粉丝