新闻中心

EEPW首页 > 测试测量 > 设计应用 > 基于AVR处理器at90can128的CAN总线应用

基于AVR处理器at90can128的CAN总线应用

作者:时间:2011-02-15来源:网络收藏

  PAGE = ( 0 4) ; / /选择MOB0作为接收MOB, 并设定标识码

   IDT1= 0X00;

   IDM1= 0X00;

  ……

  CANPAGE = ( 1 4); / /选择MOB1作为发送MOB, 并设定标识码

  CAN IDT1= 0X00;

  ……

  }

  发送模块代码:

  CANPAGE = ( 1 4); / /选定MOB1

  If( ( CANGSTA 0X10) = = 0) / /查询CAN 状态寄存器的TXBSY 位, 为0, 则可以发送

  for( i= 0; i 8; i+ + )

  {

  CANMSG= my _dada[ i] ; / /将要发送的数据装入数据寄存器中, 共8 by te

  CANCDMOB | = 0X48; / /发送

  }

  接收模块代码是类似的, 设计思路都是在判断发送允许标志之后, 如果允许, 就将数据装入到指定的MOB中, 而每个MOB 一个发送周期一共可以发送8byte的数据。而CAN 总线的另一端是NXP公司LPC2294的CAN总线外围, 其结构和原理都差不多, 当然, 在寄存器设置中会有一点差别, 但只要两个CPU 约定好数据帧的标识符编号是什么, 传输速率相同, 就可以进行数据交换了。由于篇幅有限,LPC2294的CAN接口设置在此就不作介绍了。

  最后给出了CAN 总线应用CPU 外部的硬件原理参考图, 如图4所示。

  5 CAN 总线收发器TJA1050硬件连接图

  图中CAN 收发器为NXP公司的TJA1050, TXD和RXD分别连接到CPU 的CAN接口, CANL和CANH 则为与另一个CPU 连接的总线, CANL 和CANH 之间电阻值约为120欧姆, 开关S可以作为CAN 总线的硬件启用开关。另外, 如果在抗干扰要求高的场合, 可以对TXD 和RXD使用光电隔离。

CPU 外围收发器的硬件原理图


图4 CPU 外围收发器的硬件原理图。

  6 结束语

  基于at90的CAN 总线模块设计的电梯系统调试器, 经过长时间的检验, 使用良好, 通信正常无误。在众多的现场总线当中, CAN 总线凭借其优秀的特性已经为越来越多的工程人员认同和偏爱, 而随着越来越多的高端CPU 对CAN 控制器的集成和综合成本的下降, CAN 总线的使用必定会越来越普遍, 其中集成CAN 控制器的8位 也会受到越来越多人的青睐。



上一页 1 2 3 下一页

关键词: AVR 128 CAN can

评论


相关推荐

技术专区

关闭