嵌入式系统课程设计(基于ARM的温度采集系统设计) 精品

合集下载

基于ARM的数据采集程序设计--嵌入式系统应用II课程设计

基于ARM的数据采集程序设计--嵌入式系统应用II课程设计

理工学院设计报告课程名称嵌入式系统应用II 题目基于ARM9的数据采集程序设计专业计算机科学与技术班级计算机学号姓名成绩__________________《嵌入式系统应用II》考核要求考核班级:考核方式:本课程为考查课,由于这门课程是理论与实践相结合且实践性很强的课程,学习目标是培养学生嵌入式开发的基本能力,考核方式拟采用学生独立编写一个嵌入式应用程序的方式,以设计文档的形式提交。

考核题目:基于ARM9的数据采集程序设计通过S3C2410X(ARM9)的ADC采集实验箱三个电位器的值,旋转电位器时可在屏幕上看到当前采集值的变化。

考核要求:硬件平台为博创经典UP-NETARM2410实验箱(S3C2410处理器)。

软件平台为eclipse+keil+PUTTY(串口调试助手)。

一人一份纸质报告,报告内容不能雷同,雷同者全部以0分记载。

报告内容包括:●实现的功能●软硬件平台●硬件原理分析及原理图●硬件驱动的实现步骤及分析●代码设计:所有需要编写的代码(如adc.c、adc.h、main.c、Makefile等)、代码的注释,及整个工程树形结构的截图。

●运行及调试的步骤:需要图文并茂,图必须是自己设计过程中的截图。

●总结体会:具体学到了什么知识、在学习过程中的经验、体会。

成绩评定:平时成绩50%+期末成绩50%作品具体评分标准如下:评定项目评分成绩1.实现三个电位器的数据采集功能,有运行结果图(含30分学号或姓名)。

2.问题分析正确、硬件驱动的实现步骤详细。

20分3.代码设计正确、注释完整。

20分4.运行及调试的步骤正确、详细、图文并茂。

20分5.报告格式规范、条理清晰、语句通顺。

10分总分100分目录第一章.设计背景 (1)第二章.设计目的 (2)2.1设计目的: (2)2.2 实现功能: (2)第三章.设计原理 (3)3.1 ARM9实验箱简介 (3)3.2 A/D接口原理 (3)第四章.详细设计 (5)第五章.具体代码实现 (7)5.1 实现驱动 (7)5.2相关寄存器定义 (8)5.3 编写main.c (8)5.4 修改两个Makefile文件 (10)第六章实验运行步骤 (12)6.1 启动串口调试 (12)6.2 启动H-JTAG (12)6.3运行Eclipse工程 (13)第七章.实验现象&结果分析 (15)7.1 实验现象 (15)7.2总结体会 (15)第一章.设计背景由于Linux系统是开源系统,其内核和各种开发工具都可以从网络上轻易获取,使其在嵌入式系统的开发中得到了越来越广泛的应用。

arm嵌入式课程设计

arm嵌入式课程设计

arm嵌入式课程设计一、课程目标知识目标:1. 理解ARM处理器的结构与工作原理,掌握其基本功能和应用领域;2. 学会使用ARM汇编语言进行编程,掌握基本的指令集和程序设计方法;3. 熟悉ARM嵌入式系统的硬件接口和软件架构,能够进行简单的系统设计与调试。

技能目标:1. 培养学生运用所学知识设计简单的ARM嵌入式系统,提高动手实践能力;2. 培养学生运用汇编语言编写程序,提高编程技能;3. 培养学生具备分析和解决嵌入式系统问题的能力。

情感态度价值观目标:1. 培养学生对嵌入式系统的兴趣,激发学习热情,形成主动学习的态度;2. 培养学生具备团队协作精神,能够在项目实践中相互支持、共同成长;3. 培养学生严谨的科学态度和良好的工程意识,注重实际应用和创新能力的培养。

课程性质:本课程为实践性较强的学科,注重理论联系实际,培养学生动手操作能力和实际问题解决能力。

学生特点:高二年级学生,已具备一定的电子技术和计算机编程基础,对嵌入式系统有一定了解,具备初步的编程和动手能力。

教学要求:结合学生特点,采用项目驱动教学,以实践为主线,引导学生通过动手实践掌握知识,提高技能。

将课程目标分解为具体的学习成果,以便于教学设计和评估。

二、教学内容1. 教材章节:ARM嵌入式系统原理与设计- ARM处理器结构与工作原理- ARM汇编语言编程- 嵌入式系统硬件接口技术- 嵌入式系统软件架构与设计- 嵌入式系统项目实践与调试2. 教学内容安排与进度:- 第一周:ARM处理器结构与工作原理学习,了解CPU、内存、外设等基本组成部分;- 第二周:ARM汇编语言编程基础,掌握汇编指令、寄存器、程序流程控制等;- 第三周:嵌入式系统硬件接口技术,学习GPIO、中断、定时器等接口的使用;- 第四周:嵌入式系统软件架构与设计,了解Bootloader、操作系统、驱动程序等;- 第五周:项目实践与调试,分组进行实际项目设计,进行系统调试与优化。

基于ARM的嵌入式温度控制系统设计

基于ARM的嵌入式温度控制系统设计

毕业设计说明书(论文)作者:学号:系部:专业:题目:基于ARM的嵌入式温度控制系统的设计指导者:评阅者:摘要温度的测量和控制在工业生产中有广泛的应用,尤其在石油、化工、电力、冶金等工业领域中,对温度的测量和监控是非常重要的一个环节,温度参数是工业控制中的一项重要的指标。

本文主要研究了基于ARM7架构的嵌入式系统对于温度控制的应用,它基于ARM7 内核的LPC2124, 以DS1820采集温度信号, 通过RWB 温度变送器和A/D 转换获得实际温度值, 同时通过LCD 实时显示; 此温度控制系统应用于热电仪, 实际应用表明, 系统稳定、可靠, 满足了热电仪的温度控制要求。

关键词:ARM;Proteus;嵌入式系统;温度控制系统AbstractMeasurement and control of temperature is widely used in industrial production, especially in the petroleum, chemical, electric power, metallurgy and other industrial fields, measurement and monitoring of the temperature is a ver y important link, the temperature parameter is an important index in industrial control.This paper mainly studies the ARM7 based embedded system for the application of temperature control based on ARM7, which based on the LPC2124 kernel, the DS1820 collecting temperature signal, to obtain the actual temperature value through the RWB temperature transmitter and A/D conversion, at the same time through the LCD real time display; This paper introduces the principle, the system implementation process, gives some application circuits. This temperature control system used in the power system, the practical application shows that the system is stable and reliable, meet, the thermoelectric instrument temperature control requirements.Key words:ARM;Proteus;Embedded system;Temperature control system目录第一章绪论 (1)1.1 引言 (1)1.2 选题背景与意义 (1)1.3 研究现状 (2)1.4 论文主要研究内容 (3)1.5 主要章节安排 (3)第二章开发工具的介绍 (4)2.1 Proteus的功能 (4)2.1.1 Proteus的功能简述 (4)2.1.2 资源丰富 (5)2.1.3电路仿真 (5)2.2 ADS1.2 (6)2.2.1 ADS种类 (6)2.2.2 软件组成 (6)第三章软硬件介绍 (8)3.1 ARM (8)3.1.1 ARM简介 (8)3.1.2 ARM7 (8)3.2LPC2124处理器 (9)3.2.1LPC2124简介 (9)3.2.2 特性 (9)3.2.3 结构 (9)3.2.4引脚描述 (10)3.3硬件系统的整体结构 (11)3.3.1硬件系统的设计原则 (11)3.3.2系统硬件的整体结构 (12)3.3.3 基本硬件组成 (12)第四章软件设计 (17)4.1系统软件的整体结构 (17)4.2.1测控系统 (18)4.2.2显示数字功能 (19)4.2.3 A/D转换数据采集程序功能与实现 (21)第五章总结与展望 (25)5.1 全文总结 (25)5.2后续工作及展望 (25)致谢 (27)参考文献 (28)附录 (29)第一章绪论1.1 引言嵌入式系统这几年被广泛应用于各种工业领域、无线通信领域、智能仪表,消费电子等各个领域,离不开微电子技术的迅猛发展,它主要用于各种嵌入式应用,以将计算机硬件和软件相结合的手段,完成指定的任务和功能。

嵌入式系统课程设计(基于ARM的温度采集系统设计)

嵌入式系统课程设计(基于ARM的温度采集系统设计)

教师批阅目录一、设计内容............................................................................................................. - 1 -1.1设计目的....................................................................................................... - 3 -1.2设计意义....................................................................................................... - 3 -二、设计方案............................................................................................................. - 5 -2.1设计要求....................................................................................................... - 5 -2.2方案论证....................................................................................................... - 5 -三、硬件设计............................................................................................................. - 6 -3.1设计思路....................................................................................................... - 6 -3.2系统电路设计............................................................................................... - 6 -四、软件设计............................................................................................................. - 8 -4.1设计思路....................................................................................................... - 8 -4.2程序清单..................................................................................................... - 10 -五、心得体会........................................................................................................... - 12 -参考文献................................................................................................................... - 13 -教师批阅基于ARM的温度采集系统摘要:本设计是基于嵌入式技术作为主处理器的温度采集系统,利用S3C44B0xARM微处理器作为主控CPU,辅以单独的数据采集模块采集数据,实现了智能化的温度数据采集、传输、处理与显示等功能,并讨论了如何提高系统的速度、可靠性和可扩展性。

(整理)基于ARM的温度采集系统设计.

(整理)基于ARM的温度采集系统设计.

基于ARM的温度采集系统设计2013554013王义涛一.引言本文针对试验对温度监控系统的要求,设计、开发了基于嵌入式操作系统Linux 和 S3C2410 处理系统软硬件平台的嵌入式多通道高精度温度测量系统的软、硬件设计与实现方法,研究并实现热电阻的多通道高精度监测电路。

本文在对测温技术发展研究的基础上,根据本课题设计的任务要求,设计了基于 PT100(铂电阻)传感器的新型多通道温度检测板(8 通道)。

在该多点温度测量系统中,要求温度监测点 12个,测量范围:0℃~+50℃,分辨力:±0.1℃,准确度:±0.2℃。

温度检测系统将实现多点温度数据的采集、保存、上传。

该系统主要包括两个部分:多通道温度检测板和ARM 通信电路。

温度检测板由电源电路、信号放大及调理电路以及 AD 转换电路与单片机接口电路三部分组成。

基于ARM 的通信电路通过两种方式:串口及网口方式实现对温度数据的采集、上传、读取、保存。

完成 Linux 操作系统在嵌入式系统上的移植,以及 Linux 实时性能改造;软件任务划分与设计,包括 A/D 数据采集任务,算法任务,编制构成本温度多路测量仪的嵌入式程序,并对各部分电路进行实验、调试。

二.系统硬件设计2.1温度检测系统架构框图温度检测系统将实现多点温度数据的采集、保存、上传。

其系统结构图如下:2.1基于四线制接法和自校正设计的电阻测量电路当温度探头附近环境温度发生改变的时候,引起了温度探头 PT100 电阻值的改变。

由于流经 PT100 的电流为恒定值,因此温度采集板通过对 PT100 两端的电压值采集便可以计算出环境温度。

本温度采集板中的温度探头采用了 4 线制解法,可以避免因导线过长带来的电阻误差。

6 路采样信号和 2 路标准电阻信号通过多路模拟开关分时段被进行采样,采样得到的值依次通过信号放大电路和A/D 转换电路进入微控制器(MCU)。

通过自校准算法,从而得到精确温度值采集到的温度测量值可以通过串口或网口的方式与上位机相连。

基于ARM的嵌入式温度控制系统设计

基于ARM的嵌入式温度控制系统设计

目录第一章绪论 (2)1.1 引言 (1)1.2 选题背景与意义 (1)1.3 研究现状 (2)1.4 论文主要研究内容 (2)1.5 主要章节安排 (3)第二章开发工具的介绍 (4)2.1 Proteus的功能 (4)2.1.1 Proteus的功能简述 (4)2.1.2 资源丰富 (5)2.1.3电路仿真 (5)2.2 ADS1.2 (6)2.2.1 ADS种类 (6)2.2.2 软件组成 (6)第三章软硬件介绍 (8)3.1 ARM (8)3.1.1 ARM简介 (8)3.1.2 ARM7 (8)3.2LPC2124处理器 (9)3.2.1LPC2124简介 (9)3.2.2 特性 (9)3.2.3 结构 (9)3.2.4引脚描述 (10)3.3硬件系统的整体结构 (11)3.3.1硬件系统的设计原则 (11)3.3.2系统硬件的整体结构 (12)3.3.3 基本硬件组成 (12)第四章软件设计 (17)4.1系统软件的整体结构 (17)4.2.1测控系统 (18)4.2.2显示数字功能 (19)4.2.3 A/D转换数据采集程序功能与实现 (21)第五章总结与展望 (25)5.1 全文总结 (25)5.2后续工作及展望 (25)致谢 (27)参考文献 (28)附录 (29)摘要温度的测量和控制在工业生产中有广泛的应用,尤其在石油、化工、电力、冶金等工业领域中,对温度的测量和监控是非常重要的一个环节,温度参数是工业控制中的一项重要的指标。

本文主要研究了基于ARM7架构的嵌入式系统对于温度控制的应用,它基于ARM7 内核的LPC2124, 以DS1820采集温度信号, 通过RWB 温度变送器和A/D 转换获得实际温度值, 同时通过LCD 实时显示; 此温度控制系统应用于热电仪, 实际应用表明, 系统稳定、可靠, 满足了热电仪的温度控制要求。

关键词:ARM;Proteus;嵌入式系统;温度控制系统AbstractMeasurement and control of temperature is widely used in industrial production, especially in the petroleum, chemical, electric power, metallurgy and other industrial fields, measurement and monitoring of the temperature is a very important link, the temperature parameter is an important index in industrial control.This paper mainly studies the ARM7 based embedded system for the application of temperature control based on ARM7, which based on the LPC2124 kernel, the DS1820 collecting temperature signal, to obtain the actual temperature value through the RWB temperature transmitter and A/D conversion, at the same time through the LCD real time display; This paper introduces the principle, the system implementation process, gives some application circuits. This temperature control system used in the power system, the practical application shows that the system is stable and reliable, meet, the thermoelectric instrument temperature control requirements.Key words:ARM;Proteus;Embedded system;Temperature control system第一章绪论1.1 引言嵌入式系统这几年被广泛应用于各种工业领域、无线通信领域、智能仪表,消费电子等各个领域,离不开微电子技术的迅猛发展,它主要用于各种嵌入式应用,以将计算机硬件和软件相结合的手段,完成指定的任务和功能。

基于ARM的嵌入式温度采集系统设计

基于ARM的嵌入式温度采集系统设计

时, 只靠47 f上拉 电阻 就无法提供 足够的能量 , . l k 会 造成无 法转换 温度或温度误 差极大 。 外部 电源供 电 方式 是D 1B 0 S 8 2 最佳 的工作方 式 ,工作 稳定 可靠 , 抗干 扰能 力强 , 而且 电路 也 比较 简单 , 以开 发 出 可
稳定可靠 的多 点温度监控系统 。 因此本 系统选 用了
模 拟 量 转 化 成 数 字 信 号 通 过 “ 线 总 线 ” 方 式 送 A L C2 1 再 将 处 理 后 的 数 据 通 过 T P 议 上 传 到 一 -P 2 0 C 协
I t r t n e ne o
关 键 词 : 1 B 0; P 2 0 u OS I TCP DS 8 2 L C2 1 ; C/ -I;
客户端 。 于Itre的远程 测控 系统具有信 息传递 基 nen t 快捷 、 互 性 强 、 济 方便 等 特 点 , 交 经 能实 现 数 据 共 享 。本系统将 多个测温点 的温度 数据每 隔1采集一 s 次 , 过公用 互联 网将 数据 传输 到上位 机 。温度精 通
D I B 0 用 电路 、 S 8 2应 以太 网接 口电路 。
摘 要 : 文 以P mp公 司 该 h s
L C2 1 RM7 处 理 器和嵌 入 式操 作 系 ̄u OS I为平 台 , 建 了通 P 2 0A 微 C/ — I 构
过 网络 实现 多路 温度 数据 的 以 太 网远 程传 输 与监控 系统 。该 系统 利 用数 字 化 温度传 感 器DS 8 2 将 温度 1B 0
D 1B 0 S 8 2 在温度 转换 期间工 作 电流达至 l A。 0 m 当几 个 温 度 传 感 器 挂 在 同一 根 I 线 上 进 行 多 点 测 温 / O

基于arm嵌入式的课程设计

基于arm嵌入式的课程设计

基于arm嵌入式的课程设计一、课程目标知识目标:1. 让学生掌握ARM嵌入式系统的基本结构、工作原理及性能特点;2. 使学生了解ARM处理器的编程模型,熟悉汇编语言及C语言在ARM嵌入式系统中的应用;3. 让学生掌握ARM嵌入式系统的开发流程,了解相关开发工具及调试方法。

技能目标:1. 培养学生运用所学知识进行ARM嵌入式系统硬件设计与软件编程的能力;2. 培养学生运用调试工具对ARM嵌入式系统进行调试、测试的能力;3. 培养学生团队协作、沟通表达及解决问题的能力。

情感态度价值观目标:1. 培养学生对ARM嵌入式系统的兴趣,激发学习热情,形成自主学习、探究学习的习惯;2. 培养学生严谨、务实的科学态度,提高学生的创新意识和实践能力;3. 培养学生具备良好的职业道德,遵守法律法规,关注环境保护,为我国嵌入式产业的发展贡献力量。

课程性质:本课程为实践性较强的学科,以理论教学为基础,突出实践操作,注重培养学生的动手能力。

学生特点:学生具备一定的电子技术、计算机编程基础,对ARM嵌入式系统有一定了解,但实践经验不足。

教学要求:结合学生特点,注重理论与实践相结合,以项目驱动教学,提高学生的实际操作能力。

同时,关注学生的个体差异,因材施教,使学生在课程学习中获得最佳的学习效果。

通过分解课程目标为具体的学习成果,为后续的教学设计和评估提供依据。

二、教学内容1. ARM嵌入式系统概述:介绍ARM处理器的起源、发展及优势,分析嵌入式系统的基本概念、分类及应用领域。

相关教材章节:第一章 嵌入式系统概述2. ARM处理器架构与编程模型:讲解ARM处理器的内部结构、工作原理,学习ARM处理器的编程模型及指令集。

相关教材章节:第二章 ARM处理器架构与编程模型3. ARM汇编语言编程:学习ARM汇编语言的语法规则,掌握汇编程序的编写、编译与调试方法。

相关教材章节:第三章 ARM汇编语言编程4. ARM嵌入式系统开发环境:介绍嵌入式系统开发工具,如Keil、IAR等,学习集成开发环境的使用方法。

嵌入式温度采集系统方案

嵌入式温度采集系统方案

《嵌入式系统基础》课程设计论文论文题目:基于嵌入式温度米集系统的设计所属系别__________ 信息工程系专业班级姓名学号指导教师撰写日期2018 年12__________________________ 个人资料整^ _仅限学习使用_一、开题报告1、选题背景和意义随着现代经济和社会的发展,信息化程度越来越高,智能化的测控仪器仪表应用越来越广范。

其中基于单片机的温度测控系统广范应用于工业、军事、消防等领域。

本课题是一个完整控制系统的设计,涉及到电子技术、模拟电子、PC机的通信技术、自动控制检测、信号处理,软件工程等多学科性知识,是一个软硬件相结合的设计性题目。

此课题融知识性与实用性于一体,能够提高检索资料、电子系统设计、分析排除故障以及创新设计的能力,有效的训练我们应用所学专业基础知识解决实际问题的能力,具有重要意义2、主要工作思路第一步:根据题目查找相关文献,了解相关知识;第二步:根据相关材料初步理顺设计思路;第三步:初步完成功能设计;第四步:完成理论设计;第五步:调整设计,完成相应的实验;第六步:整体测试,提供测试数据及书写毕业论文,并对其进行修改,直到合格为止。

、课程设计报告1、选题思路本次设计的目的在于学习基于51单片机的多路温度采集系统设计的基本流程。

本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。

单片机数据处理之后吗,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到LED进行显示,可以使用按键来设置温度限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和继电器的目的。

2、设计分析2.1设计方案比较与分析方案一:由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。

基于ARM的温湿度采集系统

基于ARM的温湿度采集系统
rREDLUT=0xfdb96420;// 1111 1101 1011 1001 0110 0100 0010 0000
rGREENLUT=0xfdb96420;// 1111 1101 1011 1001 0110 0100 0010 0000
rBLUELUT=0xfb40;// 1111 1011 0100 0000
rLCDSADDR2=M5D((((unsignedint)g_unLcdActiveBuffer+(SCR_XSIZE*LCD_YSIZE))>>1))|(MVAL<<21);、
rLCDSADDR3=(LCD_XSIZE/2)|(((SCR_XSIZE-LCD_XSIZE)/2)<<9);
//The following value has to be changed for better display.
在正常主程序循环状态中,首先扫描键盘,以快速的响应用户的按键操作;若没有键值按下,则ARM立即进行数据的采集、处理与显示,以实现实时数据采集与显示等功能。
3.2关键代码
LCD液晶屏初始化:
voidlcd_init(void)
{
rDITHMODE=0x12210;
rDP1_2=0xa5a5;
rDP4_7=0xba5da65;
2.3 A/D转换设计
2.3.1
在S3C44B0X中A/D模块有8个模拟输入通道,通道的切换可以由内部的定时器完成。如果要进行8个通道连续变化的信号的转换,还必须在8个通道全部加采样保持器,采样保持的接口电路如下图。模拟输入信号为需要转换的信号,驱动控制信号可以通过编程利用ARM里面的timer产生,也可以通过I/O口来控制,输出信号直接接到A/D模块中的输入通道。

基于ARM的嵌入式温度监测系统设计

基于ARM的嵌入式温度监测系统设计

毕业设计说明书基于ARM的嵌入式温度监测系统摘要随着科技的发展,嵌入式系统的发展也异常迅速,同时,嵌入式系统已经应用于各个方面,给人们的生产和生活带来了极大的便利。

目前嵌入式系统的应用已经发展到了嵌入式处理器与操作系统相结合的阶段,本设计就是将ARM处理器与Linux操作系统相结合实现的。

嵌入式温度监测系统由温度监测硬件系统和温度监测软件两部分组成。

其中硬件系统包括SBC2410开发套件,温度检测电路、信号放大电路及信号显示终端,论文中按模块对各部分硬件的设计进行了详细的介绍。

温度监测软件系统的设计过程如下,本设计首先为温度监测系统构建Linux环境,其次在Linux下编写并加载系统驱动程序,然后编写应用程序,编译并下载到ARM开发板中。

经过反复调试,实现了温度监测的功能。

关键词:ARM;linux;内核;驱动;温度监测Embedded System of Temperature Testing Based on ARMAbstractWith the development of science, embedded system develops at a fast speed. Embedded system has been applied to all aspects, which has brought great convenience to people's production and daily life. At present, the application of embedded system have been developed to the stage of combining embedded processor with operating system, and the design comes true based on combining the ARM processor with linux operating system.Embedded temperature measurement system includes temperature monitoring hardware and software systems. Hardware system includes SBC2410 system development kit, temperature detection circuit, signal amplifier circuit and signal display terminal. This paper, in detail, introduces the hardware design according to modules.The process of the design of temperature measurement software system is as follows: First,the design construct Linux environment for temperature measurement the system .Secondly, the design compiles and loads driver program in Linux; At last, the design writes, compiles and downloads the application program to ARM development board. After repeated debugging, the design achieves the purpose of the temperature measurement.Key words: Linux ; ARM ; Kernel ; Drivert ; Emperature measurement目录摘要 (II)Abstract (III)第一章嵌入式系统简介 (1)1.1 嵌入式系统的概念 (1)1.2 嵌入式系统的结构 (1)1.3 嵌入式系统与普通单片机开发的不同之处 (2)1.3.1 交叉编译 (2)1.3.2 交叉调试 (3)第二章设计用嵌入式模块 (5)2.1 ARM处理器 (5)2.2 Flash模块 (5)2.3 SDRAM模块 (6)2.4 JTAG调试器 (8)第三章温度监测电路设计 (10)3.1 AD590的室温补偿电路 (10)3.1.1 性能 (10)3.1.2 误差校正 (10)3.1.3 AD590的补偿电路设计 (11)3.2 热电偶的测温电路 (12)3.2.1 热电偶的测温原理 (12)3.2.2 热电偶的测温电路设计 (14)第四章温度监测系统的Linux构建 (17)4.1 构建交叉编译器 (17)4.1.1 交叉编译器 (17)4.1.2 设置共享文件夹,并解压linux开发包 (17)4.1.3 安装交叉编译器 (18)4.2 Linux操作系统 (19)4.2.1 引导加载程序 (20)4.2.2 内核 (21)4.2.3 文件系统 (23)4.3 烧写 (24)4.3.1 Windows下烧写vivi (24)4.3.2 分区格式化Flash及重新下载vivi (25)4.3.3 烧写linux内核 (27)4.3.4 下载文件系统 (27)第五章温度监测系统的软件编程 (28)5.1 编写Linux下的ADC驱动程序 (28)5.1.1 Linux设备 (29)5.1.2 驱动程序的编写说明 (32)5.1.3 驱动程序编写的具体内容 (34)5.1.4 ADC驱动程序具体函数的分析 (36)5.1.5 ADC驱动程序的加载和删除 (39)5.2 编写应用程序 (41)5.2.1 线性化部分 (41)5.2.2 A/D转换速率的计算 (44)5.2.3 主程序的编写 (45)第六章温度监测的调试 (47)6.1 编译ad驱动程序 (47)6.2 运行应用程序 (48)6.2.1 为ARM开发板更新内核和文件系统 (48)6.2.2 编译main.c应用程序 (48)6.2.3 运行main 主程序 (49)总结 (51)参考文献 (52)附录 (54)附录A:程序源代码 (54)附录B:测温原理图 (68)附录C:ARM板电路图 (69)致谢 (70)第一章嵌入式系统简介1.1嵌入式系统的概念嵌入式系统是不同于常见计算机系统的一种计算机系统,它不以独立设备的物理形态出现,即它没有一个统一的外观,它的部件根据主体设备以及应用需要嵌入在设备的内部,发挥着运算、存储、以及控制的作用。

基于ARM嵌入式平台温度控制系统设计

基于ARM嵌入式平台温度控制系统设计
P o w e r E
基于 A R M嵌入式平 台温度控 制系统设计
文/ 景 芳 范 涛 徐 松 林 。
u ( t ) 为控制器 的输 出信号 ;
强大,为 人机 交互 良好界面建立提供保 障。由
T 9 1 P d M9 2 0 0中没有集 成 L CD控制器 ,所 e r r o r ( t ) 一 输出量与输入量之间差值,为 于A
控制器输入控制量 ; 以选用 S I D1 3 5 0 6 L C D作为本系统 L C D的控 制 Ap 为P I D 比例控 制系数 ,是决定系统 的 器 。 响应 时间主要控 制量 ,随着 A 增大 ,有 可能 2 . 3通 信模 块 系统变得不稳定 。 i 一 积 分时 间常数 ,用 来消 除被 控系 统 本系统 中通讯模块 的作 用主要是与 P C连 的静态误差 ,其作用相 当于增加 了一个延 迟的 接 ,从而可将 系统中的数据上传 到 P C上 或进 部分 , 因此 随着 i 的变 化,会 改变 系统 的响 行数据交换 。由于串 口是 P C上一种 非常普 通 应时间 ,若 过小时使系统振荡加剧。 的通信设 备 ,并且 大多数 P C都包含基 于 R S 一 d 为微 分时 间常数 ,能够 改善 系统动 态 2 3 2 C标准 的串 口,所 以在本 系统 中使用基 于 响应及稳定性 ,实 际工程应用 中通常 可以忽略 R S 一 2 3 2 C标准 的串口进行通讯 。 掉这一项 。 1 . 3模糊P I 。 2 - 4温度 采集模 块
本系统的设计主要考虑实际工业需求 ,采 用现在流行 的 AR M 控制器 ,结合 经典 P I D控 制算法 ,使系统具有实 时性 、高精度 的优 点。 硬件 设 计系 统硬 件结 构 框 图如 图 3所 示 。以 AT 9 1 R M9 2 0 0为主控制器 ,连接有显示模块 、 温度采集模块 、信息通信模块 、数据运算存储 1 . 1控 制算法 模块、 电源控制模块等 ,温度 采集检 测模块将 温度实时传人主控机 ,将温度数据 利用显示模 目前 温度 控制 基本 采用 经典 P I D控 制 方 块上显示 ,并利用 串口协议将 温度信 息进行 与 式 。P I D控 制是迄 今为止 最通用的控 制方 式, 上 位机通信 ,主控机利用控制算法得到控制信 尽 管许多先进控制方法不断推出 ,但 P I D控 制 息量由输 出模块传送到执行机构 ,实现温度精 器 以其结 构简单 , P I D控 制算法具有容易 实现 , 准控制 ,最终形成闭环 回路控制 。因此介绍 以 鲁棒 性强 ,操作简单等优点 ,所 以在 现在 工业 下几个主要部分 : 过程控制 中被广泛应用 。

ARM嵌入式系统实验教程课程设计

ARM嵌入式系统实验教程课程设计

ARM嵌入式系统实验教程课程设计1. 简介随着科技的不断发展,嵌入式系统越来越广泛地应用于各个领域,如消费电子、医疗、交通、军事等。

嵌入式系统的性能越来越好,体积越来越小,成本也越来越低廉。

而ARM嵌入式系统,因其拥有高性能、低功耗、高集成度、灵活性等优势,已经成为嵌入式系统的主流。

本文旨在为学习ARM嵌入式系统的同学提供一份实验教程课程设计,通过实践操作,使学生了解ARM嵌入式系统的相关知识和应用。

2. 实验内容2.1 环境搭建学习ARM嵌入式系统必须先了解其开发环境,在本实验中,我们将使用Keil MDK作为开发工具,学生需要掌握Keil MDK的安装和配置。

2.2 编写第一个程序通过编写一个简单的程序,学生可以了解ARM汇编语言的基础知识,以及如何在Keil MDK中创建、编译和调试程序。

2.3 GPIO控制学生将会学习如何在ARM嵌入式系统上控制GPIO,包括输入输出、上拉下拉电阻等。

2.4 UART通信UART通信是嵌入式系统中常用的一种通信方式,学生将会学习如何使用ARM嵌入式系统的UART模块进行数据传输。

2.5 中断处理中断是嵌入式系统中的一种重要机制,学生将会了解中断的原理和使用中断的方法,包括IRQ和FIQ两种中断。

2.6 定时器和计数器学生将会了解ARM嵌入式系统中的定时器和计数器的原理和应用,包括通用定时器、看门狗定时器等。

3. 实验要求3.1 硬件要求学生需要准备ARM Cortex-M3开发板、USB转TTL模块、串口线、LED等实验工具。

3.2 软件要求学生需要安装Keil MDK、JLink驱动程序等软件。

3.3 实验要求学生需要按照实验指导书中给出的步骤完成实验,并编写实验报告,报告中需要包括实验的目的、原理、步骤、结果和分析。

4. 实验效果经过本实验的学习,学生将能够掌握ARM嵌入式系统的基础知识和应用,包括Keil MDK的安装和配置、ARM汇编语言的基础知识、GPIO控制、UART通信、中断处理、定时器和计数器应用等方面。

嵌入式课程设计之ARM的温度采集系统.

嵌入式课程设计之ARM的温度采集系统.

指导教师评定成绩:审定成绩:重庆邮电大学课程设计报告设计题目: ARM的温度采集系统学校:重庆邮电大学学生姓名:专业:自动化班级:xxxxxxxx学号:xxxxxxxxxx指导教师:设计时间: 2012 年 12 月重庆邮电大学摘要本文设计了一种温度控制系统,它基于三星公司生产的ARM7内核的S3C44B0,以Pt100热电阻采集温度信号,通过RWB温度变送器和A/D转换获得实际温度值,同时通过LCD实时显示;通过调整脉宽调制的占空比,控制加热电路继电器的通断时间,实现温度的闭环控制。

文章介绍了该系统的构成原理,实现流程,并重点介绍了PID自整定算法的原理和实现,给出了部分应用电路。

此温度控制系统应用于热电仪,实际应用表明,系统稳定、可靠,满足了热电仪的温度控制要求。

关键词:ARM;温度控制;PID;自整定Abstract:A temperature control system is designed, which is based on theS3C44B0 of the Advanced RISC Machine (ARM produced by the Samsung. Using Pt100 to measure the temperature, the real value is gotten through RWB temperature converter and A/D transformation and displayed by LCD meanwhile. The system is under the closed loop control with the heating c ircuit relay’s opening or closure which is decided by the PWM. The system component principle and the flow realization is introduced, some application circuit is provided, emphasize the PID self-turning theory and method. The temperature control system is designed for the thermoelectricity instrument. The experimental results show that it is safe and reliable, and meet the demand of the thermoelectricity instrument.Key words: advanced RISC machine; PID; temperature control; self-turning引言处在温差条件下的矿物,对外表现为温差热电势E,温差一定时,E达到一平衡值。

基于ARM的温度采集系统

基于ARM的温度采集系统

基于ARM的温度采集系统目录一、设计内容............................................................................... 错误!未定义书签。

1.1设计目的 (2)1.2设计意义 (2)二、设计方案 (3)2.1设计要求 (3)2.2方案论证 (3)三、硬件设计 (4)3.1设计思路 (4)3.2系统电路设计 (5)四、软件设计 (6)4.1设计思路 (6)4.2程序清单 (8)五、心得体会 (10)参考文献 (11)摘要:本设计是基于嵌入式技术作为主处理器的温度采集系统,利用S3C44B0x ARM微处理器作为主控CPU,辅以单独的数据采集模块采集数据,实现了智能化的温度数据采集、传输、处理与显示等功能,并讨论了如何提高系统的速度、可靠性和可扩展性。

并解决了传统的数据采集系统由于存在响应慢、精度低、可靠性差、效率低、操作繁琐等弊端,能够完全适应现代化工业的高速发展。

关键词:嵌入式系统 ARM S3C44B0 温度采集数据处理一、设计内容1.1设计目的1、注重培养综合运用所学知识、独立分析和解决实际问题的能力,培养创新意识和创新能力,并获得科学研究的基础训练。

2、了解所选择的ARM芯片各个引脚功能,工作方式,计数/定时,I/O口,中断等的相关原理,并巩固学习嵌入式的相关内容知识。

3、通过软硬件设计实现利用ARM芯片对周围环境温度信号的采集及显示。

1.2设计意义嵌入式系统是以应用为中心,以计算机技术为基础,且软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

它一般由以下几部分组成:嵌入式微处理器、外围硬件设备、嵌入式操作系统。

嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力、才更具有优势。

因此嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的裁减利用。

基于ARM嵌入式平台温度控制系统设计

基于ARM嵌入式平台温度控制系统设计

基于ARM嵌入式平台温度控制系统设计作者:景芳范涛徐松林来源:《电子技术与软件工程》2013年第20期摘要随着对温度的测量和控制要求越来越高,因此本文提出由AT91RM9200作为主控机结合模糊PID,实现温度的实时、高精度、稳定控制,并将采集数据在LCD上显示,对历史数据加以存储,方便对系统运行历史的查询及改造。

【关键词】温控 AT91RM9200 模糊PID1 引言温度系统是目前工业控制中最常见的控制系统之一,对温度的测量和控制具有很大的实际应用价值和应用前景。

目前市场上成型的温度控制产品都普遍采用传统PLC和单片机来实现,基本能够满足大对温度控制要求不高大多数场合。

今年电子科学技术及微控制技术,以及控制理论的创新、不断完善,工业温度控制要求也随之增高。

目前市场上许多温度系统控制核心芯片为ARM系列处理器,ARM以独特优势被国内外市场所认可,ARM微控制器不仅拥有统一标准性,代码密度高,运行速度快,执行稳定等优点。

温控系统大多数采用嵌入式硬件与软件联合调试,不是使系统较高的测量精度以及精准控制精度,能够满足许多高,新尖技术对温度的需求,采用性能高的嵌入式处理器和嵌入式实时操作系统不仅具有实时性好,体积小,实现复杂数据运算以及人机界面友好互动的优点,逐渐成为未来控制系统发展主流之一。

1.1 控制算法目前温度控制基本采用经典PID控制方式。

PID控制是迄今为止最通用的控制方式,尽管许多先进控制方法不断推出,但PID控制器以其结构简单,PID控制算法具有容易实现,鲁棒性强,操作简单等优点,所以在现在工业过程控制中被广泛应用。

1.2 PID经典PID控制系统,通过由两部分组成:PID控制器和被控对象。

控制核心PID控制器算法设计,关键以控制偏差量为输入量和系统输出量组成:系统输出控制量为:或写成传递函数形式:上几式中:U(t)为控制器的输出信号;-输出量与输入量之间差值,为控制器输入控制量;为PID比例控制系数,是决定系统的响应时间主要控制量,随着增大,有可能系统变得不稳定。

嵌入式系统课程设计(基于ARM的温度采集系统设计)

嵌入式系统课程设计(基于ARM的温度采集系统设计)

嵌入式系统课程设计(基于ARM的温度采集系统设计)1000

嵌入式系统是一种基于微处理器或微控制器、专用硬件和软件的计算机系统,具有小型化、低功耗、实时性强等特点。

本次课程设计旨在设计一种基于ARM的温度采集系统,实现对温度值的实时监测与显示。

首先,需要选用一款适合嵌入式系统的ARM处理器。

考虑到性能和功耗的平衡,本次选用STM32F103C8T6处理器。

其主要特点有:基于ARM Cortex-M3内核,时钟频率为72MHz,具有64KB闪存和20KB SRAM。

接下来,需要选择温度传感器。

考虑到成本和精度等因素,本次选用DS18B20数字温度传感器。

DS18B20具有以下特点:数字接口,
精度为±0.5℃,温度响应快速,封装为TO-92。

然后,需要编写嵌入式软件。

本次采用Keil MDK-ARM开发环境,编写C语言程序。

程序主要包括以下部分:
1. 初始化:包括STM32外设的初始化,如时钟、GPIO、USART等。

2. 温度采集:通过OneWire协议与DS18B20通信,读取温度值,计算并保存到指定变量中。

3. 温度显示:使用USART串口通信,把温度值转换为ASCII码,并通过串口发送到上位机。

上位机可以使用串口调试助手等软件进行数据接收和显示。

最后,进行实验测试。

将DS18B20连接到STM32,把程序烧录到处
理器中,通过串口调试助手连接上位机,即可实时显示温度值。

实验测试表明,该系统温度采集准确可靠,响应速度快,可广泛应用于各种实时温度监测场景。

嵌入式系统课程设计(温度检测报警系统)

嵌入式系统课程设计(温度检测报警系统)

嵌入式体系课程设计【1 】姓名:班级:学号:目次:一.体系请求二.设计计划三.程序流程图四.软件设计五.课程总结与小我领会一.体系请求运用STM32F103作为主控CPU设计一个温度分解测控体系,具体请求:1.运用热敏电阻或者内部集成的温度传感器检测情况温度,每0.1秒检测一次温度,对检测到的温度进行数字滤波(可以运用平均法).记载当前的温度值和时光.2.运用盘算机,经由过程串行通讯获取STM32F103检测到的温度和所对应的时光.3.运用盘算机进行时光的设定.4.运用盘算机进行温度上限值和下限值的设定.5.若超出上限值或者低于下限值,则STM32进行报警提醒.二、设计计划本次课程设计的请求是运用STM32F103设计一个温度测控体系,这款单片机集成了许多的片上资本,功效十分壮大,我运用了以下部分来完成课程设计的请求:1、STM32F103内置了3个12位A/D转换模块,最快转换时光为1us.本次课程设计请求进行温度测定,于是运用了个中一个ADC对片上温度传感器的内部旌旗灯号源进行转换.当有多个通道须要收集旌旗灯号时,可以把ADC设置装备摆设为按必定的次序来对各个通道进行扫描转换,本设计只收集一个通道的旌旗灯号,所以不运用扫描转换模式. 本设计须要轮回收集电压值,所以运用持续转换模式.2、本次课程设计还运用到了DMA.DMA是一种高速的数据传输操纵,许可在外部装备和储存器之间运用体系总线直接读写数据,不须要微处理器干涉.使能ADC的DMA接口后,DMA控制器把转换值从ADC 数据存放器(ADC_DR)中转移到变量ADC_ConvertedValue中,当DMA 传输完成后,在main函数中运用的ADC_ConvertedValue的内容就是ADC转换值了.3、STM32内部的温度传感器和ADCx_IN16输入通道相衔接,此通道把传感器输出的电压值转换成数字值.STM内部的温度传感器支撑的温度规模:-40到125摄氏度.运用下列公式得出温度温度(°C) = {(V25 - VSENSE) / Avg_Slope} + 25式中V25是 VSENSE在25摄氏度时的数值(典范值为1.42V)Avg_Slope是温度与VSENSE曲线的平均斜率(典范值为4.3mV/C)运用均值法对转换后的温度进行滤波,将得到的温度经由过程串口输出.4、本设计采取了USART1作为串行通讯接口,来进行时光.温度的传输,以及进行时光和温度高低限的设定.5、当温度超出高低限时,开辟板上的灯会响应亮起作为警报,运用了GPIO设置装备摆设引脚.6、时光计时运用了systick时钟,并设置装备摆设个中止,由此进行一秒准时,实现时钟的及时显示.7、时光设定部分参考了一个两位数字读取的函数,在进入主轮回前设定参数,从而防止了在串口中止中输入只能一次性输入所有参数的弊病.三、程序流程图用到的库文件:本身编写的文件:main文件:#include "stm32f10x.h"#include "stdarg.h"#include "stdio.h"#define ADC1_DR_Address ((uint32_t)0x4001244C) extern __IO u16 ADC_ConvertedValue;extern __IO u16 calculated_temp;__IO u16 Current_Temp;unsigned char sec=0,min=0,hour=0;typedef struct{int tm_sec;int tm_min;int tm_hour;}rtc_time;rtc_time systmtime;__IO u16 upper_bound;__IO u16 lower_bound;//static uint8_t USART_Scanf(uint32_t value);void Time_Regulate(rtc_time *tm);unsigned int TimingDelay=0;unsigned int KEY_ON;unsigned int KEY_OFF;void Delay(u32 count){u32 i=0;for(;i<count;i++);}void LED_GPIO_Config(){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); // 使能PD端口时钟GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 速度50MHz}void SysTick_Init(){if (SysTick_Config(SystemCoreClock / 1000)){while(1);}SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk;//封闭滴答准时器//SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;//开启滴答准时器}void Delay_ms(__IO u32 nTime){TimingDelay=nTime;SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;//打开while(TimingDelay != 0);}void RCC_Config(void)//设置装备摆设时钟{RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);//DMA RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOC, ENABLE);//ADC1 and GPIOCRCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);//USARTRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); // 使能PD端口时钟 LED}void GPIO_Config(void){GPIO_InitTypeDef GPIO_InitStructure;/***Config PA.01 (ADC1)***/GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;GPIO_Init(GPIOC, &GPIO_InitStructure);/***Config LED ***/GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 速度50MHz/***Config USART ***//* Configure USART1 Tx (PA.09) as alternate function push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);/* Configure USART1 Rx (PA.10) as input floating */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA, &GPIO_InitStructure);}void DMA_Config(void){/* DMA channel1 configuration */DMA_InitTypeDef DMA_InitStructure;DMA_DeInit(DMA1_Channel1);DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address; /*ADC??*/DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&ADC_ConvertedValue;DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;DMA_InitStructure.DMA_BufferSize = 16;DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable;DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;DMA_InitStructure.DMA_Priority = DMA_Priority_High;DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;DMA_Init(DMA1_Channel1, &DMA_InitStructure);/* Enable DMA channel1 */DMA_Cmd(DMA1_Channel1, ENABLE);}void ADC1_Config(void){ ADC_InitTypeDef ADC_InitStructure;ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;ADC_InitStructure.ADC_ScanConvMode = ENABLE ;ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;ADC_InitStructure.ADC_NbrOfChannel = 1;ADC_Init(ADC1, &ADC_InitStructure);/* ADC1 regular channel16 configuration */ADC_RegularChannelConfig(ADC1, ADC_Channel_16, 1, ADC_SampleTime_55Cycles5);ADC_TempSensorVrefintCmd(ENABLE);ADC_DMACmd(ADC1, ENABLE);ADC_Cmd(ADC1, ENABLE);ADC_ResetCalibration(ADC1);while(ADC_GetResetCalibrationStatus(ADC1));ADC_StartCalibration(ADC1);while(ADC_GetCalibrationStatus(ADC1));ADC_SoftwareStartConvCmd(ADC1, ENABLE);}void USART1_Config(void){USART_InitTypeDef USART_InitStructure;USART_ART_BaudRate = 9600;USART_ART_WordLength = USART_WordLength_8b; USART_ART_StopBits = USART_StopBits_1;USART_ART_Parity = USART_Parity_No ;USART_ART_HardwareFlowControl = USART_HardwareFlowControl_None;USART_ART_Mode = USART_Mode_Rx | USART_Mode_Tx;USART_Init(USART1, &USART_InitStructure);// USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//吸收使能// USART_ITConfig(USART1,USART_IT_TXE,ENABLE);//发送使能USART_Cmd(USART1,ENABLE); //启动串口}static uint8_t USART_Scanf(uint32_t value)//字符串读取函数{uint32_t index = 0;uint32_t tmp[2] = {0, 0};while (index < 2){/* Loop until RXNE = 1 */while (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) ==RESET) {}tmp[index++] = (USART_ReceiveData(USART1));if ((tmp[index - 1] < 0x30) || (tmp[index -1] > 0x39)){printf("\n\r请输入有用数字 0 到 9 -->: ");index--;}}index = (tmp[1] - 0x30) + ((tmp[0] - 0x30) * 10);/* Checks */if (index > value){printf("\n\r请输入有用数字 0 到 %d", value);return 0xFF;}return index;}void Time_Regulate(rtc_time *tm)//时光设定函数{uint32_t Tmp_HH =0xFF, Tmp_MI = 0xFF, Tmp_SS = 0xFF; uint32_t Tmp_up = 0xff,Tmp_low = 0xff;printf("\r\n 设定温度规模");printf("\r\n 输入温度上限: ");while (Tmp_up == 0xFF){Tmp_up = USART_Scanf(99);}printf("\n\r 温度上限为 %0.2d C\n\r", Tmp_up);upper_bound = Tmp_up;//-------------------printf("\r\n 输入温度下限: ");while (Tmp_low == 0xFF){Tmp_low = USART_Scanf(99);}printf("\n\r 温度下限为 %0.2d C\n\r", Tmp_low);lower_bound = Tmp_low;printf("\r\n 设准时光 ");Tmp_HH = 0xFF;printf("\r\n 设定小时: ");while (Tmp_HH == 0xFF){Tmp_HH = USART_Scanf(23);}printf("\n\r 设定小时为 %d\n\r", Tmp_HH );tm->tm_hour= Tmp_HH;Tmp_MI = 0xFF;printf("\r\n 设定分钟: ");while (Tmp_MI == 0xFF){Tmp_MI = USART_Scanf(59);}printf("\n\r 设定分钟为 %d\n\r", Tmp_MI);tm->tm_min= Tmp_MI;Tmp_SS = 0xFF;printf("\r\n 设定秒: ");while (Tmp_SS == 0xFF){Tmp_SS = USART_Scanf(59);}printf("\n\r 设定秒为 %d\n\r", Tmp_SS);tm->tm_sec= Tmp_SS;}int fputc(int ch, FILE *f)//重定向函数{USART_SendData(USART1, (unsigned char) ch);// while (!(USART1->SR & USART_FLAG_TXE));while( USART_GetFlagStatus(USART1,USART_FLAG_TC)!= SET); return (ch);}/*****************************主函数***********************************************/int main(void){#ifdef DEBUG#endifSysTick_Init();LED_GPIO_Config();RCC_Config();GPIO_Config();DMA_Config();ADC1_Config();USART1_Config();Delay(5000);Time_Regulate(&systmtime); GPIO_SetBits(GPIOD, GPIO_Pin_8); GPIO_SetBits(GPIOD, GPIO_Pin_9); GPIO_SetBits(GPIOD, GPIO_Pin_10); GPIO_SetBits(GPIOD, GPIO_Pin_11); sec=systmtime.tm_sec;min=systmtime.tm_min;hour=systmtime.tm_hour;while(1){sec++;if(sec==60){sec=0;min++;if(min==60){min=0;hour++;if(hour==24){hour=0;}}}printf("\r\n 当前时光: %d :%d :%d \r\n", hour,min,sec);printf("\r\n 当前温度: %02d C 温度上限:%02d C 温度下限:%02d C \r\n",Average_Temp,upper_bound,lower_bound);GPIO_SetBits(GPIOD, GPIO_Pin_8);GPIO_SetBits(GPIOD, GPIO_Pin_9);GPIO_SetBits(GPIOD, GPIO_Pin_10);GPIO_SetBits(GPIOD, GPIO_Pin_11);if(((int)Current_Temp) > ((int)upper_bound)){GPIO_ResetBits(GPIOD, GPIO_Pin_8);}else if(((int)Current_Temp) < ((int)lower_bound)){GPIO_ResetBits(GPIOD, GPIO_Pin_11);}else{GPIO_SetBits(GPIOD, GPIO_Pin_8);GPIO_SetBits(GPIOD, GPIO_Pin_9);GPIO_SetBits(GPIOD, GPIO_Pin_10);GPIO_SetBits(GPIOD, GPIO_Pin_11);}Delay_ms(1000);}}stm32f10x_it.c文件:/* Includes ------------------------------------------------------------------*/#include "stm32f10x_it.h"/* Private functions ---------------------------------------------------------*/void display(void){unsigned char ad_data,ad_value_max,ad_value_min;ad_data=Current_Temp;if(ad_sample_cnt==0){ad_value_max=ad_data;ad_value_min=ad_data;}else if(ad_data<ad_value_min){ad_value_min=ad_data;}else if(ad_data>ad_value_max){ad_value_max=ad_data;}ad_value_sum+=ad_data;ad_sample_cnt++;if(ad_sample_cnt==10){ad_value_sum-=ad_value_min;ad_value_sum-=ad_value_max;ad_value_sum/=8;calculated_temp=ad_value_sum;ad_sample_cnt=0;ad_value_min=0;ad_value_max=0;}}void SysTick_Handler(void){TimingDelay--;ADC_tempValueLocal = ADC_ConvertedValue;//printf("\n %02d \n, ADC_ConvertedValue");Current_Temp=(V25-ADC_tempValueLocal)/Avg_Slope+25;temp_sum+=Current_Temp;temp_cnt++;if(temp_cnt>=10){temp_cnt=0;temp_sum/=10;Average_Temp=temp_sum;temp_sum=0;}//printf("\r\n The current temperature = %02d C\r\n", calculated_temp); }五、课程总结与小我领会嵌入式开辟是主动化专业的重要课程之一,实际生涯中,嵌入式在运用可以说得是无处不在.是以在大学中控制嵌入式的开辟技巧是十分重要的,也是十分须要的.本次运用基于Cortex-M3内核的32位ARM处理器stm32作为主控制器,设计了一种温度测控体系.体系中,运用了ADC.DMA.温度传感器.USART.GPIO.准时器.NVIC 等资本,实践了课上所学的内容,深深领会到了运用的重要性.在课程设计的进程中,为了减小干扰的影响,数据收集后,平均算法进行温度输出.并运用串口设计了简略的交互体系,固然没有运用上位机,但也达到了比较好的后果.经由过程本次课程设计,实在阅历到了许多想象不到的艰苦,本身的一些设法主意也不敷成熟,最后照样参考了他人的解决计划,这让我深深熟悉到在嵌入式开辟这条路上,与他人交换进修是晋升本身的异常有用的方法.在设计串口设准时光的程序时,我最开端的设法主意是经由过程USART的中止进行输入字符的辨认,从而分离设准时光以及温度高低限,可是经由本身的冥思苦想照样想不出来,怎么都实现不了.无奈之下,我只好去近邻卧室的大神那边虚心求教,在参考了他的程序之后我恍然大悟,选择了在轮回之外先按次序读取字符串的办法,顺遂解决了我的问题,让我深深熟悉到了交换的重要性,在本身的设法主意不敷完美时,多多懂得些他人的算法对晋升本身是有很大帮忙的.因为之前没有完全开辟一个有较多功效体系的阅历,在本次做课程设计的进程中,走了许多的弯路,也学到许多教材上没有的常识.运用库开辟Stm32时,异常重视模块化的概念,不但是许多片上资本运用库文件来进行封装,本身在编写一些函数时也应当学会进行封装,个中又涉及到c说话许多之前没太留意到的地方,在开辟进程中实在让我吃了许多苦头,不过荣幸的是同窗的指点下,我一点点解决了那些困惑的地方,加倍深刻了懂得了一个工程的整体构造,对模块化的思惟印象深刻.这对我今后的开辟将起到伟大的感化.总之,本次的嵌入式课程设计让我收成了许多,不但仅进修到了许多教材和教室上学不到的器械,更重要的是进修到了库开辟的思惟,以及领会到了交换的重要性,同时也感激先生这一学期来的卖力讲课,严谨的答疑解惑,让我熟悉到理论常识对开辟潜移默化的感化.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于ARM的温度采集系统1.1设计目的1、注重培养综合运用所学知识、独立分析和解决实际问题的能力,培养创新意识和创新能力,并获得科学研究的基础训练。

2、了解所选择的ARM芯片各个引脚功能,工作方式,计数/定时,I/O口,中断等的相关原理,并巩固学习嵌入式的相关内容知识。

3、通过软硬件设计实现利用ARM芯片对周围环境温度信号的采集及显示。

1.2设计意义嵌入式系统是以应用为中心,以计算机技术为基础,且软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

它一般由以下几部分组成:嵌入式微处理器、外围硬件设备、嵌入式操作系统。

嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力、才更具有优势。

因此嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的裁减利用。

嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。

嵌入式系统必须根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。

所以,如果能建立相对通用的软硬件基础,然后在其上开发出适应各种需要的系统,是一个比较好的发展模式。

目前的嵌入式系统的核心往往是一个只有几K到几十K微内核,需要根据实际的使用进行功能扩展或者裁减,但是由于微内核的存在,使得这种扩展能够非常顺利的进行。

数据采集(DAQ),是指从传感器和其它待测设备等模拟和数字被测单元中自动采集非电量或者电量信号,送到上位机中进行分析,处理。

数据采集系统是结合基于计算机或者其他专用测试平台的测量软硬件产品来实现灵活的、用户自定义的测量系统。

被采集数据是已被转换为电讯号的各种物理量,如温度、水位、风速、压力等,可以是模拟量,也可以是数字量。

采集一般是采样方式,即隔一定时间(称采样周期)对同一点数据重复采集。

采集的数据大多是瞬时值,也可是某段时间内的一个特征值。

准确的数据量测是数据采集的基础。

数据量测方法有接触式和非接触式,检测元件多种多样。

不论哪种方法和元件,均以不影响被测对象状态和测量环境为前提,以保证数据的正确性。

传统的温度采集系统由于存在响应慢、精度低、可靠性差、效率低、操作繁琐等弊端,已经不能完全适应现代化工业的高速发展。

随着嵌入式技术的迅猛发展,设计高速度、高效率、低成本、高可靠性、操作方便的温度采集系统成为当务之急。

基于ARM的温度采集系统就成为了解决传统温度采集系统各种弊端的优先选择方案。

二、设计方案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 核心控制模块+温度采集模块”实现所需功能。

电源部分图3-1 系统原理框图多路温度传感器 协控制器RS-232 ARM 处理器 LCD 显示器Flash ROM 存储器 SD RAM 存储器 键 盘电源电路ARM 核心控制模块 温度采集模块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。

图4-1程序流程图开始ARM 初始化硬件装置初始化通信初始化LED 显示初始化键盘初始化扫描键盘有键按下处理数值相应显示数据获取 数据处理数据显示 YN由该流程图可看出,刚上电时,S3C44B0x要先进行ARM 内部的初始化,以使ARM进入相应的状态和模式;然后初始化硬件装置,以使硬件系统可以正常支持温度数据采集;接着通信初始化,以确定温度采集模块与ARM核心控制模块连接正常,并通过UART复位温度数据采集模块,确保其进入正常温度数据采集状态;然后初始化LCD显示和键盘,在LCD上显示相应的菜单列表,供用户通过键盘选择操作;至此,系统初始化完成,并进入正常主程序循环状态。

在正常主程序循环状态中,首先扫描键盘,以快速的响应用户的按键操作;若没有键值按下,则ARM立即进行数据的采集、处理与显示,以实现实时数据采集与显示等功能。

其主程序包括温度采集程序、ARM获取温度子程序、温度处理和转换子程序。

当ARM 处理器接收到正确的温度数据后,立即进行相应的温度数据处理与转换,变成可被LCD直接显示的正确温度值。

4.2程序清单温度处理与转换子程序如下://存放读取到的当前温度值,未转换Static U16 a-temp-now[8]={8*0}//存放经精度计算后的实际温度值,高8位整数部分,低8位小数部分static U16 b-temp-now[8]={8*0};//存放8路转换后温度值,分别为百位,十位,个位,小数位static U8 temp-convent-all[32]={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;j<8;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)<<8)|(temp%10)&0x7fff;}if(negative==0xff) //若为负值{(*pt++)=0x80;}else{(*pt++)=temp/1000%10+0x30;}(*pt++)=temp/100%10+0x30;(*pt++)=temp/10%10+0x30;(*pt++)=temp%10+0x30;p1++;p3++;}//转换完成后清除读回的原始温度p1=a-temp-now;for(j=8;j>0;j--){*p1++=0x0;}}五、心得体会在这次ARM嵌入式系统课程设计中,我们小组的设计课题是《基于ARM的温度采集系统设计》。

相关文档
最新文档