回覆列表
  • 1 # 半夏半心一夢清茶

    ISP(In-SystemProgramming)在系統可程式設計,指電路板上的空白器件可以程式設計寫入終端使用者程式碼,而不需要從電路板上取下器件,已經程式設計的器件也可以用ISP方式擦除或再程式設計。

    IAP(In-ApplicationProgramming)指MCU可以在系統中獲取新程式碼並對自己重新程式設計,即可用程式來改變程式。ISP和IAP技術是未來儀器儀表的發展方向。

    1ISP和IAP的工作原理

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

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

    2ISP和IAP在微控制器中的應用

    2.1傳統程式設計方法的不足

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

    2.2ISP和IAP的優點

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

    IAP技術是從結構上將Flash儲存器對映為兩個儲存體,當執行一個儲存體上的使用者程式時,可對另一個儲存體重新程式設計,之後將程式從一個儲存體轉向另一個。

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

    2.3產品分析

    目前市場上不少的微控制器具有ISP和IAP功能。

    ST公司的μPSD32××系列微控制器片內帶128KB/256KB的FLASH儲存器及32KBBootROM,透過JTAG序列口能很容易地實現ISP功能。IAP功能則可由使用者在應用中實現。

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

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

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

    ISP:insystemprogramming,IAP:inapplicatinprogramming

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

    ISP:用寫入器將code燒入,不過,晶片可以在目標板上,不用取出來,在設計目標板的時候就將介面設計在上面,所以叫"在系統程式設計",即不用脫離系統;

    IAP:在應用程式設計,有晶片本身(或透過外圍的晶片)可以透過一系列操作將code寫入,比如一款支援Iap的微控制器,內分3個程式區,1作載入程式區,2作執行程式區,3作下載區,晶片透過串列埠接收到下載命令,進入引導區執行載入程式,在載入程式下將newcode內容下載到下載區,下載完畢並校驗通過後再將下載區內容複製到2區,運行復位程式,則Iap完成;

    應用場合:

    1,ISP程序升級需要到現場解決,不過好一點的是不必拆機器了;2,IAP如果有網管系統的話,用網管下載一切搞定,人不用跑來跑去,這可能是他們的優點或應用吧

    典型IAP:IC卡電話機內含V.xxMODEM晶片,MCU自帶引導區,可遠端下載更新程式。

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

    IAP和ISP的定義和區別是什麼

    isp:insystemprogramable是指在系統程式設計,簡單的說,就是片子焊板子上,不用取下,就可以簡單而方便地對其進行程式設計。

    iap:inapplicationprogramable是指在應用程式設計,就是片子提供一系列的機制(硬體/軟體上的)是片子在執行程式的時候可以提供一種更新flash的方法,這種方式的典型應用就是用一小段程式碼來實現程式的下載說到這裡就不能不說現在的微控制器的isp功能了,有的微控制器的isp功能是透過iap來實現的,即片子在出廠前就已經有一段小的boot程式在裡面,按照給定的方式就可以下載使用者程式,這樣的話就千萬不能擦除這段程式,否則就只能求救於並行程式設計器了,還有的片子提供isp同時也支援iap,使用中就少了這個麻煩,具體還是要參照你的產品說明。

    ISP,InSystemPrograming

    主要是指代晶片的燒寫方式,以往寫片子需要把片子拿下來,離開電路,用程式設計器燒,換句話說,晶片不能不脫離應用系統進行寫入。

    ISP主要針對這個問題,使用JTAG或者序列口(MCU內部有BootLoader,透過指定的方式啟用之,它可以和PC或其它上位機透過串列埠聯絡,不用使微控制器離開應用系統而更新內部的程式/設定)進行程式的燒寫操作。

    因此,具有ISP功能的MCU可以不使用程式設計器進行程式設計。當然,實現ISP可能需要一些硬體電路支援,具體的在資料手冊中有說明。

    IAP,InApplicationPrograming

    微控制器內部具有一些可擦寫的非易失儲存器,如Flash。在微控制器獨立執行時,不具備IAP功能的微控制器並不能對Flash的資料進行修改,比如,對自身的某一個模組的程式碼,資料進行修改。具備了IAP功能的MCU,能夠透過使用各自公司開發的技術,對於自身進行修改。

    簡言之:

    ISP=>修改MCU內部資料需要有外部介入;

    IAP=>修改MCU內部資料可以不用外部介入。

    二者可以說是資料更新的一種實現機制。

  • 中秋節和大豐收的關聯?
  • 固始有什麼特產?