5 V* H) s! i4 O3 ^+ D' u" v' y2.芯片选择3 _* ]6 `) M9 L" q C
; P6 {) i( z: y2 v7 z
选择DecaWave公司的DW1000芯片。符合IEEE802.15.4-2011超宽带标准。按照数据手册上应该最小误差在10厘米以内。DW1000的最远传输距离为450米(直视距离,非直视距离为45米)。芯片功耗低,可双向测距和定位,可作为目前室内定位(还有说法是地下定位也可以)技术RFID及WiFi的补充。参数如下: 5 }% p4 M4 z# ^3 R7 v8 ^7 n % F5 C2 d- v" J- X: b2 i单电源电压:2.8 V至3.6 V ( y. k8 l" m, y1 O: i& C+ m1 h D8 M, u- O" s
数据传输速率:110 kbit/s,850 kbit/s和6.8 Mbit/s; ) u( j$ T, o# d0 t+ A W % J( r2 D1 v$ Q9 }1 A8 T6频段:从3.5 GHz至6.5 GHz + `3 y9 G/ F% E" J& X) @, B8 C* P9 Z3 \% d( Z2 W+ S8 C# t q
发射功率:-14 dBm/-10 dBm 6 G5 D& I+ \7 H6 q- R4 l+ S* k1 P$ l1 v* o
发射功率密度:<-41.3dBm / MHz ' l! z0 G6 V G/ z' A( G2 }( _* U
. M2 l# W8 X0 s
支持数据包大小:1023字节" H, _" |- Y% t) G
2 q0 }* g9 K6 f* n调制方式:BPM(二相调制)与BPSK(二进制相位调制)* U: n$ _" _3 k1 I. a) l/ V7 T" s
1 A4 |# R$ v, u' ?$ m# _( b8 u
FDMA:6通道7 k4 O/ S# {9 J
$ S! o: Q" V! E5 Z2 S
CDMA:12种不同的信道编码1 a3 s7 _$ `) @: L- V
n$ A3 p1 \1 t% P* S0 z1 a9 J
工业级温度范围:-40°C至+ 85°C, P: R" V! e. U1 e$ ^9 O3 a9 O
5 v6 S' X0 g# b" h `8 v读数据手册的摘录及心得: " b8 @0 Y9 z# Y' l1 g5 o2 N* g& ~) S% \, k$ R2 g! @
DW1000需接外部38.4MHz的晶振,支持SPI通信。5 n! L% w1 U/ w+ ^4 E G7 l
! l p) o1 J3 z3 v3 ?/ s引脚说明:' [( j% f+ c' X" J3 h: C) q
7 z& C9 i) t1 f! A
DW1000有8个通道需要配置,最大接收带宽为900MHz,编程会用到。' E0 M' m# [8 J+ N/ D
8 L2 ]: D# f A
比如:模式1% U G0 H5 K5 N: r1 w! F2 B2 i
9 T$ z t3 A u, [' i* C, dChannel_Config[8]={3 \9 P8 N$ a+ T% m
' X, i2 M, R, \* x7 j! N% a
/*模式1*/ 7 p- D, Q+ w/ l' r9 s. ?8 X5 u6 t 6 u- }6 T, R- ^+ Q; b2 J& [ 2, //选择通道: v3 d& m+ b' D0 h1 ~1 b
3 g+ S: Y" R1 W% m DW1000_PRF_16M, //脉冲频率$ U3 V5 U0 Q& O* v2 Z2 z; D$ G5 b# G
3 S6 P3 F% k) w0 B/ D
DW1000_BR_110K, //波特率6 b6 l2 n* W7 y/ }" X/ g7 w) y
7 n% p5 f j j8 k6 t4 W' q/ u
3, //前导码 # w$ V: m0 T+ o5 W' u, r: g7 v( o * e+ i" W" L8 K) \3 Q$ k DW1000_PLEN_1024, //前导码数据长度 ) G0 u7 q' |8 Q) ]8 B& P) _! i. r' d4 M1 V9 j' M
DW1000_PAC32, //指定PAC前导长度 8 S# f9 ]) I; r: r& h 6 \- F5 ]9 U: c+ h 1, //非标SFD 0 i) y* V# d0 _' d1 |2 h1 \( C1 L3 G! {* o
(1025 + 64 - 32) //SFD超时 ! E$ ?/ k' T: I8 b2 \6 @5 r0 j9 M8 B# ?/ T0 h. r, A7 h3 r
}& v0 @& f. K/ y. B" a
支持的波特率为: + D ]# ?; u- H( ` 4 s r' X1 Z& [3 t0 X3 fDW1000有两个频率合成器,本地时钟即外部和系统时钟。带宽设置有两种模式:500MHz和900MHz。由相关寄存器设置特定的带宽模式。带宽设置的增加范围大了,相应功耗也就增加。因此该TX脉冲宽度允许传输的带宽应该合理控制。DW1000寄存器是不可编程的,需要写相关值来控制。 - p; b7 b7 y+ u5 B3 U' k. I3 b4 Q O8 q
看完数据手册,接下来就好好啃两百多页的英文用户手册,看看SPI读写操作和各个寄存器值的读写操作。大概有四十多个寄存器。DW1000对于寄存器的操作十分严格,尤其是时间同步控制。两种定位方法:到达时间差(TDOA)和双向测距(TOF)定位。时间控制不合适会导致定位误差。 * I! R. j$ _- N- {2 Q; C+ R 8 H5 S) U9 q* \ 1 U6 |5 d8 Y }* j$ J; v * v; ^$ Y, L( _, _5 G& ?, z 湿度大也会衰减发射信号的强度,影响距离,比如阴雨天时,收音机的信号就明显差很多。因为无线电波的传播介质发生了变化,介质的性质(介电常数)发生变化,电磁波波速就会产生变化。 # F! Z0 A+ \6 v1 |, e3 v# }& z5 S# T% E5 n) V9 z
3.软件流程 5 K4 Z; I) ?: s/ C% A' v. m( P# U 2 f3 D# N6 W7 c$ c* T(1)使能DW1000软件操作流程: : g; I+ z/ H w/ g3 l6 k * k3 n( ?: A) S H; f* ha.设备初始化(时钟初始化、GPIO初始化、中断优先级配置、串口及SPI初始化等); ( l3 c. ~7 e, ~' @ ]6 k" x3 ^" g2 Q" n% E. X$ s. X, e
b.关中断(若开启了外部中断); 8 w1 Y2 q, X$ b! S" k$ m ! C$ i# ^" m+ Y& Pc.复位;$ k& |$ R5 m3 n5 |
: [7 c% P% H$ B& J8 o4 od.读取芯片32位ID号(如果读取设备寄存器成功,返回设备号0xDECA0130,说明硬件初始化正常); - `% X* @. ]; l2 M& P5 p- j# @, W & O% n' \( I+ z) C0 P6 e" ^: `e.指定角色(Tag/Anchor) + c2 k' n0 B2 _( I* L( Z 1 |0 ^: P( w ]: L+ uf.配置信道参数(通道数、频率、数据速率、引导码、PAC、SFD等)" ]. p; V; P% Z! z
+ p, I* _7 W6 B! c5 h1 G E/ y
g.使能芯片寄存器操作;+ a( }3 f0 g6 z) l$ y
$ y1 w0 x) ^! ^! sh.使能中断;" w5 h+ k& } y, g5 h
/ I# n; B: u( p5 q# q) U2 c
i. Tag/Anchor发送(Poll message)接收(Response message)消息帧,记录时间戳(timestamp)。 \1 ?( L+ x. C! E1 _2 d( B
' G! M1 i: k5 ~(2)双向测距TWR流程(如图): L( d- T& @. M& {* R4 R1 }+ Q* }6 N 6 }5 U8 M( { A) B2 l/ R. [/ |" X% V# i# z2 y. F2 h
& a7 D$ `" B: b5 y; I