can总线节点软件设计摘要

can总线节点软件设计摘要

ID:12992280

大小:31.50 KB

页数:3页

时间:2018-07-20

can总线节点软件设计摘要_第1页
can总线节点软件设计摘要_第2页
can总线节点软件设计摘要_第3页
资源描述:

《can总线节点软件设计摘要》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、CAN总线节点软件设计CAN总线节点要有效、实时地完成通信任务,软件的设计是关键,也是难点。它主要包括节点初始化程序、报文发送程序、报文接收程序以及CAN总线出错处理程序等等。CAN控制器芯片SJA1000的内部寄存器是以作为微控制器的片外寄存器存在并作用的。微控制器和SJA1000之间状态、控制和命令的交换都是通过在复位模式或工作模式下对这些寄存器的读写来完成的。在初始化CAN内部寄存器时注意使得各节点的位速率必须一致,而且接、发双方必须同步。报文的接收主要有两种方式:中断和查询接收方式。为提高通信的实时性,文中采用中断接收方式,而且这样也可

2、保证接收缓存器不会出现数据溢出现象。SJA1000的BasicCAN工作模式是与其前一款PCA82C200独立控制器相兼容的模式,而PeliCAN工作模式支持CAN协议中的更多功能,它的程序设计也与之有所不同。下面给出SJA1000工作在模PeliCAN式下的节点初始化、报文发送、报文接收的196汇编源程序。INITIALIZE:初始化子程序LDBAL,#09H;初始化模式寄存器进入复位模式STBAL,MODE;选择单滤波方式LDBAL,#88H;时钟分频器STBAL,CDR;选PeliCAN模式LDBAL,#00HSTBAL,ACR0;初始化

3、接收代码寄存器LDBAL,#60HSTBAL,ACR1LDBAL,#00HSTBAL,AMR0;初始化接屏蔽寄存器LDBAL,#3FH;只接收标识符为2,3的报文STBAL,AMR1LDBAL,#8FHSTBAL,IER;中断使能寄存器LDBAL,#01H;总线定时寄存器0、1的设置STBAL,BTR0;LDBAL,#1CH;在16MHz晶振情况下STBAL,BTR1;波特率设置为250LDBAL,#0AAHSTBAL,OCR;输出控制器寄存器设置LDBAL,#0H;接收缓存器起始地址设为0STBAL,RBSA;LDBAL,#01H;ORBAL

4、,MODE;STBAL,MODE;返回工作模式RETTRANSMIT:;发送子程序LDBAL,SRSRCVE:JBSAL,4,SRCVE;正接收STRSV:JBCAL,3,STRSV;发送成功STBF:JBCAL,2,STBF;发送缓存器锁定否WID:LDBAL,#08HLDBX,#TXB;发送缓存的首址STBAL,[BX]+;传送两个字节的标识符LDBAL,#ID0STBAL,[BX]+LDBAL,#ID1STBAL,[BX]+LDBCOUT,#08H;8个字节数据TDATA:LDBAL,[DATA]+CPU内的发送数据缓存区首址STBAL,

5、[BX]+;DJNZCOUT,TDATA;8个字节发完否?LDBAL,#01H;STBAL,CMR;发送RETRECEIVE:;接收中断程序PUSHF;保护现场LDBAL,IRJBCAL,0,OTHER;接收中断否?LDBX,#RXB;接收缓存器首址LDBAL,[BX]+JBCAL,6,RCDATA;标识符的RTR=1?LDBAL,#04H;是远程帧,释放接收缓存区STBAL,CMR;LCALLTRANSMIT;相应远程帧,发送相应数据SJMPBACKRCDATA:ANDBAL,#0FH;取低四位数据长度ADDBAL,#03H;STBAL,R1

6、;该报文含有的字节数LDBX,#RXB;接收缓存器的首地址LDCX,#CRBF;CPU内的接收数据缓存区首址RECE:LDBAL,[BX]+STBAL,[CX]+INCBR1DJNZR1,RECE;接收完否?LDBAL,#04HSTBAL,CMR;释放接收缓存区BACK;POPFRET系统软件设计(1)CAN总线通讯模块CAN总线测控系统的通信软件分为3部分:CAN初始化、数据发送和数据接收。①CAN初始化其主要是设置CAN的通信参数。需要初始化的寄存器有:模式寄存器(PeliCAN模式)、时分寄存器、接收代码寄存器、屏蔽寄存器、总线定时寄存器

7、、输出控制寄存器等。需要注意的是,这些寄存器仅能在复位期间可写访向,因此,在对这些寄存器初始化前,必须确保系统进入了复位状态,并且系统中各CAN控制器的总线定时寄存器的初始化字必须相同。②数据发送现场的各传感器把环境多参数的检测信号(数字量、模拟量、开关量)进行转换处理后,发向CAN控制器的发送缓冲区,然后启动CAN控制器的发送命令,此时CAN控制器将自动向总线发送数据,不再需传感器的微控制器进行干预。若系统中有多个传感CAN控制器同时向总线发送数据,则CAN控制器通过信息帧中的标识符来进行仲裁,标识符数值最小的CAN控制器具有对总线的优先使用

8、权。③数据接收整个温室微机测控系统中的CAN控制器检测到总线上有数据时会自动接收总线上的数据,存入其接收缓冲区,并向89C52微控制器发送接收中断,启

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

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

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