了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序)。

PIC18 CAN bootloader 是元旦前几个星期就完成了, 但是由于一直忙, 所以直到现在才有时间整理并介绍给大家。 PIC18 CAN bootloader 和 PIC18 UART bootloader 的软件架构非常相似,都是三层架构,不同之处就是UART driver被替换成CAN driver。 CAN driver 的实现参考了Microchip的应用笔记AN738。三层架构如下:

  PIC18 CAN bootloader的上位机是zFlash。 zFlash是一款Windows程序,我使用C#语言和Visual Studio 2013 开发的这款强大的bootloader 上位机。 zFlash一直在更新。从最开始只支持UART bootloader, 接着支持SPI bootloader, 然后支持I2C bootloader。 现在zFlash支持CAN bootloader。 zFlash上位机和bootloader 之间的通信采用自定义协议。 zFlash的界面如下:

zFlash和CAN bootloader之间是通过我自己开发的一个CAN 总线分析仪Z-Box CAN。他们之间的连接如下图:

PC上运行在zFlash, USB-2-CAN是CAN 总线分析仪Z-Box CAN。用户板上烧录了CAN bootloader。我的用户板上面的芯片是PIC18F25K80,是美国Microchip的一款带有CAN controller的8-bit 单片机。

Z-Box CAN 是一款强大的CAN 总线分析仪,其金属外壳一边是方形USB 口通过USB线连接电脑,一边是DB9口连接CAN bus。内部是进口芯片,信号有隔离。可以安全可靠地工作在复杂的工业场所,或用来分析汽车上各ECU之间的CAN 总线。Z-Box CAN外形方正,非常漂亮,并且有质感。见图:

Z-Box CAN最强大的地方是busmaster 支持它。busmaster(又称博世总线大师)是一种开源软件工具,用于模拟,分析和测试CAN / LIN总线系统。 它支持DBC,CAPL语言,节点模拟,自动测试, C语言脚本,log保存等等强大的功能。我在其开源代码的基础上进行添加,使其可以识别并连接我开发的Z-Box CAN。打开bumaster我的版本,找到Driver Selecion,选择Z-Box CAN,点击Connect, 既可以开始愉快的使用了。

PIC18 bootloader之CAN bootloader的更多相关文章

  1. PIC18 bootloader之UART bootloader

    了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 应客户要求, 将PIC ...

  2. PIC16 bootloader之UART bootloader

    了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). PIC16 bootl ...

  3. 【Bootloader】探究bootloader,分析u-boot源码

    Preface 之前也发表过关于<Bootloader启动过程分析>的文章,但是内容表达得比较抽象,大多是文字叙述,所以这里从系统和代码的角度来深入分析bootloader的启动过程. 工 ...

  4. BLE CC2541 串口BootLoader 即 SBL BootLoader 资料 收集

    1.[CC254X_Bootloader]SBL(串口Bootloader)使用说明 2.CC2540协议栈高速串口通信解决(UART的DMA方式) 3.[BLE]CC2541之SBL 4.[BLE] ...

  5. 了解BootLoader——基于MPC5744P Bootloader例程

    一.BootLoader的作用:BootLoader是固化在PFlash中的一个程序,其作用可以分为两部分:boot和load. (1)boot:MCU上电时首先会运行BootLoader程序(因为它 ...

  6. S32Kxxx bootloader之CAN bootloader

    了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 最近完成了S32Kxx ...

  7. S32Kxxx bootloader之UDS bootloader

    了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 两周前完成了基于UDS ...

  8. C语言PIC18 serial bootloader和C#语言bootloader PC端串口通信程序

    了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 新PIC18 Boot ...

  9. 自己用C语言写RL78 serial bootloader

    了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 之前用C实现过多款PI ...

随机推荐

  1. 【Java多线程】CompletionService

    什么是CompletionService? 当我们使用ExecutorService启动多个Callable时,每个Callable返回一个Future,而当我们执行Future的get方法获取结果时 ...

  2. spring基于注解的声明式事务控制

    package com.hope.service.impl;import com.hope.dao.IAccountDao;import com.hope.domain.Account;import ...

  3. c3p0的使用步骤

    //1.导入c3p0的连个包,和mysql的驱动包//2.配置c3p0.xml的配置文件 <c3p0-config> <!-- 使用默认的配置读取连接池对象 --> <d ...

  4. 【力扣】146. LRU缓存机制

    运用你所掌握的数据结构,设计和实现一个  LRU (最近最少使用) 缓存机制.它应该支持以下操作: 获取数据 get 和 写入数据 put . 获取数据 get(key) - 如果关键字 (key) ...

  5. Taro 微信小程序 上传文件到minio

    小程序前端上传文件不建议直接引用minio的js npm包,一来是这个包本身较大,会影响小程序的体积,二来是ak sk需要放到前端存储,不够安全,因此建议通过请求后端拿到签名数据后上传. 由于小程序的 ...

  6. SharedWorker实现多标签页联动计时器

    web workers对于每个前端开发者并不陌生,在mdn中的定义:Web Worker为Web内容在后台线程中运行脚本提供了一种简单的方法.线程可以执行任务而不干扰用户界面.此外,他们可以使用XML ...

  7. 为什么要用urlencode()函数进行url编码

    URLEncode就是将URL中特殊部分进行编码.URLDecoder就是对特殊部分进行解码. 因为当字符串数据以url的形式传递给web服务器时,字符串中是不允许出现空格和特殊字符的 譬如:你要传的 ...

  8. 【论文笔记】Modeling User Exposure in Recommendation

    Modeling User Exposure in Recommendation [论文作者]Dawen Liang, David M. Blei, etc. WWW'16 Columbia Univ ...

  9. 突出显示(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 当一个大的项目文件做好以后,查看全部内容,肉眼多少会有点吃不消,这时就需要"划重点".在Porect里 ...

  10. AtCoder Beginner Contest 184 题解

    AtCoder Beginner Contest 184 题解 目录 AtCoder Beginner Contest 184 题解 A - Determinant B - Quizzes C - S ...