登录
|
注册会员
开启辅助访问
设为首页
收藏本站
扫一扫关注官方微信
论坛
BBS
M币充值
M currency prepaid phone
M币获取
附件中心
搜索
search
全新论坛MCU智学网上线,欢迎访问新论坛!稀缺资源、技术干货、参考设计、原厂资料尽在MCU智学网
MCU资讯论坛
»
论坛
›
单片机论坛
›
单片机应用于方案
›
手持式终端设备中电源监测技术研究与实现
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版
手持式终端设备中电源监测技术研究与实现
[复制链接]
1015
0
ad***
管理员
发表在
电源技术
2014-4-14 09:36:20
|
查看全部
|
阅读模式
本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要
登录
才可以下载或查看,没有帐号?
注册会员
x
0 引言
随着数字信息技术和网络技术的高速发展,各种嵌人式系统已成为了市场的新焦点。鉴于嵌入式系统是对功能、可靠性、成本、体积和功耗等有严格要求的专用计算机系统,因此降低其系统功耗、提高内置
电源
持续工作的能力就成为一项重要的研究内容。
与
笔记本电脑
类似,嵌入式系统通常配备一个由多只
电池
串联组成的整体式电池包 .当经过反复充电使用而其主要参数不再满足整个系统要求时,必须更换整个电池包。一般说来,由于电池包内部各个电池之间的电气参数略有差异,很难使得每个单体都得到平衡、充分的放电,进而导致在电池组充电的过程中,电压过高的电池芯可能提早触发电池组过充电保护,而在放电过程中电压过低的电池芯又可能首先导致电池组的过放电保护,从而使电池组的整体容量明显下降,使得整个电池组的实际容量常为电池组中性能最差的电池所限。
针对上述问题,目前常用两种解决方法:
①研究或选用新型电池,尽量减小个体差异并从整体上提高电池的额定容量,例如由最初的镍镉、镍氢电池发展到现在主流的
锂电池
;②提高电池芯的利用率,即利用监测技术探察每个电池芯的工作状况。若有部分电池芯过早地放电结束或者出现问题时,能够自动检测并予以提示,此时只需进行个别更换即可同样保证系统正常工作。
对于普通用户而言,难以直接涉足前者所属的相关领域,而后者所述方式能够较为方便、容易地得到实现。由此一来,可望较好地解决前述问题,同时避免了电池组整体更换时其中的正常电池也连带报废的现象,进而提高电池利用率。此外,尚可解决专用电池成本较高、购买不易的问题,以便有效降低系统的维护成本。
1 监测系统工作原理与电路设计
结合一个具体的手持/嵌入式超级终端系统,文中对其内置电源的监测模式进行了较为详尽的研究。
因其使用通用的五号可
充电电池
,所以可按第二方法考虑解决电池的使用和更换问题,进而基于LinuX操作系统较好地实现了相应的"电池管理与更换提示"功能。
1.1 监测系统工作原理
本系统采用
12
节额定电压为1.2V的镍氢电池串联供电,并通过专门设定的12个监测点逐一监测。
监测点上的模拟电压值通过多路
开关
和辅助电路输入
ARM
芯片S3C2410x自带的
AD
转换器,再经Linux(驱动程序和GPIO端读取相应监测点的电压值,传递给数据处理和图形显示等应用程序,从而实现了电源的监测。具体方法如图1所示。
图1 电源监测系统电路图
1.2 AD转换与辅助电路
监测系统利用S3C2410x自带的AD转换器将模拟电压输入转换为应用程序所需要的数据。芯片自带AD转换器为8路模拟输入、10bit数字输出,最大转换率为500ksps,转换时钟为2.5MHz,模拟输入范围为0-3.3V.本系统所需要监测的电压范围为0~14。
4V,针对这种情况,本系统设汁了分压电路,在应用程序中只需要利用比例公式就能计算出各个监测点的实际电压值。并且,考虑到监测精确度和电路功耗的因素,把分压电路的总
电阻
定为4.5kQ.这样一来,对应的模拟输人电压值范围为0.26-3.2V,以便充分利用的AD转换器的输入带宽。此时电路的耗损
功率
仅为0.04608W。
1.3 控制电路
利用S3C2410x的GPIO端口控制选通多路门开关电路,监测系统可以随机地提取不同监测点的电压值。选通逻辑通过译码实现,如表1所示。
表1 选通逻辑
2 电源监测系统驱动程序设计
鉴于文中所述的超级终端系在Linux环境下运行,各个检测环节的驱动程序和相关的实施策略、编写方法亦多有特点,现详细描述如下。
2.1 Linux驱动程序工作原理
在Linux内核中,设备驱动程序是作为文件系统的一个
模块
存在的,它对下负责与硬件设备的交互,对上通过一个通用的接口挂接到文件系统上,从而和系统的内核等联系起来。它是软件概念和硬件设备间的一个抽象层。系统调用是内核和应用程序之间的接口,而设备驱动程序则是内核和外设之间的接口。
设备驱动程序为应用程序屏蔽了外设硬件的细节,从应用程序角度来看,对于外设的操作方法与普通文件一样。设备驱动程序与系统外设关系如图2所示。
图2 Linux驱动程序与系统外设关系图
2.2 字符设备
字符设备是Linux系统中最简单的设备,可以像文件一样访问。当字符设备初始化的时候,其驱动程序向Linux核心登记,在chrdevs向量表中增加一个device_STruct数据结构条目。这个设备的主设备标识符用作这个向量表的索引。一个设备的主设备标识符是固定的。chrdevs向量表中的device_struct数据结构包括一个登记设备驱动程序名称的指针和一个指向一组文件操作的指针。这组文件操作本身位于这个设备的字符设备驱动程序中,并处理一些特定任务。本电池监测系统在Linux下的驱动程序就把外设视为字符设备,在驱动程序里实现了打开、读、写和关闭等操作。
2.3 电池监测驱动实现策略
系统内部,I/O设备的存取使通过一组固定的入口点来进行的。这组入口点由特定设备的设备驱动程序提供,在数据结构file_operatiONs()中定义。该程序定义了一个数据结构为file_operations()的变量adc_fops。
2.3.1 adc_open函数
此函数打开并初始化设备以待I/O操作。adc_open()子程序必须对其做好必要的准备,如果设备是独占的,adc_open()子程序必须设置一些标志以表示设备处于忙状态。
2.3.2 adc_read函数
对AD转换器设备文件进行读操作时调用adc_read()子程序。电池监测系统要求实时读取外设监测点的电压值。因此,在adc_read()函数中实时触发AD转换器开始工作,并且利用程序轮询方式读取转换后的数据。adc_read()函数内容如下:
2.3.3 adc_iocd函数
控制外围的辅助电路时调用adc_iocd()函数。对照监测点逻辑控制表,从S3C2410x的GPIO端口发出选择指令,接着就可以进行读操作以读取相应的数值。在不需要监测时,控制监测系统进入省电模式。
2.3.4 adc_close()函数
adc_close()函数用来关闭外设。当监测结束时,应用程序会调用此函数关闭设备文件。同adc_open()函数一样,也可以为NULL.
3 设计Qt/Embedded应用程序和植入Qtopia的方法
QT/Embedded为嵌入式Linux提供了一种友好交互接口,是完整的自包含C++GUI和基于LinuX的嵌人式平台开发工具 ,专为高端嵌入式图形领域应用而设并得以普及。鉴于文中所使用的系统需要按照手动点击检查和欠压自动报警的方式工作,所以,必须遵循相应的规则和方法,进行高效、美观的图形界面设计。
3.1 编写Qt/Embedded应用程序
在宿主机上编译Qt for Xll时生成的Qt Designer软件是一个非常流行的快速应用程序开发工具,用来设计界面和编制代码。在Qt Designer中,可以通过拖拉或点击的方式,在一张空白表单的适当位置上添加一些输入框和按钮等窗口组件。这时Designer工具会自动编写和维护代码。
使用Qt Designer进行C++程序编制的基本步骤是:首先建立窗体,并根据应用的需要在窗体中添加控件。Qt会将建立的窗体保存为。ui文件,使用Qt提供的
uic
工具将文件转换为。h和。cpp文件,对于控制动作是需要手动添加不同的操作函数。之后使用progen工具为该应用程序建立。pro工程文件,并通过tmake工具为该工程建立Makefile文件。最后,只需要运行make即可生成可执行文件。
在编写操作函数时,本系统通过计算相邻监测点的观测值确定每个电池芯的电压值。通过查询选用电池芯的放电结束电压查找表,得出每个电池芯的剩余电量。当电池组电量降至一定阈值或某个电池芯的储电量低于3%时,利用应用程序报警,通知用户予以充电或按照指示的电池编号及时进行个别更换。这样,既可保证电源的正常工作指标,又能够提高所有电池的利用率。
3.2 将应用程序植入Qtopia
在Qtopia平台上发布自己的应用程序,需要三个文件:一个执行文件、一个启动器文件、一个图标文件。
执行文件就是前面讲到编写并编译生成的可执行文件,需要将该可执行文件保存在qtopia/bin目录下。图标文件就是为应用程序制作
48
*48大小的
PNG
格式的小图像,它一般存放在qtopia/
pic
s目录下。同时还需要建立应用启动器(。desktop)文件,把它保存在qtopia/
app
s/Applications目录下。将上述文件分别复制好以后,重新运行Qtopia,就可以看到添加的应用图标,点击此图标便可运行该应用程序了。
4 结束语
降低系统能耗需要嵌入式系统硬件环节提供可靠支持,同时也离不开嵌入式操作系统和应用程序对硬件资源的合理管理。现有的Linux提供了电源管理的部分功能,但由于具体进行嵌入式系统设计时的灵活性,一般需要根据特定需要而定制应用程序对电源电量进行精确的监测与提示。通过对手持式终端设备中电源监测技术的研究和实现,将有助于
其它
类型嵌入式系统的电源监测、管理工作的完成,亦有望对类似系统的建立具有一定的参考和借鉴价值。<
计算机系统
,
网络技术
,
信息技术
,
可靠性
,
嵌入式
相关帖子
作为一个新人,怎样学习嵌入式Linux?
中兴资深工程师,嵌入式专家韦东山是这样炼成的!
飞凌嵌入式OK335xS-II样板免费申请活动持续进行!
嵌入式学习心得
jz2440-中断学习出现的错误及查找方法
本人工作10年总结文档——《嵌入式操作系统内核调度》
飞凌嵌入式发布双核i.MX6DL开发板|imx6DL开发板|imx6
飞凌嵌入式充电桩解决方案
单片机复位电路的可靠性设计
资源分享:嵌入式Linux基础全套视频教程!
举报
回复
返回列表
*
滑块验证:
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册会员
本版积分规则
发表回复
回帖后跳转到最后一页
回复
转播
评分
分享
打开支付宝扫一扫,最高立得1212元红包
搜索
本版
帖子
用户
热搜:
传感器
51串口程序
电子管放大器
夾式電表
夾式電流
Mentor论坛
打印机
版块推荐
百宝箱
My 布拉格
无边框Z9
Z9Max
Z9mini
nubia动态
问题 & 建议
资源分享
爱拍
同城会
牛仔生活
查看论坛所有版块>>
每日签到
论坛任务
摄影技巧
跳蚤市场
互助问答
论坛导读
申请内测
红包中心
每日摇一摇
活动中心
网站地图
官方旗舰店
图文热点
抗干扰LED数码管显示屏驱动芯片/3线串行接
VK1Q68D是一种带键盘扫描接口的数码管或点阵LED驱动控制专用芯片。内部集成有3线
抗干扰能力强/点阵数显LED屏驱动/数码管驱
VK1S68C是一种带键盘扫描接口的数码管或点阵LED驱动控制专用芯片,内部集成有3 线串
可支持14×4的点阵LED显示面板数码管LED驱
VK1624是一种数码管或点阵LED驱动控制专用芯片,内部集成有3线串行接口、数据锁 存
数显驱动器原厂-数显LED显示驱动芯片VK1620
VK1620B是一种数码管或点阵LED驱动控制专用芯片,内部集成有3线串行接口、 数据锁
抗干扰数显驱动数码管LED驱动芯片VK1618 SO
产品品牌:永嘉微电/VINKA 产品型号:VK1618 封装形式:SOP18/DIP18 概述 VK161
更多
精华推荐
数显屏驱动原厂-VK1668 SOP24抗干扰数显LED
抗干扰LED数码管显示屏驱动芯片/3线串行接
抗干扰能力强/点阵数显LED屏驱动/数码管驱
可支持14×4的点阵LED显示面板数码管LED驱
数显驱动器原厂-数显LED显示驱动芯片VK1620
抗干扰数显驱动数码管LED驱动芯片VK1618 SO
VK1616 SOP16/DIP16点阵LED数显驱动芯片/数
点阵数显驱动芯片/LED数码管显示屏驱动VK16
更多
社区学堂
抗干扰LED数码管显示屏驱动芯片/3线串
抗干扰能力强/点阵数显LED屏驱动/数码
抗干扰LED数码管显示屏驱动芯片/3线串行接
VK1Q68D是一种带键盘扫描接口的数码管或点阵LED驱动控制专用芯片。内部集成有3线
抗干扰能力强/点阵数显LED屏驱动/数码管驱
VK1S68C是一种带键盘扫描接口的数码管或点阵LED驱动控制专用芯片,内部集成有3 线串
可支持14×4的点阵LED显示面板数码管LED驱
VK1624是一种数码管或点阵LED驱动控制专用芯片,内部集成有3线串行接口、数据锁 存
更多
客服中心
QQ:187196467
服务时间:周一至周日 8:30-20:30
在线客服
客服微博
产品咨询
售后中心
关注我们
关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
QQ:187196467
周一到周日 8:30-22:00 (全年无休)
7 x 24小时在线客服
手机版
Powered by
MCUZX!
X3.4 © 2008-2015
MCU资讯论坛
版权所有
京ICP备18035221号-2
客服QQ: 187196467
技术支持:
MCU资讯论坛
|
网站地图
快速回复
返回顶部
返回列表