單片機三種燒錄方式ISP、IAP和ICP有什麼不同?

2021-01-08 電子產品世界

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

本文引用地址:http://www.eepw.com.cn/article/201810/392583.htm

  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、SFCFhilips為一段IAP子程序,保存在FF00H~FFFFH地址空間中),達到引導到BootROM的目的。

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

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

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

  IAP的實現

  通常在用戶需要實現IAP功能時,即用戶程序運行中作自身的更新操作,需要在設計固件程序時編寫兩個項目代碼,第一個項目程序不執行正常的功能操作,而只是通過某種通信管道(如USB、USART)接收程序或數據,執行對第二部分代碼的更新;第二個項目代碼才是真正的功能代碼。這兩部分項目代碼都同時燒錄在User Flash中,當晶片上電後,首先是第一個項目代碼開始運行,它作如下操作:

  1)檢查是否需要對第二部分代碼進行更新

  2)如果不需要更新則轉到4)

  3)執行更新操作

  4)跳轉到第二部分代碼執行

  第一部分代碼必須通過其它手段,如JTAG或ISP燒入;第二部分代碼可以使用第一部分代碼IAP功能燒入,也可以和第一部分代碼一道燒入,以後需要程序更新是再通過第一部分IAP代碼更新。

  對於STM32來說,因為它的中斷向量表位於程序存儲器的最低地址區,為了使第一部分代碼能夠正確地響應中斷,通常會安排第一部分代碼處於Flash的開始區域,而第二部分代碼緊隨其後。

  在第二部分代碼開始執行時,首先需要把CPU的中斷向量表映像到自己的向量表,然後再執行其他的操作。

  如果IAP程序被破壞,產品必須返廠才能重新燒寫程序,這是很麻煩並且非常耗費時間和金錢的。針對這樣的需求,STM32在對Flash區域實行讀保護的同時,自動地對用戶Flash區的開始4頁設置為防寫,這樣可以有效地保證IAP程序(第一部分代碼)區域不會被意外地破壞。

  ISP(In-System Programming)在系統可編程,指電路板上的空白器件可以編程寫入最終用戶代碼,而不需要從電路板上取下器件,已經編程的器件也可以用ISP方式擦除或再編程。IAP(In-ApplicaTIon Programming)指MCU可以在系統中獲取新代碼並對自己重新編程,即可用程序來改變程序。ISP和IAP技術是未來儀器儀表的發展方向。

  1 ISP和IAP的工作原理

  ISP的實現相對要簡單一些,一般通用做法是內部的存儲器可以由上位機的軟體通過串口來進行改寫。對於單片機來講可以通過SPI或其它的串行接口接收上位機傳來的數據並寫入存儲器中。所以即使我們將晶片焊接在電路板上,只要留出和上位機接口的這個串口,就可以實現晶片內部存儲器的改寫,而無須再取下晶片。

  IAP的實現相對要複雜一些,在實現IAP功能時,單片機內部一定要有兩塊存儲區,一般一塊被稱為BOOT區,另外一塊被稱為存儲區。單片機上電運行在BOOT區,如果有外部改寫程序的條件滿足,則對存儲區的程序進行改寫操作。如果外部改寫程序的條件不滿足,程序指針跳到存儲區,開始執行放在存儲區的程序,這樣便實現了IAP功能。

  2 ISP和IAP在單片機中的應用

  2.1 傳統編程方法的不足

  在一般的單片機的實驗或開發時,編程器是必不可少的裝置。仿真、調試完的程序需要藉助編程器燒到單片機內部或外接的程序存儲器中。普通的編程器價格從幾百元到幾千元不等,對於一般的單片機用戶來說還是一筆不小的開支。另外,在開發過程中,程序每改動一次就要拔下電路板上的晶片編程後再插上,這樣不但麻煩也很容易對晶片和電路板造成損傷,另外在程序需要升級做改動時,必須將設備返廠或是技術人員到現場操作,既不方便也造成成本浪費。

  2.2 ISP和IAP的優點

  ISP技術的優勢是不需要編程器就可以進行單片機的實驗和開發,單片機晶片可以直接焊接到電路板上,調試結束即成成品,免去了調試時由於頻繁地插入取出晶片對晶片和電路板帶來的不便。

  IAP技術是從結構上將Flash存儲器映射為兩個存儲體,當運行一個存儲體上的用戶程序時,可對另一個存儲體重新編程,之後將程序從一個存儲體轉向另一個。

  ISP的實現一般需要很少的外部電路輔助實現,而IAP的實現更加靈活,通常可利用單片機的串行口接到計算機的RS232口,通過專門設計的固件程序來編程內部存儲器,可以通過現有的INTERNET或其它通訊方式很方便地實現遠程升級和維護。

  2.3 產品分析

  目前市場上不少的單片機具有ISP和IAP功能。

  ST公司的μPSD32&TImes;×系列單片機片內帶128KB/256KB的FLASH存儲器及32KB Boot ROM,通過JTAG串行口能很容易地實現ISP功能。IAP功能則可由用戶在應用中實現。

  ATMEL公司的單片機AT89S8252,提供了一個SPI串行接口對內部程序存儲器編程(ISP)。SST公司的單片機SST89C54,其最大的特點內部有兩塊獨立的FLASH存儲器,具有IAP(應用中在線編程)功能,對於8052系列的其它公司的單片機(ATMEL、 WINBOND、ISSI)可以直接代換,軟硬體無須做任何改動。

  PHILIPS公司的P89C51RX2xx系列是帶ISP/IAP的8位Flash單片機。PHILIPS公司為了使ISP技術和IAP技術得以推廣,在晶片上免費提供了Boot ROM固件,並且巧妙地解決了固件和FLASH的地址覆蓋問題及一些具體實現細節問題,使它們的實現變得簡單。

  此外在外圍器件中ST公司的PSD系列產品片內帶大容量存儲器,支持ISP及IAP功能。

  ISP,In System Programing

  主要是指代晶片的燒寫方式,以往寫片子需要把片子拿下來,離開電路,用編程器燒,換句話說,晶片不能不脫離應用系統進行寫入。ISP 主要針對這個問題,使用JTAG或者串行口(MCU 內部有Boot Loader ,通過指定的方式激活之,它可以和PC或其它上位機通過串口聯繫,不用使單片機離開應用系統而更新內部的程序/設置)進行程序的燒寫操作。

  因此,具有ISP 功能的MCU 可以不使用編程器進行編程。當然,實現ISP 可能需要一些硬體電路支持,具體的在數據手冊中有說明。IAP,In Application Programing單片機內部具有一些可擦寫的非易失存儲器,如Flash。在單片機獨立運行時,不具備IAP 功能的單片機並不能對Flash的數據進行修改,比如,對自身的某一個模塊的代碼,數據進行修改。具備了IAP 功能的MCU ,能夠通過使用各自公司開發的技術,對於自身進行修改。

  簡言之:ISP=》修改MCU 內部數據需要有外部介入;IAP=》修改MCU 內部數據可以不用外部介入。二者可以說是數據更新的一種實現機制。一般具備ISP 功能後,就不要編程器了,而是使用下載線進行編程工作。但是不是說他們就一定不支持編程器了,具體型號具體分析。是否需要仿真器進行仿真和是否具備ISP和IAP沒有必然的聯繫。只不過具備了IAP功能,可以在MCU內寫入監控程序,模擬一個仿真器,當然,這個監控程序是要消耗資源的,和使用硬體的仿真器還有一定的差異。

  IAP的應用,在51上可能比較多,就是SST出的那個SoftICE功能。他的MCU 其實不具備ISP功能,需要使用編程器燒一個Boot Loader進去,然後,利用IAP功能,就可以通過串行口下載數據了。SST的那個,使用的是自己開發的一個SoftICE軟體,和Keil C的Mon51接口。看DataSheet上說,先要用編程器燒Boot Loader進去,然後,用串口燒SoftICE進去,然後就可以用了。

相關焦點

  • STC單片機程序燒錄與ISP下載相關知識
    導讀:本文為您介紹常見串口USB、RS232、UART三者轉換模塊及其電路原理圖,單片機ISP下載及單片機程序燒錄相關內容,設備連接操作方法。本文引用地址:http://www.eepw.com.cn/article/201710/366385.htm  前面已經說了,單片機相當於一個微型電腦,所以單片機是可以執行程序的。
  • JTAG/SWD/ISP/SWIM詳解單片機的四種燒寫方式
    單片機是一種可編程控制器,搭好硬體電路後,可以利用程序實現很多非常複雜的邏輯功能,與純硬體電路相比,簡化了硬體外圍的設計、方便了邏輯的設計、豐富了邏輯的輸出。不同廠家的單片機需要不同編程IDE來實現編程。
  • stm32怎麼燒錄程序
    STM32燒錄程序目前筆者知道的有三種:JLink ,Ulink和串口燒錄,使用工具分別為:JLink,ULink以及USB轉TTL
  • 如何給Atmega328P單片機燒錄Arduino引導程序
    用USBISP/USBasp編程器給Atmega328P下載Arduino bootloader引導程序bootloader引導程序是什麼Arduino UNO引導程序下載接口幾種常見的下載器和6P轉接頭Arduino Bootloader下載總結bootloader引導程序是什麼猶如電腦主板的BIOS,開機或重啟時先自動進行
  • STLink和STM8/32單片機的連接方式
    STLink是ST官方開發的單片機仿真工具,可以燒寫程序、在線仿真,使用非常方便。STLink具有兩種接口,分別為:1)SWD模式;2)SWIM單總線模式。SWD模式主要針對STM32系列的單片機,而SWIM單總線主要針對STM8系列的單片機。下面介紹STLINK和STM32單片機的連接方式。
  • 如何編寫STC單片機的ISP協議
    1ISP實現基本結構 ISP的實現方式有很多種,但大致都遵循圖1所示流程. 圖1 其中,判斷用戶ISP選擇,一般有以下幾種方式.SST與STC單片機的IAP操作幾乎完全相同,本刊網站(www.dpj.com.cn)中給出了IAP函數的C程序原始碼IAP.C.要特別注意的是,Block0_erase函數中對於block0的選擇,兩種單片機是不同的(正好相反).
  • stm32程序燒錄方式匯總
    STM32 燒錄程序目前筆者知道的有三種
  • PIC單片機12F629燒錄器電路設計與製作
    但是又想...有萬用燒錄器可以用,為什麼要再做一個燒錄器呢?超級矛盾~好奇嘛,做了一個試試看唄... 關鍵字:PIC單片機  12F629  燒錄器 編輯:什麼魚 引用地址:http://news.eeworld.com.cn/mcu/article_2017120436547.html
  • 離線燒錄和在線燒錄,哪種更適合汽車電子系統
    (文章來源:ZLG致遠電子) 汽車電子往往涉及眾多電子零部件,很多部件又都有獨立的晶片和程序要燒錄,傳統座燒一旦測試出現問題,則需要重走拆片貼片流程相對複雜,那麼汽車電子究竟適合哪種燒錄方式呢?
  • EMC單片機實現多次燒錄的辦法
    一般來說,EMC的OTP類型晶片是只能進行一次燒錄的。但是如果在第一次燒錄時,某一位為被燒為「1」,則該位可以再次被燒錄成「0」;反之,如果已經被燒錄成「0」了,則無法再次燒錄成「1」。由此,有人發現了以下文章中介紹的這種多次燒錄OTP晶片的方法。
  • 學習單片機,為什麼我建議你從51單片機開始
    這就和我們小時候學習數學都是從1+1開始學習加法的,簡單+堅持我們就能學習下去,就能更好的理解。下面介紹學習51單片機的準備工作。入門51單片機,始終包含「一軟一硬」2部分,首先你需要準備一個完整的單片機最小系統(包括 時鐘電路、復位電路和電源),最好能有幾個按鍵和LED的,方便後續學習(某寶購買現成的51單片機最小系統,30元內,STC系列的),硬體的方面;然後你要有一個程序編輯、編譯調試的環境,一般選擇Keil
  • 51單片機玩轉物聯網基礎篇01-開發環境搭建
    前言上至航天,下至兒童玩具,凡事沾一點智能的東西,都離不開單片機的身影......,本文開始,我們學習STC89C52單片機,這款單片機屬於8051系列單片機,51單片機作為入門級單片機不僅在教學實驗中應用廣泛,在實際項目中應用亦是十分廣泛。
  • 燒錄Hex文件到Silabs單片機
    通常我們會用燒錄器EC5或者EC6在Silabs IDE下載程序但是有很多人會比較習慣用Keil生成Hex文件再燒錄其實這也是可以的Silabs也提供了下載的工具
  • 單片機燒錄是什麼意思?只讀存儲器真的只能讀嗎?原來如此
    問題導入:問題1:我們在學習單片機的時候,在編輯好代碼以後要把代碼「寫入」到單片機中,那麼為什麼這個過程稱為「燒錄」呢?從以上分類和描述中可以看出,早期的ROM確實只能讀,不能寫,所以也就叫只讀存儲器了。嚴格來講,從EPROM開始,ROM就不能叫只讀存儲器了,我們現在還這樣叫,只是個歷史原因。這也就回答了問題2.我們知道,數據只有0和1,那麼對於早期的掩膜ROM,程序又是怎麼寫進去的呢?
  • stm32 iap 程序跳轉進入硬體異常 hex合併
    問題:stm32f103ret6上做的IAP,仿真調試階段沒有遇到過問題,外場使用就發現不能跳轉到app,且不同板子、不同isp等都可能出現這種問題解決:直覺上是有規律的,一直找規律,經過一天試驗、跟蹤、bin代碼對比,終於發現bin的最後一部分代碼沒有成功寫入
  • 河北省全網isp許可證_暢雲無限
    是指網際網路服務提供商,即向廣大用戶綜合提供網際網路接入業務、信息業務、和增值業務的電信運營商依據相關法律規定必須具備的資格證書。isp許可證是企業合法開展網際網路接入服務業務的最低要求,根據規定,無證擅自開展isp接入業務,從事無證經營的企業,由查處部門依照相關法律、法規的規定予以處罰。作為B14類isp許可證,你知道是由那個部門審批的嗎?
  • 燒錄單片機的步驟
    單片機的燒寫原理本文引用地址:http://www.eepw.com.cn/article/201807/384398.htm1,把單片機當做一個ROM晶片,早期的單片機都是如此。
  • IAP是什麼
    導讀:本文主要講述的是IAP是什麼,不懂得童鞋們快來學習一下吧,很漲姿勢的哦~~~本文引用地址:http://www.eepw.com.cn/article/273451.htm1.IAP是什麼--簡介  IAP是In Application
  • 你用過單片機嗎?不一樣的寫法讓燈閃爍
    什麼是單片機?單片機又稱單片微控制器,它不是完成某一個邏輯功能的晶片,而是把一個計算機系統集成到一個晶片上。相當於一個微型的計算機,和計算機相比,單片機只缺少了I/O設備。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。單片機應用是什麼?
  • icp許可證和icp備案的區別
    icp備案和icp許可證對於很多人來說很迷惑,覺得他們的名字很相似作用應該也一樣,那你就錯了,他們的區別可大了,現在雲淘企服的小編給你說說他們之間的關係吧!icp備案:icp備案主要是對域名進行管理,由當地的通信管理局做審核,所有的網站都是需要經過icp備案的,可以是個人或者企業備案,網站備案格式為:省簡稱+備+號。個人備案的網站可以用來寫一些心情隨筆,記錄自己的生活樂趣,企業備案可以作為公司的單位門戶網站,展示公司信息,讓客戶了解公司信息。但是個人和企業信息都不能涉及經營性,如果涉及經營性了,那就是屬於違法行為了。