新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于MSP430和MAX1452的温度补偿系统设计

基于MSP430和MAX1452的温度补偿系统设计

作者:时间:2012-01-19来源:网络收藏

在工业控制中,各种电子器件由于温度变化,经常会引起温度漂移误差,从而影响到电子器件的灵敏性和精确度,所以消除温度漂移误差就成为工业控制中的一个重要方面。本文采用单片机和智能芯片,设计一个温度补偿电路系统,达到消除温度漂移的目的。

1 温度补偿系统的硬件设计
1.1 使用的主要器件

FE425低功耗单片机、、MAX4051、74LVC4245A(双电源的电平移位器)、字符型液晶显示器LCD、32768Hz晶振等。

1.2 温度补偿系统的设计思想

针对电子器件由于温度变化引起的温度漂移误差,通过低功耗单片机进行调节,补偿温度漂移误差,达到预期状态下的温度。

1.3 温度补偿系统的工作原理

芯片内部有一个片内温度传感器,这个传感器测量MAX1452芯片在运行环境下的温度,MSP430低功耗单片机接受MAX1452 芯片上的温度数据,根据已经存储在EEPROM内的温度数据进行查找比较,找到相应温度下的温度补偿值,进行粗调和细调,确定用于补偿温度漂移误差的精确值,然后传送回MAX1452芯片中,使电子器件的温度漂移误差得到抵消,从而可以显示理想条件下的温度。其中,MAX4051芯片是选择需要调节的 MAX1452的编号,74LVC4245芯片是选择对应MAX1452芯片的输入/输出方向。

1.4 温度补偿系统的原理图

图1 温度补偿系统原理框图

1.5 温度补偿系统电路图

图2 温度补偿系统电路图

2 温度补偿系统的软件设计

本系统的软件设计主要分为5个模块:初始化模块、显示模块、中断模块、调节模块和通信模块。

2.1 初始化模块

初始化模块主要包含两个子功能模块:补偿模块和恢复模块。

补偿模块:在上电时,从主计算机下载在不同温度下的温度漂移误差补偿的数据。

恢复模块:在复位时,恢复MSP430断电时的数据。

2.2 显示模块

本模块主要包含6个子功能模块:初始化数据模块、拆分数据模块、组合数据模块、显示初始化模块、功能显示模块、温度显示模块。

初始化数据模块:主要功能是对显示模块中使用的中间变量进行初始化(即全部清零),防止上电或者数据改变后,存储异常的数据,从而在显示时出现异常。

拆分数据模块:液晶显示器LCD的显示是逐字符显示的,所以对于多位数据的显示,在显示之前必须对多位数据进行拆分,把一个多位数据拆成几个个位数据,然后根据MSP430中液晶显示器LCD的显示规则进行显示。

组合数据模块:在液晶显示器LCD的某位数据发生改变后,需要将改变后的数据保存并传送到MAX1452,进行温度漂移误差补偿。本模块即完成对多个个位数据组合成一个多位数的功能。

显示初始化模块:为了防止在显示时,液晶显示器LCD显示异常数字或者代码,需要对液晶显示器LCD进行清屏,这样可以保证液晶显示器LCD显示的正确性。

功能显示模块:在液晶显示器LCD的第6~4位字符显示功能部分的数字代码。其中,第6位字符显示选择的MAX1452的编号(0~8),第5位字符显示选择补偿温度偏移误差的位置(零点或满偏),第4位字符显示选择所显示温度的状态(显示状态或修改状态)。

温度显示模块:在液晶显示器LCD的第2~0位字符显示温度部分的数字代码。其中,第2位字符表示符号(只有在0°C以下才显示“-”)。第1~0位字符显示温度的数值。

2.3 中断模块


本模块主要包含3个子功能模块:中断初始化模块、中断状态判别模块、中断状态设置模块。由于在MSP430单片机中,中断是嵌套调用的,所以在各个子模块之间没有明确层次先后顺序,仅按照出现的先后顺序确定其之间的相互调用关系。

2.3.1 状态转换图

图3 中断状态转换图

2.3.2 中断初始化模块

本模块的主要功能是在上电或者复位时,清除此前的所有中断向量和中断标志位,防止程序在运行过程中造成异常。

2.3.3 中断状态判别模块

在此模块中,要对中断进行判断,并且做出相应的响应。在“显示状态”下,允许“功能”中断;在“功能调整状态”下,允许“移位”中断、“循环加1” 中断、“确定”中断和“取消”中断;在“温度调整状态”下,允许的中断与“功能调整状态”相同。对于“复位”中断,在三个工作状态下都允许。

2.3.4 中断状态设置模块

本模块的主要功能是在“显示状态”、“功能调整状态”和“温度调整状态”之间改变时,对温度补偿系统所正在运行的状态做出相应的标识,以便在程序运行过程中,检测到相应的状态,做出相应的判断和响应。

2.4 调节模块

本模块主要包含4个子功能模块:循环移位模块、循环加1模块、确定模块和取消模块。

循环移位模块:主要实现对液晶显示器LCD显示数字的移位控制,通过按键实现在液晶显示器LCD显示数字进行循环移动。

循环加1模块:实现液晶显示器LCD显示数字的加法操作,通过按键在不同的数字区间内进行循环加1。

确定模块:主要进行大量的控制和数据操作,还要调用中断模块和通信模块的功能,实现对数据的传输和处理,同时改变温度补偿系统的运行状态。

取消模块:主要放弃对已经在液晶显示器LCD上改变的数据进行操作,返回改变前的状态,同时改变温度补偿系统的运行状态。

2.5 通信模块

在温度补偿系统中,本模块实现了MSP430和MAX1452之间的通信。通过调用本模块,MSP430实现对MAX1452的控制和数据交互,实现对温度漂移误差的补偿。

本模块主要有7个子功能模块:初始化模块、重初始化模块、读模块、写模块、数据计算模块、地址查找模块、控制模块。

初始化模块:根据MAX1452的通信协议,本模块的功能是在在上电或者复位时对MAX1452进行初始化。

重初始化模块:根据MAX1452的通信协议,本模块是在MSP430与MAX1452进行通信之前(非上电或者复位情况下),对MAX1452进行初始化,保证传输数据的正确性。

图4读模块的流程图

图5写模块的流程图

读模块:根据MAX1452的通信协议,在从MAX1452读出数据时,需要有特定的数据格式,本模块实现从MAX1452读出数据,并且将MAX1452中特定的数据传输格式,转化为便于计算或显示使用的数据格式的功能。流程图如图4所示。

写模块:根据MAX1452的通信协议,在从MAX1452写入数据时,需要有特定的数据格式,本模块实现将计算或显示数据转化为MAX1452的特定的数据传输格式,并写入到MAX1452的功能。流程图如图5所示。

数据计算模块:本模块的主要功能是对从MAX1452读入的数据与MAX1452中EEPROM的数据进行计算,得出需要达到理想状态下的所要补偿的温度的确切值。

地址查找模块:根据MAX1452的通信协议,在温度补偿过程中,需要根据公式,查找不同温度状况下零点和满偏的温度补偿值的地址,然后读出相应的数据。本功能模块主要实现查找地址的功能。

控制模块:本模块的主要功能是根据MAX1452的通信协议,对其控制指令进行封装,使其完成固定的功能,便于进行调用。

3 结束语

本文创新点:利用MSP430低功耗单片机和MAX1452芯片,设计温度补偿系统的结构以及此系统中的中断转换状态。

此系统在调试过程中得到以下补偿数据,如表1所示。

在此系统的设计过程中,尽管在一定程度上实现了对温度漂移误差的的补偿,但是,补偿的过程是以手动调节完成的,在实时性方面存在一定的不足,有待进一步研究。

表1 温度补偿数据

温度(°C)

补偿值

十进制表示

十六进制表示

-40

20

14

25

65

41

85

106

6A

125

134

86

参考文献

【1】沈建华,杨艳琴,翟骁曙等编,MSP430系列16位超低功耗单片机实践与系统设计[M],清华大学出版社,2005年4月。

【2】魏小龙编,MSP430系列单片机接口技术及系统设计实例[M],北京航空航天大学出版社,2002年。

【3】胡大可编,MSP430系列单片机C语言程序设计与开发[M],北京航空航天大学出版社,2003年1月。

【4】王成江,王安敏,张玉华,基于MAX1452 的超细颗粒机械加工中振动的测试,电子产品世界[J/OL],2002年Z2期。

【5】刘玉宏,MSP430单片机C语言和汇编语言混合编程,微计算机信息[J/OL],2003年第19卷第10期56页。

【6】张景元,陈平,一种基于单片机的多功能数字钟,微计算机信息[J/OL],2005年第21卷第9-2期136页。



评论


相关推荐

技术专区

关闭