资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
课 程 设 计 用 纸教师批阅温度采集系统参考文献1 周立功,ARM嵌入式系统基础教程M. 北京:北京航空航天大学出版社 20082 周立功,深入浅出ARM7-LPC213X/214XM. 北京:北京航空航天大学出版社20063 周立功,从51到ARM-32位嵌入式系统入门M. 北京:北京航空航天大学出版社20064 王田苗,嵌入式系统设计与实例开发M. 北京:清华大学出版社,2003 5 杜春雷,ARM 体系结构与编程M. 北京:清华大学出版社.2003 6 王中训 李树起等,基于水温控制的数据采集系统M. 煤矿机械出版社,第27 卷第5 期:855857 二、设计方案2.1设计要求1、查阅相关文献资料,熟悉所选ARM芯片及温度传感器2、总体设计方案规划3、系统硬件设计,熟悉AD转换原理及过程,温度传感器与ARM芯片的硬件接口实现及温度显示。4、系统软件设计,包括温度的AD转换及显示的软件实现,用C语言编程5、设计心得体会及总结2.2方案论证有许多客观需求促进了ARM处理器的设计改进。首先,便携式的嵌入式系统往往需要电池供电。为降低功耗,ARM处理器已被特殊设计成较小的核,从而延长了电池的使用时间。 高的代码密度是嵌入式系统的又一个重要需求。由于成本问题和物理尺寸的限制,嵌入式系统的存储器是很有限的。所以,高的代码密度对于那些只限于在板存储器的应用是非常有帮助的。另外,嵌入式系统通常都是价格敏感的,因此一般都使用速度不高、成本较低的存储器。 ARM 内核不是一个纯粹的RISC体系结构,这是为了使它能够更好的适应其主要应用领域嵌入式系统。在某种意义上,甚至可以认为ARM 内核的成功,正是因为它没有在RISC的概念上沉入太深。现在系统的关键并不在于单纯的处理器速度,而在于有效的系统性能和功耗。在本系统的设计过程中,根据嵌入式系统的基本设计思想,系统采用了模块化的设计方法,并且根据系统的功能要求和技术指标,系统遵循自上而下、由大到小、由粗到细的设计思想,按照系统的功能层次,在设计中把硬件和软件分成若干功能模块分别设计和调试,然后全部连接起来统调。三、硬件设计3.1设计思路本设计的基于ARM 的嵌入式数据采集和显示装置的原理框图如图3-1 所示。由图可见,本系统采用“电源部分ARM 核心控制模块温度采集模块”实现所需功能。并考虑到系统的可扩展性和延伸性,本系统采用主从CPU协同工作,实现了数据的实时采集、传输与显示,具有处理速度快、精度高、人机交互界面友好、稳定性高、扩展性好等优点。本设计的基于ARM 的嵌入式数据采集和显示装置的原理框图如图3-1 所示。由图可见,本系统采用“电源部分ARM 核心控制模块温度采集模块”实现所需功能。SD RAM存储器ARM处理器Flash ROM存储器LCD显示器键 盘RS-232协控制器多路温度传感器ARM核心控制模块温度采集模块电源电路电源部分图3-1 系统原理框图3.2系统电路设计3.2.1 电源电路设计本系统的电源电路由两部分组成:系统总电源电路和RAM核心模块电源电路。如图3-2:+12V恒定直流电源经电容滤波,分别进入7809和7805稳压,得到+9V和+5V的稳定电压输出后分别供给ARM核心控制模块和其余电路部分使用。图中IN4148是为了防止输出端并接高于本稳压模块的输出电压而烧坏7809和7805而特别设计,达到了可靠性电源设计目的。另外,由于系统正常工作电流较大,因此使用时均应在7809和7805上加散热片散热。 由图可见,系统采用双电源供电,提供了系统正常工作所需的电源电压。另外,由于考虑到便携目的,本系统采用+12V铅蓄电池提供系统所需的恒定直流电源。图3-2 系统电源电路原理图如图3-2: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口提供了相应的稳定直流电源 。其中的IN4004是为了防止电源输入反接烧坏集成稳压块而设计的。3.2.2温度采集电路设计温度采集模块电路采用AT89S52单片机作为模块的协控制器。对于温度传感器的选用DS18B20,因为DS18B20是Dallas公司最新单总线数字温度传感器,该传感器集温度变换、A/D转换于同一芯片,输出直接为数字信号,大大提高了电路的效率。由于现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,且提高了CPU的效率。AT89S52单片机的P0 口与8路温度传感器相连,用于采集温度数据;另外,模块提供RS-232串行口与RAM核心控制模块通信,达到数据传输的目的。温度采集模块电路原理图如图3-3。图3-3 温度采集电路原理图四、软件设计4.1设计思路本系统软件设计是在CodeWarrior for ADS开发环境下完成的。本温度数据采集与显示装置的主体由S3C44B0x核心控制模块和温度数据采集模块构成,所以系统软件也是围绕这两个模块来编写的。而又由于系统采用了S3C44Box和AT89S52两个CPU协同工作,所以软件的编写需要对这两个CPU分别编写,以实现所要求的功能。程序流程图如图4-1。开始ARM初始化硬件装置初始化通信初始化LED显示初始化键盘初始化扫描键盘有键按下处理数值相应显示数据获取数据处理数据显示YN图4-1程序流程图由该流程图可看出,刚上电时,S3C44B0x要先进行ARM 内部的初始化,以使ARM进入相应的状态和模式;然后初始化硬件装置,以使硬件系统可以正常支持温度数据采集;接着通信初始化,以确定温度采集模块与ARM核心控制模块连接正常,并通过UART复位温度数据采集模块,确保其进入正常温度数据采集状态;然后初始化LCD显示和键盘,在LCD上显示相应的菜单列表,供用户通过键盘选择操作;至此,系统初始化完成,并进入正常主程序循环状态。在正常主程序循环状态中,首先扫描键盘,以快速的响应用户的按键操作;若没有键值按下,则ARM立即进行数据的采集、处理与显示,以实现实时数据采集与显示等功能。 其主程序包括温度采集程序、ARM获取温度子程序、温度处理和转换子程序。当ARM 处理器接收到正确的温度数据后,立即进行相应的温度数据处理与转换,变成可被LCD直接显示的正确温度值。4.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; /存放数的符号,若为正=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;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; else *p3=(temp/10)0;j-) *p1+=0x0;
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号