(SKU:DFR0269)CAN-BUS Shield

来自DFRobot Product Wiki
跳转至: 导航搜索

目录

模块介绍

   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[0]寄存器
a[1]~a[9]发送数据
2、SPItoCAN.read(byte a[]);读数据
数据格式:
a[0]寄存器
a[1]~a[9]接收数据
a[10]、a[11]为0作为延时
3、SPItoCAN.readzt(byte a[]);读状态
数据格式:
a[0]寄存器
a[1]接收状态信息
a[2]、a[3]为0作为延时


4、SPITtoCAN.readdz(byte a[]);读标识
数据格式:
a[0]寄存器
a[1]~a[9]接收标识
a[10]、a[11]为0作为延时
5、SPItoCAN.writedz(byte a[]); 写标识
数据格式:
a[0]寄存器
a[1]~a[9]发送标识

实例演示:

一、模块标识(地址)指定实例:

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!

个人工具
名字空间

变换
操作
导航
工具箱