-
1 # 風信子視野
-
2 # 創造吧
微控制器是把一個計算機系統整合到一個晶片上。相當於一個微型的計算機,和計算機相比,微控制器只缺少了I/O裝置。
單擊片燒錄原理總結:
ICP:使用SWD介面進行燒錄,如J-Link燒錄器和J-Flash軟體配合使用。
ISP:使用載入程式(Bootload)加上外圍UART/USB等介面進行燒錄。
IAP:軟體自身實現線上電擦除和程式設計的方法,不使用任何工具。程式通常分成兩塊,分別為載入程式和應用程式。
可以這樣比喻性的理解:微控制器就是電腦的主機板,我們寫的程式就是作業系統,主機板裡面裝入引導作業系統的基本程式,下載程式就是給電腦裝系統。
1、把微控制器當做一個ROM晶片,早期的微控制器都是如此。將微控制器放在通用程式設計上程式設計時,就像給28C256這樣的ROM中寫程式的過程一樣。
2、像AT89S52或AVR微控制器一樣,在微控制器上有SPI介面,這時用專用的下載線將程式燒寫到微控制器中。這時不同的是,微控制器的CPU除了執行微控制器本身的指令之外,還能執行對ROM進行操作的特殊指令,如ROM擦除、燒寫和校驗指令。在程式設計ROM時,下載線先透過傳輸這些指令給CPU執行(擦除ROM、讀入資料、燒寫ROM、和校驗ROM),這樣完成對微控制器的ROM的燒寫。
3、載入程式,即微控制器中已經存在了一個燒寫程式。啟動微控制器時首先執行這程式,程式判斷埠狀態,如果符合“要燒寫ROM”的狀態存在,就從某個埠(串列埠、SPI等等)讀取資料,然後寫入到微控制器的ROM中。如果沒有“要燒寫ROM”的狀態,就轉到使用者的程式開始執行。
-
3 # 大樹NB
因為微控制器集成了固化儲存器,同時內部還有一個固化程式用來接收和儲存可執行程式碼,要執行這個內部固化程式一般需要特殊的操作,比如把某個管腳拉低或拉高,這樣上電後處理器檢測這些管腳就可以執行燒寫程式了
回覆列表
我剛開始學習微控制器的時候也有和題主類似的困惑。當時是在大二,剛申請了個淘寶賬號不久,剛看了下我的淘寶已購物品,第五件東西買的就是51微控制器開發板,前幾件都是充話費,當時賣開發板的店鋪也已經不在了。
當時寒假帶著開發板經歷22個小時的硬座,回到家點完LED燈後,先是嘴角微微一笑,然後各種困惑接踵而來,題主的問題就是其中之一。
微控制器是怎麼燒錄程式的?微控制器都沒有啟動,怎麼就能和下載器通訊了?
要回答這個問題先看一個數字電路,D觸發器,如下圖:
D觸發器功能就是隻在Clk訊號的上升沿這個時間點把資料Data傳遞到Q,在其它任何時刻保持Q不變。這不就是一個很簡易的,只有一位的儲存器嗎。從上圖中D觸發器的電路原理圖裡可以看到,D觸發器就是由一堆與、非門組成的電路,控制儲存器並不需要微控制器CPU的參與,只需要一個Clk就可以了。
上圖中的D觸發器畢竟太簡單,而且資料掉電就會丟失,難免有一些忽悠人的感覺,那我們再看下複雜一點的flash儲存器是如何被讀寫的,這也是微控制器裡面常用的儲存介質。
如上圖是flash裡面的一個儲存單元,乍一看好像是MOS管,但仔細一看卻是多了一個Float Gate。這個float gate其實是用氧化矽隔離了的。大概的工作方式是透過float gate裡面的電荷影響開啟電壓,當float gate裡面有電子時,開啟電壓會變高,可以理解是因為gate上的電場線在float gate上的電子上終結了,這時候MOS管是不導通的,被認為儲存的是1。反之,當float gate上沒有電子時,MOS管的開啟電壓就比較低,被認為儲存的是0。所以控制儲存器裡儲存的內容其實是一個物理問題,即如何控制float gate衝放電。感興趣的可以參考我給的參考連結[2]繼續深究,我在這就不深究了,再深究就要露餡了,哈哈。上面說的是一個flash單元,也就是隻能儲存1bit,那512Kbit的flash,要怎麼讀寫。下圖是一個512kbit flash晶片的結構圖,可以簡單的不假思索的認為這塊晶片是由一堆上面的單元再加上一些數位電路,比如串列埠控制器所構成的,對這個flash的讀寫同樣也不需要微控制器CPU的參與,只需要遵循serial interface的時序就可以了。所以在燒寫微控制器的flash的時候是不需要CPU的參與的,只需要遵循flash的介面時序就可以了。
擴充套件資料:微控制器燒錄原理有三種方式:1、把微控制器當做一個ROM晶片,早期的微控制器都是如此。將微控制器放在通用程式設計上程式設計時,就像給28C256這樣的ROM中寫程式的過程一樣。
2、像AT89S52或AVR微控制器一樣,在微控制器上有SPI介面,這時用專用的下載線將程式燒寫到微控制器中。這時不同的是,微控制器的CPU除了執行微控制器本身的指令之外,還能執行對ROM進行操作的特殊指令,如ROM擦除、燒寫和校驗指令。在程式設計ROM時,下載線先透過傳輸這些指令給CPU執行(擦除ROM、讀入資料、燒寫ROM、和校驗ROM),這樣完成對微控制器的ROM的燒寫。
3、載入程式,即微控制器中已經存在了一個燒寫程式。啟動微控制器時首先執行這程式,程式判斷埠狀態,如果符合“要燒寫ROM”的狀態存在,就從某個埠(串列埠、SPI等等)讀取資料,然後寫入到微控制器的ROM中。如果沒有“要燒寫ROM”的狀態,就轉到使用者的程式開始執行。
理解這個原理需要知道幾個知識點:
微控制器是把一個計算機系統整合到一個晶片上。相當於一個微型的計算機,和計算機相比,微控制器只缺少了I/O裝置。
單擊片燒錄原理總結:
ICP:使用SWD介面進行燒錄,如J-Link燒錄器和J-Flash軟體配合使用。
ISP:使用載入程式(Bootload)加上外圍UART/USB等介面進行燒錄。
IAP:軟體自身實現線上電擦除和程式設計的方法,不使用任何工具。程式通常分成兩塊,分別為載入程式和應用程式。
可以這樣比喻性的理解:微控制器就是電腦的主機板,我們寫的程式就是作業系統,主機板裡面裝入引導作業系統的基本程式,下載程式就是給電腦裝系統。