基于AT89S51单片机的SPI与线阵CCD接口设计

一)引言
电荷耦合器件ccd(chargecoupleddevice)是一种将光信号转换成电信号的图象传感器,在工农业生产和日常生活中有着广泛的运用。spi(serial peripheral interface)是一种串行外设接口标准,可实现数据的高速发送和接收。利用spi与线阵ccd接口需要解决时序匹配和高速数据采集两个关键问题。目前有些单片机内嵌了spi,为解决上述问题创造了条件。如能通过单片机及内嵌spi实现与线阵ccd的接口,将能简化电路,具有较大的实用价值。
本文简要介绍了线阵ccd和spi的工作原理,以tcd1208ap和单片机内嵌spi为应用对象,设计了spi与线阵ccd的接口。具体内容包括:ccd驱动电路,ccd输出信号处理电路和数据接收方法。实验表明接口简单、可靠,具有较大的实用价值。
二) ccd工作原理
不同于其它器件是以电流或电压作为信号,ccd是以电荷作为信号,其基本功能是信号电荷的产生、转移、传输和检测。当光线照射到ccd的像敏单元上时,ccd首先完成光电转换,即产生和入射光辐射量成线性关系的光电荷,进而产生与光电荷量成正比的弱电压信号,然后在转移脉冲的作用下逐位移出,再经过外部电路的滤波、放大处理,输出一个能表示入射光线强弱的电信号。例如tcd1208ap线阵ccd,有2160个有效像元,像元尺寸为14μm×14μm,像元中心距为14μm,典型工作频率为1mhz,工作时序如图1所示。
在图1中,sh是转移脉冲,它将感光元件产生的电荷信号转移到转移栅中;φ1和φ2是移位脉冲,它将转移栅当中的电荷信号逐位转移出来;rs是复位信号;dos是ccd信号输出;os是输出信号补偿。
三)spi工作原理
spi是motorola公司推出的一种同步串行外设接口标准,允许mcu与标准的外围设备直接接口,以串行方式交换信息。在at89s8253中就配备了spi。spi共有四路信号,它们分别是:sck(串行时钟)、ss(从机选择)、mosi(主机发送从机接收)、miso(主机接收从机发送),其工作时序如图2所示。与spi有关的特殊功能寄存器有控制寄存器spcr、状态寄存器spsr和数据寄存器spdr。通过对这3组寄存器的编程可以实现spi的全双工同步串行工作。
四)接口设计
4. 1接口组成
接口主要由ccd驱动脉冲发生电路、ccd输出信号处理电路和数据高速采集等部分组成,如图3所示。
在图3中,单片机输出一基准时钟脉冲,由驱动脉冲发生电路产生tcd1208ap所需要的4路驱动信号;ccd输出的信号送入预处理电路,经过放大、滤波、二值化后送入单片机;单片机通过spi中断将数据采集并存储到sram中。
4.2ccd驱动脉冲发生电路
为了保证线阵ccd稳定可靠的工作,必须给出符合ccd正常工作所要求的驱动脉冲和控制电路。只有驱动脉冲与ccd时序正确配合,才能准确实现ccd的光电转换和数据输出功能。图4是采用at89s8253、74ls122和74ls74设计的ccd驱动脉冲电路。
在图4 中,利用at89s8253 的内部定时器t3的方波发生器功能从p1. 0脚输出频率为1mhz方波信号,作为基准时钟脉冲;通过74ls122进行占空比调整,形成rs信号; rs信号经过74ls74进行2分频产生0. 5mhz的方波信号,作为φ1 和φ2;将rs信号送回单片机计数器t0进行计数,当计数满2212时由p1. 1口输出一清零信号至74ls74清零端,产生φ1和φ2所需的宽电平;在产生清零信号的同时从p1. 2口产生一宽度为1000ns的信号作为sh信号; sh信号和φ1 宽电平之间的相位关系可通过软件进行调整。
4. 3ccd输出信号处理电路
由于tcd1208ap信号检测采用选通电荷积分器结构,其输出信号中叠加了一些由周期性复位信号rs引起的串扰信号,而且有效信号幅值较小(约为500mv) 、直流电压约有4. 1v。这是一组典型的共模电压较高、有效差摸信号电压较低的差分信号。为了消除信号中的复位脉冲串扰和其它干扰,须将微弱的信号进行幅值放大及驱动能力放大。图5是采用ad623的ccd输出信号处理电路。
在图5中,ad623集成了三路运放,可单电源工作,具有很高的cmrr和极低的电压漂移,除了一个用于调节增益的外接电阻外,所有的元件都集成在内部,电路有很高的稳定性和可靠性。ccd输出信号是离散的时间序列模拟信号,包含着光强信息和一维、二维位置信息,具有很高的数据速率, 通常每秒100k - 10m 字节, 最高达每秒20m字节。根据ccd应用场合的不同,在采集ccd输出信号前通常还需进行处理。主要方法有两种:一是将ccd 输出信号进行二值化处理; 二是进行a /d转换,使之成为具有灰度级的图象。
对于利用ccd进行物体形状的检测,为了简化后续算法,只将输出信号进行二值化处理。线阵ccd输出信号硬件二值化处理的方法主要有:固定阀值法、浮动阀值法和微分法等。当现场工作环境良好,干扰较小时,固定阀值法无疑是最佳的选择。它只需一个电压比较器,在比较器一端输入ccd输出信号,另一端接参考电压,当输入电压高于参考电压时,输出为高;当输入电压低于参考电压时输出为低电平。只要参考电压选择合适,就能达到系统要求。可采用高速比较器max941对信号进行二值化处理。
4. 4基于spi的数据采集
对at89s8253的sp i控制寄存器spcr和状态寄存器spsr编程可以实现数据的准确接收,其中spcr控制寄存器共有8个可编程位,定义如表1所示。由图1可知, rs的每一个下降沿对应着一个ccd像元信号的输出。对于spi, 若令spcr 中cpha = 1, cpol = 0,则sck的下降沿接收数据。只要sp i的接收同步脉冲sck和ccd复位信号rs同步,就可以实现ccd数据的准确接收。根据以上的分析,可以将mcu设为从机模式,即令mstr =0。数据从mosi输入,再利用中断将接收到的数据存入静态存储器sram。其中sck由时序产生电路产生。对spcr的编程可通过以下汇编语言实现:mov spcr, #0c4h。
五)结束语
通过sp i及所依托的单片机实现与ccd线阵的接口是切实可行的。一是利用单片机定时器产生基准时钟信号;二是使用少量外围电路结合单片机就可以产生线阵ccd所需要的驱动信号;三是利用spi即可正确接收线阵ccd输出的高速图象数据。实验证明论文所设计的接口是正确的,能够满足应用要求,并且结构简单、易于实现。当然,由于单片机处理图象的能力有限,此接口并不完全适用于复杂图象的处理。
参考文献:
[ 1 ] 王幸之,钟爱琴,王雷,等。 at89系列单片机原理与接口技术[m]。北京:北京航空航天大学出版社, 2004.
[ 2 ] 杨景常。 高速数据采集系统中数据存储电路的方案确定[j]。 测控技术, 2001, 20 (12) : 42 - 45.
[ 3 ] 杨景常,周国权。 先进先出( fifo)存储器技术在高速数据采集中的应用[j]。 四川工业学院学报, 2002, 21(2) : 20 - 22.
[ 4 ] 杨景常,刘冬梅。 高速切换开关技术在高速数据采集电路中的应用[j]。 电测与仪表, 2002, 39 (6) : 56 - 59.

数字电源控制器UCD3138的主要特性及应用电路
工程师说 | 扩充车载32位MCU核心RH850/F1x系列产品阵容
氧传感器的检测方法
AI时代,教育部为教师建智能课堂
高压跌落式熔断器的型号_选用高压跌落式熔断器的注意事项
基于AT89S51单片机的SPI与线阵CCD接口设计
应运而生 远程管理 ”预付费系统“
人工智能时代的人类文明建设开启新篇章
利用NVIDIA Fleet实现在边缘位置部署AI
在4S店买这些SUV至少贵15%,那么要去那里买最划算!
阐述无人机在飞行中影响安全的因素
MC33886的并联问题解析
您需要了解的有关下一个MISRA®标准的信息:MISRA C++ 2023®简介
s11环形变压器空载损耗的国家标准值
微软连续13年被Gartner®评为“销售能力自动化平台领导者”
电信设备制造如何成功的转型到AIoT
PF-4型恒温仪电路及应用
高通Halo车用无线充电系统经典使用问答
频率智能控制超声波清洗发生器电源
深至科技获数千万元A轮融资 将持续深耕AI超声应用