- Written by: zhang
- Category: 技术
很遗憾,他的博客现在打不开了,可能他已经没有维护了。
- Written by: zhang
- Category: 技术
定位标签的硬件设计
我们量产的定位标签是工牌款式,使用DW1000作为UWB收发器。在前期使用DWM1000模块,后期使用自行设计的UWB模块,部分型号还增加了LNA/PA,以增加定位范围。
使用STM32F103RBT6作为主控MCU。这个芯片我们开始的采购价大约12元~14元左右,后来曾经涨到180元1片,真是太疯狂了,搞得我们很被动。不过,后来又跌回去了。
供电使用一片800mah的锂电作为电源,使用了一个USB接口充电,顺便作为标签配置接口。
标签上设计了一个MPU6050三维加速度计芯片,量产的时候,发现作用不是很大,后期在生产中就没贴这个芯片。
标签上设计了2个LED,一个红色一个绿色。
标签上设计了1个按钮,作为报警之类的用途。具体用途需要服务器端的设计。固件设计可以支持多个按钮,后来有OEM客户需要增加别的功能(如防拆等)。
- Written by: zhang
- Category: 技术
定位基站的固件设计
定位基站使用RTOS,因为程序比较复杂,如果不使用OS,各功能间的协调比较困难。
定位基站与标签、定位基站与定位基站之间的UWB通讯,我们定义了几种数据包。主要有时钟同步包(用于基站之间的时钟同步)、基础定位包(只包含最基础的定位功能)、扩展定位数据包(包含电池电压、按钮信息、三维加速度计信息等)。后期我们还增加了TOF辅助定位数据包等等。
与定位引擎之间的通讯,我们也定义了几种数据包。基本上,基站就只是把收到的UWB数据转发给定位引擎。当然,需要做一些必要的数据转换,例如使用标准时间戳等。理论上,时钟同步数据包是没有必要发送到定位引擎的,我们也支持把时钟同步包发送到定位引擎,这有助于对时钟同步情况进行监控。
定位基站有一个重要的功能是时钟同步。至少要保证一个“定位区域”内的几个基站之间有统一的时钟。并且,因为各个DW1000芯片使用的晶振的频率会有细微的差异,所以时钟同步工作需要经常性的进行,否则时钟的差异会积累得越来越大。
DW1000芯片可以配置一些参数,以适应不同的使用环境。我们开发了一个基站配置程序对基站进行配置。例如对基站的一些功能、使用的UWB频道、基站的IP地址、网关等等参数进行设置。基站配置程序使用Delphi7开发的,与基站之间使用网络进行通讯。
基站配置程序还内置了新版的基站固件,可以对基站对固件进行升级。
- Written by: zhang
- Category: 技术
定位标签的固件设计
定位标签没有使用RTOS,用“电工”们的说明就是“裸奔”:)。
定位标签可以通过USB与电脑连接,我们有一个标签配置程序,可以对标签的各项参数进行配置。标签配置程序内置有新版的标签固件,可以对标签进行固件升级。
标签的工作原理比较简单,平时处于休眠状态,设置的时间到了后,醒来,发一个UWB定位数据包,然后继续休眠。
按钮被按下也会唤醒标签,立即醒来发一个UWB定位数据包。
标签设计有电量提醒功能,当电池电压低于某个值的时候,红色LED会闪烁。这个功能可以通过配置程序打开或关闭。
定位标签发送的UWB数据包有几种类型。最基础的UWB数据包只有定位数据,长度最短,占用空中的时间最短,也最节省电量。
- Written by: zhang
- Category: 技术
定位基站和定位标签的生产过程
产品的生产分为两个步骤:硬件生产、出厂初始化。
硬件生产:我们自行采购需要的元器件,向PCB生产厂下单制作PCB、委托贴片厂贴片(焊接),最后我们拿到的是PCBA,即安装好元器件的半成品板子。有时,因为采购周期时间上的原因,可能会有部分元件自己焊接。
拿到PCBA后,我们首先是上电,看是否正常。有时,板子上的元件可能会有虚焊或短路的情况。如果焊接没问题,板子上的一些LED会亮。
如果上电没异常,就可以刷入固件。板子上的固件分为两个部分:Bootloader和Firmware。
Bootloader是启动加载器,这是固定的、终生不变的。也就是说,一旦刷入到板子后,Bootloader就不变了,即使将来有新的Bootloader版本,也没法对用户那里的老板子进行更新。
Firmware是正常固件,其执行正常的功能,可以随时升级到新的版本。
我们使用专门的固件烧录器来刷入Bootloader,大多数工厂都会使用固件烧录器来刷固件。烧录器中的固件是加密的,可以防止被人读出。烧录器还有刷写计数,可以统计刷写了多少次。
Bootloader刷入后,还要做一个出厂初始化工作。
基站的出厂配置:对基站来说,接入到网络中(实际上前面说的上电,就是接入到网络中,因为使用POE供电嘛)。我们有一台专用电脑运行出厂初始化程序,这个程序会自动为新基站分配MAC地址和序列号,自动把Firmware写入到新基站,并自动写入缺省的基站配置。出厂配置程序还可以打印新基站的铭牌,即使用标签打印机打印出一个即时贴标签纸,上面注明基站的有关信息:如生产厂家、MAC地址、序列号、基站型号等信息。
出厂配置程序还同时会做一些测试工作,例如与基准基站通讯,确认UWB通讯正常;出厂配置程序假装自己是定位引擎,确认能正常收到新基站发来的数据包。
标签的出厂配置:标签的出厂配置与基站类似,不同在于标签使用USB数据线与配置电脑连接,而不是使用网络。配置电脑上运行“标签出厂配置程序”,配置程序会自动为标签分配EUI64地址,并上传标签固件到新标签中。
标签出厂配置也会与基准基站通讯,确认UWB通讯正常。
有些型号的标签,我们有内置一个RFID标签。我们使用了一个RFID读写器对RFID写入一些初始化信息。这个操作也由标签出厂配置程序来进行。
标签出厂配置程序还打印标签的铭牌。