×

基于ARM的温度测量系统-ADC模块开发及应用

消耗积分:1 | 格式:rar | 大小:1.2 MB | 2017-11-29

分享资料个

  摘要:本设计以我校自主研发的ARM嵌入式系统用户板为开发平台,外部配有LCM12864显示屏、LED显示模块,按键及各种通讯接口等。该设计主要应用了ARM的ADC模块、液晶显示模块及外加的一个PT100温度传感器。利用温度传感器将温度变化转化为电压变化,再由ADC模块将采集到的电压信号通过液晶显示屏显示出来,以此来实现温度实时测量系统的开发。本文对所用芯片的工作特性、ADC模块及温度传感器PT100的工作原理做了简要说明,对系统软件设计的方法及流程进行了详细的描述。实验测试结果表明,该温度测量系统能正常工作,并可移植应用于多种温度监控系统。

  关键词:PT100 ARM7 液晶屏 ADC

  ADC module development and application-Based on the ARM temperature measurement system

  Absrtact:This design with taking our self-developed ARM embedded system user plate as development platform ,using ARM7 TDMI-S-- LPC2148 producted by Philips as MCU.Peripheral equipment include the LCM12864 screen, LED display module,buttons,various communication interface,etc. The design mostly depends on ADC module of ARM, LCD module, temperature sensor PT100. In order to realize the development of temperature real-time measuring system, the temperature sensor transforms temperature fluctuation into voltage change, and show the voltage signal collected by ADC module on the LCD display.This article makes brief explanation about the job character of chip, basic principle of ADC and pt100 besides describing the method and process of software design in details. The test results indicate the temperature measurement system can work normly, and can be applied to various temperature monitoring system.

  Key words: PT100 ARM7 LCD ADC

  绪论

  1.1 技术背景

  基于ARM核的32位RISC微处理器的应用日益广泛,该处理器具有高速、低耗、多功能等独特亮点。尤其是微型操作系统的嵌入,实现了ARM嵌入式系统高实时性、高可靠性、多任务管理等优异特性,成为真正意义上的嵌入式系统。目前,嵌入式系统的应用己遍及网络、通讯、信息家电、工业控制、航空、航天等高端应用领域,并且正在逐步渗入到人们生活的各个方面,越来越多的工程技术人员进入了ARM嵌入式系统的开发应用。

  1.2 选题意义

  1.2.1 ADC的作用

  采集是认知的开始、测量的前提、分析的基础,绝大多数的电子设备、仪器都是以数据采集技术为基础。随着电子技术和数字技术的飞速发展,信号的传输速度和CPU的处理速度越来越快,因此对数据采集和处理的要求也越来越高。

  模数转换是把模拟信号转换成等效数字量的量化过程,可采用单片集成威廉希尔官方网站 和高性能的组件。模数转换器的重要特性通过精度、线性度、单调性、分辨率、转换速度、稳定性等指标来衡量,还有一些可供选用的其它技术性能,诸如输入范围、数字输出编码等。模拟数据以数字形式收集后可便于存贮、传送、处理和显示,因此,模数转换在音、视频信号处理、电子测量和工业控制等领域得到了广泛的应用。

  1.2.2 基于ARM的温度测量系统开发的意义

  数据采集系统多用于电子测量和工业控制系统。采集到的信号通过A/D转换送入微处理器主控单元,通过处理实现过程控制。现在的高速系统对ADC模块的要求很高,由于低端的MCU和ADC芯片已经难以满足高性能的应用要求,因此大多数开发人员将目光瞄向了ARM芯片的模数转换器。AMR芯片的模数转换器由于其高速、多路、廉价等诸多优势而被广泛采用。利用ARM的10位AD转换器,外加一个铂电阻(PT100精密温度传感器)就可以实现宽温度范围、高精度温度测量系统。

  选择基于ARM的温度测量系统题目,在于提高我对ARM系列单片机的应用能力和工业测控系统的设计能力。

  1.3 开发设计方案

  本课题设计是根据我校老师自主研制的ARM实验板进行设计开发的。用IAR软件对各个模块进行程序编写并进行调试,当程序调试无误后,将程序下载到ARM实验板上。运用一个PT100温度传感器将温度信号转换为电压,经ARM芯片的AD转换器,经过模数转换器,将输入的模拟信号(电压)转换成数字信号,再通过LCD显示出所采集到的数字信号。由PT100温度传感器将温度转换为电压,将电压送到LPC2148的ADC模块中,经过数模转换,将得到的数字信号存储在寄存器中并送到实验班的LCD显示屏上,实时显示温度变化。

  设计方案如图1-1所示:

  基于ARM的温度测量系统-ADC模块开发及应用

  图1-1 设计方案图

  2 功能模块说明

  2.1 ARM主控芯片(LPC2148)

  2.1.1 工作特性

  LPC2148是基于一个支持实时仿真和嵌入式跟踪的32/16位ARM7 TDMI-S的微控制器,带有32kB和512kB嵌入的高速Flash存储器。独特的加速结构,使32位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30%,而性能的损失却很小。其主要特性如下:

  (1) 16/32位ARM7TDMI-S微控制器,超小LQFP64封装;

  (2) 32kB的片内静态RAM和512KB的片内Flash程序存储器,加速器可实现60 MHz工作频率;

  (3) 通过片内boot装载程序实现在系统编程和在应用编程(ISP和IAP),单个Flash扇区或整片擦除时间只有400ms,256字节的编程时间为1ms;

  (4) Embedded ICE RT和嵌入式跟踪接口提供实时调试(通过片内Real Monitor软件)和高速跟踪指令执行;

  (5) USB 2.0全速设备控制具有2KB的端点RAM,此外LPC2146/8提供8KB的片内RAM,可被USB的DMA控制器访问;

  (6) 2个10位ADC转换器,提供总共6/14路模拟输入,每个通道的模数转换时间低至2.44us;

  (7) 1个10位的D/A转换器提供可变的模拟。信号的输出;

  (8) 2个32位定时器/外部事件计数器(带4路捕获和4路比较通道),PWM单元(6路输出)和看门狗;

  (9) 低功耗实时时钟((RTC)具有独立的电源和特定的32kHz时钟输入;

  (10) 多个串行接口,包括2个UART(16C550)、2个高速I2C总线(400 kbit/s)SPI和具有缓冲作用和数据长度可变功能的SSP;

  (11) 向量中断控制器(VIC)可以配置优先级和向量地址;

  (12) 多达45个可承受5V电压的通用I/O接口(LQFP64封装);

  (13) 多达9个边沿或电平触发的外部中断管脚;

  (14) 通过一个可编程的片内PLL(100ms的设置时间)可以实现最大为60MHz的CPU操作;

  (15) 片内集成振荡器可操作频率为1MHz~30MHz的外部晶体或频率高达50MHz的外部振荡器;

  (16) 具有低功耗模式(空闲和掉电模式);

  (17) 可以通过个别使能/禁止外围功能和外围时钟分频来优化额外的功耗;

  (18) 可外部中断,USB,掉电检测或实时时钟将处理器从掉电模式中唤醒;

  (19) 单电源,具有上电复位和掉点检测功能;

  (20) CPU可操作 电压范围:3.0V~3.6V(3.3V±10%);

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'基于ARM的温度测量系统-ADC模块开发及应用',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);