第一节 项目概述设计一款无线CAN转发器,由若干个终端组成,若干个终端之间可以将接收到的CAN数据通过无线的方式转发出去。 n$ J9 Z- \7 H6 v9 [
第二节 硬件概述该CAN转发器由24V供电。该CAN转发器的无线数据存在4个信道,不同信道的CAN转发器无法收到数据,在复杂的条件下,无线传输距离不低于500m。
* N8 j6 L% p& m! s5 n( j第三节 软件概述无线传输存在4个信道,初始化默认信道0,上电之后在100ms内切换信道,信道切换由特定的CAN帧控制。注意:上电初始化为信道0,其余3个信道由软件切换。CAN波特率采用250k,采用CAN2.0B扩展帧,8位数据帧。每间隔100ms需转发7个CAN 帧。以下是发送节点和接收节点的对应关系:
* H9 T' [2 Q- \1 t; E* w
jc5oinjzb5s64022962451.png
! X+ J/ Q* Z# \& U0 |
第一个CAN_ID为命令帧,该帧第一第二字节为帧头0xA6和0x38,第三字节为发送数据命令(0x00)或切换信道命令(0x99),若为发送数据命令,则将7个CAN帧的数据按照ID顺序组成一包,无线发送出去;若为切换信道命令,则通过第一个CAN_ID的第六个字节来切换到哪一个信道,一共三个信道,为信道1,信道2和信道3。注意:初始化为单独的信道0。其余CAN_ID皆为数据帧。示例:
, Z$ T( \7 e' z! g- @4 S0 I/ u发送节点
4 z/ {- Q2 W% M, a | CAN节点数据
4 f7 p3 b+ d! {; X" B" Y& C/ ~ | 0x02800010
" S9 y3 ?, i" R$ a | A6 38 99 00 00 03 00 009 ]) \$ F5 ]/ l7 J
| 0x028000205 \' {7 I0 b: `$ B
| 21 22 23 24 25 26 27 28
) e1 T3 e4 z4 q8 k/ b- E: A | 0x02800030
8 M' j2 ]! o- G& E) f( E+ B! M$ D | 31 32 33 34 35 36 37 38
7 J( F% U; S" @7 n/ ]# G7 ]1 n' W+ a | 0x02800040
, q0 \7 J6 R. G/ Y | 41 42 43 44 45 46 47 48
' G: l" A3 U3 ~, u | 0x02800050
- h, s* |. b+ Y/ |( H | 51 52 53 54 55 56 57 58
0 z% \) V6 w) Z, ^1 p* q! g | 0x028000606 C/ t0 b! _# C. @$ i8 n5 E
| 61 62 63 64 65 66 67 68( c+ W7 L: y* i" P2 u: c. F9 ?
| 0x02800070
3 S! }& R7 q- {+ W! t) X | 71 72 73 74 75 76 77 78" Y& h5 {7 W- t" K+ ^6 Y
| 上面的第一个CAN_ID节点为:0x02800010,数据第一第二字节为0xA6和0x38,第三字节为命令字节,上述命令为0x99,为切换信道命令,第六个字节为0x03,则切换到第三个信道。以下是流程图:! F% t8 f$ N/ O0 e: Y
eou13dvdiua64022962551.png
) B- w* J- R( G# u& P
( G. ~, [1 p0 A$ u+ v% @- s: x
第四节 学员作业请对项目需求选择合适的所有芯片,包括电源芯片,MCU,CAN芯片和无线芯片,要求在符合项目的需求下,尽可能的便宜。 |