作為嵌入式工程師,下載調試器都應該知道,但你真正了解其 SWD 和 JTAG 接口的含義和區別嗎?
1、什么是下載調試器
簡單來說,下載調試器是將 PC(例如通過 USB 協議)發送的命令轉換為 MCU(負責 MCU 內部外圍設備)理解的語言(例如 SWD 或 JTAG 協議)的設備,加載代碼并精確控制執行。
2、調試器協議標準
1. 什么是標準?
簡單來說,標準是一組規則和協議,特定行業中的每個參與者都同意遵循并執行。
2. 調試器協議混亂現象
在 SWD 和 JTAG 之類的協議出現之前,調試器及其協議一片混亂,每個 MCU 制造商都提出了自己的專有方法,將代碼加載到他們的 MCU 上。制造商每次發布 MCU 時,嵌入式軟件工程師都需要了解其專有協議,以將代碼加載到微控制器中。
而且,調試適配器很昂貴,因為制造商實際上并沒有競爭者可以使調試適配器與他們的協議相匹配,因為協議是專有的。它們昂貴的另一個原因是由于體積不足,因為它們只能將調試適配器出售給使用它們制造的 MCU 的公司(工程師)。
不同協議還會導致開發成本增加,比如:你在設計的板上有來自 4 個不同制造商的 4 種芯片,并且希望對其進行一些自動化測試以提高生產過程的效率。但是,由于所有電路板都有自己的協議,因此您需要制作一個能適應復雜性的超級復雜的生產代碼,并且需要在電路板上的測試點安裝 4 個不同的調試器,從而增加了成本,生產時間和編程時間。
3. 制定協議各種下載調試不同會導致幾個問題:
投入更多的學習時間
增加購買下載調試的成本
生成測試效率低下
為了解決這一問題,各大 MCU 制造和生產商的工程師們就針對調試制定了一些規范協議。
3、JTAG 標準
JTAG:Joint Test Action Group,即聯合測試行動小組。
該小組于 1980 年后期開始討論,并于 1990 年正式發布了解釋 IEEE 標準的文檔。(IEEE 代表電氣與電子工程師協會,是一個國際組織,其中發布了所有標準,如 WiFi,藍牙等)。他們提出的協議在 1990 年被記錄在 IEEE 1149.1 中。后來對該文檔進行了修訂和完善,在撰寫本文時,最新標準是 IEEE 1149.7。
JTAG 基本上帶有 5 個引腳:TDI:Test Data In。串行輸入引腳 TDO:Test Data Out,串行輸出引腳 TCK:Test Clock,時鐘引腳 TMS:Test Mode Select,模式選擇(控制信號)引腳 TRST:Test Reset,復位引腳
4、SWD 標準
SWD:Serial Wire Debug,代表串行線調試,是 ARM 設計的協議,用于對其微控制器進行編程和調試。
由于 SWD 專門從事編程和調試,因此它具有許多特殊功能,通常在其他任何地方都無法使用,例如通過 IO 線將調試信息發送到計算機。另外,由于它是 ARM 專門為在其設備中使用而制造的,因此 SWD 的性能通常是同類產品中最好的!
SWD 引腳 SWDIO:Serial Wire Data Input Output,串行數據輸入輸出引腳 SWCLK:Serial Wire Clock,串行線時鐘引腳
5、SWD / JTAG 的各種區別
市面上有很多兼容 SWD 和 JTAG 協議的 MCU 和調試適配器,他們通常通過具有一組下載調試引腳,來實現下載和調試功能,這些引腳內部復用到 SWD 外設和 JTAG 外設。
1. 共享引腳
SWD 的引腳在一定條件下可以和 JTAG 引腳復用,目前針對 JTAG 和 SWD 的連接器比較多,比如 20pin 的接插件:
當然,也有 10pin 的:
2.SWD / JTAG 各自優勢 SWD 協議的優勢:
使用引腳更少,只需 SWDIO 和 SWCLK 兩個引腳
SWD 具有特殊功能,例如通過其 I / O 線打印調試信息
與 JTAG 相比,SWD 在速度方面具有更好的整體性能
JTAG 協議的優勢:
JTAG 不僅限于 ARM 芯片,在 ARM 之外的芯片也受支持,比如大家熟悉的 MSP430
JTAG 具有更多多種用途,用于編程,調試和生產測試
JTAG 是一個獨立的團體,他們會隨著協議的發展而發展
3. 什么時候選擇 SWD 而不是 JTAG
如果您的原理圖 / 電路板設計足夠簡單,可以在沒有 JTAG 功能的情況下進行測試
調試性能比生產測試更重要,你的設備專注于服務研究而不是批量生產!
MCU 在尺寸方面有限制,SWD 可以節省空間
你的硬件設計太復雜,MCU 沒有多余的 2 個引腳
審核編輯黃昊宇
-
JTAG
+關注
關注
6文章
393瀏覽量
71433 -
SWD
+關注
關注
1文章
55瀏覽量
11752 -
調試接口
+關注
關注
0文章
10瀏覽量
5082
發布評論請先 登錄
相關推薦
評論