0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SWD下载器通信协议底层原理

strongerHuang 来源:strongerHuang 2023-02-13 15:44 次阅读

基于Cortex-M内核的单片机,目前主流的下载接口就是JTAG和SWD。

SWD 和 JTAG引脚区别:

JTAG:

TDI:Test Data In。 串行输入引脚

TDO:Test Data Out,串行输出引脚

TCK:Test Clock,时钟引脚

TMS:Test Mode Select,模式选择(控制信号)引脚

TRST:Test Reset,复位引脚

社署:

SWDIO:Serial Wire Data Input Output,串行数据输入输出引脚

SWCLK:Serial Wire Clock,串行线时钟引脚

其中SWD只需要两根线(SWCLK和 SWDIO),在PCB布局有限、引脚资源紧张的情况下,SWD算是一种不错的选择。

SWD简介

SWD:Serial Wire Debug,代表串行线调试,是ARM设计的协议,用于对其微控制器进行编程和调试。

市面上支持SWD调试接口的下载器很多,比如:ST-Link、 J-Link、 e-Link、 GD-Link等市面上绝大部分用于Cortex-M内核处理器的下载器都支持。

对于SWDIO,是双向(输入输出)数据引脚,必须在电路板上对线路进行上拉(ARM 建议采用 100 K)。

每次在协议中更改 SWDIO 的方向时,都会插入转换时间,此时线路即不受主机驱动也不受目标驱动。 默认情况下,此转换时间为一位时间,但可以通过配置 SWCLK 频率来调整。

调试接口

常见的Cortex-M内核处理器都集成了SWD和JTAG 调试端口,在 SWJ-DP 中, SW-DP 的 2 个 JTAG 引脚与 JTAG-DP 的 5 个 JTAG 引脚中的部分引脚复用。

poYBAGPp6oeAVnBgAAE4rk_MnX8046.png

JTAG与SWD的切换机制:

默认调试接口是 JTAG 接口,如果调试工具想要切换到 SW-DP,它必须在 TMS/TCK(分别映射到 SWDIO 和 SWCLK)上提供专用的 JTAG 序列,用于禁止 JTAG-DP 并使能 SW-DP。 这样便可仅使用 SWCLK和 SWDIO 引脚来激活SWDP。

该序列为:

输出超过 50 个 TCK 周期的 TMS (SWDIO) = 1 信号

输出 16 个 TMS (SWDIO) 信号 0111100111100111 (MSB)

输出超过 50 个 TCK 周期的 TMS (SWDIO) = 1 信号

SW 协议序列

每个序列包括三个阶段:

主机发送的数据包请求( 8 位)

目标发送的确认响应( 3 位)

主机或目标发送的数据传输阶段( 33 位)

数据包请求( 8 位):

pYYBAGPp6oeAGC-8AAGQzoMEOO8378.png

ACK 响应( 3 位):

poYBAGPp6oeARyZ_AABmNTe4mrA719.png

DATA 传输( 33 位)

poYBAGPp6oaADvKrAAC885PnyWg675.png

这种类似于寄存器的一些Bit位操作,底层的一些原理与普通的通信协议也有类似之处。。

SW-DP 状态

SW-DP 的状态机有一个用于标识 SW-DP 的内部 ID 代码,其中主要包含的状态:复位、空闲状态、 ID 代码等。

在上电复位后、 DP 从 JTAG 切换到 SWD 后或者线路处于高电平超过 50 个周期后,SW-DP 状态机处于复位状态。

如果在复位状态后线路处于低电平至少两个周期, SW-DP 状态机处于空闲状态。

复位状态后,该状态机必须首先进入空闲状态,然后对 DP-SW ID CODE 寄存器执行读访问。 否则,目标将在另一个事务上发出 FAULT 确认响应。

SW-DP 状态机的更多详细信息,可以参看Cortex-M相关的一些手册。

SW-DP 寄存器

SWD类似普通外设,也是有一种寄存器,开发者进行的编程(读写)操作,其实就是操作对应的寄存器。

pYYBAGPp6oeAHyR6AANvYTNwRuY995.png

SWD主要的底层就介绍到这里,更多详情,请参看Cortex-M内核手册。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6044

    文章

    44632

    浏览量

    639384
  • 通信协议
    +关注

    关注

    28

    文章

    916

    浏览量

    40475
  • 引脚
    +关注

    关注

    16

    文章

    1223

    浏览量

    51015
  • 下载器
    +关注

    关注

    1

    文章

    62

    浏览量

    12926
  • SWD
    SWD
    +关注

    关注

    1

    文章

    57

    浏览量

    11923

原文标题:SWD下载器通信协议底层原理

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    LabVIEW串口通讯—通信协议

    LabVIEW串口通讯—通信协议图文详情请下载附件
    发表于 11-16 11:32

    STM32中的通信协议是什么

    STM32中的通信协议通讯协议是指在嵌入式开发中,不同的硬件系统或者操作系统之间进行数据交换的方式,是一种数据通讯的规约。通讯协议有很多种,而我今天要说的是串口通讯协议,而且是基于ST
    发表于 08-18 07:21

    Modbus通信协议的相关资料下载

    步骤:1.实现1ms中断计时的定时;2.实现发送和接收数据的串口;3.Modbus程序编写。本节将本着从理论落实到实践的角度对Modbus通信协议进行代码实现。
    发表于 02-09 07:47

    如何实现基础通信协议的设计?

    常见的通信协议格式是什么?如何实现基础通信协议的设计?
    发表于 02-14 07:35

    串口通信协议的相关资料分享

    的建立三、建立STM32与PC之间的通信基础1、串口助手的使用2、效果呈现一、串口通信协议1、UART简介嵌入式开发中,UART串口通信协议是我们常用的通信协议(UART、I2C、SP
    发表于 02-22 07:16

    Modbus通信协议教程

    Modbus通信协议教程Modbus通信协议教程Modbus通信协议教程
    发表于 12-08 14:14 75次下载

    SCPI通信协议

    SCPI通信协议
    发表于 05-04 17:54 180次下载

    Robin通信协议的程序和工程文件免费下载

    本文档的主要内容详细介绍的是Robin通信协议的程序和工程文件免费下载
    发表于 07-09 08:00 0次下载
    Robin<b class='flag-5'>通信协议</b>的程序和工程文件免费<b class='flag-5'>下载</b>

    通信协议CANOpen堆栈手册资源下载

    通信协议CANOpen堆栈手册资源下载
    发表于 04-19 09:45 8次下载

    上位机通信协议PPT课件下载

    上位机通信协议PPT课件下载
    发表于 07-20 09:36 39次下载

    MODBUS通信协议测试软件免费下载

    MODBUS通信协议测试软件免费下载
    发表于 04-13 14:58 5次下载

    SWD通信协议底层技术

    复位状态后,该状态机必须首先进入空闲状态,然后对 DP-SW ID CODE 寄存执行读访问。否则,目标将在另一个事务上发出 FAULT 确认响应。
    发表于 10-11 16:32 2997次阅读

    简述SWD下载通信协议底层原理

    基于Cortex-M内核的单片机,目前主流的下载接口就是JTAG和SWDSWD 和 JTAG引脚区别: **JTAG:** * **TDI:**
    发表于 02-20 16:05 3390次阅读
    简述<b class='flag-5'>SWD</b><b class='flag-5'>下载</b><b class='flag-5'>器</b><b class='flag-5'>通信协议</b><b class='flag-5'>底层</b>原理

    PROFINET通信协议是什么

    PROFINET通信协议是一种专为工业自动化领域设计的基于以太网的实时通信协议。以下是对PROFINET通信协议的详细解析,包括其定义、特点、体系结构、工作原理、通信方式、应用领域以及
    的头像 发表于 09-25 18:13 2802次阅读

    总线通信协议解析及应用

    在现代计算机系统中,总线通信协议扮演着至关重要的角色。它们定义了数据如何在处理、内存、输入/输出设备等组件之间传输。 总线通信协议的基本概念 总线通信协议是一组规则,它规定了数据在系
    的头像 发表于 12-31 10:07 267次阅读