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 为从设备)。
二、时序操作(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如图:
发送指令执行结果,如图:
4、写模块地址指令:55aa55 xxxxxxxx xxxxxxxx(x表示任意十进制数);
写当前模块地址:输入指令:55aa550000523400005234如图:
发送指令执行结果地址已经修改,如图:
二、模块数据传输:
下面是两个模块的数据传输实例:
A、硬件准备:
B、软件准备
1、arduino开发包。
2、canbus库。
3、串口调试软件。
1、上电复位。打开串口如图:
2、输入指令55aa3300aa523400aa5234和55aa330000523400005234 发送执行结果
3、清除窗口,输入指令:55aa1100aa523400aa5234和55aa110000523400005234;发送执行结果:
4、清除窗口,输入指令:55aa3300aa523400aa5234和55aa330000523400005234;发送执行结果:
5、清除窗口,输入指令:55aa2200aa523400aa5234和55aa220000523400005234;发送执行结果:
6、清除窗口,输入指令:55aa3300aa523400aa5234和55aa330000523400005234;发送执行结果:
7、清除窗口,输入指令:55aa1100aa523400aa5234和55aa110000523400005234;发送执行结果:
8、数据传输成功OK!