基于arm的实时温度采集系统.doc

上传人:h**** 文档编号:131035 上传时间:2018-07-09 格式:DOC 页数:18 大小:538KB
下载 相关 举报
基于arm的实时温度采集系统.doc_第1页
第1页 / 共18页
基于arm的实时温度采集系统.doc_第2页
第2页 / 共18页
基于arm的实时温度采集系统.doc_第3页
第3页 / 共18页
基于arm的实时温度采集系统.doc_第4页
第4页 / 共18页
基于arm的实时温度采集系统.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、 1 目录 摘要 . 2 一、设计目的 . 2 二、设计要求 . 2 三、题目分析 . 3 四、设计方法及步骤 . 4 1、开发平台介绍 . 4 2、 ds18b20 的工作原理 . 6 3、 ds18b20 的驱动程序 . 9 4、 QT 界面设计 . 13 5、驱动的挂载 和运行 . 16 五、设计总结 . 17 六、参考文档 . 18 2 摘要 近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普 及,在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用。嵌入式系统无疑成为当前最热门最有发展前途的 IT 应用领域之一。 实时温度采集系统是是将环境温度实时的进行采集并显示的系

2、统 ,在现在的许多家用电器、工业控制、甚至是高科技领域都有应用,它已经普遍的融入了社会生活和生产之中,并且作为基础的系统,在今后的生活生产中并不会被淘汰,应用范围还会继续扩大,因此,掌握此系统是必要的。 关键词: arm Linux ds18b20 一、设计目的 1、 熟悉嵌入式系统的 整个 开发流程 ,具备独立进行开发的能力; 2、熟悉 Linux C,可以用 Linux C 编写驱动程序; 3、熟悉 C+,具备初步人机界面编程的能力; 4、学习和掌握驱动的下载和烧写。 二、设计要求 在 Samsung 公司 S3C2410 处理器的开发板上 ,嵌入式 linux 系统环境下 ,设计温度实时

3、采集系统,并设计显示界面。 1、设计温度实时采集系统,要求基于 ARM9 开发板,温度传感器可3 以 用 ds18b20; 2、 要求温度值精确到个位; 3、要求自己设计 QT 界面,并在界面上显示温度值。 三、题目分析 在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、 多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。另外一般监控现场的电磁环境都非常恶劣,各种干扰信号较强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度。因此,在温度测量系统中, 采用抗干扰能力强的新型数字温度传感器是解决这些问题的最有效方案 。 美国 Dallas

4、 半导体公司的数字化温度传感器 DS1820是世界上第一片支持 “一线总线 “接口的温度传感器,在其内部使用了在板( ON-B0ARD)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。一线总线独特而且经 济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的 DS18B20 体积更小、更经济、更灵活。 DS18B20 可以程序设定 9 12 位的分辨率,精度为 0.5C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在 EEPROM中,掉电后依然保存。 DS18B20 使电压、特性及封装有更多的选择,让我们可以构建适

5、合自己的经济的测温系统。 4 四、设计方法及步骤 1、开发平台介绍 UP- 2410 开发板主板资源: * 基于 ARM 920T 内核的 SAMSUNG S3C2410 处理器 * 系统稳定工作在 202MHZ主频 * 64MB SDRAM * 可外接博创 8 寸 640*480TFT真彩 LCD或其他型号的 TFT LCD 屏 * 可外接 触摸屏 * 1 个主 USB口、 1个从 USB 口 * 100M 以太网口 * 2 个 RS232标准串口 * JTAG 接口( 14Pin标准) * CAN 总线接口 * 总线和可复用资源扩展接口 5 * CF 卡接口( IDE 模式) * IDE

6、接口 * SD/MMC 接口 * 64MB Nand Flash(可选更大容量) * 2MB NorFlash(可选) * 实现了 MMU、 AMBA总线 * AD 电位器 * IIC 接口 * SPI 接口 * IIS 音频 CODEC * 立体声耳机、线路接口,板载 MIC * 8 通道 10位 AD转换 * 2 位 LED数码管 * 实时时钟 * IIC 存储器 2片 * PWM DA 输出 * 3 个可产生中断的按键 * 3 个 IO控制的 LED UP- 2410 开发板软件资源 : Linux: 系统引导程序: VIVI 操作系统: Linux2.4.18/Linux2.6.18(

7、可选) 6 文件系统: RAMDISK YAFFS 图形用户界面: 支持 QT/E 设备驱动: 串口, Ethernet, Audio, SD 卡, IDE, CF 卡, AD/DA,USB,红外,蓝牙, LCD,触摸屏, PS2 keyboard mouse, 17 键数字键盘 ,SPI,I2C, RTC, GPIO等 开发工具: JTAG 烧写 Nor Flash 工具, arm-linux-gcc 交叉编译器,GDB, GDBSERVER调试工具, anjuta开发环境, sourceNavigator 代码编辑器,文件系统制作工具等 多媒体软件: mplayer 媒体播放器,实现 MP

8、EG、 MPEG2、 MPEG4、 AVI、WMV 等多种媒体解码; madplay音频播放器 WinCE: 板级支持包: WinCE.net 4.2 /5.0(可选) BSP 设备驱动: 串口, Ethernet, Audio, CF 卡, SD 卡 ,USB,红外, LCD,触摸屏等 多媒体软件: mediaplayer 媒体播放器,实现 MPEG、 MPEG2、 MPEG4、AVI、 WMV, mp3等多种媒体解码 。 2、 ds18b20 的工作原理 如上图所示, ds18b20 只有三只引脚, GND, DQ 和 VDD, GND7 为电源地, DQ 为数字信号输入输出端, VDD

9、为电源输入端。 DS18B20 的内部结构主要包括 4 部分; 64 位光刻 ROM、温度传感器、非易失的温度报警触发器 TH 和 EL、配置寄存器,如下图所示: DS18B20 的内部结构 64 位 ROM中 ,在产品出厂前就被厂家通过光刻刻录好了 64 位序列号。该序列号可以看作是 DS18B20 的地址序列码 ,用来区 分每一个 DS18B20 ,从而更好地实现对现场温度的多点测量。 上图 中的暂存器是 DS18B20 中最重要的寄存器。暂存器由 9 个字节组成 ,各字节定义如 下表所列: 字节 定义 0 所测温度值低 8 位 1 所测温度值高 8 位 2 高温报警值 ( TH) 3 低

10、温报警值 ( TL) 8 4 配置寄存器 57 保留 8 循环冗余校验 (CRC)值 配置寄存器用于用户设置温度传感器的转换精度 ,其各位定义如下 : TM R1 R0 1 1 1 1 1 TM位是测试模式位 ,用于设置 DS18B20 是工作模式 (0)还是测试模式 (1) ,其出厂值为 0。 R1、 R0 用于设置温度传感器的转换精度 :00 ,分辨率为 9 位 ,转换时间为 93. 75ms ;01 ,分辨率为 10 位 ,转换时间为187. 5 ms ;10 ,分辨率为 11 位 ,转换时间为 375 ms ;11 ,分辨为 12 位 ,转换时间为 750 ms。 R1、 R0 的出厂

11、值为 11。其余 5 位值始终为 1。第 0 和第 1 字节为 16 位转换后的温度二进制值 ,其中前 4 位为符号位 ,其余 12 位为转换后的数据位 (分辨率为 12 位 ) 。如果温度大于0 ,则前 4 位值为 0 ,只要将测到的数值乘上 0. 062 5 即可得到实际温度值 ;如果温度小于 0 ,则前 4 位为 1 ,需将测得的数值取反加 1 后 ,再乘上 0. 062 5。 按 DS18B20 的供电方式 , 其应用电路结构可分为如下 3种 :寄生电源供电方式 ;寄生 源强上拉供电方式 ;外部电源 供 方式。实际应用中 ,以外部电源供电方式为主。其应用原理图如 左 图所示。 9 根据

12、 DS18B20 的通信协议 , MCU 对其操作主要有如下 3 个步骤 : 读写之前 , 对 DS18B20 发送约 500 s 的低电平进行复位 ; 复位成功 , 发送 ROM 指令 ; 发送 RAM 指令。 MCU 对 DS18B20 的具体操作流程如 下 图 所示: 3、 ds18b20 的驱动程序 写程序前先确定使用的外扩端口,这里使用的是 GPB0 口。 源程序如下: #include #include #include 开始 复位 延时 复位成功 写 ROM 命令 0CCH(跳过 ROM 匹配) 写 ROM 命令 44H (启动温度转换) 复位 延时 复位成功 读 RAM 中的

13、0、 1 字节 写 ROM 命令 0BEH(发读温命令) 开始 写 ROM 命令 0CCH 10 #include #include #include #include #include #include #define DEVICE_NAME “ds18b20“ #define ds18b20_MAJOR 231 #define DQ S3C2410_GPB0 #define DQ_IN S3C2410_GPB0_INP #define DQ_OUT S3C2410_GPB0_OUTP static char devicecount=0; /计数器,防止被多个人多次打开 void init_

14、ds18b20(void) do s3c2410_gpio_cfgpin(DQ,DQ_OUT); s3c2410_gpio_setpin(DQ, 1); udelay(1); s3c2410_gpio_setpin(DQ, 0); udelay(500); s3c2410_gpio_setpin(DQ, 1); udelay(60); while(s3c2410_gpio_getpin(DQ)!=0); while(s3c2410_gpio_getpin(DQ)=0); void write(char data) char i = 0; s3c2410_gpio_cfgpin(DQ, DQ_OUT); s3c2410_gpio_pullup(DQ, 1); for(i=0; i= 1;

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。