第一节 项目概述设计一款无线CAN转发器,由若干个终端组成,若干个终端之间可以将接收到的CAN数据通过无线的方式转发出去。( ~! U8 Q& A3 v1 U! T
第二节 硬件概述该CAN转发器由24V供电。该CAN转发器的无线数据存在4个信道,不同信道的CAN转发器无法收到数据,在复杂的条件下,无线传输距离不低于500m。9 h7 h0 C! R T2 _9 R' C
第三节 软件概述无线传输存在4个信道,初始化默认信道0,上电之后在100ms内切换信道,信道切换由特定的CAN帧控制。注意:上电初始化为信道0,其余3个信道由软件切换。CAN波特率采用250k,采用CAN2.0B扩展帧,8位数据帧。每间隔100ms需转发7个CAN 帧。以下是发送节点和接收节点的对应关系:7 y9 h; u) w0 K/ x- J! w7 ~
ygffeaiv2g56408166630.png
+ b# t+ z0 p- u. |% E1 a. [/ n
第一个CAN_ID为命令帧,该帧第一第二字节为帧头0xA6和0x38,第三字节为发送数据命令(0x00)或切换信道命令(0x99),若为发送数据命令,则将7个CAN帧的数据按照ID顺序组成一包,无线发送出去;若为切换信道命令,则通过第一个CAN_ID的第六个字节来切换到哪一个信道,一共三个信道,为信道1,信道2和信道3。注意:初始化为单独的信道0。其余CAN_ID皆为数据帧。示例:: d) k- W$ V: [" z
发送节点6 S1 l0 j1 K8 w8 Q$ [
| CAN节点数据
- ]7 r3 p/ ^& x; T; Y | 0x02800010. |2 N& g0 T8 w
| A6 38 99 00 00 03 00 00! ~# k8 u) R4 ^( Q
| 0x02800020* K. O/ @ G& ?7 ]: _ v4 U0 `3 [
| 21 22 23 24 25 26 27 287 n: ~, z2 {1 `: J6 c5 b
| 0x02800030: ^' O9 d# h, \
| 31 32 33 34 35 36 37 38
9 v( J: \& ^1 [; \# t% r! i/ r* ~, ? | 0x02800040
6 o& @( T& A2 u; F# f1 m. X3 a, \ | 41 42 43 44 45 46 47 48
- N3 K6 X0 C1 h& v | 0x02800050; W) L8 c! a8 [( T; ]6 O5 j! |9 m
| 51 52 53 54 55 56 57 58
& r& ~* W% R! E4 \9 K# O+ X; a$ T. t | 0x02800060# @5 Z7 }7 V# g; [. T
| 61 62 63 64 65 66 67 68
& u, b- A! z7 k& x | 0x02800070/ _ a- \; A) i s* D4 X0 x+ L
| 71 72 73 74 75 76 77 78
; C# O! M# ]7 s, x7 F0 G | 上面的第一个CAN_ID节点为:0x02800010,数据第一第二字节为0xA6和0x38,第三字节为命令字节,上述命令为0x99,为切换信道命令,第六个字节为0x03,则切换到第三个信道。以下是流程图:9 k& S q6 x3 R; [, @( U
krkzeh0rnkw6408166731.png
" s0 p! N# b1 F* {
1 @# } f+ z }* t6 g2 Z" w第四节 学员作业请对项目需求选择合适的所有芯片,包括电源芯片,MCU,CAN芯片和无线芯片,要求在符合项目的需求下,尽可能的便宜。 |