當前位置:編程學習大全網 - 編程語言 - 單片機三種燒錄方式ISP,IAP和ICP的區別詳解

單片機三種燒錄方式ISP,IAP和ICP的區別詳解

單片機ISP、IAP和ICP幾種燒錄方式的區別

玩單片機的都應該聽說過這幾個詞。壹直搞不太清楚他們之間的區別。今天查了資料後總結整理如下。

ISP:In System Programing,在系統編程

IAP:In applicaTIng Programing,在應用編程

ICP:In Circuit Programing,在電路編程

ISP是指可以在板級上進行編程,也就是不用拆芯片下來,寫的是整個程序,壹般是通過ISP接口線來寫。

IAP雖然同樣也是在板級上進行編程,但是是自已對自已進行編程,在應用中進行編程,也即可以只是更改某壹部分而不影響系統的其它部分,另外接口程序是自已寫的,這樣可以進行遠程升級而不影響應用。

打個比喻吧:

1、ISP是把房子拆了再重造壹間,那麽在造好之前當然是不能住人的啦!

2、IAP是在造好的房子裏邊進行壹些裝修,當然人可以繼續住啦!

ICP是在電路編程,是LPC芯片的編程方式,相當於ATMEL的ISP,而LPC的ISP就相當於ATMEL的IAP了。

ISP與IAP的區別

ISP:in system programming, 在系統編程

IAP: in applicaTIn programming 在應用編程

但兩者的操作方式,結果和應用場合有什麽區別

什麽是ISP:

用寫入器將code燒入,不過,芯片可以在目標板上,不用取出來,在設計目標板的時候就將接口設計在上面,所以叫“在系統編程”,即不用脫離系統;

什麽是IAP:

在應用編程,有芯片本身(或通過外圍的芯片)可以通過壹系列操作將code寫入,比如壹款支持Iap的單片機,內分3個程序區,1作引導程序區,2作運行程序區,3作下載區,芯片通過串口接收到下載命令,進入引導區運行引導程序,在引導程序下將new code內容下載到下載區,下載完畢並校驗通過後再將下載區內容復制到2區,運行復位程序,則Iap完成;

應用場合:

1,ISP 程序升級需要到現場解決,不過好壹點的是不必拆機器了;

2,IAP 如果有網管系統的話,用網管下載壹切搞定,人不用跑來跑去,

這可能是他們的優點或應用吧

在線編程目前有兩種實現方法:在系統編程(ISP)和在應用編程(IAP)。ISP壹般是通過單片機專用的串行編程接口對單片機內部的Flash存儲器進行編程,而IAP技術是從結構上將Flash存儲器映射為兩個存儲體,當運行壹個存儲體上的用戶程序時,可對另壹個存儲體重新編程,之後將控制從壹個存儲體轉向另壹個。ISP的實現壹般需要很少的外部電路輔助實現,而IAP的實現更加靈活,通常可利用單片機的串行口接到計算機的RS232口,通過專門設計的固件程序來編程內部存儲器。 ISP和IAP很相似,都是不需要把芯片從板子上拔出來,就達到了用PC-MCU的編程接口(JTAG、串口、雙絞線、SPI等)搞定新版本的升級的目的。MCU內部都是首先執行壹段獨立的Boot代碼(這段Boot代碼壹般是出廠預置,或使用編程器燒錄的,通常只有1k或4k,SST通常是占用壹塊獨立的Block,Philips通常是讓BootROM地址與其他Flash重疊,以達到隱藏的效果),Boot負責控制擦除程序存儲器及給程序存儲器編程的代碼(或是處理器外部提供的執行代碼),然後通過某種與PC計算機的通信方式(如,ether網口),將用戶指定的某個在PC上編譯完成的MCU可運行的二進制代碼文件編程入MCU內的程序存儲器。

ISP和IAP最大的不同是:由誰來觸發。

ISP有4種觸發方式:

1.由外部硬件電路:如VDD保持高電平,給RST連續3個脈沖;

2.檢測狀態位:如ISPEN,為0時PC指針從0000H開始執行;為1時,通過“引導向量”計算出“ISP代碼”的位置。每次復位後都會檢測該狀態位;

3.中止控制符信號觸發芯片復位:中止控制符信號就是指在異步串行口的接收腳上出現長 達壹幀長度的低電平,這裏壹幀的長度與異步串行口的工作模式有關。

4.直接調用ISP:用戶程序也可以調用,但是很危險。

4種方式的目的是相同的——進入ISP子程序,比如Philips出廠的ISP子程序在1E00H-1FFFH,只要能引導PC指針指向1E00H就可以了。

而進入ISP代碼的目的是:進入BootROM。

IAP的觸發比較簡單壹些,沒有外部觸發。通過壹些指示位(SST為SC0/SC1、SFCF;Philips為壹段IAP子程序,保存在FF00H~FFFFH地址空間中),達到引導到BootROM的目的。

殊途同歸,ISP、IAP所進入的BootROM裏面駐留的Boot代碼,才是最終目標。

最後壹種:並行編程模式。不需要BootROM,直接設置芯片的多個引腳來讓芯片識別命令(如:擦除、寫入、驗證等),從P口傳地址、數據,就可以寫入Flash

用LPC2000的IAP,妳自己分配好FLASH空間,指定壹個BLOCK用來存放妳的數據,然後通過IAP進行寫操作。每次開機後,從這個BLOCK讀妳的數據。

  • 上一篇:哪些usb無線網卡支持frame injection
  • 下一篇:小五數學應用題
  • copyright 2024編程學習大全網