微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于T89C51CC0X系列的程序下载器与通讯调试器设计

基于T89C51CC0X系列的程序下载器与通讯调试器设计

时间:11-19 来源:互联网 点击:
在电子产品的各种通讯方式中,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中的数据,完成数据校验的任务。编程

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top