首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于CAN总线与RS-485的DSP通信接口设计
来源:本站整理  作者:佚名  2009-08-26 10:35:15



  4.2软件设计

  4.2.1初始化CAN模块

  CAN模块的初始化包括初始化位时间和初始化邮箱。

  初始化位时间可按如下步骤进行(如图3所示):

  (1)在MCR寄存器中设置改变配置请求位:CANMCR=1000H;

  (2)配置BCR寄存器:CANBCR2=0000H; CANBCR1=0157H;

  (3)请求正常模式:CANMCR=0000H;

  初始化邮箱可以按照如下步骤配置邮箱(如图4所示):

  (1)禁止邮箱写0到CANMDER:CANMDER=0000H;

  (2)在CANMCR中设置改变数据域请求:CANMCR=0100H;

  (3)改变邮箱内容:数据可以只在发送邮箱中设置;

  (4)返回正常模式:CANMCR=0000H;

  (5)使能邮箱:CANMDER=0004H;

  4.2.2 发送消息

  为了实现CAN模块的消息发送,需要按照以下步骤配置发送过程:

  (1)对发送邮箱进行初始化

  禁止邮箱对CANMDER写0:CANMDER=0000H;

  在CANMCR中设置改变数据域请求:CANMCR=0100H;

  对发送邮箱设置消息ID: CANMSGIDnH=0E00H;CANMSGIDnL=000FH;

  设置消息控制域,即对CANMSGCTRLn进行写操作: CANMSGCTRLn=0008H;

  创建消息并写到CANMBXnA、CANMBXnB、CANMBXnC和CANMBXnD中:

  CANMBXnA=0ABCDH;CANMBXnB=0123H;CANMBXnC=0EF32H;

CANMBXnD=6789H;

  重新设置CANMCR的第8位,请求正常操作:CANMCR=0000H;

  允许邮箱对CANMDER寄存器进行写操作:CANMDER=0004H;

  (2)设置TCR寄存器的TRS位,请求发送消息:TCR=0010H;

  (3)等待发送确认(TCR寄存器的TA=1);

  (4)重新设置TA和发送标志:TCR=1000H;

  4.2.3 接收消息应用CAN模块接收外界消息时,需要对CAN控制器进行如下设置:

  (1)设置局部接收屏蔽寄存器。 LAM1H=8000H;

  (2)设置邮箱标识符和控制。

  禁止邮箱对MDER写0:CANMDER=0000H;

  写MCR寄存器申请改变数据域请求:CANMCR=0100H;

  对发送邮箱设置消息ID: CANMSGIDnH=0E00H;CANMSGIDnL=000EH;

  设置消息控制域:CANMSGCTRLn=0008H;

  重置MCR第8位,请求正常操作:CANMCR=0000H;

  允许邮箱写MDER寄存器:CANMDER=0044H;

  (3)等待接收确认和CANIFR的邮箱中断标志。

  (4)重置RMP和接收标志,必须对RMP写1: CANRCR=0040H;


图3 初始化位时间编程流程图


5.结论

  本文作者的创新点是:在工业控制领域中,往往是由一台主机控制多台从机,上位机和下位机的远距离通信通过串行通信实现。本设计综合实现了PC主机与DSP从机的RS-485远距离通信接口和DSP从机与CAN现场总线的数据传输接口设计,同时具备主从机的远距离通信和CAN现场总线设备的实时通信功能,具有广泛的应用前景。在设计中充分发挥了DSP的CAN模块和SCI模块的作用,使得接口设计简单,工作更加可靠。

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:159,644.50000 毫秒