摘 要:本文介绍了对放置在检测板上的4个光电二极管,在太阳光照射下,产生的电流信号进行模拟信号采集和单片机处理数据的实现过程。给出了基于单片机的模拟信号采集系统的总体框架,对硬件及软件设计作了详细的说明。系统以SPI为传输方式,以STC89C52为控制器,实现了信号的模数转换及数据的传送与处理。本文设计的光电模拟信号检测跟踪方案,更好的确定太阳辐射角度的精确位置,控制更精准。
关键词:光敏二极管; 光电模拟信号检测; SPI; STC89C52; 跟踪
一、引言
对于太阳自动跟踪的光电检测跟踪,通常介绍的光电检测部分都是采用的比较电路,通过判断单片机输入端的高低电平来实现的太阳跟踪的数字信号检测[1-2],跟踪精度不高,本设计为了弥补传统采集系统的缺陷,用连续的模拟量取代开关量,控制更精准,以达到确定太阳辐射角度的精确位置,实现对太阳的高精度跟踪。
二、模拟信号检测的光电检测跟踪总体设计
根据整个电路的需要,光敏传感器采用光电二极管来采集光信号[3]。光电二极管是利用光生伏特效应设计的光敏元件,是一种光传感器,它可以感应光强产生与入射光强成正比的感应电流。由于其在很宽的入射照度范围内都具有线性的光电流,响应速度快,对宽范围波长的光具有较高的灵敏度,噪声低,小型轻量以及耐振动与冲击的特点,所以,本设计采用光敏二极管作为光敏传感器。
光电检测电路主要是检测太阳的高度角和方位角变化,电路中我们用了4个光敏二极管,4个光敏二极管如图1中排列,4个光敏二极管D1,D2,D3,D4排成圆形分布。
图1 光电二极管排列图 图2 空心圆柱体
将此检测板用一不透光的下方开口的空心圆柱体盖住如图2示,圆柱体的直径略大于图1中的外圆。圆柱体的上方中央开一个与检测用的光电二极管直径相同的洞,以让光线通过。将整个光电检测装置安装在太阳能采光板上,光电二极管的检测面与采光板平行。
本模拟信号检测的光电检测跟踪系统以单片机为控制核心,还包括A/D转换模块,A/D转换模块的目的是将采集到的光电二极管的模拟电压信号转换成单片机能处理的数字信号。本文所讲的模拟信号检测系统其总体框图如图3所示。
图3 模拟信号检测的光电检测跟踪模块总体框图 模拟信号检测的光电检测跟踪硬件实现 1、各芯片的选择
在设计中选择开关电容逐次逼近型的TLC2543CN作为模数转换芯片,控制核心和数据处理核心是STC公司生产的8位STC89C52单片机芯片。
在本文的硬件设计中,充分考虑了各个接口器件的信号环境,以及器件之间的接口方式,所以设计的比较合理,主要包括以下几部分的硬件设计:TLC2543CN模数转换电路的硬件接口设计;TLC2543与STC89C52的硬件接口设计。下面分别对其硬件设计进行说明。
2、TLC2543CN模数转换电路的设计
电压信号可以经由A/D转换器件转换成数字信号然后采集,但是电流不能直接由A/D转换器转换。所以我们先将电流转变成电压信号,然后进行转换。
本设计是在被测电路中串入精密电阻,通过直接采集电阻两端的电压来获得电流。用电流表测得在光照射情况下光电二极管回路中的电流在几微安到几百微安左右,相比而言被检测的电流是一个很微弱的信号,TLC2543CN模数转换器的电压检测范围是0~5V,所以在电流/电压转换过程中,需要选择合适阻值的精密电阻,以保证所采集的电阻两端的电压范围在0~5V左右。由不同的光照强度确定不同的电阻值,经过多次计算我们在本设计中选择的精密电阻阻值为10k,可以确保其采集的电压范围在模数转换器的电压检测范围内。具体的硬件连接如图4所示。
图4 TLC2543CN模数转换电路设计
TLC2543CNA/D转换芯片具有12位分辨率,11个模拟输入通道,采样率达到66Kbit/s。TLC2543结构简单,控制方便,稳定性好,所以正好适合本设计的需要。
在设计中选用AIN0,AIN1,AIN2,和AIN3四个模拟量通道,分别用于检测在太阳光照射下的四个光电二极管回路中电阻两端的电压。
另外此模数转换电路采用了LM336集成电路,LM336是精密的5V并联稳压器,其工作状态相当于一个温度系数低,动态电阻为0.2的5V齐纳二极管,其良好的温度稳定性和高精度正好适合为AD转换器TLC2543CN提供精确参考电压。配合具有12位分辨率、温度范围内10ms转换时间、固有采样和保持、线性误差正负1LSB Max、单极性或双极性输出、可编程的MSB或LSB前导、采用CMOS技术等诸多优点的TLC2543CN,使单片机可以获得稳定的、精确的数据[4]。
3、TLC2543与STC89C52的硬件接口设计
TLC2543为采用SPI串行输入结构的A/D转换芯片,由于STC89C52单片机硬件没有SPI接口,所以SPI接口可以利用单片机通用I/O口进行模拟[5-6]。TLC2543与STC89C52的硬件连接如图5所示。
图5 TLC2543与STC89C52的硬件接口连接
图5中,AIN0~AIN10为模拟输入端;REF+与REF-分别为正、负基准电压,A/D模拟量输入范围为0~+5V;接单片机的P1.0口,模拟片选端,当由高变低时,内部计数器复位,由低变高,在设定的时间内禁止DATA INPUT和I/O CLOCK ;INPUT端接单片机的P1.2口,模拟串行输入端,用于写控制信息;OUTPUT端接单片机的数据输出端P1.3,用于接收转换的数据;I/O CLOCK输入/输出时钟端接单片机的P1.1口,I/O CLOCK接收串行输入信号,在它的前8个上升沿,将8位输入数据存入数据寄存器,在第4个下降沿,被选通的模拟输入电压开始向电容充电直到最后一个下降沿为止,再将前一次转换的其余11位输出到DATA OUT端,I/O CLOCK的最后一个下降沿,将转换的控制信号传送至内部的状态控制位;EOC为转换结束端,在最后的I/O CLOCK下降沿之后,EOC从高电平变为低电平并保持到转换结束和数据准备传输为止,这样,单片机就能读取进而转化数据,从而可以节省了CPU的时间[7]。 模拟信号检测的光电检测跟踪软件设计 模拟信号检测的光电检测跟踪软件设计包括三大部分:单片机SPI接口程序,TLC2543CNA/D转换控制程序和单片机处理数据程序。SPI接口程序包括串行时钟、数据输入和数据输出。TLC2543控制程序的通道选择、传输数据格式、传输数据的长度的选定,都是通过控制器向TLC2543写控制字来实现。