带你走进飞思卡尔Kinetis Flashloader (2)

这一节主要介绍下在主机和Kinetis Flashloader 之间的数据包传输协议,包括不同类型的包,带数据的命令包和不带数据的命令包。

Flashloader 协议

无数据命令

一个无数据的命令协议包括:

来自主机的命令包

发给主机的通用的响应命令包

整个过程如下图所示:

有输入数据的命令

有输入数据阶段的命令协议包括:

来自主机的命令包

发给主机的通用响应命令包

来自主机的输入数据包

发给主机的通用响应命令包

整个过程如下图所示:

带输出数据的命令

有输出数据阶段的命令协议包括:

来自主机的命令包

发给主机的读存储器响应命令包

发给主机的数据包

发给主机的通用响应命令包

整个过程如下图所示:

Flashloader 信息包类型

Ping包

主机发给目标机的第一个包就是Ping包,用来在一个选择的外设上 建立连接,对于UART外设来说,Ping 包用来决定波特率,Ping包必须在任何通信前发送,对于主机发送的Ping包,目标机会发送Ping响应包。整个过程如下:

Ping响应包

目标机(Kinetis Flashloader)在收到主机的Ping包后,会发送Ping响应包,如果是通过UART外设进行通信,目标机在发送Ping响应包回复主机的Ping包之前,会根据接收到的Ping包决定波特率。一旦主机接收到Ping响应包,则通信连接建立,主机开始发送命令到目标机。

Ping响应包格式如下:

帧报文包

报文包用来做流控制和错误检测,它也覆盖命令和数据包

报文包格式如下:

值得注意的一点是:有一个比较特殊的报文包,仅仅包含起始字节和打包类型字节,是用来在主机和目标机之间做同步用的。格式如下:

报文包打包类型主要有七种:

命令包

命令包携带一个32位的命令头和32位参数列表,命令头占四个字节,命令头后会跟由命令头域指定数量的参数个数,因为命令包有32字节,命令头占四个字节,所以最多有七个参数在命令包里。

目标机也使用命令包发送响应命令包给主机,正如前面所提到的,命令包和数据包都会嵌入在报文包里面传输。支持的命令如下所示:

支持的响应包括:

Flags: 每一个命令包包含一个标志字节,只有标志字节的位0被使用,如果位0被置1,则数据包将跟在命令后面。

ParameterCount : 命令包中的参数数量。

Parameter: 参数是32位字长,默认最大的包长度是32字节,其中头占四个字节,参数占28个字节,所以命令包可最大包含七个参数。

数据包

不管是主机发送数据给目标机还是目标机发送数据给主机,数据包仅仅携带数据,数据的传输方向由上一次主机发送的命令决定,数据包同样包含在报文包里面,以确保正确的包数据被接收。

响应包

响应包使用与命令包相同的格式包含在报文包中,响应的类型包括:

通用响应

获取属性响应

读存储器响应

未完待续,欢迎继续关注。

原文发布于微信公众号 - 嵌入式程序猿(InterruptISR)

原文发表时间:2015-11-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏电光石火

Intellij idea 的maven项目自动下载jar包

在Intellij IDEA中配置maven:  打开-File-Settings  (1) maven文件夹目录,自动搜索到  (2) 选中Overr...

4669
来自专栏Java3y

Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】

什么是Serlvet? Servlet其实就是一个遵循Servlet开发的java类。Serlvet是由服务器调用的,运行在服务器端。 为什么要用到Serlve...

3835
来自专栏张善友的专栏

项目管理方面的几个.NET开源项目

1、NTrac: Trac 是个项目管理系统,是Python所写的,是基于 Subvertion -- 史上最优秀的版本管理系统的!,在code.google....

2099
来自专栏Python小屋

Python通过WMI读取主板BIOS信息

Windows Management Instrumentation (WMI,Windows管理规范) 是Web-Based Enterprise Manag...

43910
来自专栏Ken的杂谈

ASP.NET Core 应用发布与部署指南/教程

项目创建完成后,需要修改Program.cs文件 手动指定启动的Url为:http://*:5000

7034
来自专栏FreeBuf

使用presentationhost.exe绕过AppLocker白名单限制

Presentationhost.exe是一个内置的Windows可执行文件,用于运行XAML浏览器应用程序(即.xbap文件)。在多个AppLocker白名单...

1122
来自专栏FreeBuf

如何创建Powershell持久隐蔽后门

用户开机后每次运行特定的快捷方式文件时触发一段恶意的powershell 代码,原始应用程序仍然启动,原始图标保留,并且没有powershell.exe窗口弹出...

2387
来自专栏Core Net

ASP.NET Core 2.0 : 九.从Windows发布到CentOS的跨平台部署

2944
来自专栏weixuqin 的专栏

使用U盘安装 OS X 的坑

33210
来自专栏哲学驱动设计

分享 MSDN 下载工具(Word/PDF)

给大伙分享一个最近出炉的 MSDN 到 Word/PDF 转换器。我已经用它转换了 WPF、VSPackage、WWF 等 MSDN 章节为 PDF。 介绍 下...

27210

扫码关注云+社区

领取腾讯云代金券