DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 207|回复: 0
打印 上一主题 下一主题

基于ARM7TDMI

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 15:27:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  传统的热敏电阻温度计硬件上大多采用普通单片机(MCS-51系列)+A/D转换器以及LED显示模块构成,分立元件多、功耗大、设计复杂且难以调试;软件上也多采用冗长繁琐的汇编语言来实现,设计效率低、可移植性差、性能难以保证。
  目前,嵌入式系统的应用已经进入到一个高、低端并行发展的阶段,其标志就是32位微控制器的发展。ARM(Advanced RISC Machines)是嵌入式系统应用比较广泛的一种32位微处理器核,具有体积小、功耗低、集成度高、硬件调试方便和可移植操作系统等优点。为智能仪器向轻便化、智能化、微机一体化等方向发展提供了必要条件。
  由于电子技术的飞速发展,电子元器件的性价比不断得到提高。本文采用32位的ARM7 TDMI-S微处理器核LPC2142为控制核心,利用其内部自带的A/D转换器和SPI接口来控制LED显示驱动器MC14489进行温度的实时显示。
  2 热敏电阻温度的转换原理
  热敏电阻是温度传感器的一种,他由仿陶瓷半导体组成。热敏电阻(NTC)不同于普通的电阻,他具有负的电阻温度特性,即当温度升高时,其电阻值减小。图1为热敏电阻的特性曲线。 热敏电阻的阻值~温度特性曲线是一条指数曲线,非线性较大,因此在使用时要进行线性化处理。线性化处理虽然能够改善热敏电阻的特性曲线,但是比较复杂。为此,在要求不高的一般应用中,常做出在一定的温度范围内温度与阻值成线性关系的假定,以简化计算。使用热敏电阻是为了感知温度,给热敏电阻通以恒定的电流,电阻两端就可测到一个电压,然后通过公式下面的公式可求得温度:

  T为被测温度;T0为与热敏电阻特性有关的温度参数;K为与热敏电阻特性有关的系数;VT为热敏电阻两端的电压。

  根据这一公式,如果能测得热敏电阻两端的电压,再知道参数T0和K,则可以计算出热敏电阻的环境温度,也就是被测的温度,这样就把电阻随温度的变化关系转化为电压随温度变化的关系了。数字式电阻温度计设计的主要工作,就是把热敏电阻两端电压值经过A/D转换成数字量送到单片机中,然后通过软件方法计算出温度值,再进行显示、打印等处理。
  3硬件电路设计
  在电子技术迅猛发展的今天,一些功能强大的元器件价格不断下降,使其性价比不断得到提高,应用领域越来越广泛。本文就是采用32位的ARM微处理器核LPC2142代替传统的805l单片机为控制核心,进行A/D转换和温度实时显示。图2为整个系统的结构原理图。


  热敏电阻NTC串联上一个普通电阻R,再接+5V电源,取RT两端电压,并送入微控制器LPC2142的AINl(P0.28引脚)通道进行A/D转换。转换启动方式以及转换通道的选择可通过设置ADC控制寄存器ADC0DR来实现。转换的结果通过一个同步、全双工串行SPI接口输出到LED显示驱动器MCl4489进行温度的实时显示。
  3.1 ARM微控制器LPC2142简介
  ARM 7 TDMI-S核是通用的32位微处理器核,采用冯.诺依曼结构,具有高性能和低功耗特性。ARM结构是基于精简指令集计算机(RISC)原理设计的,指令集和相关的译码机制比复杂指令集计算机要简单得多。.ARM 7 TDMI-S处理器使用流水线技术,处理和存储系统的所有部分都可以连续工作。这样,使用一个小的、廉价的处理器核就可以非常容易地实现很高的吞吐量和实时的中断响应。
  LPC2142是基于一个支持实时仿真和嵌入式跟踪的3Z/16位ARM7TDMI-s CPU的微控制器,内嵌有64 kB的高速FLASH存储器和16 kB的片内SRAM。128位宽度的存储器接口和独特的加速器接口使32位代码能够在最高时钟频率下运行,对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30%,而其性能的损失却很小。
  LPC2142内部带有一个10位逐次逼近式A/D转换器,其主要特性为:
  (1)6个引脚复用为输入脚;
  (2)掉电模式;
  (3)测量范围O V~Vref通常为3 V,不超过VDDA电压);
  (4)每个转换器包含一个可编程分频器,可将时钟调整至逐次逼近转换所需的4.5 MHz(最大)。这样,10位转换时间大于或等于4.55μs;
  (5)一个或多个输入的突发转换模式;
  (6)可选择由直接启动、输入跳变或定时器匹配信号触发转换;
  LPC2142内部还拥有一个硬件SPI(Serial Peripheral Interface)接口。他是一个同步、全双工串行接口,最大数据位速率为时钟速率的1/8,可配置为主机或者从机。
  3.2 LED显示驱动管理芯片MC14489
  MCl4489是美国MOTOROLA公司生产的串行接口LED显示驱动管理芯片。其输入端与系统主CPU之间只有3条I/0口线相联,用来接收待显示的串行数据。输出端既可以直接驱动七段LED显示器,也可以驱动指示灯。
  MCl4489内部集成了数据接收/译码/扫描输出/驱动显示所需的全部电路,仅需要外接一具电流设定电阻就可以对LED的显示高亮度进行控制。每个MC14489芯片可以用以下任意一种显示方式进行显示:5位LED数字加小数点显示; 4位半数字加小数点带符号显示;25支指示灯显示;5位半数字显示。该芯片内含的译码器电路可输出七段格式的数字0~9,16进制的字母A~F以及15个字母和符号。
  图2是用单片MC14489构成一个5位LED显示器的例子。由图可知,用MC14489构成显示电路既不用加任何限流电阻,也不用附加反相或驱动电路,电路设计非常简捷。
  MC14489芯片采用特殊的设计技术,使其电源引脚在大电流工作的情况下仍具有最低的尖峰和较小的EMI(电磁交互干扰)。
  4系统软件设计
  由前面热敏电阻温度转换原理的简述可知:热敏电阻特性曲线是一条指数曲线,非线性度较大,又由于非线性处理比较复杂,在本文设计要求不是很高的情况下可以做以简化来处理。
  4.1程序设计流程图
  限于篇幅,本文只给出程序设计的流程图。整个程序的流程图如图3所示。


  4.2温度计算程序
  在公式T=T0-KVT中,系数值K是一个很小的数。为了方便计算,取扩大256倍后的K值和VT作乘积,即256×K×VT。相乘后,对乘积只取高8位舍弃低8位,就可以抵消系数值K扩大256倍的影响,得到正确的结果。
  此外,从图1中热敏电阻的阻值一温度特性曲线可以看出,在+10~150℃的温度范围内,阻值与温度的关系线性度较好。通常就把这个温度范围作为有效温度范围。当温度超出这个范围时,用数码管全部显示F作为标志。
  由于有效温度范围没有超过150℃,所以温度显示用3位数码管,其显示格式为:AD XXX其中,XXX为温度值,图2中的LED1和LED2只显示字符A和D,后面三只数码管LED3,LED4和LED5显示温度值。
  5 结 语
  采用SPI串行接口和MCl4489管理芯片来构成智能化仪器仪表的显示驱动电路可使系统的性能价格比获得大幅度的提高。本文在要求精度不是很高的情况下,将热敏电阻的特性做了简单化线形处理,并利用本文的设计电路对+10~150℃范围内的温度进行了测量,达到了良好效果。在整个设计过程中需要注意的问题有以下几点:
  (1)LPC2142微控制器具有独立的模拟电源引脚VDDA,USSA,为了降低噪声和出错几率,模拟电源与数字电源应当用一个10μH的电感进行隔离。
  (2)A/D转换参考电压Vref的选择要满足测量精度的需要。如果想提高A/D转换精度,一般均采用基准源芯片来提供参考电压。TL431是一个具有良好热稳定性能的、低噪声的三端可调分流基准源(温度系数为30×10-6/℃)。本文就是采用该基准源芯片来提供参考电压。
  (3)由于本系统中LPC2142微控制器作为SPI主机来使用,故其P0.7引脚SSEL要接一个10 kΩ的上拉电阻。
                                
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-1 13:33 , 耗时 0.092029 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表