首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于CAN的程序下载器与通讯调试器设计
来源:本站整理  作者:佚名  2010-04-08 18:53:38




编程器首先发送偏移地址为0的数据帧,进行通讯初始;接着编程器发送偏移地址为1的数据帧,选择编程区域(Flash或EEPROM),并设置编程的起始和结束位置;从机发回应答消息后,编程器通过偏移地址为2的数据帧连续发送编程数据;一个数据块发送完毕后,编程器继续选择需要编程的区域,直到完成整个写数据任务;此后编程器发送偏移地址为3的数据帧读取从机Flash或EEPROM中的数据,完成数据校验的任务。编程器也可以发送偏移地址为4或5的数据帧对一些配置字节进行修改。下载的流程图如图5:
 


    编程器使用FLIP软件,这个软件可以从Atmel公司的网站上免费获得。
5.CAN调试器功能
本设计的另一个重要功能是作为调试器使用,对具有CAN功能的节点进行通讯调试。主机通过高速的USB口与调试器通讯,调试器将主机的数据流封装成具有CAN2.0A或CAN2.0B格式的命令帧,再由CAN控制器发送到总线上;而接收到的报文经过相反的数据转换过程传回到主机上。
主机的CAN调试界面用VB程序编写的,分通用功能界面(图6)和面向应用的CAN总线调试界面(图7)两个部分。两种功能的侧重点不同,前一种主要用于节点的初期调试,重点在于实现节点间的通讯连接和节点状态测试;后一种用于实现具体的任务,重点在于节点间任务分配和全局时序响应。两个部分在功能上相互补充,满足不同层次的需要。
5.1   CAN总线调试器的通用功能界面设计
    CAN总线调试器的通用功能用来监测总线的状态、测试新的命令和接收不同节点的消息帧。例如当CAN总线上加入新的节点或总线出现故障时,可以用这种方式进行调试。如图7所示,用户根据具体的应用要求任意设置CAN的帧结构中的仲裁域、控制域和数据域中的所有位的值,发送各种命令帧;也可以加入报文过滤器,有选择的接收相关的消息帧。
此种方式的主要功能为:
 改变IDE位的值,选择发送标准帧或扩展帧;
 改变仲裁域中基本ID和扩展ID的值,将命令帧发送到CAN总线上的不同节点;
 修改RTR位的值,选择发送数据帧或远程帧;
 改变数据长度,发送不同长度的数据帧;
 改变通讯速率,测试通讯的可靠性,寻求速率和距离的最优解决方案;
 改变报文过滤器的值,接收特定ID范围内的消息帧,并实时显示;
 显示各种状态值,对总线的健康状态进行评估;
 将接收到的消息帧保存在用户指定的文件中,方便对数据的后期的分析处理; 
5.2  面向应用的CAN总线调试器界面设计
该方式面向用户的实际工程,根据任务的要求为CAN的帧结构中的各种域赋予明确的意义,例如ID码中就可以包含优先级、源器件地址和目标器件地址等。这种方式的重点是系统级任务的实现,因此将调试器作为总线上的智能节点,既能接收其它节点的报文,又能对其它节点发出命令,从而完全具备实际节点的所有功能,满足整个系统的时序要求。
如图8所示,为了使界面具有很好的可读性,将复杂的CAN消息的数字表达方式文字化,即用户对命令或报文过滤器内容设置完成后,可以为命令或报文过滤器指定一个名字。各种报文的发送和接收都以用户定义的文字来表示,程序自动在文字与CAN的帧结构间转换,从而具有很好的可读性。这种方式下的特点为:   
 系统配置文件的管理。每个工程的命令帧、报文过滤器的设置和接收的数据被保存在独立的配置文件中,通过“文件”菜单可以打开、保存和关闭工程的配置文件,而且可以在编辑当前工程配置文件的基础上生成新工程的配置文件,简化新工程的开发步骤。
 命令管理。在“发送命令”区显示了已经定义的命令,这些命令都以用户定义的名字表示,可以通过命令按钮添加、修改、删除命令,进行命令的后期维护。
 报文过滤。在“接收设置”区显示了用户可以接收的报文的ID,这些ID范围之外的报文将被屏蔽。通过命令按钮可以添加、修改、删除ID,并且在设置接收过滤的时候,可以指定接到报文后系统自动回复的消息内容,增加了软件的灵活性。
6. 结束语
本设计将编程器和CAN总线调试器集成到同一个器件中,开发了相应的操作软件,提高了器件的使用范围和方便性。随着CAN总线的广泛应用,以及CAN下载方式的推广,这项技术也将得到进一步推广。

上一页  [1] [2] 

关键词:

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

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

推荐阅读

图文阅读

热门阅读

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