嵌入式系统课程设计报告-基于 ARM和μC_OS-II 实时操作系统的嵌入式数字温度计的设计.doc

上传人:龙*** 文档编号:3659311 上传时间:2019-07-03 格式:DOC 页数:36 大小:628KB
下载 相关 举报
嵌入式系统课程设计报告-基于 ARM和μC_OS-II 实时操作系统的嵌入式数字温度计的设计.doc_第1页
第1页 / 共36页
嵌入式系统课程设计报告-基于 ARM和μC_OS-II 实时操作系统的嵌入式数字温度计的设计.doc_第2页
第2页 / 共36页
嵌入式系统课程设计报告-基于 ARM和μC_OS-II 实时操作系统的嵌入式数字温度计的设计.doc_第3页
第3页 / 共36页
嵌入式系统课程设计报告-基于 ARM和μC_OS-II 实时操作系统的嵌入式数字温度计的设计.doc_第4页
第4页 / 共36页
嵌入式系统课程设计报告-基于 ARM和μC_OS-II 实时操作系统的嵌入式数字温度计的设计.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、杭州电子科技大学嵌入式系统课程设计报告学号 142060105 姓名 汪大卫 班级 14 级研究生(4)班 指导教师: 余善恩、蒋鹏 2015 年 6 月基于 ARM 和 C/OS-II 实时操作系统的嵌入式数字温度计的设计一、 嵌入式数字温度计硬件实现温度计是测量物体冷热程度的工业自动化仪表。它将温度传感器产生的电阻信号转化为温度显示在仪表上。所以一般温度测量仪都有检测和显示两个部分:温度传感器热电阻是检测部分,而与之相配的指示和记录仪表是显示部分。温度传感器可根据所需精度和温度范围选用标准铂电阻温度计,精密铂电阻温度计,工业铂热电阻和工业铜热电阻等。 数字温度计可以广泛应用于标准计量实验室

2、,科研院所,大专院校及工业现场,既可作为温度标准,也可用于温度的精密测量。 采用 AT91M55800A 微处理器开发温度测量仪,其系统框图如图 3.1 所示。主要包括以下几个方面的内容: 1存储器系统 2系统接口 3用户接口显示 LCD 与键盘,A/D图 1.1 基于 ARM 微处理器的嵌入式硬件平台体系结构1.1 存储器接口 外部总线接口 EBI 用于产生访问片外存储器和外部器件的信号。EBI 可寻址 64KB 的空间,具有 8 个片选线和 24 条地址线。地址线的高 4 位与片选线是复用的。16 位的数据总线经过配置可以与 8 位或 16 位外部器件接口。独立的读写控制线允许 AT91

3、微控制器与存储器以及外部器件直接接口。EBI 支持不同的访问协议,可以对存储器实行单周期访问。EBI 的主要特点有: 外部存储器映射 多达 8 个片选线(NCS0NCS3 ,CS4CS7 ) 816 位数据总线 字节写或字节选择控制线 引到存储器的重映射 两种不同的读协议 可编程的等待周期产生器 外部等待请求 可编程的数据线浮空时间外围地址由相应的片选寄存器状态决定。在使用它们之前,应先对他们进行重映射。表 1.1 显示了一些外围进行重映射之后的地址分配。表 1.1 地址重映射之后地址分配外围 片选信号 片选寄存器 寄存器状态举例 地址空间Flash NCS0 EBI_CSR0 0x01002

4、529 0x010000000x011fffffSRAM NCS1 EBI_CSR1 0x02003121 0x020000000x0207ffffLCD NCS2 EBI_CSR2 0x0300232e 0x030000000x03000001片选寄存器为 8 个 32 位寄存器(EBI_CSR0EBI_CSR7) 。这些寄存器的基地址是 0xFFE00000。 Flash 的片选信号为 NCS0,所以它对应的片选寄存器为 EBI_CSR0。高 8 位设为 0x01,即基地址为 0x01000000。由于开发板上有 2MB 的 Flash,所以地址空间为0x010000000x011FFFF

5、F。 SRAM 的 基 地 址 设 置 为 0x02000000 , 所 以 地 址 空 间 为0x020000000x0207ffff(512KB) 。 LCD 的基地址由 NCS2 控制。基地址为 0x03000000,地址空间为0x030000000x03000001。 下面介绍 Flash 存储器接口。 Flash 存储器作为一种安全、快速的存储体,具有体积小、容量大、成本低、掉电数据不丢失等一系列优点。目前已经逐步取代其它半导体存储元件,成为嵌入式系统中主要数据和程序载体。T49BV1614 是 ATMEL 公司生产的 16 兆位 Flash 存储器,主要作用是固化程序和保存历史数据

6、,也就是开机后执行闪存的程序,并在程序执行的过程中实时地保存或修改其内部的数据单元。下面首先介绍 AT49BV1614 的特点和操作。 AT49BV1614 是采用 2.7V3.3V 电源供电的可编程只读存储器,是一种电可擦除与重新编程的器件。该器件由 8 个独立的 8K 字节块,2 个 32K 字节块,30 个 64K 字节块,具有 40 个扇区的 16Mbit 的存储器。访问速度为 90ns。片内的状态机编程和擦除器件、嵌入式字节编程与区段/ 芯片擦除功能是全自动的,引脚描述如下。 A0A19:地址线。 I/O0I/O14:数据输入/输出。在读周期输出数据; I/O15(A-1):I/O1

7、5 时是数据输入输出端,字模式;A-1 时是低 8 位输入端,字节模式; CE:输入,芯片使能,低电平时选中该器件。 OE:输入,输出使能,低电平时打开数据输出缓冲区,允许读操作。 WE:输入,写使能,低电平时允许写操作。 BYTE:输入,选择字节或字模式。 VCCQ 为 3.3V 电源。Vss 为地。 下面以命令表的编程命令为例。简要介绍字节编程。表 1.2 所列命令是一个 6 总线周期指令。表 1.2 软件命令简表命令 第一 第二 第三 第四 第五 第六周期 周期 周期 周期 周期 周期读 地址 数据芯片擦除 5555 AA 2AAA 55 5555 80 5555 AA 2AAA 55

8、5555 10扇区擦除 5555 AA 2AAA 55 5555 80 5555 AA 2AAA 55 地址 30字节/字5555 AA 2AAA 55 5555 80 地址 数据单脉冲地址 数据扇区 锁定5555 AA 2AAA 55 5555 80 5555 AA 2AAA 55 地址 40对于芯片擦除功能,自动地提供编程和电擦除之前,校验所有存储单元所需的电压和时序,然后自动擦除并校验单元界限。利用数据轮询(datapolling)特性,可以监视自动芯片擦除操作期间器件的状态,以检验操作是否完成。程序如下:const FlashDef *flash_identify ( flash_wo

9、rd *load_addr ) flash_word manuf_code ; flash_word device_code ; const FlashDef *flash_pt ; flash_word *base_addr ; int exit = FALSE ; flash_pt = FlashTable ; while ( exit = FALSE ) base_addr = (flash_word *) (int)load_addr /LCD_printf16 (int)base_addr,3,1) ; LCD_printf16 ( flash_pt-flash_name ,5,1)

10、 ; *(base_addr + FLASH_SEQ_ADD1) = FLASH_CODE1; *(base_addr + FLASH_SEQ_ADD2) = FLASH_CODE2; *(base_addr + FLASH_SEQ_ADD1) = ID_IN_CODE; /* Read Manufacturer and device code from the device manuf_code = *base_addr ; device_code = *(base_addr + 1) ; /* Exit Software Product Identification Mode *(base

11、_addr + FLASH_SEQ_ADD1) = FLASH_CODE1; *(base_addr + FLASH_SEQ_ADD2) = FLASH_CODE2; *(base_addr + FLASH_SEQ_ADD1) = ID_OUT_CODE; /* If both manufacturer and device codes corresponds if ( flash_pt-flash_id = device_code ) else /* Next Flash, If end of table if ( +flash_pt = FlashTable + NB_FLASH_SUPP

12、ORTED ) /* Return 0, Display Error and Exit loop flash_pt = (const FlashDef *)0 ; LCD_printf16 ( /device_code exit = TRUE ; return ( flash_pt ) ; 当上述程序所得结果是 00C0H(AT49BV1614 代码)时,才可以对 FLASH 进行擦除或编程。 在对 Flash 编程之前,应对 Flash 进行擦除,使其每个数据位都恢复为 1 状态,即全 FF 状态。对 Flash 的擦除操作需要 6 个总线周期。下面是简要的程序代码: int erase_s

13、ector ( flash_word *base_addr,flash_word *sector_addr, int size,int sector_id ) int trial = 0 ; /* While flash is not erased or too much erasing performed while ( check_sector_erased ( sector_addr, size, sector_id ) = FALSE ) return key; 此 函 数 分 四 次 向 I/O 口 送 出 二 进 制 数 据 1110,1101,1011,0111,然后依次从 I/O 口中读取数据。每次扫描读到的数据都存放在变量 key 中。这样就得到了键盘扫描码 key。可见,key 中可以包含 44 键矩阵的所有的键盘组合。1.3.3 A/D 数据采集 1. CS553X 概述

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

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

Copyright © 2018-2021 Wenke99.com All rights reserved

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

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

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