嵌入式以太网社区

?找回密码
?立即注册
搜索
365bet官网足球官方开户网利用Python来控制STM32365bet官网足球官方开户网365bet官网足球官方开户网
STM32高速USB数据传输方案,支持多系统!STM32全速USB数据传输方案,支持多系统!Flash高速烧写方案STM32 HID IAP/Bootloader升级方案
查看: 10403|bet365体-在线体育投注_365体育投注地址_365体育投注登录: 36
打印 上一主题 下一主题

开源基于CAN总线的Bootloader(IAP)——包含上位机及单片机源码

[复制链接]

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
跳转到指定楼层
楼主
发表于 2016-12-9 14:23:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 飞鸿踏雪 于 2019-2-25 09:33 编辑

功能简介:
  • 利用CAN总线实现对有CAN总线接口的设备进行固件升级;
  • 升级采用一键升级方式,傻瓜式操作,方便使用;
  • 用户可以自己修改上位机源码和下位机源码,实现固件的加密传输;
  • 目前此项目包含了STM32F1,STM32F2,STM32F4系列单片机示例源码,后面会增加其他单片机源码;
  • 上位机界面程序目前是用Qt(C++)实现,后面会增加C#,Labview版本代码;

使用步骤:
1,找到和你所使用的单片机对应的源码,比如为STM32F103芯片,用keil 5打开bootloader/RVMDK目录下的工程,检查下你的CAN总线引脚配置是否跟我代码里面的一样,若是一样的,则可以直接编译下载,若不一样,则需要更改CAN总线引脚配置部分代码;
2,和bootloader同目录下有个app目录,同样打开app/RVMDK目录下的工程文件,并编译工程,若一切正常的,那么在app/RVMDK/Output目录下应该会生成一个.bin文件,这个就是我们后面用来升级的固件;
3,使用Qt5打开software/CANBootloader-Qt/project目录下的CAN_Bootloader.pro文件,点击“构建”->“运行”即可编译运行此程序(若没有Qt开发环境,可以直接下载我打包好的程序,安装后即可运行,百度网盘下载地址:http://pan.baidu.com/s/1hsFjZMk ,在“软件”->“CANBootloader”目录)。
4,运行CANBootloader上位机软件后,点击“操作”->“扫描节点”,此时软件会弹出节点地址范围设置对话框,设置好扫描的节点返回,点击“确定”之后软件就开始扫描节点,同时将扫描到的节点显示在节点列表里面,选择列表里面的节点,然后再点击界面上的“打开文件”按钮,在弹出的文件浏览对话框中找到第2步编译出来的.bin文件,然后再点击“更新固件”按钮,此时就会开始固件更新,固件更新成功后,节点列表里面的节点固件类型会由原来的“BOOT”变成“APP”,到此固件更新完毕。
5,若当前固件是“APP”的情况下,一样是可以进行固件更新的,只是在更新固件之前程序会有一个固件跳转的操作,具体流程可以参考源码。

软件演示:


源码下载:
https://github.com/usbxyz/CAN-Bootloader
上位机软件安装程序下载:http://pan.baidu.com/s/1qY6gkJa

已经有新版本的协议和代码了,新的升级点如下:
  • 之前数据传输会用到多个ID,而且节点地址也定义在ID中,实际使用中发现这样做非常不合理,因为CAN的ID对于一个CAN网络来说非常宝贵,特别是在汽车CAN网络中,这样传输协议会浪费大量的帧ID,而且很多时候也是不允许这样做的,所以新版本的协议数据传输可以用一个ID实现,最多2个ID(可以自己配置)。
  • 新版本的协议在进行多个节点同时更新时,稳定性和可靠性更高,之前的版本无法获取每个节点的更新状态,所以在更新的时候若某个节点更新出错是无法知道的,而新版本的协议弥补了这个不足。
  • 之前版本的协议在数据传输出错后没法知道数据是传输出错还是写入芯片出错,新版本的协议弥补了这个不足,若发现数据传输出错,可以对数据进行重新传输。
  • 新版本的协议在对数据进行块传输时增加了每一帧的数据包序号,如此可以更加可靠的传输数据,从节点接收到数据后也更容易对数据进行重新组包。
  • 新版本协议在制定的时候考虑到了使用其他总线进行更新,比如UART,SPI,IIC,LIN等,所以通用性更强,同样的代码更容易移植到使用其他总线进行更新。
需要的可以联系我,免费提供协议和源码!!

人生到处知何似,应似飞鸿踏雪泥。

13

帖子

0

主题

107

金币

注册会员

Rank: 2

积分
140
沙发
发表于 2016-12-15 21:20:09 | 只看该作者
很好用,太有用了。

20

帖子

0

主题

11

金币

注册会员

Rank: 2

积分
63
板凳
发表于 2016-12-18 17:36:42 | 只看该作者
牛逼,看起来不错

3

帖子

0

主题

22

金币

新手上路

Rank: 1

积分
31
地板
发表于 2016-12-18 22:36:29 | 只看该作者
好东西,关键没时间研究!!

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
5#
?楼主| 发表于 2016-12-19 12:46:50 | 只看该作者
协议说明文档,Labview程序源码,C#版本程序源码已经提交到github
人生到处知何似,应似飞鸿踏雪泥。

10

帖子

0

主题

9

金币

注册会员

Rank: 2

积分
52
6#
发表于 2016-12-22 14:28:57 | 只看该作者

很好用,太有用了。

7

帖子

1

主题

349

金币

中级会员

Rank: 3Rank: 3

积分
380
7#
发表于 2017-1-2 14:30:43 | 只看该作者
现在我是计划将你上位机做成一个手持设备,这样方便于携带。

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
8#
?楼主| 发表于 2017-1-2 16:05:47 | 只看该作者
596142041 发表于 2017-1-2 14:30
现在我是计划将你上位机做成一个手持设备,这样方便于携带。

没问题啊,我们的USB2CAN适配器支持安卓设备
人生到处知何似,应似飞鸿踏雪泥。

1

帖子

0

主题

10

金币

新手上路

Rank: 1

积分
13
9#
发表于 2017-1-9 08:42:29 | 只看该作者
Word楼主,这就厉害了呀,佩服!

56

帖子

3

主题

66

金币

注册会员

Rank: 2

积分
156
10#
发表于 2017-2-27 14:31:55 | 只看该作者
有没有直接通过IO 在安卓端 驱动 CAN控制器的 方案

40

帖子

1

主题

23

金币

注册会员

Rank: 2

积分
110
11#
发表于 2017-3-8 18:58:06 | 只看该作者
哎呦,不错喽。别怪我刷屏,哎呦,不错喽。别怪我刷屏,

67

帖子

4

主题

1195

金币

金牌会员

Rank: 6Rank: 6

积分
1424
12#
发表于 2017-6-6 12:11:20 | 只看该作者
这个才发现,非常好,支持楼主!

47

帖子

0

主题

31

金币

注册会员

Rank: 2

积分
146
13#
发表于 2017-6-15 12:10:59 | 只看该作者
牛逼,不错,很好用,太有用了。

66

帖子

2

主题

238

金币

中级会员

Rank: 3Rank: 3

积分
415
14#
发表于 2017-6-15 19:41:56 | 只看该作者
非常好,支持楼主。

7

帖子

1

主题

349

金币

中级会员

Rank: 3Rank: 3

积分
380
15#
发表于 2017-6-16 21:24:50 | 只看该作者
楼主你好!我目前是在你的基础上再根据我手上的USB_CAN来做更改,现在有有一个问题就是你USB_CAN的超时是怎么实现的.目前是使用的是你Qt程序更改.

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
16#
?楼主| 发表于 2017-6-17 09:12:36 | 只看该作者
596142041 发表于 2017-6-16 21:24
楼主你好!我目前是在你的基础上再根据我手上的USB_CAN来做更改,现在有有一个问题就是你USB_CAN的超时是怎么 ...

就是在规定时间内没等到回应就超时了
人生到处知何似,应似飞鸿踏雪泥。

7

帖子

1

主题

349

金币

中级会员

Rank: 3Rank: 3

积分
380
17#
发表于 2017-6-18 21:32:38 | 只看该作者
飞鸿踏雪 发表于 2017-6-17 09:12
就是在规定时间内没等到回应就超时了

嗯,你这超时是在USB_CAN中实现的还是在上位机中实现的

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
18#
?楼主| 发表于 2017-9-12 10:20:13 | 只看该作者
596142041 发表于 2017-6-18 21:32
嗯,你这超时是在USB_CAN中实现的还是在上位机中实现的

上位机中实现的
人生到处知何似,应似飞鸿踏雪泥。

7

帖子

1

主题

349

金币

中级会员

Rank: 3Rank: 3

积分
380
19#
发表于 2017-9-22 21:54:46 | 只看该作者

多谢你的bet365体-在线体育投注_365体育投注地址_365体育投注登录,我已经修改好了,我在你的基础上对你提供的上位进行了完善,能够实现对TI的DSP芯片进行烧写,并且支持bin文件和hex文件烧写,后续我将源代码共享出来给大家参考参考,是基于我自己的CAN.

68

帖子

4

主题

24

金币

金牌会员

Rank: 6Rank: 6

积分
1082
20#
发表于 2017-10-19 11:32:07 | 只看该作者
非常好,感谢楼主。

55

帖子

0

主题

32

金币

新手上路

Rank: 1

积分
175
21#
发表于 2017-12-6 08:38:53 | 只看该作者
不错,蛮好的。

3

帖子

0

主题

0

金币

新手上路

Rank: 1

积分
9
22#
发表于 2017-12-27 17:06:26 | 只看该作者
不错的资料??!可以尝试下??

3

帖子

0

主题

17

金币

新手上路

Rank: 1

积分
26
23#
发表于 2017-12-28 12:29:47 | 只看该作者
不错,值得收藏

32

帖子

8

主题

431

金币

管理员

Rank: 9Rank: 9Rank: 9

积分
527
QQ
24#
发表于 2018-1-31 16:16:37 | 只看该作者
? ?? ?? ?? ?? ?? ?? ?? ?? ?

2

帖子

0

主题

9

金币

新手上路

Rank: 1

积分
15
25#
发表于 2018-3-4 19:41:12 | 只看该作者
要是支持两路can就好了

11

帖子

0

主题

404

金币

高级会员

Rank: 4

积分
799
26#
发表于 2018-8-1 17:21:32 | 只看该作者
很好用,太有用了,已使用测试过,固件更新稳定,测试节点22个

36

帖子

7

主题

58

金币

注册会员

Rank: 2

积分
186
27#
发表于 2018-8-4 15:00:21 | 只看该作者
感谢大佬,分享学习啦!

3

帖子

0

主题

8

金币

新手上路

Rank: 1

积分
17
28#
发表于 2018-8-4 22:30:39 | 只看该作者
学习,正需要

22

帖子

0

主题

0

金币

注册会员

Rank: 2

积分
64
29#
发表于 2018-12-24 11:58:40 | 只看该作者
谢谢分享。。。。。。。。。。。。。。

2

帖子

0

主题

103

金币

注册会员

Rank: 2

积分
109
30#
发表于 2019-1-21 13:57:26 | 只看该作者
是不是任何CAN盒都可以?
为什么没有配置USBCAN的端口号配置

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
31#
?楼主| 发表于 2019-2-25 09:50:22 | 只看该作者
Pillar2060 发表于 2019-1-21 13:57
是不是任何CAN盒都可以?
为什么没有配置USBCAN的端口号配置

可以使用其他适配器,不过得自己写上位机程序,我们的上位机程序目前只支持我们自己的适配器
人生到处知何似,应似飞鸿踏雪泥。

11

帖子

0

主题

404

金币

高级会员

Rank: 4

积分
799
32#
发表于 2019-4-12 14:40:53 | 只看该作者
我来灌一下水,为了下代码,赚点金币

3

帖子

1

主题

16

金币

新手上路

Rank: 1

积分
31
33#
发表于 2019-4-17 18:36:56 | 只看该作者
最近也在研究这个,新手还是需要了解的很多

8

帖子

1

主题

22

金币

注册会员

Rank: 2

积分
53
34#
发表于 2019-6-25 11:17:52 来自手机 | 只看该作者
关键没时间研究

2

帖子

0

主题

75

金币

注册会员

Rank: 2

积分
81
35#
发表于 2019-7-25 17:53:41 | 只看该作者
感谢分享!!!!

3

帖子

0

主题

13

金币

新手上路

Rank: 1

积分
22
36#
发表于 2019-9-5 21:02:30 | 只看该作者
这就厉害了呀,佩服!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|嵌入式以太网社区 ( 渝ICP备14007427号 )?

GMT+8, 2019-11-6 12:34 , Processed in 0.112707 second(s), 36 queries .

Powered by Discuz! X3.2

? 2001-2013 Comsenz Inc.

快速bet365体-在线体育投注_365体育投注地址_365体育投注登录 返回顶部 返回列表