第一节 项目概述设计一款无线CAN转发器,由若干个终端组成,若干个终端之间可以将接收到的CAN数据通过无线的方式转发出去。3 h M. ~( M u( m8 a& t
第二节 硬件概述该CAN转发器由24V供电。该CAN转发器的无线数据存在4个信道,不同信道的CAN转发器无法收到数据,在复杂的条件下,无线传输距离不低于500m。
4 z& R' v I1 }/ N第三节 软件概述无线传输存在4个信道,初始化默认信道0,上电之后在100ms内切换信道,信道切换由特定的CAN帧控制。注意:上电初始化为信道0,其余3个信道由软件切换。CAN波特率采用250k,采用CAN2.0B扩展帧,8位数据帧。每间隔100ms需转发7个CAN 帧。以下是发送节点和接收节点的对应关系:
/ ]: z' f1 I+ U+ t! i4 h, J3 l' j5 T
j3zgzgspj4f6404977428.png
( c+ x+ z7 F( F- W; d第一个CAN_ID为命令帧,该帧第一第二字节为帧头0xA6和0x38,第三字节为发送数据命令(0x00)或切换信道命令(0x99),若为发送数据命令,则将7个CAN帧的数据按照ID顺序组成一包,无线发送出去;若为切换信道命令,则通过第一个CAN_ID的第六个字节来切换到哪一个信道,一共三个信道,为信道1,信道2和信道3。注意:初始化为单独的信道0。其余CAN_ID皆为数据帧。示例:
7 O- x2 b; s1 E8 R$ x发送节点- n$ Q. Y1 c7 X5 J/ u$ ]- L8 k$ Z& H
| CAN节点数据, f: Q) u9 q+ L1 V3 F
| 0x02800010$ B- Y$ N! Y9 k8 i
| A6 38 99 00 00 03 00 00
+ Y; @' k7 h2 T( F) l | 0x02800020
$ m( q7 ~& {; G; j( P7 ]' R0 w* |* { | 21 22 23 24 25 26 27 28' e5 f) D. S2 u9 B; Y9 ]" v9 }+ x( Q
| 0x02800030; Y0 o8 |' L! r# d' w! j% n( T3 d5 N
| 31 32 33 34 35 36 37 38
* j' F" \3 Q- \" M3 i* B | 0x028000402 ~& l W9 ?3 p1 H3 w6 v7 j, ?: x
| 41 42 43 44 45 46 47 48( |7 B' L) Q M* q
| 0x02800050
6 O# P% I( [. r: t; j | 51 52 53 54 55 56 57 58' c+ f, Z6 U* @0 o" R
| 0x02800060$ S9 r4 w7 g2 r- G$ n0 h
| 61 62 63 64 65 66 67 68
3 q, s) I: W X | 0x02800070: X' o4 c) u- V% H& q/ C
| 71 72 73 74 75 76 77 78- Z/ \; m' c1 n& v! B2 k4 Y
| 上面的第一个CAN_ID节点为:0x02800010,数据第一第二字节为0xA6和0x38,第三字节为命令字节,上述命令为0x99,为切换信道命令,第六个字节为0x03,则切换到第三个信道。以下是流程图:
& A+ \+ g6 M9 o* v
uolilz0404q6404977528.png
7 j- G5 l6 V4 [' c- P1 j % M. ?+ q/ E* m2 W9 q& @% Q- V
第四节 学员作业请对项目需求选择合适的所有芯片,包括电源芯片,MCU,CAN芯片和无线芯片,要求在符合项目的需求下,尽可能的便宜。 |