下載調(diào)試器是將PC(例如通過USB協(xié)議)發(fā)送的命令轉(zhuǎn)換為MCU(負(fù)責(zé)MCU內(nèi)部外圍設(shè)備)理解的語言(例如SWD或JTAG協(xié)議)的設(shè)備,加載代碼并精確控制執(zhí)行。
在SWD和JTAG之類的協(xié)議出現(xiàn)之前,調(diào)試器及其協(xié)議一片混亂,每個(gè)MCU制造商都提出了自己的專有方法,將代碼加載到他們的MCU上。
制造商每次發(fā)布MCU時(shí),嵌入式軟件工程師都需要了解其專有協(xié)議,以將代碼加載到微控制器中。
而且調(diào)試適配器很昂貴,因?yàn)橹圃焐虒?shí)際上并沒有競爭者可以使調(diào)試適配器與他們的協(xié)議相匹配,因?yàn)閰f(xié)議是專有的。
它們昂貴的另一個(gè)原因是,由于體積不足,因?yàn)樗鼈冎荒軐⒄{(diào)試適配器出售給使用它們制造的MCU的公司(工程師)。
不同協(xié)議還會(huì)導(dǎo)致開發(fā)成本增加,比如:你在設(shè)計(jì)的板上有來自4個(gè)不同制造商的4種芯片,并且希望對其進(jìn)行一些自動(dòng)化測試以提高生產(chǎn)過程的效率。
但是,由于所有電路板都有自己的協(xié)議,因此您需要制作一個(gè)能適應(yīng)復(fù)雜性的超級復(fù)雜的生產(chǎn)代碼,并且需要在電路板上的測試點(diǎn)安裝4個(gè)不同的調(diào)試器,從而增加了成本,生產(chǎn)時(shí)間和編程時(shí)間。
該小組于1980年后期開始討論,并于1990年正式發(fā)布了解釋IEEE標(biāo)準(zhǔn)的文檔。(IEEE代表電氣與電子工程師協(xié)會(huì),是一個(gè)國際組織,其中發(fā)布了所有標(biāo)準(zhǔn),如WiFi,藍(lán)牙等)。
他們提出的協(xié)議在1990年被記錄在IEEE 1149.1中。后來對該文檔進(jìn)行了修訂和完善,在撰寫本文時(shí),最新標(biāo)準(zhǔn)是IEEE 1149.7。
SWD:Serial Wire Debug,代表串行線調(diào)試,是ARM設(shè)計(jì)的協(xié)議,用于對其微控制器進(jìn)行編程和調(diào)試。
由于SWD專門從事編程和調(diào)試,因此它具有許多特殊功能,通常在其他任何地方都無法使用,例如通過IO線將調(diào)試信息發(fā)送到計(jì)算機(jī)。
另外,由于它是ARM專門為在其設(shè)備中使用而制造的,因此SWD的性能通常是同類產(chǎn)品中最好的。
SWD與JTAG各自優(yōu)勢
SWD協(xié)議的優(yōu)勢:
? 使用引腳更少,只需SWDIO和SWCLK兩個(gè)引腳;
? SWD具有特殊功能,例如通過其I/O線打印調(diào)試信息;
? 與JTAG相比,SWD在速度方面具有更好的整體性能。
JTAG協(xié)議的優(yōu)勢:
? JTAG不僅限于ARM芯片,在ARM之外的芯片也受支持,比如大家熟悉的MSP430;
? JTAG具有更多多種用途,用于編程,調(diào)試和生產(chǎn)測試;
? JTAG是一個(gè)獨(dú)立的團(tuán)體,他們會(huì)隨著協(xié)議的發(fā)展而發(fā)展。
什么時(shí)候選擇SWD而不是JTAG:
? 如果您的原理圖/電路板設(shè)計(jì)足夠簡單,可以在沒有JTAG功能的情況下進(jìn)行測試;
? 調(diào)試性能比生產(chǎn)測試更重要,你的設(shè)備專注于服務(wù)研究而不是批量生產(chǎn);
? MCU在尺寸方面有限制,SWD可以節(jié)省空間;
? 你的硬件設(shè)計(jì)太復(fù)雜,MCU沒有多余的2個(gè)引腳。
審核編輯:劉清
-
JTAG
+關(guān)注
關(guān)注
6文章
401瀏覽量
71844 -
調(diào)試器
+關(guān)注
關(guān)注
1文章
306瀏覽量
23833 -
USB協(xié)議
+關(guān)注
關(guān)注
0文章
29瀏覽量
14346 -
SWD
+關(guān)注
關(guān)注
1文章
57瀏覽量
11913
發(fā)布評論請先 登錄
相關(guān)推薦
程序下載接口的區(qū)別----JTAG vs SWD
![程序下載接口的<b class='flag-5'>區(qū)別</b>----<b class='flag-5'>JTAG</b> <b class='flag-5'>vs</b> <b class='flag-5'>SWD</b>](https://file.elecfans.com/web2/M00/6D/8C/pYYBAGMz7NmAXpifAAEGaHDnsXM248.png)
SWD和JTAG接口的含義和區(qū)別
SWD與JTAG之間的區(qū)別
jtag和swd有什么不同_jtag和swd的區(qū)別
![<b class='flag-5'>jtag</b>和<b class='flag-5'>swd</b>有什么不同_<b class='flag-5'>jtag</b>和<b class='flag-5'>swd</b>的<b class='flag-5'>區(qū)別</b>](https://file1.elecfans.com//web2/M00/A7/26/wKgZomUMQq-AHDosAABMWlICWs8004.png)
JTAG接口如何轉(zhuǎn)SWD接口_JTAG接口轉(zhuǎn)SWD接口方法
![<b class='flag-5'>JTAG</b>接口如何轉(zhuǎn)<b class='flag-5'>SWD</b>接口_<b class='flag-5'>JTAG</b>接口轉(zhuǎn)<b class='flag-5'>SWD</b>接口方法](https://file1.elecfans.com//web2/M00/A7/26/wKgZomUMQrCAU9jEAABOIInB2BI143.png)
調(diào)試接口SWD和JTAG的區(qū)別
![調(diào)試接口<b class='flag-5'>SWD</b>和<b class='flag-5'>JTAG</b>的<b class='flag-5'>區(qū)別</b>](https://file.elecfans.com/web1/M00/CB/D1/o4YBAF-XeMWAIkiUAADBWSkZ-bg727.png)
下載調(diào)試接口SWD和JTAG的區(qū)別
stm32 SWD調(diào)試接口的使用
![stm32 <b class='flag-5'>SWD</b>調(diào)試接口的使用](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
JTAG與SWD的含義與引腳
![<b class='flag-5'>JTAG</b>與<b class='flag-5'>SWD</b>的含義與引腳](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
JLink引腳定義、JTAG引腳定義、SWD引腳定義
![JLink引腳定義、<b class='flag-5'>JTAG</b>引腳定義、<b class='flag-5'>SWD</b>引腳定義](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
簡述SWD下載器通信協(xié)議底層原理
![簡述<b class='flag-5'>SWD</b>下載器通信協(xié)議底層原理](https://file.elecfans.com/web2/M00/90/62/poYBAGPp6oeAVnBgAAE4rk_MnX8046.png)
評論