单片机低功耗设计
单片机按键模块设计

单片机按键模块设计一、硬件设计1、按键的类型选择按键的类型有很多种,常见的有机械按键和触摸按键。
机械按键通过金属触点的闭合和断开来产生电信号,具有成本低、可靠性高的优点,但寿命相对较短,容易产生抖动。
触摸按键则通过电容感应或电阻感应来检测触摸动作,寿命长、外观美观,但成本相对较高,且容易受到外界干扰。
在一般的单片机应用中,机械按键通常是更经济实用的选择。
2、按键的连接方式按键可以采用独立式连接或矩阵式连接。
独立式连接适用于按键数量较少的情况,每个按键单独连接到单片机的一个 I/O 口上,这种方式简单直观,但占用的 I/O 口资源较多。
矩阵式连接则适用于按键数量较多的情况,通过将按键排列成矩阵形式,利用行线和列线的交叉点来识别按键,大大节省了 I/O 口资源,但编程相对复杂。
以 4×4 矩阵按键为例,我们需要 8 个 I/O 口,其中 4 个作为行线,4 个作为列线。
当某个按键被按下时,对应的行线和列线会接通,通过扫描行线和列线的状态,就可以确定被按下的按键。
3、上拉电阻的使用为了保证单片机能够正确检测按键的状态,通常需要在按键连接的I/O 口上加上拉电阻。
上拉电阻将I/O 口的电平拉高,当按键未按下时,I/O 口处于高电平;当按键按下时,I/O 口被拉低为低电平。
上拉电阻的阻值一般在10KΩ 左右。
4、消抖处理由于机械按键在按下和释放的瞬间,触点会产生抖动,导致单片机检测到的电平不稳定。
为了消除这种抖动,通常采用软件消抖或硬件消抖的方法。
软件消抖是在检测到按键状态变化后,延迟一段时间(一般为10ms 20ms),再次检测按键状态,如果状态保持不变,则认为按键有效。
这种方法简单易行,但会增加程序的执行时间。
硬件消抖则是通过在按键两端并联电容或使用专用的消抖芯片来实现。
电容可以吸收触点抖动产生的尖峰脉冲,使电平稳定。
但硬件消抖会增加硬件成本和电路复杂度。
二、软件编程1、按键扫描程序在软件编程中,需要编写按键扫描程序来检测按键的状态。
基于超低功耗单片机的注水井压力测试仪设计

2 硬 件 电路 设 计
2 1 电 源 电 路 设 计 .
机 内部 比较 器 和简 单 的 阻容 电路 构 成 的 A D 转 换 器 /
电源 , 即整 个系统 工 作期 间存 储器 不会 复位 , 以确保所 保 存 的数 据 的完 整 性 。如 果 在 工 作 期 间存 储 器 复位 , 则会终 止 当前 的任何 正在 进 行 的数 据存 取操作 。
2 5 通 信模 块设 计 .
源 主要 负责给单 片 机供 电 , 通过 对 电 源 的控 制 达 到 节 能 的 目的 , 长仪器在 井下 的工 作 时 间 。 延
部 分和 不可控 电源两 部分 。 可控 电源 主要 是对 传感器 和存 储器 供 电 , 片机控 制 电源 的使 能端 , 单 当单 片机进
第 一 作者 简 介 :王西 昌 , ,9 0年 生 , 江 大 学 ( 江 汉 石 油 学 院 ) 子 信息 工程 学 院硕 士 研 究 生 , 究 方 向 : 号 与信 息 处 理 。 邮 编 :3 03 男 18 长 原 电 研 信 4 4 2
采样 后送 到单 片机进 行 处 理 , 单 片机 处 理 后 的数 据 经 存 人系统 板上 的存储 器 中 , 而完 成信 号 的采集 、 储 从 存 和 初 步处 理 … ; 二 部 分 为 地 面部 分 , 第 主要 由微 机 构
该 系统采 用 电池 供 电 , 个 供 电系统 分 可 控 电源 整
维普资讯
20 07年
第2卷 1
第 3期
王西 昌等 : 基于超低功耗单片机的注水井压力测试仪设计
基于单片机的低功耗数字电阻测试仪设计与研究

然后使用 Ms P 4 3 0内部的 A D c对其进 行采样 ,用软件算法实现电压、电阻计 算 、校准和 自动量程切换功能 ;采用
图 1系统框 图
J
MS P 4 3 O的定时 器捕 捉功 能实 现 电容测 量中脉冲周期的精确测量。此设计方案
该系统主要由功能转换及变换电路、 电源变换电路, 单片机控制系 统、 显示部分和输入部分组成 , 电源变换部分主要完成低功耗系统电源 设计。被测量对象首先经变换电路取得电阻两端的电压送给 M S P 4 3 0 单片机控制系统。然后在输出设备上显示电阻的阻值。 3详细设计 3 . 1 D C — D C电源处理 电路 的设计 常用的线性稳压 芯片搭建 的电源 电路 , 设 计方便 简单 , 但是功耗 比 较大, 不满足低功耗设计要求。采用 D C — D C电源模块功耗小 , 效率高。 其P WM开关控 制方式 , 可极大地提高 电源转换效率 , 可 高达 9 0 %以上 , 并且输出电压可以很方便的调节 , 所以非常适合低功耗 , 电源要求高的 产 品。 D C - D C 电源 处 理 电 路 如 图 2所 示 。通 过 D C - D C 电 源 芯 片 T P S 5 4 3 3 1 产生 3 . 3 V电源 , 给C P U、 运 放等芯 片供 电 。该 电源具有 功耗 低、 效率高、 纹波小等特点。
基于STC单片机的超低功耗LoRa发射机设计

基于STC单片机的超低功耗LoRa发射机设计
王先武;何纯静
【期刊名称】《电子制作》
【年(卷),期】2022(30)16
【摘要】LoRa是Semtech公司的一种扩频调制技术,适用于构建几公里至几十公里范围的LoRa通信专网,支持各种物联网应用。
与NB-IoT、SigFox等广域物联网技术相比,LoRa技术具有免授权、低功耗、远距离的综合优势。
在休眠模式下,LoRa终端设备的静态电流可以低至1μA以下,再结合对动态电流的压缩,采用小型电池供电即可实现10年以上的待机时间。
本文给出了一种以安信可公司生产的La-01射频模块与STC15系列主控MCU构成的超低功耗LoRa发射机设计方案,测试分析了其功耗和待机时间等主要指标。
【总页数】4页(P3-6)
【作者】王先武;何纯静
【作者单位】空军通信士官学校
【正文语种】中文
【中图分类】TN9
【相关文献】
1.基于STC单片机和MC145170的VHFr调频发射机设计
2.基于STC单片机和IRF9540的超低差压稳压电源电路设计
3.基于超低功耗单片机MSP430F4250的
便携式甲烷检测仪设计4.基于STC8单片机的中波发射机功率记忆模块设计5.基于STC12LE5A60S单片机的低功耗便携恒温药盒设计
因版权原因,仅展示原文概要,查看原文内容请购买。
单片机低功耗方式应用技巧

电方式。采用低功耗方式的任一种 , 都能使 芯片的功耗进一步
循环 。此程序中 . rl A MP WA T 1 wA r 1 J I 1 是循环处于 等待 中 断请求 , 为实现低功耗 的待机方式 , 将程序一改动后作 为程序
二 , 本 刊 网站 见
产 生 中 断 .发 光 二 极 管
D 不 发 2
② 出至显示部分。时钟芯片 D IC 8 S 2 8 7的 i 与 8 C 2的 丽 丽 95
脚相连 , 为向 8 C 2的中断请求线。D 1C 8 作 95 S2 8 7芯片有三个
光 。 夜 晚 当 光 线 较 暗 时 ,光
中断源 : 周期中断 、 警报中断 、 更新结束 中断 由于更新结束 中
实例 1 模拟航标灯的控制程序 :
模拟航标灯 电路如图 1
作为中
所示 。 单片机采用低功耗的 8 C l 片,利用 而 95 芯
断控制 口线 , 2作为航标灯。工作过程简述 如下 : U 白天当光线 较强时 , 光敏二极管 D 受光照正向电阻减小 , I 为三授管 T 】提 供基扳偏流 , 使三极管饱和导通 , 因而 U B输出为高电平 , 2 不
个家用电器 , 你也许会觉得无从下 手。这时候数字和模 拟电
路 的基础知识便显得尤为重 要了。它 们在一个单 片机应用系 统 内不是分离的 、 独立 的, 而是相辅相成的关系。一个连模拟 电路基础知识都不懂 的人 是肯定学不 好单片机 的。在本讲座 中我 将 以 目前 最为流 行 的 K f 5 n o s 】 e 1Wi w 集成 开发 环境 l d g io t s n作为系统试验的开发平 台。它的最大特点是对 c语言 Vi 的完美支持 。考虑到读 者的实 际水平和接受能力 , 讲座仍 采用 汇编语 言编 写程序 。当然 ,在你真正掌握 了一种单片机之后 , 你就会发现 ,采用高级语言特别是 c语言设计程序将是单片 机技术 夸后发展的方向。
一种新颖的低功耗、强移动性的密码锁设计

一种新颖的低功耗、强移动性的密码锁设计摘要:本文介绍一种基于单片机控制的电子密码锁设计。
本系统由p89lpc900系列单片机、矩阵键盘和报警系统组成。
系统能完成电子控制开锁、超时报警、超次锁定、管理员解密和修改用户密码的基本功能。
除上述基本的密码锁功能外,还具有节电模式、掉电存储、按键中断唤醒等功能。
该系统结构简洁、成本低、体积小,功能实用。
abstract: this article describes an electronic coded locks based on single-chip microcomputer control. the system consists of p89lpc900 family of microcontrollers, matrix keyboard, and alarm system. the system can complete the electronic control lock, timeout alarm, more than times be locked, administrator decrypt and modify user password. in addition to the basic lock function, but also has a power saving mode, power-down storage, key interrupt wake-up functions. the system is simple structure, low cost, small volume, functional and practical.关键词: p89lpc922;e2prom;密码锁;矩阵键盘;l9110key words: p89lpc922;e2prom;coded lock;matrix keyboard;l9110中图分类号:ts914.2;tp368.1 文献标识码:a 文章编号:1006-4311(2013)05-0183-020 引言随着科技的发展,人们生活节奏的加快,传统的机械锁需携带多把钥匙,因此使用极不方便。
stm32单片机程序设计与实现说明
stm32单片机程序设计与实现说明一、背景信息STM32是意法半导体(STMicroelectronics)推出的一款32位ARM Cortex-M系列单片机。
作为一款高性能、低功耗的微控制器,STM32单片机广泛应用于各个领域,包括工业控制、汽车电子、消费电子等。
二、技术演进1. STM32单片机采用了最新的ARM Cortex-M系列核心,具有强大的处理能力和高度的集成度。
2. STM32单片机提供了丰富的外设功能,包括通信接口(UART、SPI、I2C等)、模拟转换器(ADC、DAC)、定时器等,满足各种应用需求。
3. 通过开发环境(例如Keil MDK、IAR Embedded Workbench)提供的开发工具和库函数,开发者可以快速、高效地进行STM32单片机程序的设计与实现。
三、市场变化随着物联网、人工智能等技术的快速发展,对嵌入式系统的需求不断增加,尤其对于高性能、低功耗的单片机需求更加迫切。
STM32单片机凭借其多种型号和强大的性能优势,逐渐成为市场上最受欢迎的单片机之一。
四、STM32单片机程序设计与实现步骤1. 硬件准备:选择适合的STM32单片机型号,并搭建相应的硬件环境,包括外围设备连接、电源供应等。
2. 开发环境配置:安装并配置相应的开发工具和库函数,确保能够正常编译、下载程序。
3. 程序设计与编写:根据具体应用需求,设计STM32单片机的程序架构,编写相应的C语言代码。
4. 调试与测试:通过在线调试工具或者仿真器,对程序进行调试与测试,确保程序的正确性和稳定性。
5. 烧录与运行:将程序下载到STM32单片机中,并进行实际运行和验证。
五、实用技巧与指导意义1. 程序优化:结合STM32单片机的特点,充分利用硬件资源,进行程序的优化,提高系统的性能和响应速度。
2. 低功耗设计:合理配置STM32单片机的功耗模式,采用节能策略,延长系统的电池寿命。
3. 外设应用:根据不同的应用需求,充分利用STM32单片机的外设功能,实现各种功能的扩展和接口的连接。
教学课件 MSP430超低功耗单片机原理与应用(第3版)
单片机的应用
• 工业控制 • 智能化的仪器仪表 • 日常生活中的电器产品 • 计算机网络与通信方面 • 计算机外部设备
1.2 MSP430系列单片机
MSP430单片机主要系列
MSP430单片机主要系列
MSP430系列单片机的特点
• 超低功耗架构与高度灵活的时钟系统可显著延长 电池使用寿命:0.1µA RAM保持模式;<1µA RTC 模式; <100µA/MHz。
• 集成型智能外设:众多的高性能模拟与数字外设 可大幅减轻CPU的工作量。
• 简单易用的16位RISC CPU架构,可实现具有业界 领先代码密度的新型应用。
• 完整的产品开发环境。 • 增强型程序库有益于多种应用。
– 所有存储器,包括RAM,Flash/ROM, 信息内存,特
殊功能寄存器(SFRs), 和外设寄存器。 Memory Address
Description
Access
End: Start:
0FFFFh 0FFE0h
Interrupt Vector Table
Word/Byte
End:
0FFDFh
Start *:
单片机的分类:
1) 通用型:把可开发的资源全部提供给使 用者。MSP430系列即为通用型单片机
单片机的特点
• 小巧灵活、成本低、易于产品化,它能方便的组 装成各种智能式控制设备以及各种智能仪器仪表
• 面向控制,能针对性的解决从简单到复杂的各类 控制任务,因而能获得最佳性能价格比
• 抗干扰能力强,适应温度范围宽,在各种恶劣环 境下都能可靠的工作,这是其他机型无法比拟的
合肥工业大学第二届及首届安徽省MSP430低功耗单片机应用设计大赛
2019建模竞赛合肥工业大学校园选拔报名表序号姓名专业班级1 田宇哲土木17-4班2 杨子煜17级土木三班3 郝世禹自动化17-1班4 王豪元自动化17-1班5 曹斌自动化17-1班6 文玮物流管理17-2班17-土木工程(城7 田浩晟市地下空间)四班17-土木工程(城8 蒋舒市地下空间)四班新能源材料与器9 易宗锦件16-2能源化学工程10 窦越17-1班计算机科学与技11 李博文术17级1班12 慕佳伟自动化17-1班13 魏树行自动化17-1班计算机科学与技14 王子翔术17-1 班计算机科学与技15 刘康正术17-1班计算机科学与技16 黄嘉峰术17-1班计算机科学与技17 黄志斌术17-1班18 谢天自动化17-119 韩建冬自动化17-2班20 卢俊俭自动化17-1班21 欧阳震机工17-3班计算机科学与技22 方博辰术17-1班土木工程(城市地23 秦逸成下空间)17-3班土木工程(城市地24 杨灿下空间)17-3班土木工程(城市地25 韩祥瑞下空间)17-3班26 刘子逸自动化17-427 吴亦霆自动化17-4班土木工程(城市地28 谢莲莲下空间)17-4班29 雷浩阳电信科17-3班新能源材料与器30 李享件17-1班31 籍鑫雨城建土木17-1班17级计算机科学32 黄孟玲与技术一班17级计算机科学33 黄文君与技术二班过程装备与控制34 施妍工程17-2班35 邹文豪计算机17-436 陈虎计算机17-437 周建军计算机17-438 申钰齐自动化17-139 艾颂玲国际贸易17-2土木工程(城市地40 董振涛下空间)17-2班41 余继发自动化17-4班42 黄仕伟计科17-5班43 陈泽飞物联网17-244 林聚物联网17-2班45 方荣灿计科17-5班46 李成宇计科17-5班47 徐峥岩计科17-5班48 章一帆机工17-3班49 肖焱天机工17-3班50 徐凯凯机工17-3班51 王轲机工17-3班52 阮田雅机工17-3班物联网工程17-2 53 张玉慧班54 徐泊阳国贸17-255 张婷荷物流17-256 王子国贸17-157 李向华国贸17-1计算机科学与技58 王鹤术17-4班物联网工程17-1 59 王江伟班60 张涛机械工程17-4班61 杜文千自动化17-2班62 蔡佳文机械工程17-4班17-物联网工程2 63 高健玮班64 陈明宇城市建筑工程系土木工程(城市地下空间)17-1班65 许常兴机械工程17-5班66 李嘉军17计科1班67 胡盛彬机械工程17—6班68 张满钧物联网工程1班69 伍国微物联网16-170 杨磊物联网16-171 金泽宇物联网16-172 张浩麒物联网16-173 魏树行自动化17-1班74 慕佳伟自动化17-1班75 王豪元自动化17-1班76 郝世禹自动化17-1班77 谢天自动化17-1班78 曹斌自动化17-1班79 卢俊俭自动化17-1班80 申钰齐自动化17-1班81 尹苑17国贸一班82 雷炜轩电信科17-2班83 张文尧机械工程17-5班84 周佳易机械工程17-5班17国际经济与贸85 艾颂玲易2班17城市地下空间86 段国健四班87 刘可欣自动化17-2班88 李佳倩自动化17-4班89 谷扬帆自动化17-4计算机科学与技90 曹明东术17-2班计算机科学与技91 严和霖术17-2班92 雷新宇经济学16-2班93 陈育恒自动化17-1班94 谢富旗物联网17-2班95 岳吉祥机工17-6班材料成型及控制96 苏海鹏工程17-1班97 胡泽南计科17-4班98 何超计科17-4班99 刘文凯计科17-4班国际经济与贸易100 胡梦琳17-1班101 刘昕东机械工程17-6班102 葛鹏机械工程17-6班103 李文鹏机械工程17-6班材料成型及控制104 刘伯彦工程17-2班材料成型及控制105 汪健工程17-2班106 陈家鑫材料成型及控制工程17-2班107 邹文霞材料成型及控制工程17-2班过程装备与控制108 祁帅杰工程17-2班109 陈美好机械工程17-3班过程装备与控制110 时浩工程17-2班材料成型及控制111 章楚璨工程17-1班112 郭子楠机械工程17-2班材料成型及控制113 祁玙璠工程17-1班114 肖隆辉17-土木2班115 马淼自动化17-2班材料成型及控制116 蹇相鸿工程17-3班117 兰育清自动化17-4班118 郭俐奇自动化17-3班119 刘海洋机械工程17-3班120 欧阳震机械工程17-3班121 苏卫东机械工程17-3班122 阮志成机械工程17-3班123 张浩然机械工程17-3班124 杨逸南机械工程17-3班125 陈美好机械工程17-3班126 张钲昊机械工程17-3班127 胡卫东机械工程17-3班128 李明辉自动化17-2班129 王苗苗机工17-5班130 廖香林机工17-4班131 王雅茹应用化学17-2班132 杨光机械工程17-6 133 李煜17-计科五班134 霍永康计科17-4班135 韩建冬自动化17-2班136 陈林阳土木17-2班计算机科学与技137 陈愈知术17-2班机械工程17―3 138 许源源班材料成型及控制139 章楚璨工程17-1班材料成型及控制140 祁玙璠工程17-1班材料成型及控制141 孙宇工程17-1班材料成型及控制142 郑梦绮工程17-1班材料成型及控制143 刘瀚璋工程17-1班材料成型及控制144 朱敬玉工程17-1班材料成型及控制145 李靖工程17-1班材料成型及控制146 苏海鹏工程17-1班新能源材料与器147 李享件17-1班新能源材料与器148 贺雅欣件17-2班新能源材料与器149 李晨杰件17-2班材料成型及控制150 郑宇工程17-3班材料成型及控制151 刘伯彦工程17-2班材料成型及控制152 汪健工程17-2班153 陈家鑫材料成型及控制工程17-2班154 邹文霞材料成型及控制工程17-2班155 喻子豪物联网17-2班156 李政轩物联网17-2班157 文华物联网17-2班158 李晓昆机械工程17-2班159 郭子楠机械工程17-2班160 赵欣机械工程17-2班161 张家祺机械工程17-2班162 赵泽曜机械工程17-2班17级机械工程专163 王瑞龙业2班17级机械工程专164 陈凯文业2班17级机械工程专165 曹增业2班166 池鑫宇物联网17-2班材料成型及控制167 胡钊然工程16-2班材料成型及控制168 化广信工程16-2班169 陈文龙机械工程17-2班170 姜凯松17土木2班171 范春晖自动化17-3班172 杨金辉自动化17-3班173 王迪电信科17-1班174 王海涛17计科一班175 谭澳17计科二班176 沈启凡17计科二班177 谢玉山电信科17-3 178 王旭物联网17-2。
MSP430微控制器低功耗设计方法分析
MSP430微控制器低功耗设计方法分析随着物联网和嵌入式系统的快速发展,对微控制器低功耗设计方法的需求越来越迫切。
MSP430微控制器作为一种低功耗微控制器,具有出色的性能和低功耗特性,逐渐被广泛应用于各种电池供电的设备中。
本文将以MSP430微控制器为例,深入探讨其低功耗设计方法。
在设计MSP430微控制器应用时,低功耗是一个重要的考虑因素。
为了最大程度地减少功耗,我们可以采取以下几种方法。
1. 优化算法设计:在编写程序时,我们可以通过优化算法来减少微控制器的工作负载和能耗。
例如,避免使用复杂的循环和浮点运算,改用简单的逻辑和整数运算,可以有效降低功耗。
2. 睡眠模式:MSP430微控制器具有多种睡眠模式,可以在不需要工作时进入低功耗状态。
通过选择合适的睡眠模式,可以最大程度地降低功耗。
在睡眠模式中,MSP430微控制器会关闭一些不必要的模块和电源,从而降低功耗。
3. 时钟管理:时钟是微控制器的核心,也是功耗的主要来源之一。
合理管理时钟可以有效减少功耗。
在MSP430微控制器中,可以通过调整时钟频率、选择更低功耗的时钟源以及使用MCLK、SMCLK和ACLK等不同的时钟模块来实现功耗优化。
4. I/O 管理:I/O 端口通常是微控制器的功耗主要负责者之一。
通过合理管理I/O 端口,可以降低功耗。
例如,及时关闭不需要的输入/输出端口,降低端口的驱动能力或适当使用外部中断等方法。
5. 采用低功耗模块:MSP430微控制器具有丰富的低功耗模块和外设,可以根据需求选择合适的模块来降低功耗。
例如,MSP430可以通过功耗优化的ADC模块、计时器模块和UART模块等,实现对外设的低功耗控制。
除了以上几种方法,还有一些其他的设计技巧可以帮助我们在低功耗条件下充分发挥MSP430微控制器的优势。
6. 电源电压调整:降低微控制器的电源电压可以有效减少功耗。
MSP430微控制器通常具有多种电源供电电压选择,可以根据应用需求选择合适的工作电压。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机系统的低功耗设计策略 摘要:嵌入式系统的低功耗设计需要全面分析各方面因素,统筹规划。在设计之初,各个因素往往是相互制约、相互影响的,一个降低系统功耗的措施有时会带来其他方面的“负效应”。因此,降低系统整体功耗,需要仔细分析和计算。本文从硬件和应用软件设计两个方面,阐述一个以单片机为核心的嵌入式系统低功耗设计时所需考虑的一些问题。 关键词:低功耗设计 硬件设计 应用软件设计 低功耗模式 在嵌入式应用中,系统的功耗越来越受到人们的重视,这一点对于需要电池供电的便携式系统尤其明显。降低系统功耗,延长电池的寿命,就是降低系统的运行成本。对于以单片机为核心的嵌入式应用,系统功耗的最小化需要从软、硬件设计两方面入手。 随着越来越多的嵌入式应用使用了实时操作系统,如何在操作系统层面上降低系统功耗也成为一个值得关注的问题。限于篇幅,本文仅从硬件设计和应用软件设计两个方面讨论。 1 硬件设计 选用具有低功耗特性的单片机可以大大降低系统功耗。可以从供电电压、单片机内部结构设计、系统时钟设计和低功耗模式等几方面考察一款单片机的低功耗特性。 1.1 选用尽量简单的CPU内核 在选择CPU内核时切忌一味追求性能。8位机够用,就没有必要选用16位机,选择的原则应该是“够用就好”。现在单片机的运行速度越来越快,但性能的提升往往带来功耗的增加。一个复杂的CPU集成度高、功能强,但片内晶体管多,总漏电流大,即使进入STOP状态,漏电流也变得不可忽视;而简单的CPU内核不仅功耗低,成本也低。 1.2 选择低电压供电的系统 降低单片机的供电电压可以有效地降低其功耗。当前,单片机从与TTL兼容的5 V供电降低到3.3 V、3 V、2 V乃至1.8 V供电。供电电压降下来,要归功于半导体工艺的发展。从原来的3 μm工艺到现在的0.25、0.18、0.13 μm工艺, CMOS电路的门限电平阈值不断降低。低电压供电可以大大降低系统的工作电流,但是由于晶体管的尺寸不断减小,管子的漏电流有增大的趋势,这也是对降低功耗不利的一个方面。 目前,单片机系统的电源电压仍以5 V为主,而过去5年中,3 V供电的单片机系统数量增加了1倍,2 V供电的系统也在不断增加。再过五年,低电压供电的单片机数量可能会超过5 V电压供电的单片机。如此看来,供电电压降低将是未来单片机发展的一个重要趋势。 1.3 选择带有低功耗模式的系统 低功耗模式指的是系统的等待和停止模式。处于这类模式下的单片机功耗将大大小于运行模式下的功耗。过去传统的单片机,在运行模式下有wait和stop两条指令,可以使单片机进入等待或停止状态,以达到省电的目的。 等待模式下,CPU停止工作,但系统时钟并不停止,单片机的外围I/O模块也不停止工作;系统功耗一般降低有限,相当于工作模式的50%~70%。 停止模式下,系统时钟也将停止,由外部事件中断重新启动时钟系统时钟,进而唤醒CPU继续工作,CPU消耗电流可降到μA级。在停止模式下,CPU本身实际上已经不消耗什么电流,要想进一步减小系统功耗,就要尽量将单片机的各个I/O模块关掉。随着I/O模块的逐个关闭,系统的功耗越来越小,进入停止模式的深度也越来越深。进入深度停止模式无异于关机,这时的单片机耗电可以小于20 nA。其中特别要提示的是,片内RAM停止供电后,RAM中存储的数据会丢失,也就是说,唤醒CPU后要重新对系统作初始化。因此在让系统进入深度停止状态前,要将重要系统参数保存在非易失性存储器中,如EEPROM中。深度停止模式关掉了所有的I/O,可能的唤醒方式也很有限,一般只能是复位或IRQ中断等。 保留的I/O模块越多,系统允许的唤醒中断源也就越多。单片机的功耗将根据保留唤醒方式的不同,降至1μA至几十μA之间。例如,用户可以保留外部键盘中断,保留异步串行口(SCI)接收数据中断等来唤醒CPU。保留的唤醒方式越多,系统耗电也就会多一些。其他可能的唤醒方式还有实时钟唤醒、看门狗唤醒等。停机状态较浅的情况下,外部晶振电路还是工作的。 图1以Freescale的HCS08单片机为例,给出不同运行模式下的系统功耗。HCS08是8位单片机,有多个系列,各系列I/O模块数目有所不同,但低功耗模式下的电流消耗大致相同。
图1 HCS08单片机各模式下的耗电 以R系列单片机为例:在室温(25℃)下,不包括I/O口的负载,以2 V供电,将可编程锁相环时钟设为16 MHz(总线时钟8 MHz),典型电流值为2.6 mA,当温度升高到85℃时,供电电流也升高到3.6 mA;而采用3 V供电,这一组数据升高至3.8 mA和4.8 mA。用2 V供电,直接使用外部晶振2 MHz(总线时钟1 MHz)时,典型运行电流降至450 μA。在等待状态下,因时钟并没有停止,耗电情况和时钟频率有很大关系,节省的功耗有限;而进入轻度停止(stop3),以外部中断唤醒,电流消耗在0. 5 μA左右。在中度停止态(stop2),功耗可进一步降低。使用内部1 kHz的时钟,保持1个运行的时钟,周期性唤醒CPU,所增加的电流约为0.3 μA。在深度停止态(stop1),RAM的数据也不再保留,只能通过外部复位重启系统,此时的电流消耗可降到20 nA。以上数据都是在室温下测量所得。当环境温度升高到85℃时,电流消耗可能增加3~5倍。 1.4 选择合适的时钟方案 时钟的选择对于系统功耗相当敏感,设计者需要注意两个方面的问题: 第一是系统总线频率应当尽量低。单片机内部的总电流消耗可分为两部分——运行电流和漏电流。理想的CMOS开关电路,在保持输出状态不变时,是不消耗功率的。例如,典型的CMOS反相器电路,如图2所示,当输入端为零时,输出端为1,P晶体管导通,N晶体管截止,没有电流流过。而实际上,由于N晶体管存在一定漏电流,且随集成度提高,管基越薄,漏电流会加大。温度升高,CMOS翻转阈电压会降低,而漏电流则随环境温度的增高变大。在单片机运行时,开关电路不断由“1”变“0”、由“0”变“1”,消耗的功率是由单片机运行引起的,我们称之为“运行电流”。如图2所示,在两只晶体管互相变换导通、截止状态时,由于两只管子的开关延迟时间不可能完全一致,在某一瞬间会有两只管子同时导通的情况,此时电源到地之间会有一个瞬间较大的电流,这是单片机运行电流的主要来源。可以看出,运行电流几乎是和单片机的时钟频率成正比的,因此尽量降低系统时钟的运行频率可以有效地降低系统功耗。 图2 典型的CMOS反相器 第二是时钟方案,也就是是否使用锁相环、使用外部晶振还是内部晶振等问题。新一代的单片机,如飞思卡尔的HCS08系列单片机,片内带有内部晶振,可以直接作为时钟源。使用片内晶振的优点是可以省掉片外晶振,降低系统的硬件成本;缺点是片内晶振的精度不高(误差一般在25%左右,即使校准之后也可能有2%的相对误差),而且会增加系统的功耗。 现代单片机普遍采用锁相环技术,使单片机的时钟频率可由程序控制。锁相环允许用户在片外使用频率较低的晶振,可以很大地减小板级噪声;而且,由于时钟频率可由程序控制,系统时钟可以在一个很宽的范围内调整,总线频率往往能升得很高。但是,使用锁相环也会带来额外的功率消耗。 单就时钟方案来讲,使用外部晶振且不使用锁相环是功率消耗最小的一种。 2 应用软件方面的考虑 之所以使用“应用软件”的说法,是为了区分于“系统软件”或者“实时操作系统”。软件对于一个低功耗系统的重要性常常被人们忽略。一个重要的原因是,软件上的缺陷并不像硬件那样容易发现,同时也没有一个严格的标准来判断一个软件的低功耗特性。尽管如此,设计者仍需尽量将应用的低功耗特性反映在软件中,以避免那些“看不见”的功耗损失。 2.1 用“中断”代替“查询” 一个程序使用中断方式还是查询方式对于一些简单的应用并不那么重要,但在其低功耗特性上却相去甚远。使用中断方式,CPU可以什么都不做,甚至可以进入等待模式或停止模式;而查询方式下,CPU必须不停地访问I/O寄存器,这会带来很多额外的功耗。 2.2 用“宏”代替“子程序” 程序员必须清楚,读RAM会比读Flash带来更大的功耗。正是因为如此,低功耗性能突出的ARM在CPU设计上仅允许一次子程序调用。因为CPU进入子程序时,会首先将当前CPU寄存器推入堆栈(RAM),在离开时又将CPU寄存器弹出堆栈,这样至少带来两次对RAM的操作。因此,程序员可以考虑用宏定义来代替子程序调用。对于程序员,调用一个子程序还是一个宏在程序写法上并没有什么不同,但宏会在编译时展开,CPU只是顺序执行指令,避免了调用子程序。唯一的问题似乎是代码量的增加。目前,单片机的片内Flash越来越大,对于一些不在乎程序代码量大一些的应用,这种做法无疑会降低系统的功耗。 2.3 尽量减少CPU的运算量 减少CPU运算的工作可以从很多方面入手:将一些运算的结果预先算好,放在Flash中,用查表的方法替代实时的计算,减少CPU的运算工作量,可以有效地降低CPU的功耗(很多单片机都有快速有效的查表指令和寻址方式,用以优化查表算法);不可避免的实时计算,算到精度够了就结束,避免“过度”的计算;尽量使用短的数据类型,例如,尽量使用字符型的8位数据替代16位的整型数据,尽量使用分数运算而避免浮点数运算等。 2.4 让I/O模块间歇运行 不用的I/O模块或间歇使用的I/O模块要及时关掉,以节省电能。RS232的驱动需要相当的功率,可以用单片机的一个I/O引脚来控制,在不需要通信时,将驱动关掉。不用的I/O引脚要设置成输出或设置成输入,用上拉电阻拉高。因为如果引脚没有初始化,可能会增大单片机的漏电流。特别要注意有些简单封装的单片机没有把个别I/O引脚引出来,对这些看不见的I/O引脚也不应忘记初始化。 3 结论 一个成功的低功耗设计应该是硬件设计和软件设计的结合。从硬件设计开始,就应该充分意识到一个低功耗应用的特性,选择一款合适的单片机,通过对其特性的了解,设计系统方案;在软件设计上,要考虑到低功耗编程的特殊性,并尽量使用单片机的低功耗模式。 限于篇幅,仅仅讨论了低功耗设计中的一些常见问题,更多的问题只能靠设计者去实际分析和解决了。