实训报告
实验项目:实现 ARM温度采集与报警系统
班级:嵌入式101
姓名:李柏汉
学号:20
指导老师:周永明、王浩
实训日期:2012年6月24-30日
目录
一. 实训目的
二.主要内容
三.实验步骤
四.主程序编写
五.总结
一. 实训目的
《ARM体系结构与原理实训》课程是配套开设的《ARM体系结构与原理》课程而专门设立的实训课程。其主要目的是通过开发ARM开发板的温度采集与报警系统,学习掌握ARM程序开发的一般过程,进一步掌握ARM接口技术,进一步提高学生的开发调试能力,使学生掌握电子应用系统开发的思维方法以及具有初步的开发能力。
二. 主要内容:
本次实训要求实现 ARM温度采集与报警系统,采用DS18B20作为温度传感器 ,ARM开发板读取DS18B20的温度值与预先设定的报警阈值比较,如果采集的环境温度超过报警阈值则通过蜂鸣器报警,同时串口输出当前环境温度信息。主要功能:
• 使用DS18B20检测环境温度,并通过串口输出温度信息。
• 当温度超过报警温度时,通过PWM控制蜂鸣器实现报警
• 当温度超过报警温度时,点亮LED报警灯
• 可以通过按键关闭或打开蜂鸣器及LED灯报警功能
实训涉及到传感器技术、GPIO控制技术、中断技术、PWM控制技术、串口通信技术等。
三. 实验原理
• 系统构成
系统构成如上图所示。
接口电路连接如下描述:
1、报警灯电路
处理器S3C2440通过GPF4控制报警LED灯,如下图所示
2、蜂鸣器电路
处理器S3C2440通过GPB0输出PWM信号控制蜂鸣器,如下图所示
• ARM程序开发
对于串口通信程序开发, PWM-Timer定时程序开发 、按键中断程序开发、GPIO口控制程序开发等内容在课程实验中已经完成,可以参考以前完成的实验程序改写。本节重点讲述DS18B20读写程序开发。
DS18B20严格遵循单总线协议,工作时,主机先发一复位脉冲,使总线上的所有DS18B20都被复位,接着发送ROM操作指令,使序列号编码匹配的DS18B20被激活,准备接受下面的RAM访问指令。RAM访问指令控制选中的DS18B20工作状态,完成整个温度转换,读取等工作。在ROM命令发送之前,RAM命令命令不起作用。表1列出了所有操作命令。
整个操作主要包括三个关键过程:主机搜索DS18B20序列号、启动在线DS18B20做温度转换、读取温度值。
其工作流程如图3:
DS18B20对时序及电特性参数要求较高,必须严格按照DS18B20的时序要求去操作。它的数据读写主要由主机读写特定的时间片来完成,包括复位(初始化)、读时间片和写时间片。
(1) 复位时序
使用DS18B20时,首先需将其复位,然后才能执行其它命令。复位时,主机将数据线拉为低电平并保持480μs~960μs,然后释放数据线,再由上拉电阻将数据线拉高15~60μs,等待DS18B20发出存在脉冲,存在脉冲有效时间为60~240μs,这样,就完成了复位操作。其复位时序如下图所示。
(2) “写”时序
在主机对DS18B20写数据时,先将数据线置为高电平,再变为低电平,该低电平应大于1μs。在数据线变为低电平后15μs内,根据写“1”或写“0”使数据线变高或继续为低。DS18B20将在数据线变成低电平后15μs~60μs内对数据线进行采样。要求写入DS18B20的数据持续时间应大于60μs而小于120μs,两次写数据之间的时间间隔应大于1μs。写时隙的时序如图5所示。“读”时序机理类似,不再赘述。
3、按键电路
按键按下后会在EINT0管脚上产生跳沿信号。系统利用此信号产生中断。如下图所示
4、温度采集电路
采用DS18B20作为温度传感器,S3C2440通过GPB5口读取温度传感器的温度信息,通过串口输出温度信息。
四.主程序编写
略 ……
五.实验心得体会
经过PWM作定时器中断的基础实验,让我基本掌握了PWM的应用和相应寄存器的设计和使用,对于脉冲调制技术有所了解。也对中断处理有了深刻的认识。
本文来源:https://www.2haoxitong.net/k/doc/ae2efbcb0c22590102029d33.html
文档为doc格式