第一节 项目概述设计一款无线CAN转发器,由若干个终端组成,若干个终端之间可以将接收到的CAN数据通过无线的方式转发出去。
+ \6 K3 B) g" B; j5 D Z8 j2 L3 m第二节 硬件概述该CAN转发器由24V供电。该CAN转发器的无线数据存在4个信道,不同信道的CAN转发器无法收到数据,在复杂的条件下,无线传输距离不低于500m。' U- }5 h( |' T* B8 O+ |6 t
第三节 软件概述无线传输存在4个信道,初始化默认信道0,上电之后在100ms内切换信道,信道切换由特定的CAN帧控制。注意:上电初始化为信道0,其余3个信道由软件切换。CAN波特率采用250k,采用CAN2.0B扩展帧,8位数据帧。每间隔100ms需转发7个CAN 帧。以下是发送节点和接收节点的对应关系:
, x5 @3 v' N& J9 W3 ^, J
fo0wownvqha64014707751.png
% R- k! J' E; {. D% O5 _第一个CAN_ID为命令帧,该帧第一第二字节为帧头0xA6和0x38,第三字节为发送数据命令(0x00)或切换信道命令(0x99),若为发送数据命令,则将7个CAN帧的数据按照ID顺序组成一包,无线发送出去;若为切换信道命令,则通过第一个CAN_ID的第六个字节来切换到哪一个信道,一共三个信道,为信道1,信道2和信道3。注意:初始化为单独的信道0。其余CAN_ID皆为数据帧。示例:
+ \; \( |; B/ n5 K发送节点
) t a% o, c( G" X7 q; a4 I g | CAN节点数据$ w9 w: S) S m' G4 K" e
| 0x02800010
' K3 O1 u8 C E$ o7 @! ` | A6 38 99 00 00 03 00 00; u. y- v8 i3 ^, `
| 0x02800020- U6 G/ D L+ x* v- U
| 21 22 23 24 25 26 27 28
% ]7 f, o& S. m; z | 0x028000303 r* ?5 m$ d. n- Y( @
| 31 32 33 34 35 36 37 38
- j3 B0 c/ W% L: f8 |9 s U | 0x02800040
, q. _) ]7 g, b1 O | 41 42 43 44 45 46 47 48
; ]& s9 V2 P: ^/ c | 0x02800050; m7 U3 O+ \6 a" l5 z% @ C9 d
| 51 52 53 54 55 56 57 582 S) f) U, D# M& Z* _7 C
| 0x02800060/ l, P! C; v# |# Z8 v. n
| 61 62 63 64 65 66 67 68; o! S% V( n9 ~
| 0x02800070
) |( y6 h2 H/ u8 z1 L$ ?! M | 71 72 73 74 75 76 77 78
3 Z: z4 V9 |" B0 S | 上面的第一个CAN_ID节点为:0x02800010,数据第一第二字节为0xA6和0x38,第三字节为命令字节,上述命令为0x99,为切换信道命令,第六个字节为0x03,则切换到第三个信道。以下是流程图:
! z, z& C, O- C. F( o+ w
2ecvvuuiyic64014707851.png
7 p# X' G9 K) m2 I" Z& G
# e1 a$ W/ R |, B0 ~, p+ t第四节 学员作业请对项目需求选择合适的所有芯片,包括电源芯片,MCU,CAN芯片和无线芯片,要求在符合项目的需求下,尽可能的便宜。 |