第一节 项目概述设计一款无线CAN转发器,由若干个终端组成,若干个终端之间可以将接收到的CAN数据通过无线的方式转发出去。; b- R! x" o: }! S1 c( L
第二节 硬件概述该CAN转发器由24V供电。该CAN转发器的无线数据存在4个信道,不同信道的CAN转发器无法收到数据,在复杂的条件下,无线传输距离不低于500m。) g) B2 x9 G0 ^
第三节 软件概述无线传输存在4个信道,初始化默认信道0,上电之后在100ms内切换信道,信道切换由特定的CAN帧控制。注意:上电初始化为信道0,其余3个信道由软件切换。CAN波特率采用250k,采用CAN2.0B扩展帧,8位数据帧。每间隔100ms需转发7个CAN 帧。以下是发送节点和接收节点的对应关系:' _2 J9 ~' c3 h# _2 [, {
ffozda0kh4z6408184125.png
; Y" e: r# h7 L& Q" R5 e5 k
第一个CAN_ID为命令帧,该帧第一第二字节为帧头0xA6和0x38,第三字节为发送数据命令(0x00)或切换信道命令(0x99),若为发送数据命令,则将7个CAN帧的数据按照ID顺序组成一包,无线发送出去;若为切换信道命令,则通过第一个CAN_ID的第六个字节来切换到哪一个信道,一共三个信道,为信道1,信道2和信道3。注意:初始化为单独的信道0。其余CAN_ID皆为数据帧。示例:
! U* |! N! z- Q, r: h% @3 w发送节点8 O+ q% R1 G9 D2 a7 Q
| CAN节点数据
/ O* u! [9 K$ Q% d/ d | 0x02800010 I* f, H) C# p Y% e: N# g
| A6 38 99 00 00 03 00 00" f4 ^" h, s+ x! _- l7 _
| 0x02800020
0 F6 T I, C- R, c: M: g | 21 22 23 24 25 26 27 28
1 |: B2 _3 J2 p U | 0x02800030- Z0 \; i7 Q" `6 v
| 31 32 33 34 35 36 37 389 J1 O% I- I1 {8 i/ z6 B
| 0x02800040
# k5 E. K% @- z q& Y | 41 42 43 44 45 46 47 485 M" O5 B1 ^( x7 P; E6 u$ Y0 Q
| 0x02800050
! }3 e$ ]" C, ^ g8 l. i7 D1 s% n | 51 52 53 54 55 56 57 58
/ N& @. ~0 Y0 B5 [( g9 W/ J' W | 0x02800060( W8 l' ?4 a' F/ ^: f
| 61 62 63 64 65 66 67 68* f8 X+ ]' C2 V8 H. ^! K% j
| 0x02800070
3 ?8 W8 r# B N" T. w | 71 72 73 74 75 76 77 782 m7 ^1 n4 M2 L* R# o
| 上面的第一个CAN_ID节点为:0x02800010,数据第一第二字节为0xA6和0x38,第三字节为命令字节,上述命令为0x99,为切换信道命令,第六个字节为0x03,则切换到第三个信道。以下是流程图:
) v6 x6 q6 [6 C; y7 q* M) Q8 _
5smn2fppesj6408184225.png
% x1 u _, o" ?$ H) `$ V+ r : d, P5 L4 G9 f; _$ l) f
第四节 学员作业请对项目需求选择合适的所有芯片,包括电源芯片,MCU,CAN芯片和无线芯片,要求在符合项目的需求下,尽可能的便宜。 |