ISP與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××系列單片機片內帶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,刷機啊~~!!)

轉載于:https://www.cnblogs.com/prayer521/p/4427925.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376080.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376080.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376080.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【轉】手把手實現企業級開源監控軟件cacti+nagios+ntop整合(圖解)

http://freeze.blog.51cto.com/1846439/386828轉載于:https://www.cnblogs.com/nhlinkin/p/3595532.html

【BZOJ】【1041】【HAOI2008】圓周上的點

數學 orz hzwer 完全不會做…… 很糾結啊,如果將來再遇到這種題,還是很難下手啊…… 引用題解: 【分析】: 樣例圖示: 首先,最暴力的算法顯而易見:枚舉x軸上的每個點,帶入圓的方程,檢…

php authcode java_PHP(authcode)加密解密

//************************加密解密*************************//** $string: 明文 或 密文* $operation:DECODE表示解密,其它表示加密* $key: 密匙* $expiry:密文有效期* */function authcode($string, $operation DECODE, $key…

nginx環境下搭建nagios 3.5.0,及配置pnp4nagios畫圖

本文基于《LNMP最新源碼安裝腳本》,Nagios依賴PHP環境和perl環境,由于Nginx不支持Perl的CGI,需先來搭建Perl環境,Nagios原理介紹略。一、下載最新穩定源碼包和Perl腳本wget http://www.cpan.org/modules/by-module/FCGI/FCGI-0.74.tar.gzwget…

python indexerror怎么辦_Python IndexError:使用列表作為可迭代對象時...

這是代碼:import math as mprimeproduct 5397346292805549782720214077673687806275517530364350655459511599582614290primes [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127…

【Android】配置APK開發環境

【Android】配置APK開發環境1.安裝java jdk去oracle公司下載jdk-7u15-windows-i586.exehttp://www.oracle.com/technetwork/cn/java/javase/downloads/jdk7-downloads-1880260-zhs.html---C:\Documents and Settings\XXXX>java -versionjava version "1.7.0_15"Ja…

C++細節系列(零):零散記錄

老規矩:記錄細節,等待空余,再進行整理。 1:const,static,const static成員初始化。 1、const成員:只能在構造函數后的初始化列表中初始化 2、static成員:初始化在類外,且不加static修飾。 3、co…

java js highcharts_Highcharts.js -純javasctipt圖表庫初體驗

一.highcharts簡介以及引入highcharts作為免費提供給個人學習、個人網站和非商業用途使用的前端圖表演示插件的確使用起來十分方便和輕便。在我最近完成一個需求的時候用到了它, 它的兼容性也很強,其在標準(W3C標準)瀏覽器中使用SVG技術渲染圖形&#xf…

PHP:class const

const變量經常被當做常量用在php的類中&#xff0c;隱含的意思是這個變量是常量&#xff0c;不能被修改。編譯器會自動檢測&#xff0c;如果被賦值會被提示錯誤警告。 正確實例1&#xff1a; <?php class test {const ERRNO 100; } echo test::ERRNO."\n"; 輸出…

java web核心知識_JAVA web 相關知識點

1&#xff1a; web的三個核心標準&#xff1a;URL&#xff1a; http VS httpsHTTP: 通信協議&#xff0c;客戶端&#xff0f;服務器端信息交互方式; 特點是無狀態&#xff1b;HTML:2: HTTP 協議&#xff1a;http是通用的&#xff0c;無狀態的&#xff0c;面向對象的協議。H…

20135127陶俊杰 實驗一

北京電子科技學院(BESTI) 《Java程序設計》課實驗報告 班 級&#xff1a;201351 姓名及學號&#xff1a;陶俊杰 20135127 指導教師&#xff1a;婁佳鵬 必修/選修&#xff1a;選修 實驗日期&#xff1a; 2015年4月16日 實驗時間&…

2014.3.12-C語言小測試

測試代碼&#xff1a; 學號:14020491.請實現一個函數&#xff0c;功能為使用循環輸出以下的圖案void print_alpha(int n) {int i, j;for(i0;i<n;i){for(j0;j<i;j)printf("%c", A j);printf("\n");} }2.請實現一個函數&#xff0c;功能為刪除數組指定…

seqlist插入java_大話數據結構(五)(java程序)——順序存儲結構的插入與刪除...

獲得元素操作對于線性表的順序存儲結構來說&#xff0c;我們要實現getElement操作&#xff0c;即將線性表的第i個位置元素返回即可插入操作插入算法思路&#xff1a;1、如果插入位置不合理&#xff0c;拋出異常2、如果插入表的長度大于等于數組長度&#xff0c;則拋出異常或動態…

142. Linked List Cycle II

Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Follow up:Can you solve it without using extra space? Craking interview書上原題&#xff0c;快慢指針&#xff0c;話題較簡單說明。 /** * Definition for singly-lin…

無法嵌入互操作類型ESRI.ArcGIS.Carto.MapDocumentClass.請改用適用的接口

在對地圖文檔進行操作時&#xff0c;居然出現如下問題&#xff1a; IMapDocument m_MapDocument new ESRI.ArcGIS.Carto.MapDocumentClass(); 報錯: 無法嵌入互操作類型"ESRI.ArcGIS.Carto.MapDocumentClass".請改用適用的接口. 解決方案如下&#xff1a; 解決方案—…

java文件定時讀寫_java定時任務及日志的使用

需要引入日志的兩個架包&#xff1a;log4j.jar和commons-logging.jarpackage com.lzl;import java.util.TimerTask;import org.apache.log4j.Logger;import com.sun.org.apache.commons.logging.Log;import com.sun.org.apache.commons.logging.LogFactory;public class MyTask…

Google Code Jam 2015 Round 1A Haircut 二分

題意&#xff1a;給你每個理發師的理發時間&#xff0c;問你排在隊列中的第N個位置&#xff0c;問你應該被哪個理發師剪發。 解題思路&#xff1a;二分時間&#xff0c;看這個時間到第幾個人理發了&#xff0c;然后找到臨界值&#xff0c;看這個值的時候有那些理發師接待了新旅…

java編寫科赫曲線_matlab繪制peano(皮亞諾)曲線和koch(科赫曲線,雪花曲線)分形曲線...

koch曲線matlab plot函數繪制koch曲線程序&#xff0c;程序還是比較簡單的&#xff0c;這里只繪制出了雪花的三分之一function koch_curve(number)%number代表koch的階數&#xff0c;范圍為大于等于2figureset(gcf,position,[0,0,1920,1080]);%設置窗口分辨率&#xff0c;[0,0]…

ajax翻頁效果模仿yii框架

ajax翻頁效果模仿yii框架 ajax翻頁效果&#xff0c;模仿yii框架。 復制代碼代碼如下:<!DOCTYPE html> <html> <head> <title>ajax分頁_www.jbxue.com</title> <script src"http://code.jquery.com/jquery-1.11.0.min.js"></s…