基于SJA1000的CAN总线控制系统的设计与实现基于SJA1000的CAN总线控制系统的设计与实现.doc

基于SJA1000的CAN总线控制系统的设计与实现基于SJA1000的CAN总线控制系统的设计与实现.doc

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

基于SJA1000的CAN总线控制系统的设计与实现 作者:贺国栋 张瑞华 0 引言   CAN-bus(Controller Area Network)即控制器局域网是国际上应用最广泛的现场总线之一。最初CAN-bus被设计作为汽车环境中的微控制器通讯工具,用于在车载各电子控制装置ECU之间交换信息,从而形成汽车电子控制网络。如今,CAN-bus作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,已被广泛应用到各个自动化控制系统中。而且CAN-bus总线在通信能力、可靠性、实时性、灵活性、易用性、传输距离等方面较RS-485总线有着明显的优势。因而用CAN总线取代RS-485总线将是大势所趋。   1 CAN总线的主要特性   CAN总线与其它通信网的不同之处有二:一是报文传送中不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符来过滤报文,该收的收下,不该收的弃而不用。其好处是可在线上网下网、即插即用和多站接收;二是特别强化数据安全,可满足控制系统及其它较高数据要求的系统需求。CAN具有以下主要技术特性:   (1)CAN遵从ISO模型,采用了其中的物理层、数据链路层与应用层。采用双绞线,通信速率最高可达到1 Mbps/40 m,直接传输距离最远可达10 kin/5 kbps。同一段总线内最多可挂接110个设备。   (2)CAN的信号传输采用短帧结构,每一帧有效字节数为8个。因而传输时间短,受干扰的概率低。当节点发生严重错误时,CAN可自动关闭该节点,同时切断与总线的联系,以使总线上其它节点不受影响,因此CAN总线具有很强的抗干扰能力。   (3)CAN可支持多主工作方式,网络上任一节点在任何时候均可主动向其它节点发送信息,同时也支持点对点、一点对多点和全局广播方式来接收/发送数据。处于优先级低的节点会主动停止发送,以此来避免总线冲突。 2 CAN总线接口硬件电路的设计   硬件电路的设计主要是CAN通信控制器与微处理器之间和CAN总线收发器与物理总线之间的接口电路的设计。CAN通信控制器是CAN总线接口电路的核心,主要完成CAN的通信协议,而CAN总线收发器的主要功能是增大通信距离,提高系统的瞬间抗干扰能力,保护总线,降低射频干扰(RFI),实现热防护等。   2.1 CAN总线接口电路   SJA1000 硬件接口原理图如图l所示。图中,CAN总线控制器SJA1000的ADO-AD7连接到AT89C51的P0口。片选端CS取反后连接到AT89C51 的P2.7,当P2.7为1时,CPU片外存储器地址可选中SJA1000。CPU通过这些地址可对SJA1000执行相应的读/写操作 (即:SJA1000首地址为8000H)。SJA1000的RD、WR、ALE分别与AT89C51的对应引脚相连。由于SJA1000是低电平复位,而AT89C51是高电平复位,所以两者的复位端接法不同。另外,当SJA1000的11脚MODE接高电平时,可选择Intel二分频模式。 SJA1000的16脚(INT)是中断信号输出端,在中断允许的情况下,有中断发生时,16脚会输出由高电平到低电平的跳变,因此将AT89C51的外部中断输入脚(INT0)与该脚相连接,即可通过中断方式来访问SJA1000。为了增强CAN总线节点的抗干扰能力,本设计采用SJA1000的具有光电隔离的CAN总线接口。SJA1000的发送输出端TX0与接收输入端RXO、RX1分别经高速集成光电耦合器6N137隔离后,与CAN总线接口驱动芯片82C250的TXD和RXD相连,82C250直接与CAN物理总线相连。CAN总线驱动器PCA82C250是CAN控制器和物理总线之间的接口,具有可向总线的差动发送数据和CAN控制器的差动接收数据的功能。 2.2设计注意事项   在进行电路设计时应注意以下几点:   (1)总线两端必须接两个终端匹配电阻Rs,若忽略掉它们,会使数据通信的抗干扰性及可靠性大大降低。   (3)SJA1000 的TX1脚悬空时,RX1引脚的电位必须维持在约0.5Vcc上,否则,将不能形成CAN协议所要求的电平逻辑。因本系统传输距离近,环境干扰小,可以不用电流隔离,这样可以直接把82C250的Vref端(约为0.5 Vcc)与SJA1000的RX1相连,从而简化了电路设计。   (4)设计时将SJA1000的CLOCKOUT的时钟信号接至AT89C51的时钟电路输入端,来作为AT89C51的外部时钟输入,从而解决了时钟同步问题:同时将SJA1000中断输出信号/INT接至AT89C51的/INT0端,通过中断方式与AT89C51进行通信。   3系统软件设计   系统上电后首先对82C250和SJA1000进行初始化。以确

文档评论(0)

cduutang + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档