第四章CAN总线及通信技术技术方案.ppt

  1. 1、本文档共123页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图4.28 CAN 总线系统节点硬件电路原理图 3 . 软件设计 (1) CAN-bus通信的总体流程 系统上电后的任务: ? 根据SJA1000的硬件和软件连接设置主控制器; ? 设置CAN 控制器用于通讯的各控制器,如模式、验收滤波器、位定时等数值。 在应用的主过程中的任务: ? 准备要发送的报文,并激活SJA1000发送它们; ? 处理CAN控制器接收的报文信息; ? 在通讯期间对发生的错误进行处理。 程序结束 控制器上电复位 等待至SJA1000完全上电复位 配置控制线路(中断、复位、片选等),建立控制器和SJA1000之间的通信 初始化TJS1000 主程序和中断服务程序,包括与SJA1000通信 程序开始 图4.31 通信的总体流程 (2) 通信软件设计 CAN 总线节点的通信软件设计主要包括三大部分:CAN 节点初始化程序;报文发送程序;报文接收程序。 如果通信任务比较复杂,还要需详细了解有关CAN 总线错误处理、总线脱离处理、接收滤波处理、波特率参数设置和自动检测以及CAN 总线通信距离和节点数的计算等方面的内容。 下面就初始化程序和报文发送程序的设计进行简要介绍。 ① 初始化子程序 SJA1000 的初始化只有在复位模式下才可以进行。 初始化主要包括:工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器AMR 和接收代码寄存器ACR 的设置、波特率参数设置、和中断允许寄存器IER的设置等,在完成SJA1000 的初始化设置以后,JA1000 就可以回到工作状态进行正常的通信任务。 方式寄存器进入复位模式,对SJA1000 进行初始化 时钟分频寄存器选择PeliCAN 模式或BasicCAN 关闭时钟输出CLKOUT 设置中断允许寄存器,禁止发送中断\超载中断和错误警告中断 设置接收屏蔽寄存器内容的首址,接收屏蔽寄存器赋初值 设置接收代码寄存器内容的首址,接收代码寄存器赋初值 设置总线定时寄存器0和总线定时寄存器1 设置接收缓存器FIFO 起始地址 清除发送错误计数寄存器、错误代码捕捉寄存器、清除错误代码捕捉寄存器 方式寄存器设置单滤波接收方式 结束初始化返回工作状态 初始化子程序 图4.33 初始化子程序框图 ② 发送子程序 发送子程序负责节点报文的发送。发送时用户只需将待发送的数据按特定格式组合成一帧报文,送入SJA1000 发送缓存区中,然后启动SJA1000 发送即可。在向SJA1000发送缓存区送报文之前,必须先作一些判断 从SJA1000 读入状态寄存器值判断是否正在接收,正在接收则等待 判断上次发送是否完成,未完成则等待发送完成 判断发送缓冲区是否锁定,锁定则等待 CPU向发送缓冲区写8 个字节帧格式报文并形成4 个字节的标识符ID0-ID3, 通过命令寄存器启动SJA1000 发送 发送子程序 图4.34 发送子程序框图 * 4.4.3 CAN BUS节点设计举例 1.网络拓朴 CAN-bus采用总线网络拓朴结构,在一个网络上至少需要有2个CAN-bus 节点存在。在总线的2个终端,各需要安装1个120?的终端电阻;如果节点数目大于2个,中间节点就不要求安装120?终端电阻。 终端电阻 CAN-bus 节点1 CANH CANL 节点2 CANH CANL 节点3 CANH CANL 节点4 CANH CANL 图4.26 CAN总线网络拓朴示意图 虽然每一个节点根据应用系统的任务有各自控制功能,但完成CAN-bus信息交换的功能是相同的。CAN bus节点一般由微处理器、CAN控制器、CAN收发器三部分组成。 微处理器 CAN控制器 CAN收发器 RX TX CAN 总线 控制装置、传感器、变送器、人机接口等 CAN Bus 节点 图4.27 CAN bus节点示意图 2.硬件设计 如图4.28所示为CAN 总线系统节点硬件电路原理图。从图中可以看出,电路主要由三部分所构成,微控制器89C51、 独立CAN通信控制器SJA1000、CAN总线收发器82C250。微处理器89C51负责SJA1000的初始化,通过控制SJA1000实现数据的接收和发送等通信任务。 SJA1000的AD0--AD7连接到80C51的P0口,/CS连接到80C51的P2.7,P2.7为0的CPU片外存贮器 地址可选中SJA1000,CPU通过这些地址可对SJA1000执行相应的读写操作,SJA1000的/RD、/WR、ALE分别与80C51的对应引脚相连,/INT接80C51的0INT,80C51也可通过中断方式访问SJA1000。SJA1000的CLKOUT信号作为80C

文档评论(0)

挺进公司 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档