程序如何下載到單片機中?單片機常用的四種燒寫程序方式介紹

單片機是一種可編程控制器,搭好硬件電路後,可以利用程序實現很多非常複雜的邏輯功能,與純硬件電路相比,簡化了硬件外圍的設計、方便了邏輯的設計、豐富了邏輯的輸出。不同廠家的單片機需要不同編程IDE來實現編程。在學習單片機之前,要先清楚單片機程序是如何燒寫到單片機內部的,在燒寫的過程中需要用到什麼工具?因為不通用的燒寫工具可能價格較貴,比如說Micorchip單片機使用的ICD系列編程器,單臺價格在600-1000元人民幣之間。今天和大學來認識一下單片機最常用的四種燒寫方式和所使用到的工具。

1.使用JTAG接口實現

JTAG接口是一種標準的測試協議,可以實現編程時在線調試,利用單步追蹤可以很方便的查找代碼的Bug,大多數的單片機都支持這種接口。這種接口除了電源線和復位引腳之外,還要用到單片機的四個引腳,分別是:TDI、TMS、TCK、TDO,他們所代表的含義如下所示:

  • TDI--數據輸入,所有寫入寄存器的數據都是通過TDI接口串行輸入的;
  • TMS--模式選擇,Jlink輸出給目標CPU的時鐘信號;
  • TCK--時鐘信號,所有數據的輸入輸出都是以該時鐘信號為基準的;
  • TDO--數據輸出,所有從寄存器讀出的數據都是通過TDO接口串行輸出的;

以上這四個引腳都是協議裡強制要求的,而且協議建議在設計電路時要選用上拉電阻。JTAG接口有多種形式,常用的20引腳、14引腳和10引腳。以20引腳JTAG為例,所設計的JTAG燒寫電路如下圖所示:

程序如何下載到單片機中?單片機常用的四種燒寫程序方式介紹

JTAG接口

上圖中JTAG接口都通過電阻上拉了,有的單片機的這幾個引腳在內部已經上拉,所以這幾個上拉電阻可以省略,減少了成本和PCB空間的佔用。

JTAG接口燒錄方式常用的工具為J-Link,實物圖如下圖所示。

程序如何下載到單片機中?單片機常用的四種燒寫程序方式介紹

Jlink實物圖

相信大家都見過或者聽過這個燒寫工具,這個工具很通用,但是大家在使用的時候一定要注意版權信息,因為這個工具是有版權的,前兩年因為版權風波,網購平臺還集中整治過一次。

2.SWD接口燒錄方式

SWD是一種串行調試接口,與JTAG相比,SWD只需要兩根線,分別為:SWCLK和SWDIO。他們的含義如下:

  • SWDIO--串行數據線,用於數據的讀出和寫入;
  • SWDCLK--串行時鐘線,提供所需要的時鐘信號;

一般來說,大多數單片機的JTAG接口和SWDIO接口是複用的,SWD也是用J-Link工具來實現的。所以在使用的時候,只需要在軟件界面做一下選擇,使用SWD方式還是JTAG方式,硬件上無需改動。除了J-Link外,意法半導體的ST-Link也是支持SWD模式的。

程序如何下載到單片機中?單片機常用的四種燒寫程序方式介紹

SWD接口

SWD的接口如上圖所示,可以看出,SWD和JTAG是相互複用的,由於SWD只需要兩根線所以大大減少了對單片機GPIO口的佔用,SWD方式也是可以在線調試的。

3.ISP燒寫方式,用UART實現

使用過國產51單片機的朋友都清楚這種燒寫方式,這種燒寫方式是通過單片機的UART串口來實現的,所需要的工具也比較簡單-USB/TTL。這個USB/TTL的芯片可以通過MAX232、CH340G等芯片來實現,通過MAX232實現的UART燒寫電路如下所示:

程序如何下載到單片機中?單片機常用的四種燒寫程序方式介紹

UART串口燒寫電路

在與單片機連接的時候,一定要注意交叉連接,所謂交叉連接即,單片機的TXD接串口RXD,單片機的RXD接串口TXD,否則數據通信失敗。51單片機在使用該方式下載時需要斷一下點再上電才能下載。

STM32單片機可以使用UART來實現程序下載,但是需要選擇BOOT的模式,現在通過CH340G芯片可以實現自動ISP的下載方式,即不需要手動設置BOOT模式。

4.SWIM單總線下載方式

這種下載方式是針對STM8系列的單片機,這種方式只需要一根線即可實現程序的下載,所使用的工具為ST-Link,如下圖所示:

程序如何下載到單片機中?單片機常用的四種燒寫程序方式介紹

ST-Link

以上為幾種常見的燒寫方式以及所使用的工具,歡迎大家留言評論,如果轉載請註明作者信息和頭條出處,感謝支持。


分享到:


相關文章: