初次接触超宽带(UWB)无线通信技术,先了解和认识一下。准备做机器人室内定位,没拿到模块之前,先啃英文数据手册,好像还没有中文版本的,做个笔记。定位考虑过ZigBee和BLE,最后还是选择了UWB技术,抗干扰性能更强,定位精度高(±10cm),低成本、低功耗,数据传输速度快,UWB能在10米左右的范围内实现数百Mbit/s至数Gbit/s的数据传输速率,可达到6.8Mb/s。 4 K. n0 d- q. P! k# [1.背景及相关技术" W P9 Y6 |9 A: A3 _9 U
2 w; k! X+ @4 q
UWB(Ultra Wide Band,超宽带)是一种以极低功率在短距离内高速传输数据的无线通信技术,UWB具有抗干扰性能强、传输速率高、带宽极宽、消耗电能小、发送功率小等诸多优势,主要应用于室内通信、家庭网络、位置测定、雷达检测等领域。系统容量大发送功率非常小,其电磁波辐射对人体的影响也会很小,应用面就广。 . C5 B; B# C. c9 g) R/ k. E $ c! j' X. G* B6 v) F5 M2.芯片选择# I$ j* u& h. B$ p& Q. S% b* B
& u% |7 F+ S; V {! |选择DecaWave公司的DW1000芯片。符合IEEE802.15.4-2011超宽带标准。按照数据手册上应该最小误差在10厘米以内。DW1000的最远传输距离为450米(直视距离,非直视距离为45米)。芯片功耗低,可双向测距和定位,可作为目前室内定位(还有说法是地下定位也可以)技术RFID及WiFi的补充。参数如下:" f1 m! Z# V! X5 p
1 p% Q" m6 R* p6 T7 A4 j/ w
单电源电压:2.8 V至3.6 V/ r, h/ L4 `; C, {7 r
# t H* }# _' F& W& _/ _1 u( G数据传输速率:110 kbit/s,850 kbit/s和6.8 Mbit/s; 0 ^4 W# E' E* W5 L 1 m+ q, B. K, }. O9 p; M6频段:从3.5 GHz至6.5 GHz 4 z C% o: @7 C% p 2 H/ n/ i, g% ?- |: M0 f8 R1 }发射功率:-14 dBm/-10 dBm % o+ ?& O3 r3 o9 l , G* q5 f, w" v4 W9 \+ B" b发射功率密度:<-41.3dBm / MHz 1 l( z- M+ T: k4 @7 y: h' \* \% G3 G9 ~) Q3 B
支持数据包大小:1023字节& X9 f* h' \. \5 i
0 ?* {+ c; N) D$ T调制方式:BPM(二相调制)与BPSK(二进制相位调制)$ F' ?4 t+ X, a6 k. y
( C/ `$ r, e" d$ E! e
FDMA:6通道 7 b# b# t2 i& r9 H # c( G& `# D$ d3 c' i. GCDMA:12种不同的信道编码* ?5 E. o* N" D# F2 L! p: e4 U
! Z- _2 E2 ~! c" j) K2 f
工业级温度范围:-40°C至+ 85°C8 E. y/ M9 ], B; J; f: P9 t
1 \( e. X2 e* X: e& t/ I
读数据手册的摘录及心得: 8 ]# W+ i! }% s2 M" S; T6 Q* Z* Y8 @+ C% q4 K
DW1000需接外部38.4MHz的晶振,支持SPI通信。 % f4 b& c! N, j3 W 6 h6 `9 R" `3 |9 R. B引脚说明:5 u {. f+ j& w+ X0 T
9 H& v, X2 H0 a% }( h
DW1000有8个通道需要配置,最大接收带宽为900MHz,编程会用到。 1 E- ~( `6 _7 F& s/ g " e3 W! n% _( Z. t比如:模式1 ) m# d1 b% ?% Z) }. n( j4 w 1 X, z5 k; a9 X+ f/ n' J( f- H9 X* PChannel_Config[8]={ ( h: j$ O0 K- v! Z- N: e$ r: b1 O3 Y0 Z! C3 V2 B2 g7 Z
/*模式1*/ ; y! l4 G: c+ W9 b n( y0 A! H4 \6 G# y
2, //选择通道& C W3 H' b, M6 ?
: H5 o; B7 z# y0 W4 L: Z# `9 T$ q9 p DW1000_PRF_16M, //脉冲频率 ; f. q& b6 S$ z( s7 c2 A* w7 k4 w2 S: k0 J6 J1 _
DW1000_BR_110K, //波特率 ( t4 ]: n1 c1 q2 ^% @7 E , B% O1 O; f, C) D8 P/ T 3, //前导码 m, d( W, Q' \# ~" v
4 T r$ \$ E1 _1 \/ Y/ r# p* O
DW1000_PLEN_1024, //前导码数据长度9 T8 _ S% |" H' y& _- @! Z9 v
+ y( E. x/ }4 P
DW1000_PAC32, //指定PAC前导长度7 k$ Q" U. o7 S( P5 j! J
5 g( N: H/ ~ h/ V 1, //非标SFD * |7 S4 X. Z, s % d+ d3 B: i l4 f9 }) s4 }/ U (1025 + 64 - 32) //SFD超时 0 u- [0 O ?. g7 e7 _1 o" s; S) x. _; u: h M! ?" D! S* J0 l1 V# M
}, x' S% }! u+ }+ X. ~
支持的波特率为:7 T' B1 _. O$ i+ x0 o+ s
4 Q1 }0 Q9 l7 c% Y) E/ _2 c$ a4 K
DW1000有两个频率合成器,本地时钟即外部和系统时钟。带宽设置有两种模式:500MHz和900MHz。由相关寄存器设置特定的带宽模式。带宽设置的增加范围大了,相应功耗也就增加。因此该TX脉冲宽度允许传输的带宽应该合理控制。DW1000寄存器是不可编程的,需要写相关值来控制。2 d: U S- M+ ]* p0 k" C; T
2 b5 }* N- n- `6 m' t( J& J: Z
看完数据手册,接下来就好好啃两百多页的英文用户手册,看看SPI读写操作和各个寄存器值的读写操作。大概有四十多个寄存器。DW1000对于寄存器的操作十分严格,尤其是时间同步控制。两种定位方法:到达时间差(TDOA)和双向测距(TOF)定位。时间控制不合适会导致定位误差。% m" M5 o* F' s& J3 o
% S |+ J+ m4 d& I2 B6 W" ]# U, w& n, O
" a, R" k' ^8 b- G
湿度大也会衰减发射信号的强度,影响距离,比如阴雨天时,收音机的信号就明显差很多。因为无线电波的传播介质发生了变化,介质的性质(介电常数)发生变化,电磁波波速就会产生变化。! q; h9 O; T5 b& q
0 g# ^7 b `$ c7 C
3.软件流程 0 N/ S7 y8 X# L \; G4 b: B. p$ F$ G* f2 Q7 D- O
(1)使能DW1000软件操作流程: 4 Z3 N- S. `8 N ^ V y* F2 x4 v9 i. Ka.设备初始化(时钟初始化、GPIO初始化、中断优先级配置、串口及SPI初始化等); 6 u% m$ b( D! f9 c; r, u8 A A( u& N i& b( E1 _9 |
b.关中断(若开启了外部中断);* u `2 q9 n j' O: ]8 [/ t# r
7 F; ?2 y h6 ^c.复位; , L) A2 O, O: l$ `& J 4 u1 X' c& X4 N4 @9 K Bd.读取芯片32位ID号(如果读取设备寄存器成功,返回设备号0xDECA0130,说明硬件初始化正常);9 y0 K0 I. F6 T! X- C+ m
1 Q- V8 T! d6 L _% Z2 Z
e.指定角色(Tag/Anchor)- m R5 m& f" E0 _3 {* n
4 N2 C3 O) |+ I
f.配置信道参数(通道数、频率、数据速率、引导码、PAC、SFD等). T& T- g1 G3 L* h, q: ]
( M* A% M }. u b4 M) Hg.使能芯片寄存器操作;" X; T% |6 i0 i2 j. B/ w
) F% Y* h: W. ?3 p
h.使能中断;( T% ^: i: W' y* j* X
/ j5 E! p- e: Q6 K0 ]+ Q4 r
i. Tag/Anchor发送(Poll message)接收(Response message)消息帧,记录时间戳(timestamp)。 6 s9 q' N+ C, G% ~; E9 \* T/ x9 P: \3 d
(2)双向测距TWR流程(如图): ' S8 M# w }" q7 ^2 Z2 i2 C1 {8 w7 O0 B9 A* l$ D
* R" i P* P# ]! D$ o