找回密码
 立即注册
查看: 1985|回复: 16

我想使用java自己开发个跨平台的简单的ISP

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:510
  • 最近打卡:2025-06-16 10:36:40

46

主题

232

回帖

3089

积分

论坛元老

积分
3089
发表于 2024-10-25 15:50:07 | 显示全部楼层 |阅读模式
程序编译好后,通过ISP将hex文件烧录到单片机的过程就是ISP 跟单片机的BL(BootLoader)固件通信的过程是吧?
现在ISP仅能在windows环境下使用。
如果想在不改变BootLoader的前提下自己开发简单的ISP上位机,是不是需要知道上位机跟BL的通信协议;
通过研究stcgal这个开源工具,目前可以知道部分协议比如:

串口链接后,单片机重新上电会给上位机发送数据如下:

<- Packet data:
46 B9 // 数据包开始头
68    // 68表示来自MCU
00 38 // 表示长度为 56字节
50 02 16 C7 20 56 30 01
FF FF BF AF FF 26 E1 F7
FE 74 55 00 F7 84 06 89
E4 38 5D 1F 23 1F 1B 01
00 00 FE 04 A5 24 06 05
91 10 94 CB FF 53 65 86
B0 DA 16 43
16    // 数据包结束;

中间的是数据内容,这个内容应该表示的是单片机的型号,目前的相关配置项,比如是否使用外部时钟,是否开启了看门狗等;

但是具体是怎么解析的没有找到相关文档,stcgal源码中解析有点费时间,还不够准确。

不知道STC是否对外提供这些信息, 如果没有的话就算了,就盼着STC官方的ISP能支持;


不争是争
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:468
  • 最近打卡:2025-06-16 07:06:57
已绑定手机

79

主题

5131

回帖

9128

积分

超级版主

DebugLab

积分
9128
发表于 2024-10-25 16:13:03 | 显示全部楼层
下载协议是开源的,可以自己编写上位机软件从串口下载
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:468
  • 最近打卡:2025-06-16 07:06:57
已绑定手机

79

主题

5131

回帖

9128

积分

超级版主

DebugLab

积分
9128
发表于 2024-10-25 16:17:34 | 显示全部楼层
截图202410251614264114.jpg

截图202410251614433648.jpg

截图202410251614533733.jpg

截图202410251615139308.jpg

截图202410251615303878.jpg

截图202410251615512422.jpg

截图202410251616154170.jpg

截图202410251616374632.jpg

截图202410251617062706.jpg

截图202410251617308010.jpg

DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:510
  • 最近打卡:2025-06-16 10:36:40

46

主题

232

回帖

3089

积分

论坛元老

积分
3089
发表于 2024-10-25 16:28:16 | 显示全部楼层
本帖最后由 大锤子 于 2024-10-25 16:36 编辑

这个流程图我看过了, 但是我想知道握手后单片机返回数据包的具体含义。

比如:哪个字节或者哪几个字节用来确定单片机型号。
不争是争
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:125
  • 最近打卡:2025-06-04 21:38:29
已绑定手机

60

主题

782

回帖

4027

积分

论坛元老

自定义头衔

积分
4027
发表于 2024-11-5 11:34:08 来自手机 | 显示全部楼层
楼主用的是哪款芯片呢?每款STC的烧录协议都有区别哦,所以自己做这个意义不大。还是老老实实用STC ISP呗
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:125
  • 最近打卡:2025-06-04 21:38:29
已绑定手机

60

主题

782

回帖

4027

积分

论坛元老

自定义头衔

积分
4027
发表于 2024-11-5 15:08:37 | 显示全部楼层
本帖最后由 VCC 于 2024-11-5 15:47 编辑

好办!可以用正向分析的方法,你把这些数据重新输入回STC ISP,看看软件显示有什么变化,不就知道了
也就是在STC-ISP每次发起握手的时候,通过串口给STC-ISP回复如下内容:

46 B9 68 00 38 50 02 16 C7 20
56 30 01 FF FF BF AF FF 26 E1
F7 FE 74 55 00 F7 84 06 89 E4
38 5D 1F 23 1F 1B 01 00 00 FE
04 A5 24 06 05 91 10 94 CB FF
53 65 86 B0 DA 16 43 16

截图202411051304191245.jpg

将命令帧的前5个数据改为0,再次让STC-ISP做识别。发现内部IRC振荡器频率数据没有了
截图202411051305417299.jpg

以此类推,逐一测试每个字节的效果
得到如下结果


46 //无可见作用,但不能为68
rB9 //无可见作用,随机值无影响
68 //必须为68
00 //必须为00
38 //应该代表从68起需要解析的字节数,其余填0,标准值38;降为27则内部参考电压值变为1024mV;降为26则内部参考电压值变为0;降为18则无法识别单片机型号了
50 //改成任何其他数字,如51,将无法下载
02 16 //影响内部IRC振荡频率,越大,频率越大
rC7 20 56 30 01 FF //无可见作用,随机值无影响
FF // 影响下次下载用户程序时的四个选项
BF // 影响振荡器增益、上电长延时
AF // 影响低压复位、复位门槛、复位脚映射
rFF / //无可见作用,随机值无影响
26 //影响系统ISP工作频率,越大,频率越大
rE1  //无可见作用,随机值无影响
F7 //影响仿真和看门狗
FE //影响用户EEPROM大小
74 //影响版本号前2位
55 //影响版本号末尾字母
00 F7 84 //影响单片机型号识别
06 //影响版本号第3位
89 //影响掉电唤醒定时器的频率,越大,频率越大
rE4 38 5D 1F 23 1F 1B 01 00 00 FE //无可见作用,随机值无影响
04 A5 //内部参考电压: 1189 mV
24 06 05 //测试时间: 2022年6月5日
r91 10 94 CB FF 53 65 86 B0 DA 16 43 16 //无可见作用,随机值无影响




例如如下内容可以构造出这样的识别结果
46 25 68 00 38 50 FF FF 81 B3 7F 8A 82 5D FF BF AF BB FF 2E F7 FE 33 33 00 F7 84 03 FF 2E E2 0B 4E 9F C8 09 01 AB 78 23 82 35 20 06 06 BD 32 A1 2F B4 5F 26 32 83 5D 81 53 D8(标r的行,均已经替换为随机值)
截图202411051507378231.jpg

联系我请点击左下角的【回复】按钮,否则我收不到消息提
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:510
  • 最近打卡:2025-06-16 10:36:40

46

主题

232

回帖

3089

积分

论坛元老

积分
3089
发表于 2024-11-5 15:26:30 | 显示全部楼层
VC*** 发表于 2024-11-5 15:08
好办!可以用正向分析的方法,你把这些数据重新输入回STC ISP,看看软件显示有什么变化,不就知道了
也就是 ...

牛。 我要的就是这些数据。 在stcgal的源码种也能解析出来。 我本来打算补充一下stcgal来给AI8051U 稍露8位程序的。
不争是争
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:510
  • 最近打卡:2025-06-16 10:36:40

46

主题

232

回帖

3089

积分

论坛元老

积分
3089
发表于 2024-11-5 15:29:05 | 显示全部楼层
VC*** 发表于 2024-11-5 15:08
好办!可以用正向分析的方法,你把这些数据重新输入回STC ISP,看看软件显示有什么变化,不就知道了
也就是 ...

一个字节可能会影响多选项,判断出来后还需要进一步修改位。
这些应该都跟单片机默认的BL相关。 不同版本的BL估计也不同。
不争是争
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:566
  • 最近打卡:2025-06-16 07:52:44

113

主题

2027

回帖

5810

积分

论坛元老

积分
5810
发表于 2024-11-5 15:35:44 | 显示全部楼层
这难度不小。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:467
  • 最近打卡:2025-06-15 22:44:24
已绑定手机

19

主题

3231

回帖

5281

积分

论坛元老

积分
5281
发表于 2024-11-5 15:44:33 | 显示全部楼层
VC*** 发表于 2024-11-5 15:08
好办!可以用正向分析的方法,你把这些数据重新输入回STC ISP,看看软件显示有什么变化,不就知道了
也就是 ...

数据结尾应该有校验吧
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-17 05:20 , Processed in 0.163111 second(s), 104 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表