- 菜单项设置
- 作者: zhang
- 分类:技术
标签低功耗分析
这是我们开发过程中的一个文档。
经过努力之后,当进入休眠状态,最低电流是15.x uA。
以下分析一下可能耗电的地方。
ADC分压电阻
使用了两个1M电阻分压对电池3.3V~4.2V进行ADC。
这个分压电路耗电 1.65 uA ~ 2.1 uA
XC6206P332 LDO
XC6206P332负责把电池电压转到3.3V
Datasheet上描述典型功耗为 1uA,最大 3uA。
电容漏电
看三星电容的Datasheet,通常两端的电阻在100MOhm左右,对于3.3V电源来说,相当于漏电流为3.3/100 uA,差不多可以忽略之。
BAV70充电部分二极管
在充电部分,BAV70提供单向导通。手册说在25V情况下,反向电流是 40 nA
也可忽略之。
- 菜单项设置
- 作者: zhang
- 分类:技术
定位引擎的设计
定位引擎是整个定位系统中最重要的部分。它负责接收各个基站发来的数据包,并计算标签的坐标。
最初的版本,我们是使用Java开发的。后来需要作为产品对外销售,Java缺少足够的安全措施,很容易就会被反编译了,我们的知识产权无法得到保护。所以,我们改为C++重写定位引擎。因为我们的客户基本上都是使用Windows服务器,所以目前定位引擎只有Windows版。在设计之初,我们考虑到跨平台,在一些重要的地方都考虑到对Linux的支持。实际上,C++版本的定位引擎在刚写好时,我们顺利编译了一个Linux版本,并在ubuntu上运行了它。
我们需要不断对引擎进行改进,增加功能,或者提升易用性。而客户基本上没有Linux上的需求,所以,我们就再未关注Linux的支持。如果您有这个需要,应该可以最容易就让定位引擎适配Linux。
定位引擎的核心是坐标的计算。我们研究了好几个算法,缺省的情况下,使用最小二乘法进行计算。这个算法速度快、准确性也高。
定位引擎的接口支持5种方式:TCP 二进制消息接口、RESTful 风格接口、TCP 文本消息接口、TCP 自定义二进制消息接口、串行文本消息接口。
因为UWB被定义为近场通讯,这意味着UWB的覆盖范围会很小。特别是无线电管理部门对UWB发送设备的信号强度有限制,如果要保证设备合规,覆盖范围会很小。另外,有些需要定位的环境比较复杂,例如有墙之类的遮挡物。总之,我们需要支持多区域定位,把一个大的场地划分为多个定位区域,每个定位区域都部署定位基站,这些小的定位区域合并在起,就组成一个完整的定位区了。
我们的定位引擎支持多区域定位。例如,正常情况下,每个定位区域的范围是100米*100米,可以把400米*400米的区域划分为“田”字型的4块小区域,相当于部署“4套定位系统”。当然,我们系统支持区域边界上的基站复用,例如“田”字正中心的位置部署一个基站,4个区域都可以共用这个基站。在“田”字的每个交叉点部署一个基站,合计9个基站,就可以达到每个定位区4个基站的效果。
在实践中,我们发现,有些地方会有固定的偏移。为此,我们开发了一个算法,对固定偏移进行纠偏。