- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CCD图像采集程序
在采集图像之前,我们首先要知道摄像头输出信号的特性。目前的模拟摄像头一般都是PAL制式的,输出的信号由复合同步信号,复合消隐信号和视频信号。其中的视频信号才是真正的图像信号,对于黑白摄像头,图像越黑,电压越低,图像越白,电压越高。而复合同步信号是控制电视机的电子枪对电子的偏转的,复合消隐信号是在图像换行和换场时电子枪回扫时不发射电子。由于人眼看到的图像大于等于24Hz时人才不会觉得图像闪烁,所以PAL制式输出的图像是25Hz,即每秒钟有25幅画面,说的专业点就是每秒25帧,其中每一帧有625行。但由于在早期电子技术还不发达时,电源不稳定,容易对电视信号进行干扰,而交流电源是50Hz所以,为了和电网兼容,同时由于25Hz时图像不稳定,所以后来工程师们把一副图像分成两场显示,对于一幅画面,一共有625行,但是电子枪先扫描奇数场1,3,5.....,然后再扫描2,4,6.....,所以这样的话,一副图像就变成了隔行扫描,每秒钟就有50场了。? ?下面就说说图像采集方案,方法有多种,但我使用的方案是在行终端中读取AD采样的灰度值,在场同步中交换图像采集和处理缓存指针,并对图像进行处理,然后控制小车,在主函数中只有初始化和键盘扫描和串口输出函数。这样做效率比较高,而且可以把调试和图像采集处理分开,变成起来比较方便。? ?大家遇到的还有一个很棘手的问题可能是AD采样频率该设置多大呢?建议大家先通过PLLL超频,然后把AD时钟频率设置的高点才行。
分离出行场同步,奇偶场信号后,就把他们接到单片机的外部中断口,产生中断,在中断服务程序中对 AD 采集到的数据进行图像存储,从而形成一个二维数组的数字图像。行场信号用来改变存储图像的二维数组的下标,当场信号到来时,就表明一幅图像存储完毕,要开始新一副图像了 在行中断中的示意代码如下(当然可以使用定时器定时 AD 采集):
wait(); //等待消隐信号结束。
y=0;
for(i=0;i一行采样点数:i++)
{
wait();//这个时间根据一行中要采样的点数确定。
image[x][y++]=ADResult;
}
x++;
在场中断中的示意代码如下:
ImageProcess(); //图像处理
AutoCntrol(); //控制算法及电机控制。
x=0;
y=0;大家遇到的还有一个很棘手的问题可能是 AD采样频率该设置多大呢?建议大家先通过 PLL 超频,然后把 AD 时钟频率设置的高点才行,板子做得好的话可以超到 48M。部分源代码讲解
void vPLLInit(void)//锁相环初始化{? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? //BUS-CLOCK=PLL-CLOCK/2=32M? ?REFDV = 1;??// set the REFDV register 16M*2*(3+1)/(1+1)=64M ? ?SYNR =3;? ? // set the SYNR register to give us a 64 MHz PLL-clock.? ? asm nop? ? // nops required for PLL stability.? ? asm nop ? ? asm nop? ? asm nop? ?while ((CRGFLG0x08)==0); // wait here till the PLL is locked. ? ?CLKSEL|=0x80;? ?? ?? ?? ? // switch the bus clock to the PLL.}设置总线时钟为32Mvoid vECTInit(void)//定时器初始化{??TIOS =0x00;? ? //设为输入捕捉??TSCR1=0x80;? ? //定时器使能??TSCR2=0x83;? ? //允许定时器溢出中断,定时器时钟32M/(2^3)=4M??TCTL4=0xAA;? ? //触发电平:下降沿??TIE??=0x07;? ? //开中断??TFLG1=0xFF;? ? //清除中断标志}输入捕捉的1,2通道接行场中断。void vADInit(void)//AD转换初始化程序{//ATD1设置//上电,标志位快速清零,忽略外部触发,执行一次停止,中断禁止。??ATD1CTL2??= (ATD1CTL2_AFFC_MASK | ATD1CTL2_ADPU_MASK);//转换序列长度为1,FIFO模式,Freeze模式下继续转换。|ATD0CTL3_FIFO_MASK??ATD1CTL3??= (ATD1CTL3_S1C_MASK);//8位精度,2AD采样周期,采样长度8。//
您可能关注的文档
- 6(学生)有介质时的场强和电势电容电场能量.doc
- 6-3股票的上市.doc
- 5菜心栽培(黄改).doc
- 5司超高压输变电公司黄渡站起点QC小组.doc
- 603机组正常停机测试.doc
- 60万千瓦级火电机组煤耗等经济指标.doc
- 600超临界机组调试问题.doc
- 60篇朗读作品个别字注音.doc
- 61分子的热运动温度).doc
- 600监控设备简介.doc
- ios开发-基础部分day03三天.pdf
- 章主动投资组合管理论翰-佳雇主评估bkmsol ch27.pdf
- 传感器振动压力料位流量温度测速校验仪表等.pdf
- 某房地产集团基于BIM工程基础数据整体解决方案的项目建议书.doc
- 某市生活垃圾无害化处理工程项目申请报告(优秀甲级资质项目申请报告).doc
- 某律师事务所内部规章管理制度大全规章制度范本【word完整编辑版】.doc
- 某某CNG加气站环境应急预案[1].doc
- 人教版小学语文六年级上期末考试试卷(含答案)(18).docx
- 人教版小学语文六年级上期末考试试卷(含答案)(25).docx
- 人教版小学语文六年级下期末考试试卷(含答案)(4).docx
文档评论(0)