第一节 项目概述设计一款无线CAN转发器,由若干个终端组成,若干个终端之间可以将接收到的CAN数据通过无线的方式转发出去。/ K% s( e& c4 @. {. {1 q" E: B
第二节 硬件概述该CAN转发器由24V供电。该CAN转发器的无线数据存在4个信道,不同信道的CAN转发器无法收到数据,在复杂的条件下,无线传输距离不低于500m。2 F d2 Y" K$ |' U$ a5 r
第三节 软件概述无线传输存在4个信道,初始化默认信道0,上电之后在100ms内切换信道,信道切换由特定的CAN帧控制。注意:上电初始化为信道0,其余3个信道由软件切换。CAN波特率采用250k,采用CAN2.0B扩展帧,8位数据帧。每间隔100ms需转发7个CAN 帧。以下是发送节点和接收节点的对应关系:
Q1 A; l. B+ k- x5 l1 ] Z! O
zmhjxmd44nn6409899829.png
- ~0 e/ A- @" R* o5 A/ V
第一个CAN_ID为命令帧,该帧第一第二字节为帧头0xA6和0x38,第三字节为发送数据命令(0x00)或切换信道命令(0x99),若为发送数据命令,则将7个CAN帧的数据按照ID顺序组成一包,无线发送出去;若为切换信道命令,则通过第一个CAN_ID的第六个字节来切换到哪一个信道,一共三个信道,为信道1,信道2和信道3。注意:初始化为单独的信道0。其余CAN_ID皆为数据帧。示例:4 I b+ S w! q
发送节点4 |) M( B% g: |. n/ X6 X
| CAN节点数据" M* C# G! p% ?1 ^ b1 u1 A
| 0x02800010% J# U) D0 v# N: v8 p
| A6 38 99 00 00 03 00 00
" Z% h% m( m( |% Y1 U- r | 0x02800020+ m) T, s6 t9 w+ F/ h# c! H) F6 g
| 21 22 23 24 25 26 27 28
% I! t/ o) X/ t9 Y | 0x02800030, ^, B D, O0 F8 k
| 31 32 33 34 35 36 37 38. ?4 {. _1 |9 l& ^
| 0x02800040
) q( C9 A. n% T. {* [ | 41 42 43 44 45 46 47 48
6 H7 `) A% d4 U( ^% t7 p8 P$ R | 0x02800050
6 H9 @0 R3 H4 s3 M0 ~! e | 51 52 53 54 55 56 57 58
5 w$ X: j' Q i& z1 j. Y5 Q" s- e | 0x02800060
) Y1 w. E" D k( f# ` | 61 62 63 64 65 66 67 68
- }3 ?; F! v0 Y | 0x02800070
4 |# k/ b) D- E. m( d! ]) A | 71 72 73 74 75 76 77 788 H7 _: |/ ?. a# U$ k
| 上面的第一个CAN_ID节点为:0x02800010,数据第一第二字节为0xA6和0x38,第三字节为命令字节,上述命令为0x99,为切换信道命令,第六个字节为0x03,则切换到第三个信道。以下是流程图:
7 s, O$ f! n3 Y9 v! n* d
fcjebatiysh6409899929.png
; Y; R8 E6 [' u4 F% Q5 \
) F7 ]5 m; k5 S, i0 t8 l6 v! m6 g第四节 学员作业请对项目需求选择合适的所有芯片,包括电源芯片,MCU,CAN芯片和无线芯片,要求在符合项目的需求下,尽可能的便宜。 |