1. 程式人生 > >ISP與IAP的區別

ISP與IAP的區別

結構 優勢 net dem 完成 方式 什麽 內容 麻煩

轉:

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××系列單片機片內帶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進去,然後就可以用了。

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 如果有網管系統的話,用網管下載一切搞定,人不用跑來跑去,

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

典型IAP:IC卡電話機

內含V.xx MODEM芯片,MCU自帶引導區,可遠程下載更新程序。

========================================================

在線編程目前有兩種實現方法:在系統編程(ISP)和在應用編程(IAP)。ISP一般是通過單片機專用的串行編程接口對單片機內部的Flash存儲器進行編程,而IAP技術是從結構上將Flash存儲器映射為兩個存儲體,當運行一個存儲體上的用戶程序時,可對另一個存儲體重新編程,之後將控制從一個存儲體轉向另一個。ISP的實現一般需要很少的外部電路輔助實現,而IAP的實現更加靈活,通常可利用單片機的串行口接到計算機的RS232口,通過專門設計的固件程序來編程內部存儲器。

總結,簡單滴說,就是ISP是在設計板子的時候留了個下載程序的口出來,可以通過這個口和PC上的燒寫軟件通信,然後直接把程序下載到電路板的MCU上。(MCU的整個程序系統被更改了喔)而,IAP則需要MCU裏面有兩部分程序,一部分事固件程序簡稱boot,另一部分叫做flash(存用戶代碼的喔),單片機上電首先運行boot再執行flash(所以說嘛,這個要求就高了哦,要求 MCU裏面有固件,才可以進行程序更新重新燒寫flash,刷機啊~~!!)

ISP與IAP的區別