CAN-BUS Shield

目录

1 模块介绍

1.1 一、硬件
1.2 二、时序操作(spi时钟250k)
1.3 三、寄存器
1.4 四、模块上电复位寄存器默认值:
1.5 五、地址操作:
1.6 六、模块数据传输:=
1.7 七、arduino库

2 实例演示:

2.1 一、模块标识(地址)指定实例:
2.2 二、模块数据传输:

2.2.1 A、硬件准备:
2.2.2 B、软件准备

模块介绍
spi转can模块功能:1、读状态;2、读写数据;3、can设备输入输出标识设置(spi 为从设备)。

一、硬件 1、spi部分只需要mosi、miso、clk就可以工作。(andunio_spi时钟频率:SPI_CLOCK_DIV64 orSPI_CLOCK_DIV128) 2、can部分采用DB9标准接口2为CANL、7为CANH。

二、时序操作(spi时钟250k)
1、读时序
a、写8位寄存器;
b、延时1us
c、8字节数据
d、延时2个字节的时间
2、写时序
a、写8位寄存器;
b、8字节数据

三、寄存器
1、读数据寄存器11
2、读状态寄存器33
3、写数据寄存器22
4、读输入输出标识寄存器55(地址)
5、写输入输出标识寄存器44(地址)
注意:
1、输入输出标识一共8个字节,前四位为接收标识(前两个字节为标准标识,后两个为扩展标识);
后四个字节为发送标识(前两个字节为标准标识,后两个为扩展标识)。
2、状态寄存器的值
0x00为:可写不可读
0x01为:不可写不可读
0x10为:可写可读
0x11为:不可写可读
注意:模块地址指定是在模块上电以后指定(默认值是00001234,复位以后恢复默认值)

四、模块上电复位寄存器默认值:
状态寄存器:01
数据寄存器:AA 55 55 AA 00 55 00 AA
标示寄存器:0012324001234

五、地址操作:
读指令格式:55aa55 xxxxxxxx xxxxxxxx(x表示任意十进制数)
55aa为头
55为指令
前4位为标准标识(接收地址),后四位为扩展标识(发送地址)。
写指令格式:55aa44 00001234 00001234
55aa为头
55为指令
前4位为接收地址,后四位为发送地址。

六、模块数据传输:=
1、状态寄存器读:55aa33 xxxxxxxx xxxxxxxx(x表示任意十进制数);
55aa为头
33为指令
2、数据寄存器读:55aa11 xxxxxxxx xxxxxxxx(x表示任意十进制数);
55aa为头
11为指令
数据寄存器写:55aa22 xxxxxxxx xxxxxxxx(x表示任意十进制数);
55aa为头
22为指令

七、arduino库
byte a[11]
1、SPItoCAN.write(byte a[]); 写数据
数据格式:
a[

4、SPITtoCAN.readdz(byte a[]);读标识
数据格式:
a[

实例演示:
一、模块标识(地址)指定实例:
1、复位。
2、串口波特率:9600
3、读模块地址指令:55aa55 xxxxxxxx xxxxxxxx(x表示任意十进制数);
  读当前模块地址:输入指令:55aa550000523400005234如图:

C1.png

发送指令执行结果,如图:

C2.png

4、写模块地址指令:55aa55 xxxxxxxx xxxxxxxx(x表示任意十进制数);
  写当前模块地址:输入指令:55aa550000523400005234如图:

C3.png

发送指令执行结果地址已经修改,如图:

C4.png

二、模块数据传输:
下面是两个模块的数据传输实例:

A、硬件准备:

Canbus1.png

B、软件准备
1、arduino开发包。
2、canbus库。
3、串口调试软件。
1、上电复位。打开串口如图:

C5.png

2、输入指令55aa3300aa523400aa5234和55aa330000523400005234 发送执行结果

C6.png

3、清除窗口,输入指令:55aa1100aa523400aa5234和55aa110000523400005234;发送执行结果:

C7.png

4、清除窗口,输入指令:55aa3300aa523400aa5234和55aa330000523400005234;发送执行结果:

C8.png

5、清除窗口,输入指令:55aa2200aa523400aa5234和55aa220000523400005234;发送执行结果:

C10.png

6、清除窗口,输入指令:55aa3300aa523400aa5234和55aa330000523400005234;发送执行结果:

C11.png

7、清除窗口,输入指令:55aa1100aa523400aa5234和55aa110000523400005234;发送执行结果:

C12.png

8、数据传输成功OK!

标签: Arduino传感器