基于51单片机的线阵CCD实时检测系统的开发

发布者:科技奇思最新更新时间:2011-11-04 关键字:51单片机  CCD实时检测系统 手机看文章 扫描二维码
随时随地手机看文章

CCD(Charge Coupled Devices)电荷耦合器件应用系统的关键技术在于CCD驱动时序的产生和输出信号的采集与处理。目前驱动主要有直接数字电路驱动、EPROM驱动、专用IC驱动、复杂的CPLD驱动等常用的驱动方法,但是它们存在着逻辑设计较为复杂、调试困难、柔性较差等缺点。在数据采集和处理方面,大多数都经过差动放大、采样保持、A/D转换,再通过总线或采集卡等接口与PC机相连。这种系统结构庞大,而且在信号处理、通信软件和界面设计等方面要耗费大量的精力。应该说这种应用系统在静态测量处理方面有其优点,但如果要满足实时控制系统的连续检测要求以及系统体积精小而容易装配等特点,则必须简化驱动电路、数据采集过程和处理方式。本文正是出于这种考虑,开发出了一种基于单片机的实时性检测系统:仅用Atmel公司一块小型的AT89C2051单片机便能产生稳定、精确、高速的驱动脉冲。该电路结构简单、调试方便、CPU占用率低,将驱动、采集和处理融为一体,而且与上位机的连接仅用两条导线便可实现检测信息传输。这种方法大大简化了线阵CCD检测系统的结构,在机器人视觉、智能小车、轨迹导引等动态检测方面有独特的应用优势。

1 线阵CCD实时检测系统模型

以机器人路径识别为例具体说明如何利用线阵CCD开发实时动态环境检测系统。

假设在一个深色(如黑色、蓝、绿等)平面上用宽度为30mm的白线作为机器人将要运动的轨迹导引线,利用线阵CCD开发出检测白线轨迹的检测系统。先利用光学系统用摄像头将路面信息成像到CCD的感光面上;然后读取白线的位置检测信息作为机器人的视觉,让机器人在上位机的控制下沿白线轨迹运动。这是一个典型的CCD实时检测系统。整体检测系统如图1所示。

2 硬件设计

利用CCD的光电特性,设计出的电路应能判别视频信号上输出的深色和白色区别,这样才能识别白线,时刻反应机器人当前所在的物理位置,以便对其运动做相应的调整。 线阵CCD选用NEC公司的μPD3575D型号。芯片为20脚DIP封装,像敏单元数目为1024,像敏单元大小为14μm×l41μm×l4μm(相邻像元中心距为14μm),光敏区域采用高灵敏度和低暗电流PN结作为光敏单元,内置采用保持电路、输出放大电路,外观尺寸为25.5mm×10mm,易于装卸。该器件工作在5V驱动(脉冲)、12V电源条件下。

系统简要电路如图2所示。驱动用的单片机是AT89C2051。它是Atmel公司生产的自带2KB可编程Flash存储器的与MSC-51兼容的高性能处理器。它与常规的51芯片有相同的核心和相近的结构功能如RAM、定时/记数器、中断结构、串行口、振荡器和时钟电路等;有最高达24MHz的振荡频率,能高速地驱动CCD;有较少的精简I/O端口,因此体积很小,非常适用做小型应用系统的处理器。对很多嵌入式控制应用提供了一个高度灵活的有效解决方案。本线阵CCD检测系统发挥了其小而灵活的特点,既陡系统资源得到了充分的应用又让系统结陶精简紧奏,电路中二值化部分的电位器R_T用来调整二值化比较电平的阀值(0~5V),通过它调节整个CCD的灰度分辨率。同时整个系统对外接口十分简单,只需接上电源和两条通向上位机的信号线。上位机只需等待同步信号FC和检测脉冲信号BIN_OUT到来的中断信号,与AT89C2051相互独立,彼此之间没有任何时钟信号或复用关系。因此实际运用中器件互换性较强。既可选用普通的AT89C51进行一定的端口扩展接收FC和BIN_OUT,也可选用中断能力较强的SOC芯片C8051FXX系列等。整个检测系统具有良好的柔性,最终电路体积可控制在手掌心大小之内。



3 信号时序及软件设计

由于硬件设计时考虑用软件产生CCD驱动信号,这样软件设计的最大难点为既要满足CCD芯片的驱动信号要求又要完成检测信息的完整表述。综合比较各种方法后得出了整个软件设计思路如下:

驱动描述:NEC公司的线阵μPD3575D所需驱动信号与TOSHIBA公司传统的TCD系列略有差异,具体驱动信号为:时钟φ10、转移脉冲φTG、复位时钟φRO和采样保持时钟φSHO,时序关系如图3所示。

 

μPD3575D为双沟道线阵CCD,它有两列525位的CCD移位寄存器,分列在像敏阵列的两边,在一个积分的φTG周期中至少有525个φ10脉冲:另外考虑到一些暗信号和空驱动.本系统开发中取φ10脉冲宽度约为10μs、φTG积分时间为12ms。

单片机驱动主要是通过程序编程控制输出驱动的时序信号,可以通过修改程序方便地修改输出时序,单片机是靠指令产生I/O口的输出逻辑,在使用逻辑转移指令时,必须注意精心配置,避免产生驱动时序相位上的不同步。因为转移指令要根据某些条件产生程序分支,而分支程序在不同的条件下执行周期通常不同,会造成CCD驱动时序不同步。
[page]

    检测过程描述:参见图2的系统电路图,当CCD被驱动后因其光电特性会有视频模拟信号Vout输出,信号如图4所示。可以看出:模拟信号Vout在CCD扫描到深色区和白色区有明显的幅值大小区别,要提取的信息就是这个变化的电压信号,但单片机不能直接处理模拟信号Vout,因此必须先将Vout通过二值化处理得到数字信号BIN(见图2二值化电路部分)。这样便得到了反映白线左右两个边缘的脉冲信号BIN。为了方便上位机的处理,不直接输出信号BIN,而是将BIN反馈给AT89C2051,让其通过程序编制来捕捉其上升沿和下降沿的跳变,再从另外的引脚输出与BIN上升沿和下降沿同步的负脉冲信号BIN_OUT。这样上位机可方便地通过中断检测到白线的左右侧。这里AT89C205l还要输出一个同步信号FC(即驱动转移脉冲φTG)。因为系统是在连续扫描地面信息,故FC脉冲可标志CCD上一次扫描的结束和新一行扫描的开始。新一行开始扫描时,上位机收到FC负脉冲后可进入中断对定时器TO、Tl清零并立即开始计数。当收到BIN_OUT的第一个负脉冲后进入中断并停止,定时器TO;当收到BIN_OUT的第二个负脉冲后进人中断并停止定时器T1,读出定时器TO、T1里的数t0、t1。t0、t1便反映了路面白线的坐标位置,很明显t1与t0之差便是白线宽度。

 

综合以上驱动和检测信号要求得出:在主程序中用一个死循环产生连续的四路驱动脉冲,并通过嵌入相应的其他功能的指令来保证四个驱动脉冲的相位关系,对BIN信号的上升沿和下降沿的判断也在此循环中完成。对BIN信号的当前状态还必须有一个状态标志BIN_STATE。一旦遇到BIN信号有电子变化便给出相应的BIN_OUT负脉冲,而BIN_OUT恢复高电平是靠定时器TO溢出中断服务程序实现的。

    本系统用一片小型单片机完全实现了预定功能,几乎没有复杂的外围电路器件,结构简单可靠,硬件、软件代价都较低,系统成本预算较低。整个检测系统角在机器人视觉上实验效果也非常理想。系统可根据具体的需要和要求进行扩展和改变,如增加信号输出、改变检测系统和上位机的信号接口等。

关键字:51单片机  CCD实时检测系统 引用地址:基于51单片机的线阵CCD实时检测系统的开发

上一篇:基于51单片机的喷墨打印机控制技术
下一篇:步进电机控制程序(c语言+51单片机)

推荐阅读最新更新时间:2024-03-16 12:45

51单片机UART 串口通信[ 方式1 ]实现
1 51串行口结构 51单片机的UART串行通信是基于其串行口的可编程硬件结构,只要用正确的程序代码通过初始化串行口对应寄存器的形式将其串行硬件结构初始化,再编写符合此串行口通信的程序代码便能够实现串行通信,其硬件结构决定了编程机制( 当然还要靠51芯片内CPU等机制 )。此结构具有UART( 通用异步收发器 )的全部功能,能同时进行数据的发送和接收,也可作为同步移位寄存器使用。此结构集成于单片机内部。 Figure1:51串行口结构 2 51串行口通信编程机制 决定编程机制的先决条件是51单片机的硬件结构及51芯片内部CPU的执行机制。根据串行通信口硬件结构,实现UART通信可以分为两步: (1)初始化串行通信口(
[单片机]
<font color='red'>51单片机</font>UART 串口通信[ 方式1 ]实现
GPS时钟51单片机程序
网上看到的GPS时钟程序,特此收藏,给广大电子制作爱好者参考。GPS时钟,硬件非常简单,程序也算是不太高深,不需要按鍵,不用 DS1302 IC,只要了一个GPS模块,好处是不需要调整時间,只要有卫星信号就核对时间。 // 作者:antlu #include reg52.h #define DataPort P0 // display LED segment #define DrivePort P2 //display LED digit //sbit Gok_LED =P1^2;// 收到 $GPRMC, 送出LED bit disp_flag; bit rec; // receive rs232 OK_flag vo
[单片机]
GPS时钟<font color='red'>51单片机</font>程序
51单片机-按键模式
1.前讲回顾 在上一讲的代码里如果我们按下按键一直不松手,则灯会一直闪烁。这是因为“稳定接触状态”一直保持着长时间的低电平,所以程序的二次“if(KEY4==0)”判断一直满足条件就会在“LED2=0;”和“LED2=1;”之间来回切换,再加上50ms延时才会保持亮一段时间灭一段时间所体现的LED闪烁。 2.支持连按概念 这种按键模式就叫做“支持连按”,所谓支持连按即我们使用遥控器放大电视的音量时只需按住“+”键不放,屏幕上的音量值在一直累加,松手后就停止累加了,这种就叫做按键支持连按功能。 3.不支持连按概念 另一种按键模式叫做“不支持连按”,例如我们用的电磁炉上的“+”键,按下不松手时数值只加一次就不加了,只有松手后
[单片机]
利用51单片机完成一种智能助眠机系统的设计
一、功能简介 本项目使用Proteus8.12仿真51单片机控制器,使用蜂鸣器闹铃模块、LCD1602显示模块、心率血氧模块、PCF8691 ADC模块、按键模块等。 主要功能: 系统运行后,LCD1602显示传感器采集的心率和血氧值以及当前时间;可通过K3键进入时间修改模式,K3用于切换时、分、秒,K1和K2键调节;时间修改完成后可按下K4键保存并返回主界面。 可通过K4键进入助眠和起床闹铃设置模式,K4用于切换助眠时/分,起床时/分,K1和K2键调节。闹铃设置好后可按下K3键保存并返回主界面。若当前时间到达助眠时间或起床闹钟时间,则开启蜂鸣器闹铃,可通过K2键取消正在闹铃。正常界面下,可通过K1键查阅监测心率和血氧的数
[单片机]
利用<font color='red'>51单片机</font>完成一种智能助眠机系统的设计
51单片机程序及调试步骤实战经验
我刚参加工作的时候,用的是stc 51单片机的,51单片机不像stm32那样可以通过st-link在keil上面在线仿真。 有时候出现bug的时候,非常难找问题,要一段一段屏蔽然后测试。 在刚开始接触开发的时候,我非常不习惯用在线仿真,大概是因为没用过。 记得有一次进了一家公司做行车记录仪,用的台产GRAIN的单片机。 那时候基本上没什么资料,就一个dada sheet和demo程序。 在开发之前,老大安排了给我一个任务,就是把这个仿真环境先给搭起来。 相当于是他们原厂没有的东西,让我去搞定,这个芯片是基于Fa626TE core的32位控制器。 网上的资料太少了,光是测试搭建这个环境花了半个多月,最后还没搭建出来。
[单片机]
51单片机的AD/DA转换
一、A/D(模数)、D/A(数模)转换 (一)、引脚 AOUT:模拟输出 Vref:参考电压 AGND:模拟地 EXT:接地 OSC:悬空 SCL,SDA:IIC AIN0、AIN1、AIN2:模拟输入口 (二)、电路图 从电路图可以看出,A0,A1,A2接地,所以当写入的时候地址应该是0X90,读取的时候应该是0X91 (三)、AGND和DGND 模拟地和数字地隔离开,消除干扰 (四)、控制字节 (五)、AD读数据函数 #include reg52.h #include delay.h #include iic.h #define SUCC 1 #define FAIL 0 unsigned char
[单片机]
AT89C51单片机在电话远程控制器中的应用
随着通讯产业的发展,电话机已经走进了千家万户,利用电话机进行远程控制的技术也日益用于生活中,本文设计了一种电话远程控制系统,该系统主要应用于电话遥控控制的家用电器,用户在户外可通过任意一部双音多频电话(包括手机、电话分机),根据语音提示,可以对各种电器(如电饭锅、微波炉等电器)进行远程控制。   1 系统结构 此系统主要包括电话振铃检测电路,电话自动拾机和挂机电话,DTMF信号解码电路,语音提示电路,以及音频放大电路,系统结构框图如图1所示。 当有电话呼入时,电话振铃检测电路检测到有振铃并等待系统默认的振铃次数后,控制器自动拾机。用户在语音提示下依次输入用户的操作密码和操作指令。DTMF解码电路将接收到的DT
[单片机]
MCS-51单片机的无条件转移指令用法介绍
控制转移指令用于控制程序的流向,所控制的范围即为程序存储器区间,MCS-51系列单片机的控制转移指令相对丰富,有可对64kB程序空间地址单元进行访问的长调用、长转移指令,也有可对2kB字节进行访问的绝对调用和绝对转移指令,还有在一页范围内短相对转移及其它无条件转移指令,这些指令的执行一般都不会对标志位有影响。 MCS-51单片机的无条件转移指令用法介绍 无条件转移指令 这组指令执行完后,程序就会无条件转移到指令所指向的地址上去。长转移指令访问的程序存储器空间为16地址64kB,绝对转移指令访问的程序存储器空间为11位地址2kB空间。 LJMP addr16 ;addr16→(PC),给程序计数器赋予新值(16位地址) AJ
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved