- Written by: zhang
- Category: 技术
标签低功耗分析
这是我们开发过程中的一个文档。
经过努力之后,当进入休眠状态,最低电流是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
也可忽略之。
- Written by: zhang
- Category: 技术
定位引擎的设计
定位引擎是整个定位系统中最重要的部分。它负责接收各个基站发来的数据包,并计算标签的坐标。
最初的版本,我们是使用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个基站的效果。
在实践中,我们发现,有些地方会有固定的偏移。为此,我们开发了一个算法,对固定偏移进行纠偏。
- Written by: zhang
- Category: 技术
定位区域的规划和基站的用量估算
在工作中,我们经常会收到客户的咨询,希望我们能帮助对某个应用进行定位区域的规划,并估算基站的使用数量。例如:“我有一个4万平方米厂房,需要多少基站?”,对于类似问题,本文进行了一些分析。
基站部署要考虑的因素
首先,需要了解到UWB定位的限制:
基站的覆盖范围。UWB是近场通讯,因为UWB占用很宽的带宽,频率占用范围非常广。从占用的频率来看,它与其他的很多无线通讯是有冲突的。为了避免UWB对其他无线通讯的干扰,无线电管理部门对UWB通讯的信号发射功率有限制,目的是让UWB只能做短距离近场通讯用。我们在售的基站的覆盖范围是100米(850K通讯速率下),但是在6.8M的通讯速率下覆盖范围只能达到20米*20米。如果是在室内,通常我们设定定位区域的大小不会超过20米*20米。
穿墙能力。UWB使用的无线频率很高,通常4GHz~10GHz这个范围,这个范围的无线电波的穿墙能力都不太好。我们测试,穿过一道墙会可以收到信号,但是信号已经比较弱了;几乎穿不过两道墙。我们在规划定位区域时,通常会把墙作为遮挡物看待。
大的遮挡物。在需要定位的区域如果有大的遮挡物,这是一个不利因素。例如宽度超过50cm的柱子,体积较大的设备等等。其实,人体也是一种有效的遮挡物。因为人体内含有大量水份,水对电波的衰减很厉害。
大的金属物。金属对电波有反射,如果在定位区域有大的金属物,会导致定位精度下降。
我们的定位系统的特点:
基站共用。如果某个基站在两个区域之间的边界上,可以让两个区域共用这个基站。这样,可以减少基站的数量,以降低成本。
基站围成多边形。理论上,做二维定位时,只需要3个基站就可了。但是,在实践中我们发现,标签在基站围成的多边形中的时候,计算出的坐标会比较准确,当标签在多边形外的时候,坐标的误差会变大。所以,即使是二维定位,我们建议也安装4个基站,并且4个基站安装在区域的4个角上,例如房间的4个角。当然,也要求也不是那么严格,具体的安装情况根据现场情况来考虑。
定位区域与时间源。时间源与定位区域之间是一对一的绑定关系,不能共用时钟源。
定位维度。系统支持一维定位、二维定位、三维定位。如果一维定位区域至少需要1个时钟源和2个基站,二维定位区域至少需要1个时钟源和3个基站,三维定位区域至少需要1个时钟源和4个基站。
一维定位。一维定位区域是一条线段。通常一维定位用于走廊等不关心宽度方向只关心长度方向的地方。例如,一个走廊有2米宽15米长,我们一般只关心标签会在15米长度方向的哪个位置,而不太关心在2米宽度方向的哪个位置。需要注意的是如果走廊是弧形的或者是拐弯的,可能要划分成多个一维区域。
二维定位。绝大部分的定位区域都是二维定位区域,是使用最广泛的定位类型。
三维定位。三维定位理论上只需要4个基站就可以了,但是,如果只安装4个基站,定位出来的精度会有很大误差。三维定位还需要在地面安装基站,但是因为地面的遮挡物比较多,所以在实践中很少有使用三维定位
在计划一个定位系统怎么部署时,对现场的了解很重要。通常,需要根据现场的情况来考虑基站的部署。
通常,我们使用“目视原则”:让时钟源可以看得到每一个基站,让标签可以看得到每一个基站。也就是说,时钟源与每个基站之间不要有遮挡物,标签可能移动到的位置与每个基站之间不要有遮挡物。即使有遮挡物,也只能是很小的遮挡物。
基站数量的估计
在不了解现场的具体情况,如果只有一个简单的平面图,甚至平面图都没有,只知道面积,怎么估算基站的数量?
如果是这样,我们通常会简单的把场地划分为多个20米*20米的方块。先计算大致的数量。
把要部署的地方每隔20米画一条横线,每隔20米画一条竖线,每一个交叉点安装一个基站,每一个格子是一个定位区域安装一个时钟源。
假设4万平方厂房,由200米*200米构成,那么有11条横线11条竖线,需要11*11=121个基站,有10*10个格子,需要100个时钟源,合计的基站数量是 121+100=221。
然后,我们再根据对现场的了解,对计算出的数量进行适当调整。例如现场可能会有很多的建筑物,建筑物之间有巷道。巷道内是否要定位?巷道有多宽?如果定位,是做成一维定位还是二维定位?这些建筑物和巷道之类的东西,会把我们期望的理想定位区域分割得更小,这会导致需要划分更多的定位区域,也意味着需要更多的基站。当然,也会有一些地方不需要定位,这些不需要定位的地方也会分割我们期望的理想定位区域,也许会导致需要划分更多的定位区域,或者减少定位区域。