第一节 项目概述设计一款无线CAN转发器,由若干个终端组成,若干个终端之间可以将接收到的CAN数据通过无线的方式转发出去。" i. M7 g* Q5 K9 Z9 i* A
第二节 硬件概述该CAN转发器由24V供电。该CAN转发器的无线数据存在4个信道,不同信道的CAN转发器无法收到数据,在复杂的条件下,无线传输距离不低于500m。7 s0 ]* n- k |" I4 W
第三节 软件概述无线传输存在4个信道,初始化默认信道0,上电之后在100ms内切换信道,信道切换由特定的CAN帧控制。注意:上电初始化为信道0,其余3个信道由软件切换。CAN波特率采用250k,采用CAN2.0B扩展帧,8位数据帧。每间隔100ms需转发7个CAN 帧。以下是发送节点和接收节点的对应关系:
4 m2 ^; x# g" x9 \1 r6 G
svvwamjkre56402555747.png
. r. o% m+ m1 u# w& M
第一个CAN_ID为命令帧,该帧第一第二字节为帧头0xA6和0x38,第三字节为发送数据命令(0x00)或切换信道命令(0x99),若为发送数据命令,则将7个CAN帧的数据按照ID顺序组成一包,无线发送出去;若为切换信道命令,则通过第一个CAN_ID的第六个字节来切换到哪一个信道,一共三个信道,为信道1,信道2和信道3。注意:初始化为单独的信道0。其余CAN_ID皆为数据帧。示例:) C3 d) I5 Z% x. a) E. q
发送节点
: x: [! }1 |, S | CAN节点数据
) L8 @! d1 Y; H0 T. b: ? | 0x02800010
6 B; M8 x# N, a$ w | A6 38 99 00 00 03 00 00
8 e; q! {/ S" I/ c; h# Z | 0x02800020/ |8 B( @. a$ `/ c F
| 21 22 23 24 25 26 27 28/ o* M8 P4 k" Q/ d- O
| 0x02800030. X8 c5 J- U* c8 ]2 |3 K2 A2 r
| 31 32 33 34 35 36 37 380 n* _/ i% U5 R+ J$ l" j: h7 L
| 0x02800040
8 F* O2 s+ N+ o6 S | 41 42 43 44 45 46 47 48
( W6 q' L7 |2 J) \ | 0x02800050
9 e" d6 Q* e% R" l. v | 51 52 53 54 55 56 57 58' ` v6 R4 `2 C4 w% m# j* O5 P% S
| 0x02800060
, L; C2 u/ M+ `7 W/ S8 i9 ` | 61 62 63 64 65 66 67 68
H$ y1 {% w6 a/ z6 N) |$ H- @ | 0x02800070
& G! W- q# A+ o% d( L# a# u+ \ | 71 72 73 74 75 76 77 78
9 U) F0 t: p6 U1 U6 l | 上面的第一个CAN_ID节点为:0x02800010,数据第一第二字节为0xA6和0x38,第三字节为命令字节,上述命令为0x99,为切换信道命令,第六个字节为0x03,则切换到第三个信道。以下是流程图:
2 o E$ t8 [# o0 ]
4n0endqj1zt6402555847.png
$ U( E, v# }; ]: w
6 y6 q1 i2 e2 K0 D# x0 r第四节 学员作业请对项目需求选择合适的所有芯片,包括电源芯片,MCU,CAN芯片和无线芯片,要求在符合项目的需求下,尽可能的便宜。 |