第一节 项目概述设计一款无线CAN转发器,由若干个终端组成,若干个终端之间可以将接收到的CAN数据通过无线的方式转发出去。
! M! }- w1 C( g# G第二节 硬件概述该CAN转发器由24V供电。该CAN转发器的无线数据存在4个信道,不同信道的CAN转发器无法收到数据,在复杂的条件下,无线传输距离不低于500m。
1 m V) e' k! T2 S+ `0 s$ L' _第三节 软件概述无线传输存在4个信道,初始化默认信道0,上电之后在100ms内切换信道,信道切换由特定的CAN帧控制。注意:上电初始化为信道0,其余3个信道由软件切换。CAN波特率采用250k,采用CAN2.0B扩展帧,8位数据帧。每间隔100ms需转发7个CAN 帧。以下是发送节点和接收节点的对应关系:! F' t V; q4 ^- y/ s) v
hezvx5v3zjw6402149050.png
8 S K, e! ] a/ _1 f/ @ y第一个CAN_ID为命令帧,该帧第一第二字节为帧头0xA6和0x38,第三字节为发送数据命令(0x00)或切换信道命令(0x99),若为发送数据命令,则将7个CAN帧的数据按照ID顺序组成一包,无线发送出去;若为切换信道命令,则通过第一个CAN_ID的第六个字节来切换到哪一个信道,一共三个信道,为信道1,信道2和信道3。注意:初始化为单独的信道0。其余CAN_ID皆为数据帧。示例:
; E3 T! u1 h: q }发送节点: }, @% i2 L9 ~2 }3 s
| CAN节点数据- A, m8 z( j6 _! {, ?. _+ u
| 0x02800010/ N( d9 R' a4 A4 ^" I) i
| A6 38 99 00 00 03 00 00
1 X! F# \% z! }& J7 V$ s | 0x02800020
0 b& }: w1 h7 H+ g | 21 22 23 24 25 26 27 28
3 T" n4 K: R! z! ?% L$ E6 i+ s | 0x02800030
8 a) B# G& B: b | 31 32 33 34 35 36 37 38
. C0 M2 ^9 z$ a4 J( S+ [* Q | 0x02800040. }5 }# Y v9 R" x' O! o* `
| 41 42 43 44 45 46 47 48; n. X* R, V# u% r4 I) U
| 0x02800050
+ c1 M7 w4 g# v( Q2 P | 51 52 53 54 55 56 57 58
, ], W l t/ z9 n& D | 0x02800060
2 g' p4 b" e, o, F X3 | t | 61 62 63 64 65 66 67 68/ h7 W: }7 A3 `+ i) V9 Q0 n
| 0x02800070
7 o: g7 k( C- h- w6 Q# S9 A | 71 72 73 74 75 76 77 78( \* o4 \; k9 N& N5 K) u7 o# o
| 上面的第一个CAN_ID节点为:0x02800010,数据第一第二字节为0xA6和0x38,第三字节为命令字节,上述命令为0x99,为切换信道命令,第六个字节为0x03,则切换到第三个信道。以下是流程图:+ c- W' R, d5 `! s. o
cpsads4xqiq6402149150.png
& _$ y" V5 [! E, m: ?
* b, s2 R% _: Z
第四节 学员作业请对项目需求选择合适的所有芯片,包括电源芯片,MCU,CAN芯片和无线芯片,要求在符合项目的需求下,尽可能的便宜。 |