13 - 读取传感器:数字摄像头

读取摄像头是高潮,运气好的话几行代码一调就出来,不幸的话,整一个多月发现摄像头原来是坏的orz...

时序关系

帧。 帧是一幅完整的图像。以我们所用的数字摄像头为例(型号我忘了),默认设置下1秒有30帧。

场。 一帧包含两个场,奇数场和偶数场。奇数场传送奇数行数据,偶数场传送偶数行数据。如果一帧(一副完整图片)有480行,那么奇数场和偶数场会各有240行,奇数场传第1,3,5....行,传完后到偶数场传2,4,6....行。奇数场和偶数场传送的是同一幅图像的不同行,对提取道路信息来说,只使用奇数场/偶数场的数据就足够了。每一场的开始,会出现一个场中断。

行。 如果一幅图像是640*480,那么一行就有640个像素点。 每一行的开始,会出现一个行中断。

像素。 像素是图像最基本的组成。每一个时钟(PCLK)传送一行中的一个像素点信息。
cam_1

K60

K60带有DMA模块,用它来采集图像可以节省计算资源哦。
参考采集思路:
1. 只采集奇数场。
2. 接收到场中断,标志一幅新图像开始,开启行中断监听。
3. 接收到行中断,开启DMA,采集640个像素点(数量视摄像头而定)。
4. 接收完240个行中断,或者接收到新的场中断,标志一幅图像采集结束。

XS128

XS128不带DMA模块,只能耗费计算资源采图咯。
参考采集思路:
1. 只采集奇数场。
2. 接收到场中断,标志一幅新图像开始,开启行中断监听。
3. 接收到行中断,进入行中断处理行数,采集240个像素点;由于没有DMA,需要一个个像素点采集,采集的时间需要好好把握。
4. 接收完240个行中断,或者接收到新的场中断,标志一幅图像采集结束。