建立先进理念和体系,创造最好技术和工艺,开创一流业绩和局面,打造PCB抄板、芯片解密知名企业

当前位置:首页>芯片解密>浏览正文

简析基于单片机的微波辐射计数控单元设计与实现

来源:龙人计算机研究所 作者:站长 时间:2009-10-19 16:50:56

  微波辐射计在探测大气、海洋、植被和土壤等方面有广泛应用,它是用微波进行遥感,从而对地物进行探测的微波接收机,而数据处理与控制单元作为微波辐射计的重要组成部分,承担了所有的驱动及控制功能,对时序及精度要求十分严格。由于系统对可靠性要求较高,故采用单片机作为220 GHz微波辐射计数控单元的核心,通过精确的时序控制,实现了数据采集、天线控制、状态提取、串口通信等功能。同时,该数控单元具有功耗低,采样精度高,接口简便等特点。
  1 系统结构
  微波辐射计结构框图如图1所示,由检波器输出的模拟信号通过数控单元实现数据采集及传输、显示与数据处理等功能,并对系统时序、上下电等进行控制,在辐射计的设计中处于重要位置。

 


  1.1 数控单元硬件结构
  系统由单片机、高速A/D转换器、程序存储器ROM、高速静态RAM、读写控制电路、通信电路等部分组成,如图2所示。通过锁存器实现地址总线和数据总线的复用,同时,RAM的读写由读写控制电路来实现。


  数控单元采用Atmel公司的AT89C51单片机作为控制器,具有4 KB闪存ROM,128 B RAM,支持电擦除1 000次,选择工作频率为11.059 6 MHz。同时采用AT28C256扩展程序存储器ROM为256 KB,IDT71256扩展数据存储器RAM为256 KB,通过锁存器54HC573进行分时复用。
  数据采集部分采用AD公司的16位并行模数转换器AD976A,采样速率可达200 KSPS。该高速A/D采用电荷重分布技术进行逐次逼近型模/数转换,因而不必外加采样保持器。电压输入范围为-10~+10V,分辨率高,可做到16位不失码,满足微波辐射计数控精度要求。
  AT89C51串行口输出为TTL电平。为使其与PC机标准RS 232串口通信,系统选用MAX232电平转换芯片。
  1.2 硬件设计与实现
  1.2.1 数据采集
  单片机初始化完毕后,通过片选信号选中A/D转换器,把RAM的控制权交给采集电路。AD976A进行数据采集时,置CS引脚固定为低电平,则转换时序由 R/C信号的下降沿控制,信号脉冲宽度至少为50 ns。当R/C变为低电平时,BUSY信号也变为低电平,标志转换结束,则移位府存器中的数据被更新的二进制补码替代。设计中,由于256 KB数据存储器仅需要15位地址A0~A14,则使用A15与RD,WR共同作为控制线,使A/D转换与数据存储交替工作。当A15低电平时,选通数据存储器IDT71256,此时CS为高电平,则AD976A停止工作;当A15为高电平时,通过与非逻辑电路使CS为低电平,选通AD976A,并通过WR 的变化提供R/C下降沿,这样可以通过软件延时精确控制采样率。
  1.2.2 总线控制
  在数控单元硬件结构中,采用P0口提供数据总线和地址总线,当ALE输出信号为高电平时,P0口,输出数据锁存入总线驱动器中地址的低8位,同时和P2口送出的高8位地址组成完整的16位地址,寻址到外部的256 KB地址空间,由A/D转换器把采集到的数据存入静态RAM中。由于P0口是数据与地址分时复用口,因此引进74HC573作为地址锁存器。同时,使用 RD作为读取外部数据内存的控制线;WR作为写入数据到外部内存的控制线;PSEN作为存取外部程序存储器的读取控制线。
  1.2.3 电机控制电路
  天线驱动控制部分通过上位机发送电机启动命令,单片机从串口接收到启动命令后,向电机驱动器AKS230发出节拍脉冲,以带动天线匀速转动;通过编程控制P1.0口输出节拍脉冲速率,即可控制天线转速。当上位机发出停止命令时,通过单片机程序提取天线状态,保证天线启停处于同一位置。考虑到单片机输出电流与电机驱动电流的匹配问题Ⅲ,这里使用总线驱动器74LS245与单片机相连,输出电流可达20 mA,满足电机驱动要求。
  1.2.4 串口通信电路
  串口通信部分通过AT89C51内部的全双工串行通信接口RXD和TXD进行发送和接收。AT89C51串行接口有四种工作模式,本设计中,串口工作于方式1,波特率可变,通过定时器T1进行溢出率控制,令T1工作于方式2,由于波特率为(2SMOD/32)·(fOSC/12)·[1/(28- TH1)],则通过计算可得T1装载值为0xFA,波特率为9 600 b/s。这里选用MAX232完成TTL到EIA的电平转换。
  2 软件设计
  单片机软件部分采用了模块化的设计方法,按照功能分为数据采集及存储、电机运行控制及状态提取、串口发送与接收几部分,各个模块之间通过中断或子程序调用等进行连接,有机地成为一体,整个系统已经使用Medwin 3.O调试并能够成功运行。
  数据采集部分包括初始化、信号采集及存储,采集速率通过编程进行控制,实现每10 ms采样一个电压值,并存人0100H~01C8H的地址空间中,采集100个数据后调用中断通过串口传给上位机进行后续处理。每次系统上电时,采集部分复位并从头运行,数据采集部分程序流程图如图3所示。


  电机运行控制部分通过中断接收串口命令,以实现电机的精确启动和停止,从而控制天线的扫描状态,当串口发送5500h时电机停止;当发送55ffh时电机启动。其重点在于精确读取天线的转角状态,保证电机启动和停止处于同一位置。主要通过软件计数来实现,由于电机步进角为1.8°且采用32细分,则每转一圈步数为:360°/(1.8°/32)=6 400步,通过读取计数值,实现对电机启动停止位置的控制。电机控制部分程序流程图如图4所示。

 


  串口通信部分采用中断方式,包括串口初始化和串口传输两部分,通过发送标志TI和接收标志RI判断中断类型,若为接收中断,则接收上位机命令,控制电机启动和停止;若为发送中断,则实现每次间隔1 s向上位机发送100个电压值,即200个字节。其中,串口通信部分流程图如图5所示。

 


  3 上位机软件设计
  上位机软件主要通过C#实现,通过调用串口实现对下位机的控制及数据的后续处理,并能够实时显示采集数据波形并保存。界面如图6所示。