第一节 项目概述设计一款无线CAN转发器,由若干个终端组成,若干个终端之间可以将接收到的CAN数据通过无线的方式转发出去。
3 O1 r; M# r: i$ {! ~第二节 硬件概述该CAN转发器由24V供电。该CAN转发器的无线数据存在4个信道,不同信道的CAN转发器无法收到数据,在复杂的条件下,无线传输距离不低于500m。
5 L0 Z6 R. n3 p+ V' i/ z第三节 软件概述无线传输存在4个信道,初始化默认信道0,上电之后在100ms内切换信道,信道切换由特定的CAN帧控制。注意:上电初始化为信道0,其余3个信道由软件切换。CAN波特率采用250k,采用CAN2.0B扩展帧,8位数据帧。每间隔100ms需转发7个CAN 帧。以下是发送节点和接收节点的对应关系:
2 O0 |& D- Q% w+ m8 d0 Z
qoespzmywao64022968326.png
7 v4 Z9 @: f/ \" K6 c; q第一个CAN_ID为命令帧,该帧第一第二字节为帧头0xA6和0x38,第三字节为发送数据命令(0x00)或切换信道命令(0x99),若为发送数据命令,则将7个CAN帧的数据按照ID顺序组成一包,无线发送出去;若为切换信道命令,则通过第一个CAN_ID的第六个字节来切换到哪一个信道,一共三个信道,为信道1,信道2和信道3。注意:初始化为单独的信道0。其余CAN_ID皆为数据帧。示例:
( ~: ?) E; T: _. i% y6 e发送节点" |+ @- V+ d6 ^
| CAN节点数据9 p- z$ {5 [% d( h/ @
| 0x02800010
. _) a6 @( g$ R0 `' d8 z9 L& Z) _6 X4 h2 ^ | A6 38 99 00 00 03 00 00$ |5 P& X0 J; r% Z1 f1 {; x
| 0x02800020 d) a" B9 X- q5 H2 m- P
| 21 22 23 24 25 26 27 286 K0 H3 Z3 |: \6 f5 v! Z% o& _* N
| 0x02800030# m$ z+ A( h( ?# [. J' w% r
| 31 32 33 34 35 36 37 38
7 {0 E& v0 `. y. I | 0x02800040
4 h+ H: p2 [9 u5 J9 h+ l | 41 42 43 44 45 46 47 48
}7 y4 `, p, R3 E2 q: V. X | 0x02800050! o- r+ J/ b% A- F2 R" B4 j+ h
| 51 52 53 54 55 56 57 586 T1 A0 |" C) ~7 @8 U
| 0x02800060
. ? a6 Z1 j/ C1 G3 h2 A | 61 62 63 64 65 66 67 68; T i; T' w3 ^6 T8 ?$ V) ?& H
| 0x02800070
3 P; t+ B8 E3 ^9 m | 71 72 73 74 75 76 77 78
0 L" f8 y# h M. i9 b) F | 上面的第一个CAN_ID节点为:0x02800010,数据第一第二字节为0xA6和0x38,第三字节为命令字节,上述命令为0x99,为切换信道命令,第六个字节为0x03,则切换到第三个信道。以下是流程图:# a8 \6 X# i5 _" J6 D3 ~; z6 m T
rgnktrawaoy64022968426.png
" a+ r+ y1 e2 d+ Y& W, q
' J. N# Y* V+ S+ R5 s( r
第四节 学员作业请对项目需求选择合适的所有芯片,包括电源芯片,MCU,CAN芯片和无线芯片,要求在符合项目的需求下,尽可能的便宜。 |