一种小型存储测试仪

著录项
  • CN201610609421.3
  • 20160729
  • CN107665726A
  • 20180206
  • 湖南百里目科技有限责任公司
  • 不公告发明人
  • G11C29/56
  • G11C29/56 G06F13/40

  • 湖南省长沙市天心区湘府西路229号文苑(保利花园)三期11栋606房
  • 湖南(43)
摘要
本发明涉及一种小型存储测试仪,本发明以型号为MSP430的低功耗的单片机为控制器件,使用EEPROM型掉电不丢失的器件来做存储扩展,选用AT24C1024芯片扩展单片机的存储容量。本发明通过测量温度来检验系统的性能,并通过MAX232串行接口来实现与PC机通信,以达到数据在PC端的处理与再现。
权利要求

1.一种小型存储测试仪,其特征在于,本发明专利涉及一种小型存储测试仪,本发明以 型号为MSP430的低功耗的单片机为控制器件,使用EEPROM型掉电不丢失的器件来做存储扩 展,选用AT24C1024芯片扩展单片机的存储容量。

2.根据权利要求1所述的一种小型存储测试仪,其特征在于,本发明通过测量温度来检 验系统的性能,并通过MAX232串行接口来实现与PC机通信,以达到数据在PC端的处理与再 现。

说明书

一种小型存储测试仪

技术领域

本发明专利涉及单片机技术领域,尤其涉及一种小型存储测试仪。

背景技术

在当今的世界,对武器的研究是各国研究的重点,它也代表了一个国家科技技术 的水平,而在对武器系统的研究中,对武器的性能要求很高,武器使用的环境变得越来越复 杂,越来越恶劣,所以在对武器性能进行测试的时候,测试的环境对于测试者来说很不利, 这就使得要有能够在各种环境下进行测试的先进技术。要进行测试那就离不开测量测试使 用的设备,它是进行测试的重要手段与不可或缺的方法,它们的测试性能的优劣,对最后得 到的测试结果的精度有着非常重要的影响。随着对武器系统能的要求越来越高,相应的对 其进行测试所要求的精度也变得越来越高,所以一种新的能够更有效地进行测量的手段出 现了,那就是存储测试技术。

传统的测试方是在测量环境中,直接使用测量仪器进行测量并进行分析,而存储 测试技术与此有着很大区别,它是指在对测量对象进行测量的时候,是把测量仪器放在要 进行测试的环境中,能够实时的采集测量数据,并且把测量得到的数据存储起来,测试完成 后,由工作人员把测试仪器回收,然后事后在上位机上进行显示或者处理。其发展方兴未 艾,应用前景广阔,它已经发展成为一种重要的先进的测试技术,是计量技术与仪器学科的 一个重要分支。现如今电子计算机的发展已经遍布我们生活的方方面面,而计算机的信息 存储发挥着重要的作用,存储测试的就是随之应运而生的。在现在的科学技术领域里面,微 电子技术发展十分迅速,随之而来的出现了大量的不同型号与规模的CMOS存储器,这使得 存储测试技术得以迅速发展。现如今集成技术的发展以及其性能的不断提高,是的存储测 试技术不断的更新改善,所能够应用的范围变得越来越多大,所能发挥出的作用越来越大, 推动了其自身的发展。存储测试与控制以及人工智能紧密相连,而现代控制理论的日趋成 熟与完善,以及人工智能技术的不断发展,都为存储测试技术的发展提供了动力与活力,现 在的存储测试系统朝着多样化、存储容量大、存储通道众多、可编程能力强的方向发展。并 且随着社会的需要以及技术的进步,存储测试系统变得越来越智能化,具有自适应性。

发明专利内容

本发明专利涉及一种小型存储测试仪,本发明以型号为MSP430的低功耗的单片机为控 制器件,使用EEPROM型掉电不丢失的器件来做存储扩展,选用AT24C1024芯片扩展单片机的 存储容量。本发明通过测量温度来检验系统的性能,并通过MAX232串行接口来实现与PC机 通信,以达到数据在PC端的处理与再现。

附图说明

图1:硬件总体结构图。

图2:电源电路图。

图3:时钟电路图。

图4:复位电路图。

图5:温度传感器电路图。

图6:A/D转换模块电路图。

图7:存储模块电路图。

图8:通信模块电路图。

图9:温度传感器模块流程图。

具体实施方式

为了使本发明专利的目的、技术方案及优点更加清楚明白,以下结合附图及实施 例,对本发明专利进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释 本发明专利,并不用于限定本发明专利。

本发明专利涉及一种小型存储测试仪,本发明以型号为MSP430的低功耗的单片机 为控制器件,使用EEPROM型掉电不丢失的器件来做存储扩展,选用AT24C1024芯片扩展单片 机的存储容量。本发明通过测量温度来检验系统的性能,并通过MAX232串行接口来实现与 PC机通信,以达到数据在PC端的处理与再现。

进一步的,本发明的系统硬件共分为4个部分:单片机及其外围电路、温度传感器 电路、存储电路、串行通信接口电路。硬件总体结构图如图1所示。MSP430F149作为系统的控 制中心,控制着整个系统的运行,其他各个模块与单片机的相应的IO口相连,和单片机一起 构成整个测试存储系统。Lm75是温度测量模块,测量环境温度;AD模数转换用于把测得的模 拟量转换成数字量,方便用户读取。单片机内部所有的存储空间不能满足使用要求,所以这 里要对单片机进行存储空间的扩展,这里使用AT24C1024,用来存储测量得到的数据;存储 测试仪要去上位机进行通信,以便对测量得到的数据进行处理,这里上位机使用PC机,通信 方式使用RS232串行通信。

进一步的,本发明系统中单片机部分以及部分外围电路使用+5V电压,而部分外围 电路以及模块需要使用+3.3V电压。所以本发明中使用5V直流电压源作为输如电压,为使得 单片机以及所有模块都能正常工作,必须进行电压的转换。电源电路如图2所示本系统中采 用5V直流电压源作为输入电压,5V电压通过电压转换芯片LM1117-3.3转换成3.3V。当按下 S2时,5V电压指示灯D1亮,3.3V电压指示灯D2亮。发光二极管要求通过的额定电流是10mA, 所以接了一个510欧姆的电阻进行限流。5v、3.3v电源均接了两个电容对电源进行稳压滤 波,为系统提高稳定的电源。

进一步的,时钟是系统运行的心脏,时钟电路为系统有条不紊的工作提供了保障, 因为有了时钟,单片机才能控制各个模块协调的工作。时钟电路如图3所示。本系统使用的 是8M晶体,该晶体的两端与MSP430F149的XIN 、XOUT引脚相连,并且连接了两个电容,使得 单片机能够正常工作。

进一步的,在一个控制系统中一定要有复位电路,这样能够使得系统上电后能够 很好的复位,以使其能很好工作。这里使用手动复位的方式,以使得当出现错误的时候,能 够纠正错误,从头运行。复位电路如图4所示。MSP430F149单片机是低电平复位。的那个S1未 按下时,电容有阻隔电流的作用,所以单片机复位端RST为高电平,单片机不执行复位功能; 当S1按下时,S1、C1、R1、+5V回路导通,电容放电,单片机复位端RST为低电平,单片机复位。 当S1释放时,电容充电,复位端RST由低电平缓缓变为高电平,当达到单片机阀值之前都处 于复位状态,当电容充电完成之后,RST为高电平,单片机结束复位。

进一步的,本发明系统选用的温度传感器芯片是LM75,这种芯片具有I2C总线接 口。这种芯片把测得的温度信号转换成电压信号并通过模数转换转换成数字量,而且芯片 内部具有寄存器,可以吧数字量存储在其中,用户只需要通过I2C 总线接口就可以得到测 得的温度数据。LM75具有I2C总线接口,单片机可以借此和温度传感器芯片进行通信,可以 读取LM75中的寄存器的值,从而获得的当前的温度值。用户可以通过编程控制其输出模式 以及输出极性,并进行芯片的配置,因此它他别适用于具有查询与中断功能的单片机控制 系统。本系统中使用的温度传感器模块的电路如图5所示。LM75芯片为用户提供了具有8个 引脚,其中SDA引脚用于双向传输数据,它与单片机的P5.0引脚相连,用于传输数据。SCL引 脚是时钟引脚,与单片机的P5.1引脚相连,提高数据传输的时钟。A0、VDD接3.3V电源;A1、A2 相连并且接地;其中VDD与A2之间接一个电容用于滤波。CMP引脚悬空。

进一步的,AD转换模块分为单片机内部嵌入的模数转换模块以及使用外部AD模数 转换芯片。而MSP430F149单片机内部为用户提供了模数转换器ADC12,而且ADC12性能很好, 转换速度快,能够满足一般用户的需求,所以在这里我们选用内嵌的ADC12.ADC12的模数转 换的原理是逐次逼近的原理,最大采样率可达2000ksps,分辨率为12位,具有8路模拟输入 通道。本课题使用的模数转换器通过ADC12采集外部模拟信号,并将其转换成数字量输出。 A/D转换电路如图6所示。

进一步的,AT24C1024是掉电不丢失的EEPROM存储器,支持I2C总线数据传输协议, 而单片机与AT42C1024进行通信就是基于此。单片机把测得数据通过I2C总线存入存储芯片 中,并且在需要时也能够通过命令从存储器里读出数据。存储器模块电路如图7所示。 AT24C1024具有8个引脚,其中有两个与单片机MSP430F149相连,其中SDA是双向数据传输引 脚,与单片机的P5.0相连;AT24C1024的SCL引脚是串行数据时钟引脚,它与单片机的P5.1相 连,SDA、SCL的连接构成I2C总线结构。允许地址输入引脚与单片机的P4.7相连;WP是写保护 引脚,当WP为低电平的时候表示允许对存储器进行读/写操作,这里WP与单片机的P5.2相 连。

进一步的,存储测试仪在测试环境中把测量得到的数据储存在存储器中,事后由 工作人员回收存储测试器,然后通过上位机显示数据,并对测得的数据进行分析处理,所以 上位机与下位机之间的通信很重要,本发明选用串行通信方式。通过RS232接口进行通信是 目前常用方式,且这种方式很成熟,PC机上也都有RS232接口,但是由于RS232规定的逻辑电 平与单片机的电平不一致,所以要进行电平的转换。这里选用MAX232芯片进行电平的转换。 如图8 所示是通信模块的连接电路。MAX232的两个引脚T1IN、R1OUT分别与MSP430F149的 TXD、RXD引脚相连。9针接口管脚3号与MAX232的13号管脚相连,发送数据。2号管脚与MAX232 的14号管脚相连,接收数据。

进一步的,LM75在I2C总线上属于从属地位,串行数据在SDA线上双向传输,SCL线 作为输入口,提供离开和进入LM75的时钟。在本课题中用了一片LM75,在这里A1、A2接地,A0 接3.3V电平,所以其地址就是0X92。LM75上电后就可以开始工作,不需要再使用命令去配置 启动,它可以直接把当前温度直接转换成数字值,然后可以直接由单片机控制读取数值用 于显示或存储。本系统中使用的温度传感器模块使用的是LM75中的温度寄存器,它是16位 只读寄存器,它的地址是0X00,我们使用的是它的高9位地址,低7位地址为无效地址,不使 用。D15位是TS位,TS为1,表示的当前的温度是负值。当TS为0时,表示当前温度是正值。温度 传感器模块的主程序流程图如图9所示。程序代码如下:

#include"reg51.h"

#include "intrins.h"

//sbit SCL= P5^1;

//sbit SDA= P5^3;

#define P5OUT &= ~BIT0 SDA_0 //SDA = 0

#define P5OUT |= BIT0 SDA_1 //SDA = 1

#define P5OUT &= ~BIT1 SCL_0 //SCL = 0

#define P5OUT |= BIT1 SCL_1 //SCL = 1

unsigned char SystemError;

#define SomeNOP(); { _nop_(); }

delay32()

{

unsigned int i=300;

while(i--);

}

void I2CStart(void)

{

EA=0;

SDA_1; SCL_1; SomeNOP();//INI

SDA_0; SomeNOP(); //START

SCL_0;

}

void I2CStop(void)

{

SCL_0; SDA_0; SomeNOP(); //INI

SCL_1; SomeNOP(); SDA_1; //STOP

EA=1;

}

WaitAck(void)

{

unsigned char errtime=255;

SDA_1;SomeNOP();

SCL_1;SomeNOP();

SystemError=0x10;

while(SDA__1) //SDA=0:ack SDA=1:noack

{ errtime--;

if(!errtime)

{ I2CStop();

SystemError=0x11;

return;

}

}

SCL_0;

}

void SendNotAck(void)

{

SDA_1; SomeNOP();

SCL_1; SomeNOP();

SCL_0;

}

void I2CSendByte(unsigned char ch)

{

unsigned char i=8;

while(i--)

{

SCL_0;_nop_();

SDA=(bit)(ch&0x80); ch<<=1; SomeNOP();

SCL_1; SomeNOP(); //SCL rising edge

}

SCL_0;

}

unsigned char I2CReceiveByte(void)

{

unsigned char i=8;

unsigned char dat=0;

SDA_1;

while(i--)

{

dat&lt;&lt;=1;

SCL_0;SomeNOP();

SCL_1;SomeNOP();

dat|=SDA;

}

SCL_0;

return(dat);

}

WriteCharToAT24C1024(unsigned int add,unsigned char dat)

{

I2CStart();

I2CSendByte(0xA0); //write address

WaitAck();

// I2CSendByte((char)(add&gt;&gt;8));delay32();

// WaitAck();

I2CSendByte((char)(add));delay32();

WaitAck();

I2CSendByte(dat);delay32();

WaitAck();

I2CStop();

}

unsigned char ReadCharFromAT24C1024(unsigned int add)

{

unsigned char a;

I2CStart();

I2CSendByte(0xA0); //write address

WaitAck();

//I2CSendByte((char)(add&gt;&gt;8));

//WaitAck();

I2CSendByte((char)(add));

WaitAck();

I2CStart();

I2CSendByte(0xA1); //read address

WaitAck();

a=I2CReceiveByte();

SendNotAck();

I2CStop();

return(a);

}

//Initialize MSP430 IO; I2C: SDA, SCL; AT24C1024: WP, A1

void IO_init()

{

P5DIR |= BIT0; //SDA

P5DIR |= BIT1; //SCL

P5DIR |= BIT2; //WP

P4DIR |= BIT7; //A1

P5OUT &= ~BIT2; //WP = 0

P4OUT &= ~BIT7; //A1 = 0

}

main()

{

unsigned char a, i;

unsigned char buf[256];

IO_init();

for(i=0; i&lt;256; i++)

WriteCharToAT24C1024(i, i);

for(i=0; i&lt;256; i++)

buf[i]=ReadCharFromAT24C1024(i);

while(1);

}

以上所述仅为本发明专利的较佳实施例而已,并不用以限制本发明专利,凡在本发明 专利的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明专利的保 护范围之内。

本文发布于:2024-09-24 12:26:00,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/72654.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议