0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SWD下載器通信協(xié)議底層原理

strongerHuang ? 來源:strongerHuang ? 2023-02-13 15:44 ? 次閱讀

基于Cortex-M內核的單片機,目前主流的下載接口就是JTAG和SWD。

SWD 和 JTAG引腳區(qū)別:

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,串行數(shù)據(jù)輸入輸出引腳

SWCLK:Serial Wire Clock,串行線時鐘引腳

其中SWD只需要兩根線(SWCLK和 SWDIO),在PCB布局有限、引腳資源緊張的情況下,SWD算是一種不錯的選擇。

SWD簡介

SWD:Serial Wire Debug,代表串行線調試,是ARM設計的協(xié)議,用于對其微控制器進行編程和調試。

市面上支持SWD調試接口的下載器很多,比如:ST-Link、 J-Link、 e-Link、 GD-Link等市面上絕大部分用于Cortex-M內核處理器的下載器都支持。

對于SWDIO,是雙向(輸入輸出)數(shù)據(jù)引腳,必須在電路板上對線路進行上拉(ARM 建議采用 100 K)。

每次在協(xié)議中更改 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 協(xié)議序列

每個序列包括三個階段:

主機發(fā)送的數(shù)據(jù)包請求( 8 位)

目標發(fā)送的確認響應( 3 位)

主機或目標發(fā)送的數(shù)據(jù)傳輸階段( 33 位)

數(shù)據(jù)包請求( 8 位):

pYYBAGPp6oeAGC-8AAGQzoMEOO8378.png

ACK 響應( 3 位):

poYBAGPp6oeARyZ_AABmNTe4mrA719.png

DATA 傳輸( 33 位)

poYBAGPp6oaADvKrAAC885PnyWg675.png

這種類似于寄存器的一些Bit位操作,底層的一些原理與普通的通信協(xié)議也有類似之處。。

SW-DP 狀態(tài)

SW-DP 的狀態(tài)機有一個用于標識 SW-DP 的內部 ID 代碼,其中主要包含的狀態(tài):復位、空閑狀態(tài)、 ID 代碼等。

在上電復位后、 DP 從 JTAG 切換到 SWD 后或者線路處于高電平超過 50 個周期后,SW-DP 狀態(tài)機處于復位狀態(tài)。

如果在復位狀態(tài)后線路處于低電平至少兩個周期, SW-DP 狀態(tài)機處于空閑狀態(tài)。

復位狀態(tài)后,該狀態(tài)機必須首先進入空閑狀態(tài),然后對 DP-SW ID CODE 寄存器執(zhí)行讀訪問。 否則,目標將在另一個事務上發(fā)出 FAULT 確認響應。

SW-DP 狀態(tài)機的更多詳細信息,可以參看Cortex-M相關的一些手冊。

SW-DP 寄存器

SWD類似普通外設,也是有一種寄存器,開發(fā)者進行的編程(讀寫)操作,其實就是操作對應的寄存器。

pYYBAGPp6oeAHyR6AANvYTNwRuY995.png

SWD主要的底層就介紹到這里,更多詳情,請參看Cortex-M內核手冊。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6037

    文章

    44558

    瀏覽量

    635303
  • 通信協(xié)議

    關注

    28

    文章

    883

    瀏覽量

    40308
  • 引腳
    +關注

    關注

    16

    文章

    1196

    瀏覽量

    50483
  • 下載器
    +關注

    關注

    1

    文章

    62

    瀏覽量

    12839
  • SWD
    SWD
    +關注

    關注

    1

    文章

    57

    瀏覽量

    11840

原文標題:SWD下載器通信協(xié)議底層原理

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    LabVIEW串口通訊—通信協(xié)議

    LabVIEW串口通訊—通信協(xié)議圖文詳情請下載附件
    發(fā)表于 11-16 11:32

    STM32中的通信協(xié)議是什么

    STM32中的通信協(xié)議通訊協(xié)議是指在嵌入式開發(fā)中,不同的硬件系統(tǒng)或者操作系統(tǒng)之間進行數(shù)據(jù)交換的方式,是一種數(shù)據(jù)通訊的規(guī)約。通訊協(xié)議有很多種,而我今天要說的是串口通訊協(xié)議,而且是基于ST
    發(fā)表于 08-18 07:21

    Modbus通信協(xié)議的相關資料下載

    步驟:1.實現(xiàn)1ms中斷計時的定時;2.實現(xiàn)發(fā)送和接收數(shù)據(jù)的串口;3.Modbus程序編寫。本節(jié)將本著從理論落實到實踐的角度對Modbus通信協(xié)議進行代碼實現(xiàn)。
    發(fā)表于 02-09 07:47

    如何實現(xiàn)基礎通信協(xié)議的設計?

    常見的通信協(xié)議格式是什么?如何實現(xiàn)基礎通信協(xié)議的設計?
    發(fā)表于 02-14 07:35

    串口通信協(xié)議的相關資料分享

    的建立三、建立STM32與PC之間的通信基礎1、串口助手的使用2、效果呈現(xiàn)一、串口通信協(xié)議1、UART簡介嵌入式開發(fā)中,UART串口通信協(xié)議是我們常用的通信協(xié)議(UART、I2C、SP
    發(fā)表于 02-22 07:16

    Modbus通信協(xié)議教程

    Modbus通信協(xié)議教程Modbus通信協(xié)議教程Modbus通信協(xié)議教程
    發(fā)表于 12-08 14:14 ?75次下載

    SCPI通信協(xié)議

    SCPI通信協(xié)議。
    發(fā)表于 05-04 17:54 ?180次下載

    MiniIMU通信協(xié)議說明

    MiniIMU通信協(xié)議說明,九軸姿態(tài)傳感所用。
    發(fā)表于 05-16 17:38 ?6次下載

    Robin通信協(xié)議的程序和工程文件免費下載

    本文檔的主要內容詳細介紹的是Robin通信協(xié)議的程序和工程文件免費下載
    發(fā)表于 07-09 08:00 ?0次下載
    Robin<b class='flag-5'>通信協(xié)議</b>的程序和工程文件免費<b class='flag-5'>下載</b>

    通信協(xié)議CANOpen堆棧手冊資源下載

    通信協(xié)議CANOpen堆棧手冊資源下載
    發(fā)表于 04-19 09:45 ?8次下載

    上位機通信協(xié)議PPT課件下載

    上位機通信協(xié)議PPT課件下載
    發(fā)表于 07-20 09:36 ?39次下載

    MODBUS通信協(xié)議測試軟件免費下載

    MODBUS通信協(xié)議測試軟件免費下載。
    發(fā)表于 04-13 14:58 ?5次下載

    SWD通信協(xié)議底層技術

    復位狀態(tài)后,該狀態(tài)機必須首先進入空閑狀態(tài),然后對 DP-SW ID CODE 寄存執(zhí)行讀訪問。否則,目標將在另一個事務上發(fā)出 FAULT 確認響應。
    發(fā)表于 10-11 16:32 ?2921次閱讀

    簡述SWD下載通信協(xié)議底層原理

    基于Cortex-M內核的單片機,目前主流的下載接口就是JTAG和SWD。 SWD 和 JTAG引腳區(qū)別: **JTAG:** * **TDI:**
    發(fā)表于 02-20 16:05 ?3251次閱讀
    簡述<b class='flag-5'>SWD</b><b class='flag-5'>下載</b><b class='flag-5'>器</b><b class='flag-5'>通信協(xié)議</b><b class='flag-5'>底層</b>原理

    PROFINET通信協(xié)議是什么

    PROFINET通信協(xié)議是一種專為工業(yè)自動化領域設計的基于以太網的實時通信協(xié)議。以下是對PROFINET通信協(xié)議的詳細解析,包括其定義、特點、體系結構、工作原理、通信方式、應用領域以及
    的頭像 發(fā)表于 09-25 18:13 ?1662次閱讀