网站大量收购闲置独家精品文档,联系QQ:2885784924

基于CAN总线应用设计.ppt

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于CAN总线应用设计.ppt

基于CAN总线应用设计 智能家居方面的应用 序言 CAN总线因其卓越的性能,应用不再局限于汽车工业,已被广泛应用到自动控制、楼宇自动化、医学设备等各个领域。针对目前智能家居控制器功能较少、通信能力差的特点,我们在智能家居环境中,采用分布式系统的思想,构建了一个安全快速的CAN网络通讯系统,实现各子系统间的通信,实验证明该方案可以提升家居环境的智能化、人性化。本文重点就基于单片机的CAN总线通信设计的实现进行介绍。 CAN总线在智能家居应用的原因 CAN总线具有优良的性能和极高的可靠性,在智 能家居环境中采用CAN总线技术,提高了系统内部 的通信速率、实时性,降低了误码传送率。已实现 且运行在智能家居系统中的内部通信,工作可靠, 性能稳定。 实验模块 智能家居环境包含很多方面,各设备、子系统不 但要相互联系而且整个系统还要与外界联系,还完 成错误检测、仲裁、总线填充和错误处理等功能。所以通信可分成基于总线的内部通信网络和基于 电话以及计算机的远程通信网络。本文仅涉及内部通信网络,虽然各种设备繁多,但通信机理是相同的,所以下文以温度自动控制系统为例进行实验,系统结构如下图所示。 温度自动控制系统图 系统总图 温度自动控制系统结构 硬件设计 温度自动控制系统由一个中心监控主机节点、两个温控点组成,三者之间通过CAN总线发送接收数据包。节点的通信核心芯片为CAN控制器和CAN驱动收发器。 1)CAN控制器sJA1000 SJA1000可完成链路层的全部功能。基本模式支持 CAN2.0A协议,增强模式支持CAN2.0B协议。 由接口管理逻辑、发送缓冲器、接收缓冲器(RXFIF0)、接收过滤器、位流处理器 (BSP)、 位时序逻辑 (BTL)和错误管理逻辑(EML)等组成。 PCA82C250的结构框图 2)CAN驱动收发器PCA82C250 PCA82C25O驱动收发器是CAN控制器(SJA1000)和物理传输线路之间的接口。可以用高达 1Mbps的位速率实现在两条差动电压总线电缆上的数据传输。 CAN总线接口模块电路 解图 接口电路如上所示,sJA1000的ADO—AD7口直接 与与单片机AT89S52的P2口连接,SJAl000的ALE、 RD、wR和单片机 AT89S52对应 AIE、RD、WR相连,SJAl000的片选 CS接单片的一个普通 I/O 口P1.3, MODE接+5V设置SJA1000控制器为Intel模式,中断输出信号INT与单片机的INT1连,使CAN通信可以采用中断或查询两种方式。时钟晶振统一采用 12MHz,频率调整电容C5、C6一般取 15~30pF,设计中取20pF。 R11、R12连接控制器和驱动器为限流保护电阻,为避免当驱 动器失效时出现过流导致控制器损坏,设计中取 390欧姆。R14为终端电阻,设计中取120欧姆。CAN 驱动器 PCA82C250的RS脚为工作模式选择位,接地工作于高速模式,接高工作于待机模式 。 本设计系统通过电阻R13将芯片设定于斜率控制模式,电阻值通常为16~140k欧姆,这里取为20~33k欧姆,这时 CAN总线应工作于低速模式,可提高CAN总线抵抗射频干扰的能力。在这种情况下,可直接使用非屏蔽双绞线或平行线作为总线。 软件设计 本设计中CAN控制器SJA1000工作模式为增强模式,支持CAN2.0B协议。帧格式采用扩展帧,扩展帧有29个标识符,占用4个字节空间。高16位为接收节点的ID (当为广播报文时,就为0x00),低16位为发送节点的ID(这些配置是在节点初始化 SJA1000中进行)。对SJA1000配置,采用是双滤波验收,以决定该报文是否可以被节点接收。本设计用CAN总线4种帧类型中的数据帧制定自己的通信规则。该系统数据通信是由中心监控主机发起,中心监控主机发送命令,然后温控节点接收命令再执行相应的操作,比如回送当前的温度数据、当温度异常时执行解除温度异常的行为(通过继电器切断电路)等。接收报文采用中断方法。即当CAN总线控制器接收到一帧有效报文(通过滤波验收),其INT引脚跳变为低电平触发单片机的外中断l,然后通过中断子程序将报文读人单片机。SJA1000可以产生4种中断,但占用的是一个硬件中断资源,因此,需要软件区分中断源。对于接收中断,将最多8字节的数据放入在内存中开辟的缓冲区,置相应标志通知主程序,主程序在合适的地方再进行数据处理。数据接收后,必须执行一次释放CAN接收缓冲器的命令,以便下一次数据的接收。

您可能关注的文档

文档评论(0)

我的文档 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档