《基于ARM的温度采集系统(共14页).doc》由会员分享,可在线阅读,更多相关《基于ARM的温度采集系统(共14页).doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上湖南科技大学信息与电气工程学院基于嵌入式微处理器S3C44B0X的温度采集系统设计报告 专 业: 电子信息工程 姓 名: 陈信维 曾有根 指导教师: 罗 朝 辉 绪论嵌入式系统是以应用为中心,以计算机技术为基础,且软硬件皆可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由以下几部分组成:嵌入式微处理器、外围硬件设备、嵌入式操作系统。嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力、才更具有优势。因此嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的裁减利用。嵌入式系统是
2、将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。嵌入式系统必须根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。所以,如果能建立相对通用的软硬件基础,然后在其上开发出适应各种需要的系统,是一个比较好的发展模式。目前的嵌入式系统的核心往往是一个只有几K到几十K微内核,需要根据实际的使用进行功能扩展或者裁减,但是由于微内核的存在,使得这种扩展能够非常顺利的进行。数据采集(DAQ),是指从传感器和其它待测设备等模拟和数字被测单元中自动采集非电量或者电量信号,送到上位机
3、中进行分析和处理。数据采集系统是结合基于计算机或者其他专用测试平台的测量软硬件产品来实现灵活的、用户自定义的测量系统。被采集数据是已被转换为电讯号的各种物理量,如温度、水位、风速、压力等,可以是模拟量,也可以是数字量。采集一般是采样方式,即隔一定时间(称采样周期)对同一点数据重复采集。采集的数据大多是瞬时值,也可是某段时间内的一个特征值。准确的数据量测是数据采集的基础。数据量测方法有接触式和非接触式,检测元件多种多样。不论哪种方法和元件,均以不影响被测对象状态和测量环境为前提,以保证数据的正确性。传统的温度采集系统由于存在响应慢、精度低、可靠性差、效率低、操作繁琐等弊端,已经不能完全适应现代化
4、工业的高速发展。随着嵌入式技术的迅猛发展,设计高速度、高效率、低成本、高可靠性、操作方便的温度采集系统成为当务之急。基于ARM的温度采集系统就成为了解决传统温度采集系统各种弊端的优先选择方案。在本系统的设计过程中,根据嵌入式系统的基本设计思想,系统采用了模块化的设计方法,并且根据系统的功能要求和技术指标,系统遵循自上而下、由大到小、由粗到细的设计思想,按照系统的功能层次,在设计中把硬件和软件分成若干功能模块分别设计和调试,然后全部连接起来统调。课程设计内容一、设计目的1、注重培养综合运用所学知识、独立分析和解决实际问题的能力,培养创新意识和创新能力,并获得科学研究的基础训练。2、了解所选择的A
5、RM芯片各个引脚功能,工作方式,计数/定时,I/O口,中断等的相关原理,并巩固学习嵌入式的相关内容知识。3、通过软硬件设计实现利用ARM芯片对周围环境温度信号的采集及显示。二、设计要求1、查阅相关文献资料,熟悉所选ARM芯片及温度传感器。2、总体设计方案规划。3、系统硬件设计,熟悉AD转换原理及过程,温度传感器与ARM芯片的硬件接口实现及温度显示。4、系统软件设计,包括温度的AD转换及显示的软件实现,用C语言编程。三、设计方案本设计是基于嵌入式技术作为主处理器的温度采集系统,利用S3C44B0x ARM微处理器作为主控CPU,辅以单独的数据采集模块采集数据(温度采集模块电路采用AT89S52单
6、片机作为模块的协控制器),实现了智能化的温度数据采集、传输、处理与显示等功能,并讨论了如何提高系统的速度、可靠性和可扩展性。并解决了传统的数据采集系统由于存在响应慢、精度低、可靠性差、效率低、操作繁琐等弊端,能够完全适应现代化工业的高速发展。1、 硬件设计部分1.1 S3C44B0x ARM微处理器简介:嵌入式微处理器S3C44B0X中集成了ARM公司的ARM7TDMI核,这个核也称为CPU单元,此外还集成了边界扫描控制器等多个功能模块(也称模块、单元)。S3C44B0X中有2条总线,即系统总线和外设总线。通过系统总线,将CPU单元、电源管理模块(含时钟发生器)、存储器控制器、LCD控制器、中
7、断控制器和2通道ZDMA连接在一起。总线仲裁器对系统总线上的总线请求进行仲裁。通过外设总线,将AD转换器、看门狗定时器、RTC、通用IO控制器(GPIO)、IIC总线控制器、IIS总线控制器、UART、SIO、PWM等连接在一起。系统总线与外设总线通过系统总线桥与仲裁2通道BDMA连接在一起。S3C44B0X的160个引脚中,有71个引脚可以通过编程的方法,定义为多功能输入输出引脚。这71个引脚被分成A、B、C、D、E、F和G端口。例如,端口A可以定义为输出端口,或定义为地址总线ADDR24ADDR16和ADDR0。在Reset后,默认值是地址总线ADDR24ADDR16和ADDR0,之后可以
8、重新定义端口A的功能。除这71个引脚外,其余引脚功能是单一的。S3C44B0X微处理器中含有ARM7TDMI核,使用的指令系统就是ARM7TDMI的指令系统。ARM7TDMI有2种指令集:32位的ARM指令集和16位的Thumb指令集。ARM指令集的主要特点有:所有的指令都是32位定长,便于译码和流水线实现,并且在内存中以4字节边界地址对齐保存;只有 LOAD-STORE类型的指令才可以访问内存;所有的指令都可以条件执行;使用了桶型(barrel)移位器,可以在一个指令周期内完成移位操作和ALU(算术逻辑)操作。片上集成的主要功能如下:*2.5V ARM7TDMI 内核,带有8K Cache(
9、SAMBA II总线体系结构,主频高至66MHZ);*外部存储器控制器(FP/EDO/SDRAM控制器,片选逻辑):*LCD控制器(最大支持256色DSTN),并带有1通道LCD专用DMA:*2通道通用DMA,2通道外设DMA 并具有外部请求引脚;*2通道UART带有握手协议(支持IRDA1.0,具有16-byte FIFO)/1通道SIO;*1通道多主IIC-BUS控制器;*1通道IIS-BUS控制器;*5个PWM定时器和1个内部定时器;*看门狗定时器;*71个通用I/O口/8通道外部中断源*功耗控制:具有正常,低速,空闲和停止模式;*8通道10位ADC;*具有日历功能的RTC;*带PLL的
10、片上时钟发生器.体系结构:*集成了手持设备和通用嵌入式系统应用的解决方案:*13/32位RISC体系结构和ARM7TDMI处理器内核强大的指令体系;*Thumb代码压缩机,最大化代码密度同时保持了32位指令的性能;*基于JTAG的片上集成ICE调试支持解决方案;*32*8位硬件乘法器;*实现低功耗SAMBAII的新型总线结构;系统存储管理:*支持大/小端模式(通过外部用脚来选择);*地址空间:每bank位32M字节(共256M字节);*支持每bank可编程的5.16/32位数据总线宽度;*7个bank具有固定的bank起始地址和可编程的bank大小;*1个bank具有可编程的bank起始地址和
11、bank大小;*8个存储器bank;-6个ROM,SRAM存储器bank;-2个ROM/SRAM/DRAM(快速页面,EDO和同步DRAM);*所有的存储器bank具有可编程的访问周期;*支持外部等待信号延长总线周期;*支持掉电时DRAM/SDRAM的自刷新模式;*支持对称和非对称地址的DRAM.1.2、AT89S52单片机简介AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧
12、的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。常用I/O口具体介绍如下:
13、(1)P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在 flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。(2)P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(
14、IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。引脚号 第二功能P1.0 T2 (定时器/计数器T2的外部计数输入),时钟输出P1.1 T2EX (定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5 MOSI (在系统编程用)P1.6 MISO (在系统编程用)P1.7 SCK (在系统编程用)(3)P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时
15、,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。(4)P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此
16、时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。1.3 设计思路本设计的基于ARM 的嵌入式数据采集和显示装置的原理框图如下图所示。由图可见,本系统采用“电源部分ARM 核心控制模块温度采集模块”实现所需功能。并考虑到系统的可扩展性和延伸性,本系统采用主从CPU协同工作,实现了数据的实时采集、传输与显示,具有处理速度快、精度高、人机交互界面友好、稳定性高、扩展性好等优点。ARM核心控制模块温度采集模块电源部分电源电路键 盘LCD显示
17、器ARM处理器Flash ROM存储器RS-232协控制器多路温度传感器SD RAM存储器系统原理框图1.3.1电源电路设计本系统的电源电路由两部分组成:系统总电源电路和RAM核心模块电源电路。如下图所示:+12V恒定直流电源经电容滤波,分别进入7809和7805稳压,得到+9V和+5V的稳定电压输出后分别供给ARM核心控制模块和其余电路部分使用。图中IN4148是为了防止输出端并接高于本稳压模块的输出电压而烧坏7809和7805而特别设计,达到了可靠性电源设计目的。另外,由于系统正常工作电流较大,因此使用时均应在7809和7805上加散热片散热。 由图可见,系统采用双电源供电,提供了系统正常
18、工作所需的电源电压。另外,由于考虑到便携目的,本系统采用+12V铅蓄电池提供系统所需的恒定直流电源。系统电源电路原理图如图所示:I/O 口提供了相应的稳定直流电源。其中的IN4004是为了防止电源输入反接烧坏集成稳压块而设计的。由于S3C44B0x采用2.5V作为ARM 内核电源,使用3.3V作为I/O 口电压,故ARM核心控制模块电源需要另外单独设计,其电源电路如图3-2所示。由系统总电源电路提供的+9V稳压电源作为输入,分别经AS1117-5.0、AS1117-3.3、 AS1117-2.5稳压后,输出5.0V、3.3V和2.5V恒定电源,为RAM 内核和I/O口提供了相应的稳定直流电源
19、。其中的IN4004是为了防止电源输入反接烧坏集成稳压块而设计的。1.3.2 温度采集电路设计温度采集模块电路采用AT89S52单片机作为模块的协控制器。对于温度传感器的选用DS18B20,因为DS18B20是Dallas公司最新单总线数字温度传感器,该传感器集温度变换、A/D转换于同一芯片,输出直接为数字信号,大大提高了电路的效率。由于现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,且提高了CPU的效率。AT89S52单片机的P0 口与8路温度传感器相连,用于采集温度数据;另外,模块提供RS-232串行口与RAM核心控制模块通信,达到数据传输的目的。温度采集模块电路原理图
20、如下图所示。温度采集电路原理图2、 软件设计部分本系统软件设计是在CodeWarrior for ADS开发环境下完成的。本温度数据采集与显示装置的主体由S3C44B0x核心控制模块和温度数据采集模块构成,所以系统软件也是围绕这两个模块来编写的。而又由于系统采用了S3C44Box和AT89S52两个CPU协同工作,所以软件的编写需要对这两个CPU分别编写,以实现所要求的功能。2.1 程序流程图开始ARM初始化硬件装置初始化通信初始化LCD显示初始化键盘初始化扫描键盘有键按下处理数值相应显示数据获取数据处理数据显示YN 由该流程图可看出,刚上电时,S3C44B0x要先进行ARM 内部的初始化,以
21、使ARM进入相应的状态和模式;然后初始化硬件装置,以使硬件系统可以正常支持温度数据采集;接着通信初始化,以确定温度采集模块与ARM核心控制模块连接正常,并通过UART复位温度数据采集模块,确保其进入正常温度数据采集状态;然后初始化LCD显示和键盘,在LCD上显示相应的菜单列表,供用户通过键盘选择操作;至此,系统初始化完成,并进入正常主程序循环状态。 在正常主程序循环状态中,首先扫描键盘,以快速的响应用户的按键操作;若没有键值按下,则ARM立即进行数据的采集、处理与显示,以实现实时数据采集与显示等功能。其主程序应包括温度采集程序、ARM获取温度子程序、温度处理和转换子程序。当ARM 处理器接收到
22、正确的温度数据后,立即进行相应的温度数据处理与转换,变成可被LCD直接显示的正确温度值。2.2程序清单温度处理与转换子程序如下: /存放读取到的当前温度值,未转换 Static U16 a-temp-now8=8*0 /存放经精度计算后的实际温度值,高8位整数部分,低8位小数部分 static U16 b-temp-now8=8*0; /存放8路转换后温度值,分别为百位,十位,个位,小数位 static U8 temp-convent-all32=32*0; /- /温度处理与转换子程序/- void temp-change(void) U8 negtive=0x00; /存放数的符号,若为正
23、=0;若为负,=0xff U8 j=0; U8 *pt=temp-convent-all; U16 *p1=a-temp-now; U16 *p3=b-temp-now;U16 temp=0; for(j=0;j8;j+) negative =0x00; temp=*p1; /若温度为负值,进行相应处理 if(temp&0xf80) !=0) temp=(temp)+1;/转为正的原码 negative=0xff; / 同时置符号为0xff /根据精度消除无关数据 switch(a-temp-prec) case 0x1f: /精度为9位,则清除最低3位无效位 temp=temp&0xfff8
24、;break; case 0x3f: /精度为10位,则清除最低2位无效位 temp=temp&0xfffc;break; case 0x5f: /精度为11位,则清除最低1位无效位 temp=temp&0xfffe;break; case 0x7f: /精度为12位 break; /换算成实际温度,并扩大10倍,去掉小数部分temp=(U16)(float)(temp)*0.625);/折算放入b-temp-now 数组中/高8位放整数部分,低8位放小数部分,最高位放符号位if(negtive= 0xff) /若为负值 *p3=(temp/10)8)|(temp%10)|0x8000; el
25、se *p3=(temp/10)0;j-) *p1+=0x0; 四、心得体会: 现在这次ARM嵌入式系统课程设计中,我们小组的设计课题是基于ARM的温度采集系统设计。通过这次课程设计,我对ARM嵌入式系统尤其是数据处理中的温度采集系统有了更进一步的了解,同时知识面也进一步得到了扩展和加深。本次课程设计的任务主要是对基于传统温度采集系统的使用环节中遇到的一些问题提出的一种改进方法,有助于温度采集系统更好的发展与使用,帮助我们更好的理解嵌入式系统和温度采集系统的原理和应用。温度采集是一种直接数字处理方法。所谓温度采集系统,就是通过温度传感器对被采集物体进行温度数据的收集与处理,最后得到我们所需要的
26、有用的数字信号并送入系统的下一环节进行其他操作。目前,由于传统的温度采集系统存在响应慢、精度低、可靠性差、效率低、操作繁琐等弊端,已经不能完全适应现代化工业的高速发展。随着嵌入式技术的迅猛发展,设计高速度、高效率、低成本、高可靠性、操作方便的温度采集系统成为当务之急。所以,学习和应用温度采集系统及其应用技术对我们以后的学习和工作有着十分重要的意义。在这次为期两周课程设计的过程中,我深深的感触到了团队合作的重要性,尤其是在当今的社会工作中,一个人的力量在一个巨大的任务前是那么的渺小,必须靠多人合作才能共同完成。在设计规划过程,我们小组成员间亲密无间的合作,使得本次课程设计能够非常顺利地完成,在课
27、程设计的过程中,每个人都能按要求很好的完成分配给自己的任务,最后大家一起通过讨论把所有任务串连起来完成总的设计任务。通过本次课程设计,让我很好的锻炼了理论联系实际,与具体项目、课题相结合开发、设计产品的能力。既让我们懂得了怎样将理论应用于实际,又让我们懂得了在实践中遇到的问题怎样用理论去解决。在设计过程中,总是会遇到这样或那样的问题。有时一个问题可能会需要大家集体去查阅资料,做大量的工作,花大量的时间才能解决。通过不断地发现问题,解决问题,自然而然,我的发问题和解决问题的能力便在其中建立起来了。这都为以后的工作积累了经验,同时也增强了我们解决问题的能力。参考文献:1 周立功,ARM嵌入式系统基础教程M. 北京:北京航空航天大学出版社 20082 周立功,深入浅出ARM7-LPC213X/214XM. 北京:北京航空航天大学出版社20063 周立功,从51到ARM-32位嵌入式系统入门M. 北京:北京航空航天大学出版社20064 王田苗,嵌入式系统设计与实例开发M. 北京:清华大学出版社,20035 杜春雷,ARM 体系结构与编程M. 北京:清华大学出版社.2003专心-专注-专业
限制150内