基于sja1000的can总线系统智能节点设计

基于sja1000的can总线系统智能节点设计

ID:24738648

大小:51.50 KB

页数:6页

时间:2018-11-16

基于sja1000的can总线系统智能节点设计_第1页
基于sja1000的can总线系统智能节点设计_第2页
基于sja1000的can总线系统智能节点设计_第3页
基于sja1000的can总线系统智能节点设计_第4页
基于sja1000的can总线系统智能节点设计_第5页
资源描述:

《基于sja1000的can总线系统智能节点设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于SJA1000的CAN总线系统智能节点设计

2、第1摘要:CAN总线上的节点是网络上的接收和发送站。智能节点能通过编程设置工作方式、ID地址、波特率等参数。它主要由单片机和可编程的CAN通信控制器组成。本文介绍这类节点的硬件设计和软件设计。软件设计包括SJA1000的初始化、发送和接收等应用中的最基本的操块子程序。引言CAN(ControllerAreaNetouseg(this)">SJA1000的AD0~AD7连接到89C51的P0口。CS连接到89C51的P2.0,P2.0为0的CPU片外

3、存储器地址可选中SJA1000,CPU通过这些地址可对SJA1000执行相应的读写操作。SJA1000的RD、R)和接收代码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER)的设置等。在完成SJA1000的初始化设置以后,SJA1000就可以回到工作状态,进行正常的通信任务。下面提供了SJA1000初始化的51汇编源程序。程序中寄存器符号表示的是SJA1000相应寄存器占用的片外存储器地址,这些符号可在程序的头部用伪指令EQU进行定义。后文对这一点不再作特别说明。CANINI:MO

4、VDPTR,#MODE;方式寄存器MOVA,#09H;进放复位模式,对;SJA1000进行初始化MOVXDPTR,AMOVDPTR,#CDR;时钟分频寄存器MOVA,#88H;选择PeliCAN模式,;关准备时钟输出(CLKOUT)MOVXDPTR,AMOVDPTR,#IER;中断允许寄存器MOVA,#0DH;开发发送中断、超;载中断和错误警告中断MOVXDPTR,AMOVDPTR,#AMR;接收屏蔽寄存器MOVR6,#4MOVR0,#DAM;接收屏蔽寄存器内容;在片内RAM中的首址AMR:MO

5、VA,R0MOVXDPTR,A;接收屏蔽寄存器赋初值INCDPTRDJNZR6,AMRMOVDPTR,#ACR;接收代码寄存器MOVR6,#4MOVR0,#DACR;收收代码寄存器内容;在片内RAM中的首址ACR:MOVA,R0MOVXDPTR,A接收代码寄存器赋初值INCDPTRDJNZR6,ACRMOVDPTR,#BTR0;总线定时寄存器0MOVA,#03HMOVXDPTR,AMOVDPTR,#BTR1;总线定时寄存器1MOVA,#0FFH;16MHz晶振情况下,;设置波特率为80kbpsM

6、OVXDPTR,AMOVDPTR,#OCR;输出控制寄存器MOVA,#0AAHMOVXDPTR,AMOVDPTR,#RBSA;接收缓存器起始;地址寄存器MOVA,#0;设置接收缓存器;FIFO起始地址为0MOVXDPTR,AMOVDPTR,#TXERR;发送错误计数寄存器MOVA,#0;清除发送错误计数寄存器MOVXDPTR,AMOVDPTR,#ECC;错误代码捕捉寄存器MOVXA,DPTR;清除错误代码捕捉寄存器MOVDPTR,#MODE;方式寄存器MOVA,#08H;设置单滤波接收方式;并返

7、回工作状态MOVXDPTR,ARET2.发送子程序发送子程序负责节点报文的发送。发送时用户只需将待发送的数据按特定格式组合成一帧报文,送入SJA1000发送缓存区中,然后启动SJA1000发送即可。当然在往SJA1000发送缓存区送报文之前,必须先作一些判断(如下文程序所示)。发送程序分发送远程帧和数据帧两种。远程帧无数据场。下面以发送数据帧为例对发送子程序作一个说明。TDATA:MOVDPTR,#SR;状态寄存器MOVXA,DPTR;从SJA1000读入;状态寄存器值JBACC.4,TDATA

8、;判断是正在接收,正在接收则等待TS0:MOVXA,DPTRJNBACC.3,TS0;判断上次发送是否完成,未完成则等待发送完成TS1:MOVXA,DPTRJNBACC.2,TS1:判断发送缓冲区是否;锁定,锁定则等待TS2:MOVDPTR,#CANTXB;SJA1000发送缓;存区首址MOVA,#88H;发送数据长度为8个;字节的扩展帧格式报文MOVXDPTR,AINCDPTRMOVA,#ID0;4个字节的标识符(ID0~ID3),;依据实际情况赋值MOVXDPTR,AINCDPTRMOVA,

9、#ID1MOVXDPTR,AINCDPTRMOVA,#ID2MOVXDPTR,AINCDPTRMOVA,#ID3MOVXDPTR,AMOVR0,#TRDATA;CPU发送数据区首;址,数据内容由用户定义MTBF:MOVA,R0INCDPTRMOVXDPTR,AINCR0CJNER0,#TRDATA+8,MTBF;向发送缓;冲区写8个字节MOVDPTR,#CMR;命令寄存器地址MOVA,#01HMOVXDPTR,A;启动SJA1000发送RET3.查询方式接收子程序接收子程序负责节点报文的接收以及

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。