CAN总线实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三:双节点通信

1、实验要求

CAN节点A(ID:0x00)、B(ID:0x01),要求A节点进行数据发送(标准数据帧),B节点可以进行数据接收并显示接收到数据,同时反馈信息给A节点。

2、实验目的

(1)熟悉双CAN通信原理;

(2)掌握双节点通信的设计。

3、所需设备

(1)CPU挂箱2

(2)接口挂箱2

(3)CPU模块(80C31)2

(4)CAN总线模块2块

4、实验内容

两个实验台运行程序CAN.ASM,发送实验台全速运行程序,接收实验台要在程序中设置断点,查看30H~37H中的数与程序中发送的数据是否一致。

5、实验原理

两个CAN节点通信,验收滤波设置正确后,可实现双节点通信。硬件原理图与图2.4类似,只不过将1个节点改为2个节点。图略。

附图2.4见下

(2)模块跳线接LCS0(CAN基址为0xDE00);

(3)模块上的A接CANL,B接CANH;

(4)在各自试验台上,将CPU挂箱右侧的“DATA PORT”和“ADDRESS PORT”

分别用5P、14P、20P连线与接口挂箱的相应插座连接.

(5)将两个CAN节点的CANL、CANH直连。

2、运行程序CAN.ASM,在初始化结束、发送接收结束处各设置断点,查看两个模块的30H~37H中的数据是否一致。

7、实验结果

两个模块的30H~37H中的数据一致。

8、1)程序流程图

2)实验程序:

MODE EQU 0DE00H ;模式寄存器

CMR EQU 0DE01H ;命令寄存器

SR EQU 0DE02H ;状态寄存器

IR EQU 0DE03H ;中断寄存器

IER EQU 0DE04H ;中断使能寄存器

BTR0 EQU 0DE06H ;总线定时寄存器一

BTR1 EQU 0DE07H ;总线定时寄存器二

OCR EQU 0DE08H ;输出控制寄存器

ALC EQU 0DE0BH ;仲裁丢失捕捉寄存器ECC EQU 0DE0CH ;错误代码捕捉寄存器TXERR EQU 0DE0FH ;发送错误计数器

ACR0 EQU 0DE10H ;验收代码寄存器0

ACR1 EQU 0DE11H ; 1

ACR2 EQU 0DE12H ; 2

ACR3 EQU 0DE13H ; 3

AMR0 EQU 0DE14H ;验收屏蔽寄存器0

AMR1 EQU 0DE15H ; 1

AMR2 EQU 0DE16H ; 2

AMR3 EQU 0DE17H ; 3

FIN EQU 0DE10H ;发送/接收帧信息

ID1 EQU 0DE11H ;发送/接收缓冲区之标示符一

ID2 EQU 0DE12H ;发送/接收缓冲区之标示符二

DATA1 EQU 0DE13H ;发送/接收数据首址

RBSA EQU 0DE1EH ;接收缓冲器起始地址寄存器

CDR EQU 0DE1FH ;时钟分频寄存器

ORG 4000H

JMP START

ORG 4080H

START: MOV R1,#8

MOV R0,#27H

FILL: MOV B,#10H

MOV A,R1

MUL AB

MOV @R0,A

DEC R0

DJNZ R1,FILL

MOV R0,#0AAH

LCALL INITCAN ;CAN初始化(CAN片选为CS0:0DE00H) ;-------------------------发送------------------

RETRAN: MOV DPH, #0DEH

MOV R0, #20H

LCALL SEND ;发送20H为首址的1桢数据(前三字节为:08H、BBH、FFH,后8字节任意)

LCALL DELAY

;-----------------------接收数据--------------------------

MOV DPH, #0DEH

MOV R0, #30H

LCALL RECV

NOP ;在此处设置断点,以观察结果

JMP $

INITCAN:

MOV DPTR,#MODE ;初始化子程序,DPH、R0为入口参数MOV A,#01H

MOVX @DPTR,A ;模式寄存器,单验收滤波器,进入复位模式

MOV DPTR,#CDR

MOV A,#88H

MOVX @DPTR, A ;时钟分频R,选择增强CAN模式,关闭CLKOUT输出

MOV DPTR,#IER

MOV A,#0DH

MOVX @DPTR,A ;中断使能寄存器,开溢出、错误、接收中断

MOV DPTR,#BTR0

MOV A,#03H

MOVX @DPTR,A ;总线定时寄存器一

MOV DPTR,#BTR1

MOV A,#0FFH

MOVX @DPTR,A ;总线定时寄存器二,6MHz晶振,波特率30Kbps MOVX A, @DPTR

MOV DPTR,#OCR

MOV A,#0AAH

MOVX @DPTR,A ;输出控制寄存器

MOV DPTR,#ACR0

MOV A, 00H

MOVX @DPTR,A ;验收代码ACR0

MOV DPTR,#ACR1

MOV A,#2FH

MOVX @DPTR,A ;无关

MOV A,#0FFH

INC DPTR

MOVX @DPTR,A ;无关

INC DPTR

MOVX @DPTR,A ;无关

MOV DPTR,#AMR0

MOV A,#0FFH ;modify #00 to #0FF

MOVX @DPTR,A ;验收屏蔽寄存器AMR0=00H

INC DPTR

MOV A,#0FFH

MOVX @DPTR,A ;AMR1

INC DPTR

MOVX @DPTR,A ;AMR2

INC DPTR

MOVX @DPTR,A ;AMR3验收屏蔽:只有ACR0是相关项MOV DPTR, #RBSA

MOV A, #00H

MOVX @DPTR, A ;接收缓冲器FIFO起始地址为0

MOV DPTR, #TXERR

MOVX @DPTR, A ;清除发送错误计数器

MOV DPTR, #ECC

MOVX @DPTR, A ;清除错误代码捕捉寄存器

MOV DPTR,#MODE

MOV A,#08H

MOVX @DPTR,A ;单滤波方式,返回工作方式

RET

SEND:

相关文档
最新文档