基于can网络bootloader设计和实现

基于can网络bootloader设计和实现

ID:5244251

大小:30.00 KB

页数:8页

时间:2017-12-06

基于can网络bootloader设计和实现_第1页
基于can网络bootloader设计和实现_第2页
基于can网络bootloader设计和实现_第3页
基于can网络bootloader设计和实现_第4页
基于can网络bootloader设计和实现_第5页
资源描述:

《基于can网络bootloader设计和实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于CAN网络BOOTLOADER设计和实现  摘要单片机更新程序一般使用烧写器直接烧写来完成程序的更新下载,这种方法在实际产品使用中更新程序不便,本文提出一种基于CAN网络的在线更新应用程序的解决方案,设计开发了基于CAN网络的bootloader;并从bootloader的软件架构分析了软件实现的原理,对其中关键部分的实现做了较深入的阐述,提出了基于CAN自定义协议的单片机bootloader开发思路,具备一定的通用性。关键词USB;CAN;BOOTLOADER中图分类号:TP29文献标识码:A文章编号:1671-7597(2

2、013)11-0000-001系统结构Can-bootloader的实现基于如图1所示系统环境结构。图1其中:USB-CAN转接卡:实现USB总线到CAN总线的协议转换,通过该设备实现BCU的can总线与PC机的数据通信。下位机板卡:运行bootloader软件,接收S19镜像文件。PC机(windows):运行上位机程序,向BCU发送S19镜像文件。82通信协议BOOTLOADER通过CAN总线与USB-CAN卡通信,BOOTLOADER通过CAN总线接收从PC机发送过来的S19镜像文件(通过USB-CAN卡)进行BOOTLOA

3、DER的flash烧写。整个通信协议基于文本传输格式的异步文件传输协议,PC机和CAN卡之间以128字节块的形式传输数据,CAN卡与BOOTLOADER之间以8字节的形式传输数据,采用应答传输机制来配合USB高速端的流控,CAN卡将PC机传输过来的数据块以8字节发送,发完一整包(128字节)的数据后以ACK的形式通知PC机可以发送下一包数据。2.1上位机与CAN卡通信协议上位机与CAN卡之间通过USB总线连接,USB-CAN卡被windows识别为普通USB设备,上位机应用程序调用CAN卡的windows驱动程序进行数据读写,数据

4、包长(含包头)最大为128byte。具体实施协议如下所述(USB总线物理层具备CRC校验,所以协议不需对数据进行校验。2.1.1协议包数据格式协议数据包格式如图2所示。图2其中包长、包序号、标志皆为1byte,数据为0~125byte。具体含义如下:包长:指示本包数据长度8包序号:指示本包序列号,第一包序号约定为1,后续序号在0~255间循环。标志:指示本包数据是否为待传输文件的最后一包,若是起始包将标志置1,最后一包将标志置2,其他置0。2.1.2确认包格式确认包为接收方收到正确的数据后向发送方传输,固定为1byte,值为0x0

5、x06。#defineACK0x06。2.2CAN卡与BOOTLOADER通信协议CAN卡与BOOTLOADER之间数据包长固定为8字节。具体实施协议如下所述:2.2.1协议数据包格式(每个数据包含有125字节数据)协议数据包格式如图3所示。图3传输文件用到的基本数据包大小为125字节,若待传输文件的大小不是125字节的整数倍,那么最后一包数据报文的长度不足部分需以CTRLZ填充报文。2.2.2协议相关控制字符(文件以文本格式传送,以下控制字符不占用128个ascii码)SOH0x01;EOT0x04ACK0x06;NAK0x15

6、8CAN0x18;CTRLZ0x1A2.2.3协议传输概述传输启动:协议传输由数据接收方发起,接收方通过向发送方发送NAK报文,发送方收到后进入发送流程。传输过程:当发送方接收到接收方发送的第一个NAK后,发送方进入协议的传输过程,进入传输过程后发送方需将待传送数据按照图3所示数据包格式打包,最后将打包的成帧数据包传送。数据的发送接收采用ACK确认机制,发送方发送一包数据后需等待接收方的确认ACK,收到ACK后发送方才能继续发送数据;若通信的过程中发送方有可能收到NAK或CAN字节的异常处理报文,其中NAK表示接收方请求重发当前报

7、文,CAN字节表示接收方请求停止传输。结束传输:如果收发通信双方传输正常,发送方需向接收方发送EOT字节以通知接受方传输正常结束。接受方收到EOT字节之后需回送ACK进行确认。当然在结束传输的过程中接收方也可以发送CAN字节来强制停止传输(发送方收到CAN字节后不需再发EOT确认)。3USB-CAN转接卡设计83.1USB从设备驱动设计USB总线中的通信包含以下四种:控制传输、批量传输、中断传输、定时传输等四种。USB设备的枚举过程采用的就是控制传输。从设备枚举成功后,本设计的数据传输方案采用USB规范定义的中断传输和批量传输两种

8、传输方式来传输数据,其中中断传输用于收发控制数据,而批量传输用于传输数据。其中控制传输是重点和难点,当从设备插入USB集线器时,主机向从设备发送一个获取状态命令请求来验证设备是否激起重启状态。设备现在使用默认地址0x0与主机通信。通信流程如下所述:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。