ARM7的RTU微控制器的设计_第1页
ARM7的RTU微控制器的设计_第2页
ARM7的RTU微控制器的设计_第3页
ARM7的RTU微控制器的设计_第4页
ARM7的RTU微控制器的设计_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、arm7的rtu微控制器的设计随着我国在水情数据采集系统的信息化和现代化步伐的加快,需要采集的数据种类增多,采 集的站点数增加,对数据采集的速度和质量都提出了新的要求,传统的水情数据测报系统的 rtu (远端数据采集器)已不能适应新的要求,亟需开发新的产品。新开发的rtu,其处理能力要比较强,可扩展性要比较好,运行的软件系统具有可移植 性,可以移植到不同的硬件平台,可以根据需要配置不同的传感器。为此技术上选用成熟可 靠的rtos和层次化、构件化的设计思想构建平台软件,保证软件稳定、可靠,扩充新业务 功能时软件结构体系保持不变。rtu对外有各种类型的传感器接口及通信接口,平时处于守侯状态,当有外

2、部事件或 定时处理事件时,由中断信号唤醒cpu进行相应的处理,处理完及时返回低功耗守侯状态。功耗设计是一个很重要的问题。因为rtu是靠电池工作的,这就要求rtu低功耗工作, 考虑到rtu大部分时间处于低功耗守候状态,守候时仅cpu在工作,其它部分已关电,因 此cpu的功耗是设计的关键。1硬件设计1.1 cpu选型早期的远端采集单元rtu 一般选择单片机,最主要的原因是实现简单。但也带來了一 个问题,功能扩充性特别差,稍作改变,软硬件就要重新设计。另外由于处理能力不强,功 能的实现也受到限制。为此,我们选择近期上市的嵌入式cpu。我们选择的原则是性价比好,功耗低。arm7系列处理器能较好满足需要

3、,目前生产厂 商也较多,有atemel的at91sam7x256;恩智浦nxp的lpc2214 : st微电子的st710fz2; ti的msp430等,通过综合比较我们认为,st微电子的st710fz2比较好,该cpu为32位 arm7内核的risc处理器,具有三级流水线指令结构,是一种高性能、低成本的方案。该 cpu具备多种省电模式,最小待机电流为30pao1.2 rtu微控制核设计str710fz2t6是一颗基于arm7tdmi内核的32位处理器,片上有丰富的资源:256+16k 片上flash, 64k片内ram, 4路12位ad, 4路硬件串行收发接口,5个16位定时器, 1个硬件c

4、an接口,1个rtc时他1个wdt看门狗。片上和外部扩展资源共同占据4gb 地址空间,町方便实现外部存储器和其它资源的扩充。为了构建一个通用的硬件平台,对flash和ram作适当扩展,保证rtu模块将来的 功能升级不受限制。flash程序空间扩展为4mb, ram扩展为512kb。flash选用sst公 司的sst39vf3201,容量为32mb/16位、低功耗模式典型3pa° ram选用issi公司的 is61wv51216,容量为4mb/16位、低功耗待机工作9州。由此构成一个非常紧凑的微控制器 核,如图1所示。整个处理机核的待机功耗小于50pao对于低功耗处理机核,述有一个重要

5、的考虑是对外围接口和接口设备的电源控制,在待 机时切断它们的供电,保证按需启动设备,为此设计扩展了一些控制接口。图1 rtu微控制核组成框图1.3 rtu微控制核电源微控制器核的电源设计也是关键的一步。rtu模块主控cpu供电部分有其特殊的需求, 分为工作模式和睡眠模式两种,工作模式下的电流100ma左右,而睡眠模式下的电流仅为 50pac两种模式的差异导致了 cpu供电存在一定的难度。一般开关电源甚至模块电源都有较大的静态功耗(40ma左右),选用模块电源对主控 cpu的供电相当困难。负载在50pa-500ma自身静态功耗小于50pa的开关电源目前很难找 到。有少数专供超低功耗模式cpu供电

6、的ldo电压调整器可实现,如spx3819,其100pa 负载电流时的静态功耗为90pao但效率太低,70-80%的电能被白白浪费了,不适合蓄电池供 电。基于以上原因,对cpu的供电另选用一款降压型的开关稳压器lt3481 o它静态功耗仅 为50pa,而且低输出时也有高的效率,50pa时达60%, 100ma高达86%,特别适合微控制 器核供电,如图1蓄电池直接连到lt3481,向cpu提供电源。2操作系统的移植很多领域屮使用pc/os-ll,如照相机业、航空业以及工业机器人等。从8位到64位, pc/os-ll已经在40多种不同架构的微处理器上使用。pc/os-ll的功能和函数经过考验和测

7、试,具有足够的安全性与稳定性。为此,操作系统选择pc/os-il pc/os-ll是一种开放源代 码的单用户多任务、完全占先式的硬实时内核,实时性好。pc/os-ii本身只包含了任务调度、 任务管理、时间管理、内存管理和任务间的通信与同步等功能,没有提供输入输出管理、文 件系统、网络之类的额外服务。但是由于pc/os-ii的可移植性和开源性,用户可以自己添加 所需的各种服务。;一个基于pc/os-ll的嵌入式应用系统由四部分组成:应用程序代码、配置 程序、移植代码、核心代码。操作系统移植通过编写移植代码来完成。除了编写os_cpu.h、 os_cpu_a.s、os_cpu_c.c等几个文件外,

8、还要编写初始化启动代码。我们通过改写周立 功smartarm2210开发板的这部分代码完成了移植,并能在口研的核心板上稳定运行。3软件整体层次结构rtu中的程序有应用程序、pc/os-ll操作系统、文件系统、硬件驱动程序,整体层次关 系如图2。pc/os-ll没有提供硕件驱动程序的内核接口和用户接口,为了让程序移植性好, 需要对设备驱动程序按类型进行统一的封装,提供统一的编程接口,使应用程序开发人员可 以不考虑具体硬件的细节就可以编程。给上层应用程序提供统一的系统设备调用接口,需要 对设备的访问操作进行抽象,应用程序通过硬件驱动程序的上层访问抽象接口來访问底层硬 件。驱动程序的设计借鉴了 li

9、nux系统的成功经验,同时考虑到嵌入式操作系统的特殊性, 为pc/os-ll建立了如图2中所示的驱动框架模型。驱动主要分两个层次:驱动程序的上层 访问抽彖接口和硬件设备驱动层。应用圧多任务应用程序崔护系统空任务调度内存管理文件系统驱动程序 卜泾访问 捕象接口时间管理:叩-申口呕动键盘驱动nc驱动spi驱动网络驱动cpuromramclocki/o图2软件整体层次结构上层访问抽象接口层:这层包括抽象接口和设备管理核心数据两部分。通过对设备访 问操作的抽象,为上层应用提供了 5个访问接口 api函数:open、read、write> loctrlclose, 用于打开、读、写、控制和关闭设备

10、。设备管理核心数据结构是驱动框架的核心,为系统中 的每个硬件设备分配唯一的设备名,上层应用程序通过将设备名作为参数传递给api函数 实现对相应设备的核心管理数据结构的定位寻址,实现对设备的统一访问控制。硬件设备驱动模块层:这层是硕件设备驱动模块功能的实现层,对各个硕件设备的驱 动在相应的硬件设备驱动模块中完成。分别完成设备的打开、读、写、控制和关闭功能。为了使程序具有良好的可读性、可维性,采用了结构化程序设计方法,即方顶向下, 逐步求精”的程序设计方法和”单入口单出口”的控制结构,从问题本身开始,经过逐步细化, 将解决问题的步骤分解为由基本程序结构模块组成的结构化程序框图,使每一个模块的功能

11、变单纯而明确,为下一步软件的功能扩充和修改打下了良好的基础。4功耗的管理设计4.1外设的功耗管理功耗管理,除cpu核的控制外,还要保证外设在需要使用时及时上电,使用完后立即 关闭,从而达到降低功耗的目的。对外设的功耗管理通过i0输出口来控制mos管的通断, 从而打开或关断外部设备的电源。通信电台的功耗最大,占系统耗电量的比例大,需要严格的计算控制。电台设备从上电 启动到关闭分三个阶段:上电启动阶段t1,数据发送阶段t2,等待数据发送阶段t3。设备上电的时机:信道编码后,需要发送数据时打开。设备启动时间t1:设备从上电到可以发送数据需要一个过渡时间,具体的时间值与 设备有关,需要看具体设备的手册

12、。数据发送时i'可t2:这里的数据发送时间是指数据通过串口发送出去的时间,当数据 从串口发出后,程序会返回一个数据发送完毕的信息,t2时间由接口设备自动控制。设备i电法备心m时间t1发送數撫的时何t2rk图3通信设备功耗控制示意图(4)等待数据发送结朿时间t3:有些通信设备带有数据缓冲区,当数据从串丨1发送给通 信设备时,不是立即就将数据发送出去,而是先暂存在数据缓冲区,此时如果立即关闭设备 电源,可能有数据没有发送完,所以需要一个等待时i'可。设备关电时机:当t3结束后,立即关闭设备的电源。实际编程时t1的值根据具体的设备的数据手册来确泄;t3的值也需要根据具体的设 备来调试

13、,以接收端能准确可靠的接收到数据,t3的值最小为准。4.2 cpu核的功耗管理cpu核在没有任务对做时要进入低功耗状态stop模式,在程序中通过空闲任务连续 运行状态来判定。当所有的任务都不运行时,操作系统会自动运行空闲任务,当空闲任务连 续运行超过一定的时间后(超过程序中需要的最大等待时间),关闭所有的外设,让cpu 进入stop模式。具体的实现是将原有的空闲任务程序进行修改,增加一个记数器,当记数 到一定的数值(即一定的时间)后,进入stop模式。修改后的0s_taskldle程序如下:void os_taskldle (void *pdata)#if os_critical_method

14、 = 3 /* allocate storage for cpu status register 7os_cpu_sr cpu_sr;#endifpdata = pdata;for (;)os_enter_critical();osidlectr+;os_exit_critical();count = count+1;if (count 某个数值)将cpu进入stop模式;ostaskldlehook();由于空闲任务随时可能被别的任务抢先,当重新执行空闲任务时,如接着抢先点继续执 行,全局变量count没有被清零,所以在每个任务开始运行或执行结束后,都需要对count 清零,这样可以保证count重新记数,在for循环语句中,当count记数到一定值,cpu 将进入stop模式。5结束语本rtu微控制器经过试运行后,功耗满足要求,静态功耗小于500pa/12v,在采用10ah 的蓄电池加太阳能板(容量灵活组

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论