基于CAN的程序下载器与通讯调试器设计

发布者:ping777最新更新时间:2016-06-07 来源: elecfans关键字:CAN  程序下载器  通讯调试器 手机看文章 扫描二维码
随时随地手机看文章
在电子产品的各种通讯方式中,CAN(Controller Area Network)总线以其高可靠性、实时性、传输距离远的特点得到广泛的应用,已经成为许多高档汽车(如奔驰、宝马等)车电系统的总线标准。于是出现了许多内部集成CAN控制器的单片机,如Atmel公司的T89C51CC0X系列单片机就是其中性价比较高的一款,它具有丰富的内部资源,支持CAN方式的在线编程。我们在使用此系列产品的过程中,针对其应用普遍但编程器较少的特点,开发了一款基于T89C51CC01CA芯片的CAN程序下载和CAN节点调试器,它既能对同类单片机进行编程,又能通过CAN总线对具有CAN通讯功能的设备进行调试。

2. 系统结构框图
2.1  系统原理框图。如图1所示,PC机通过高速的USB方式或低速的UART方式连接到下载调试器上,下载调试器将PC的消息封装成CAN命令帧的形式转发,完成下载功能或CAN节点调试功能。
 


2.2  调试器框图。如图1所示,当使用CAN调试器功能时,在CAN总线上可以挂接多个设备。CAN调试器作为一个智能终端,参与总线的运行。
2.3下载器原理框图。如图2所示,当使用下载器功能时,用户可以选择CAN下载方式或串口下载方式,但为了保证下载的正确性,每次只允许连接一个从设备。
 
图2:下载器原理框图
3. 下载调试器硬件及框图
下载调试器连接PC机和CAN总线上的节点,完成数据流格式的转换,并且利用内部的RAM空间对上/下行数据流的速度进行缓冲匹配。整个硬件主要分成四个部分:主控器件、通讯转换芯片、功能控制部分和电源部分。硬件框图和电路图分别为图3和图4。
 


3.1 主控器件
主控芯片为Atmel公司的T89C51CC01芯片,该芯片采用51内核技术,与其它单片机相比具有很多的优势:
 丰富的内部资源: 32Kbytes 片内Flash、 256bytes片内RAM、 1Kbytes片内XRAM、2Kbytes片内EEPROM、2Kbytes片内程序引导区、八通道10位AD等。
 内部集成完全支持V2.0A/V2.0B标准的CAN控制器,该控制器具有15个独立的邮箱,每个邮箱具有多种工作模式。消息的接收、发送、校验过程完全通过硬件来完成,不需要用户的干预。
 片内程序引导区支持ISP(In-Systerm Programming)和IAP(In-Application Programming)功能,使程序下载变得非常容易。
3.2 通讯转换芯片
下载调试器与PC机的接口芯片为PL2303,它完全支持USB协议V1.1,能够自动完成USB数据格式和UART数据格式间的转换。并且为了匹配两种方式的速度,该芯片分别为上传和下传的数据流配置了256字节的RAM。CAN总线的驱动芯片为ATA6660,它将TTL电平转换为差分信号输出,在通讯距离达到10km时,传输速率仍可达到50kbit/s。
3.3 控制电路
控制电路主要有三个功能:下载器功能或调试器功能选择,串口下载方式或CAN下载方式选择,硬件复位条件控制。            
4. 编程器功能
4.1 编程对象
编程器的主要服务对象为一系列支持CAN下载或串口下载的器件,如T89C51CC01/02/03等。T89C51CC01在保留51系列并行下载方式的基础上,又扩展了串口UART或CAN 的ISP(在线)下载方式。 T89C51CC01有两个系列,T89C51CC01UA芯片的程序引导区在生产时固化了UART引导程序,支持UART方式的在线下载功能;T89C51CC01CA芯片的程序引导区固化了CAN引导程序,支持CAN总线方式的在线下载功能。本文以CAN下载方式为例介绍下载原理。为了表达的方便,将用户的PC机称为主机,被编程的器件称为从机。
4.2  T89C51CC01CA芯片的程序引导区
T89C51CC01CA芯片内部有2Kbytes的程序引导区,分成3个部分:ISP通讯管理、函数调用管理、Flash存储器管理。“ISP通讯管理”部分管理从机引导程序区和编程器间的通讯,对编程器的串行数据流进行解释并转换为对从机Flash存储器的访问;“函数调用管理”为IAP提供各种函数;“Flash存储器管理”执行对从机Flash存储器底层的读、写操作。
4.3 编程流程
从机中固化的驱动程序遵守CAN2.0A标准帧协议格式,数据帧的11位标识符用来对目标器件和目标器件的寄存器寻址。因此将标识符的高8位作为基地址,用来区分不同的器件;将标识符的低3位作为偏移地址,用来代表不同的命令。编程器首先发送偏移地址为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下载方式的推广,这项技术也将得到进一步推广。

关键字:CAN  程序下载器  通讯调试器 引用地址:基于CAN的程序下载器与通讯调试器设计

上一篇:基于VT100的CAN现场总线系统在线调试技术
下一篇:基于CAN总线的汽车车身控制系统设计

推荐阅读最新更新时间:2024-05-03 00:26

Canalys:Q2全球TWS市场受AirPods拖累,增速明显放缓了
Canalys近日发布了TWS研究报告,该市场2021年第二季度整体仅出货5830万台,增长率降至6.4%,创三年以来新低,而全球个人智能音频市场出货量达9980万台,整体增长4.7%。 作为个人智能音频市场的领导者,苹果的增长率首次出现下滑,并呈现出放缓迹象。AirPods TWS设备的出货量在 2021 年第二季度下降了25.7%,降至1500万台,导致本季度整个TWS市场的增长低于往常。 虽然苹果仍然在TWS类设备中保持领先地位,但AirPods货量的下降导致苹果的市场份额在2021年第二季度跌至30%以下。 Canalys 研究经理 Jason Low 表示:“苹果出货量占比锐减的部分原因,是把去年表现强劲的季度的数据
[手机便携]
<font color='red'>Can</font>alys:Q2全球TWS市场受AirPods拖累,增速明显放缓了
基于LPC2119的USB-CAN转换设计
  引言   控制器局域网(controller area network,CAN)是20世纪80年代德国BOSCH公司为现代汽车应用而推出的一种多主机局部网,由于CAN总线具有可靠性高、功能完善、成本合理、实时性等优点,CAN总线早已不再局限于汽车行业,而被广泛应用于各个自动化控制系统中。目前CAN总线是国际上应用最广泛的现场总线之一。通用串行总线(universalserial bus,USB)作为一种协议规范,其除具有使用方便(即插即用)、功耗低、数据传输率高等优点外,还具有软硬件支持广泛、功耗低、硬件结构标准化和总线拓扑结构完备等特点。目前在以计算机为上位机的应用领域,都首选USB口作为计算机与外设的接口。   为了更好的
[单片机]
基于LPC2119的USB-<font color='red'>CAN</font>转换<font color='red'>器</font>设计
一种基于ARM和智能手机的蓝牙CAN分析仪设计
  针对CAN总线通信质量、测试和验证的需要,以及传统CAN分析仪的复杂性,且必须选择PC机作为显示终端的不足,论证了一种基于ARM单片机和智能手机的CAN总线分析仪设计。该分析仪采用以ARM单片机为核心的硬件电路完成对CAN网络的实时数据收集和监控;采用蓝牙通信方式实现分析仪与智能手机的通信并以智能手机为终端完成数据分析。文章对分析仪硬件、软件和智能手机页面进行了具体设计,提出了一种新的波特率自动检测方法,最后给出了所设计的 CAN总线分析仪的实际试验结果,可实现CAN总线波特率自动检测、正常监测以及CAN总线状态分析的功能。   CAN(controller area network)控制器局域网络是一种实时性强、灵活性好
[测试测量]
一种基于ARM和智能手机的蓝牙<font color='red'>CAN</font>分析仪设计
基于MSP430系列单片机的CAN总线接口转换卡设计
   1 引言   控制器局域网(Controller Area Network,简称CAN)是德国奔驰公司20世纪80年代为解决汽车众多控制设备与仪器仪表之间的数据交换开发的一种串行通信协议。它作为现场总线的一种广泛应用于各种工业现场,根据不同的需要或以主从方式、或以多主方式工作。CAN总线使用的通信介质为双绞线或其他电缆,传输速率可达lMb/s。CAN总线与其他通信网的不同之处有二:一是报文传送中不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符过滤报文,该收的收下,不该收的弃而不用。其好处是可在线上网下网、即插即用和多站接收;二是特别强化了对数据安全性的关注,满足控制系统及其他较高数据要求的系统需求
[应用]
车载网络:CAN和FlexRay 网络的时序分析
汽车数据总线 一辆典型的现代化汽车将同时装配各类总线和协议并从 LIN、CAN、FlexRay、MOST 和以太网中选择合适的网络。多媒体/视听信号和汽车环绕摄像系统需要更高的数据速率,因此汽车制造商和 OEM 厂商在网络解决方案上选择用以太网代替 MOST。但对于许多标准汽车功能而言,LIN 和 CAN 提供的带宽与性能就足够了。 在汽车架构中,ECU 组合在一起形成“集群”,这些集群通过通信“网关”相连。集群通常会共享同一类型的总线,因此要达到高可靠性、高速率的标准,就要采用 FlexRay 网络,但要求没那么高的门锁 ECU 可以由 CAN 或 LIN 来负责。ECU 网关往往要连接不同类型的信号,并执行不同总线架构之间
[嵌入式]
车载网络:<font color='red'>CAN</font>和FlexRay 网络的时序分析
Canalys:2021年Q3手机出货量苹果重回第二,华为荣耀没进前五
根据调研机构Canalys的最新报告,2021年第三季度,由于芯片短缺,供应商难以满足对设备的需求,全球智能手机出货量下降了6%。 三星依旧拿下了第一,其占有23%的份额,苹果份额提升至15%,重回第二,小米排名第三,份额为14%,vivo和OPPO则以10%份额并列第五名。 “芯片荒真的到来了,”Canalys首席分析师Ben Stanton表示。“智能手机行业正在尽最大努力最大限度地提高设备的产量。在供应方面,芯片厂商正在提高价格以抑制过度订购,以试图缩小供需之间的差距。尽管如此,短缺仍要到2022年才会缓解,再加上全球运费的高昂成本,智能手机品牌只能提高设备零售价。” 对比2021年第二季度的数据,可以发现三星的份额
[手机便携]
<font color='red'>Can</font>alys:2021年Q3手机出货量苹果重回第二,华为荣耀没进前五
什么是CAN信号中的位时间和位同步
CAN协议与其它现场总线协议的区别中有一个是:它使用同步数据传输而不是异步传输(面向字符)。这意味着传输性能得到更有效的发挥,但是另一方面,这需要更加复杂的位同步方法。 在面向字符的协议中的位同步实现起来很简单,在接受每个字符的起始位时进行同步。但在同步传输协议中,只有一帧的开始才有一个起始位。这通常不足以使接收器的位采样和发送器保持同步。为了使接收器在帧结束时也能正确采样到接收的位流,就需要接收器不断进行重新同步。重新同步表示在位流中每个有效的信号边沿都可对接收信号的时钟周期进行检测。在信号边沿间的最大时间周期内,发送和接受振荡器之间最大可能的时间差必须在一个位间隔内的标称采样点之前和之后通过足够的空闲时间( 相位缓冲段 )来
[网络通信]
什么是<font color='red'>CAN</font>信号中的位时间和位同步
Linux+QT+SocketCAN:使用信号槽机制实现数据收发
最近在考虑采用面对对象的方式重新搭建机器人的主控程序框架,虽然之前的框架也是有这种思想在里面,但是总感觉还是有程序化编程的影子,很多地方的处理都不太理想,而且虽然之前也是一直在采用QT Creator作为IDE开发程序,但是实际上并没有怎么用QT的库,只是单纯的作为一个IDE来用,未免也是空守宝山而不入。 因此这次决定充分利用QT的库和信号槽机制来对程序框架进行重新构建。 0.开发环境 HOST平台: Ubuntu16.04 ARM平台:at91sam9x35 QT版本: 5.13.1 1.分析 针对Linux上的CAN通信,Socket CAN提供了一种十分简单方便的解决方案,QT中并没有像QTcpSocket一样的库可以使
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved