教麥叔瞭解J-Link、ST-Link、ULink、JTAG、SWD、SWIM的區別

小麥大叔是我認識玩單片機,搞嵌入式的小夥伴,他經常用仿真器調試/下載軟件,對J-Link、ST-Link,JTAG,SWD這些傻傻分不清楚,趁着空閒時刻我就寫了這篇博客,和他一起進步。


1. J-Link

J-Link是德國SEGGER公司爲支持仿真ARM內核芯片推出的JTAG仿真器,很多ARM芯片的接口協議是JTAGJLink一端接電腦USB接口,一端接CPUJTAG接口,JLink充當的作用就是USBJTAG,支持JTAGSWD兩種模式。

  • 可配合IAR EWAR,ADS,KEIL,WINARM,RealView等集成開發環境;
  • 支持ARM7/ARM9/ARM11Cortex M0/M1/M3/M4Cortex A5/A8/A9等內核芯片的仿真;

在這裏插入圖片描述

JLink仿真器


2. ST-Link

ST-LinkST意法半導體爲評估、開發STM8/STM32系列MCU而設計的集在線仿真與下載爲一體的開發工具,支持JTAG/SWD/SWIM三種模式。

  • 支持所有帶SWIM接口的STM8系列單片機
  • 支持所有帶JTAG/SWD接口的STM32系列單片機

在這裏插入圖片描述

ST-Link仿真器


3. ULink

ULINK已經停產,在售的是ULINK2ULINKpro版本,ULINK2ARM/KEIL公司(2005年ARM收購了KEIL)最新推出的配套RealView MDK使用的仿真器,ULINK2仿真器也被稱爲Keil ULINK2ARM ULINK2仿真器。
在這裏插入圖片描述

ULINK2仿真器

ULINK2仿真器支持:

  • 片上調試(使用片上JTAG/SWD/SWV
  • FLASH存儲器編程(用戶可配置FLASH編程算法)

以下是各版本ULINK仿真器的區別,可見支持的芯片內核,軟件開發工具等內容;

在這裏插入圖片描述

ULink各版本之間的區別


4. JTAG

JTAGJoint Test Action Group,聯合測試行動小組)是一種國際標準測試協議(IEEE 1149.1兼容),主要用於芯片內部測試,現在多數的器件都支持JTAG協議,ARMDSPFPGA等,JTAG接口的單片機用電腦USB下載調試程序,需要用到J-LinkUSB轉JTAG)。

標準的JTAG是四線:TDI,TMS,TCK,TDO,分別對應數據輸入,模式選擇,時鐘,數據輸出,復位管腳可不接。

仿真器Pin no. 仿真器接口 目標板接口 信號描述
19 5V supply VCC 電源正極
5 TDI TDI 數據輸入
7 TMS TMS 模式選擇
9 TCK TCK 時鐘信號
13 TDO TDO 數據輸出
20 GND GND 電源負極

在這裏插入圖片描述

JTAG模式J-Link與CPU的連接圖


5. SWD

SWD全稱是Serial Wire Debug(串行調試),SWD模式下用JLink給我們的板子debug時,是用標準的二線DIOCLKRESET管腳可不接,當你頻繁下載失敗時,可接上RESET管腳再試。

在高速模式下,SWDJTAG更可靠一些,常見的接線信號如下所示,根據具體情況自主選擇。

仿真器接口 仿真器接口 目標板接口 信號描述
19 5V supply VCC 電源正極
7 SWDIO SWDIO 數據信號
9 SWCLK SWCLK 時鐘信號
20 GND GND 電源負極
15 RESET nRST 復位信號

注意: SWD模式下,SWDIO的上拉電阻可預留不貼,在ST的一些MCU參考設計中,有提到建議添加,實際測試不加不影響下載。

在這裏插入圖片描述

SWD模式J-Link與CPU的連接圖


6. SWIM

SWIM接口常見於STSTM8系列單片機,ST-Link2STM8連接只需要4根線,見表格。

Pin no. 仿真器接口 目標板接口 信號描述
Pin1 VDD VCC 電源正極
Pin2 DATA SWIM SWIM pin
Pin3 GND GND 電源負極
Pin4 RESET RESET 復位信號

在這裏插入圖片描述

ST-Link上的SWIM管腳排列


8. 小結一下

附上JTAG/SWD模式管腳對照表:

在這裏插入圖片描述

JTAG/SWD模式管腳對照表

總結一下J-Link、ST-Link、ULink三種仿真器之間的區別:

  • JLink是通用型的ARM內核芯片仿真器,支持的芯片和軟件開發環境多,優選
  • ST-Link是針對STM8/STM32,如果你使用STM8/STM32單片機,首選ST-Link,當然用JLink下載ST系列單片機也可以;
  • ULink專注於Keil平臺,支持ARM7/9Cortex-M0~M4ULink2還支持8051系列芯片,綜合性能(支持芯片種類、軟件開發環境及及調試速度)均不如JLink
  • 三者都支持JTAGSWD模式;

再總結一下JTAG、SWD、SWIM三種下載模式的區別:

  • JTAG接線比較多,高速模式下穩定性不如SWD
  • SWD接線少,可空出多餘的GPIO,所需要的接線信號不同仿真器會有所差別(主要在VCCRESET),DIOCLK必接;
  • SWIM常見於STM8單片機,需用4根線;

小麥大叔快來學習了,點點滴滴,皆是學問,一起進步吧!


永遠相信美好的事情即將發生!作者記得誠,寫於安徽合肥,時間2020-04-14 PM22:36

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章