这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 基于AT89S51单片机的SPI与线阵CCD接口设计

共2条 1/1 1 跳转至

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

工程师
2020-07-16 09:08:22     打赏

一)引言

  电荷耦合器件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是输出信号补偿。

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

  三)SPI工作原理

  SPI是MOTOROLA公司推出的一种同步串行外设接口标准,允许MCU与标准的外围设备直接接口,以串行方式交换信息。在AT89S8253中就配备了SPI。SPI共有四路信号,它们分别是:SCK(串行时钟)、SS(从机选择)、MOSI(主机发送从机接收)、MISO(主机接收从机发送),其工作时序如图2所示。与SPI有关的特殊功能寄存器有控制寄存器SPCR、状态寄存器SPSR和数据寄存器SPDR。通过对这3组寄存器的编程可以实现SPI的全双工同步串行工作。

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

  四)接口设计

  4. 1接口组成

  接口主要由CCD驱动脉冲发生电路、CCD输出信号处理电路和数据高速采集等部分组成,如图3所示。

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

  在图3中,单片机输出一基准时钟脉冲,由驱动脉冲发生电路产生TCD1208AP所需要的4路驱动信号;CCD输出的信号送入预处理电路,经过放大、滤波、二值化后送入单片机;单片机通过SPI中断将数据采集并存储到SRAM中。

  4.2CCD驱动脉冲发生电路

  为了保证线阵CCD稳定可靠的工作,必须给出符合CCD正常工作所要求的驱动脉冲和控制电路。只有驱动脉冲与CCD时序正确配合,才能准确实现CCD的光电转换和数据输出功能。图4是采用AT89S8253、74LS122和74LS74设计的CCD驱动脉冲电路。

  基于AT89S51单片机的SPI与线阵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转换,使之成为具有灰度级的图象。

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

  对于利用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输出的高速图象数据。实验证明论文所设计的接口是正确的,能够满足应用要求,并且结构简单、易于实现。当然,由于单片机处理图象的能力有限,此接口并不完全适用于复杂图象的处理。

  基于AT89S51单片机的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.




高工
2020-07-17 08:53:32     打赏
2楼

非常感谢你的分享


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]