2012年用F2做的线阵CCD相机

2019-08-20 18:44发布



(本文在另外两个网站发过,包括a摸。)
我用STM32F215RGT6做的线阵CCD相机。硬件是: CCD + 一片运放 + CPU,没有用CPLD之类。
也许,运放都不需要,没有验证过。
线阵CCD的驱动全部用定时器TIM1的四个通道实现,用片上AD进行采集,DMA存储到片上RAM中;
以上整个过程全部用硬件实现,只在一帧图像结束后才用CPU软件进行干预,中断方式(对这一帧图像数据进行处理)。

下图是线阵CCD官方的驱动时序图:
1.png

如果严格按照官方时序,只靠一个定时器实现是不太可能的。(也许能够实现。)
所以,在研究官方时序以后(这一步很重要),结合定时器,设计了一种即满足驱动要求、又容易实现的新的时序图。
另外,增加了一个控制AD的信号,在片内启动AD工作。
最快时钟频率是1MHz,2000多个像素。所以,每秒可以拍摄400次以上。在一些特殊场合很有用。下面就看数据处理的速度了。
下图是是实际实现的时序,用逻辑分析仪采集的,和官方时序有较大区别:
2.png


下图是测试样板,自己用AutoCAD画的,黑杠宽度是5mm,黑杠的中心间距是15mm,一共19条黑杠:
3.png


下图是实验装置,相机、镜头、三脚架之类的。
4.png


下图是PC采集到的一帧图像。图像数据在CPU中断期间,通过串口发给PC,用专用的软件还原成图案。
当时还不会用USB,现在可以做更好,以提高每秒扫描帧数。
梳子图案就是19条黑杠的图像:
5.png


以后的工作,光圈、焦距、镜头等等,需要根据现场进行选择,有一些其他知识要学习。实验时候用的是一百元的镜头。

实验发现,白天调试好光圈和焦距,可以拍出清晰的图像;
到了晚上,图像就很差了,必须重新调整光圈、焦距。
所以,虽然到了这一步,离实际使用环境还有一段路要走。
主要是动态调节积分时间。

线阵CCD相机,贵在传感器和镜头。






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
s091937
1楼-- · 2019-08-22 01:05
能不能提供下参考程序  万分感谢
AV8D
2楼-- · 2019-08-22 02:57
你好啊,大神!我用的是线阵CCD(TCD1209),也是用的STM32F407单片机,CCD的驱动时序是我用IO口模拟出来的,现在调试的结果是:用示波器检测CCD的OS端口有波形输出,我也准备用片上AD采集,关于运放这一块你是怎么处理的呢,求赐教!

一周热门 更多>