<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > P89LPC932的幾種ISP編程方法

P89LPC932的幾種ISP編程方法

作者: 時(shí)間:2012-03-30 來(lái)源:網(wǎng)絡(luò ) 收藏

引 言:

本文引用地址:http://dyxdggzs.com/article/171732.htm

LPC900系列Flash單片機提供從8腳到28腳的封裝形式,可以滿(mǎn)足各種對成本和電路板空間有限制而又要求高性能、高可靠性的應用需要,同時(shí)具有高速率(6倍于傳統MCS51單片機),低功耗(完全掉電模式下耗電低于1 μA),高穩定性,小封裝,多功能(內嵌眾多流行的功能模塊)等特點(diǎn)。就是該家族中的重要一員,其集成了8 KB的Flash程序存儲器、512B的靜態(tài)數據存儲器、512B的E2PROM、I2C總線(xiàn)、SPI總線(xiàn)、增強型UART接口、模擬比較器、看門(mén)狗、4 個(gè)中斷優(yōu)先級、雙DPTR,并支持/IAP等功能。

1 進(jìn)行的基本方式

1.1內部程序存儲器的三種方式

內部集成的8 KB程序存儲器編程的三種方式分別是:在系統編程();程序運行時(shí)編程(IAP);通過(guò)并行方式編程。

一般來(lái)說(shuō),ISP編程是指依靠某種外部工具(除了常規的并行編程器以外)去直接給處理器內部集成的程序存儲器編程。這里所指的外部工具常見(jiàn)的有很多種,不同的處理器供應廠(chǎng)商可能提供不同的方案。例如,根據編程接口的不同,就有JTAG、單線(xiàn)、串口、SPI口等多種方式。盡管編程方式有所不同,但其原理都是類(lèi)似的,就是依靠外部條件觸發(fā)處理器,令其脫離正常執行的內部常規用戶(hù)應用程序代碼的進(jìn)程,轉而執行保存在其程序存儲空間內某個(gè)固定位置處的控制擦除程序存儲器及給程序存儲器編程的代碼(或是處理器外部提供的執行代碼),然后通過(guò)某種與PC計算機的通信方式,將用戶(hù)指定的某個(gè)在PC上編譯完成的嵌入式處理器可運行的二進(jìn)制代碼文件編程入嵌入式處理器內的程序存儲器。這種編程方式只需要常規的硬件配置(某些處理器可能需要某些叫做下載線(xiàn)的簡(jiǎn)單硬件電路)支持,而不需要特別的編程器(指并行編程器)支持,所以即使處理器芯片已經(jīng)焊接到了電路板上也可以實(shí)現編程,這也就是ISP的真實(shí)含義。P89LPC932 是利用其自身的異步串行口來(lái)實(shí)現ISP編程的,不需要特別的下載線(xiàn)或下載器,觸發(fā)LPC932進(jìn)入ISP編程模式的將在下文詳細解釋。

IAP編程方式與ISP編程方式類(lèi)似,但它不是由外部條件來(lái)觸發(fā)的,而是在處理器正常執行用戶(hù)設計的應用程序代碼時(shí),直接調用執行擦除及編程功能的固化例程。和ISP編程方式一樣,IAP編程方式也只需要常規的硬件配置來(lái)支持。P89LPC932的ISP編程實(shí)際上就是通過(guò)調用芯片的IAP服務(wù)子程序實(shí)現編程的,其IAP服務(wù)子程序保存在FF00H~FFFFH地址空間中,不占用用戶(hù)程序空間。

并行方式編程需要使用一臺外部專(zhuān)業(yè)編程設備。換句話(huà)說(shuō),這種編程環(huán)境并不是用戶(hù)最終應用時(shí)的硬件環(huán)境。用戶(hù)在使用這種編程方式時(shí),通常必須將處理器芯片單獨放到并行編程器上進(jìn)行編程(如果處理器芯片已經(jīng)焊接到電路板上,則必須先將處理器芯片從電路板上取下來(lái))。處理器芯片編程完成后才能放回到電路板上,再上電令處理器運行,才能看到用戶(hù)新寫(xiě)入代碼的運行結果。這是最傳統的編程方式(經(jīng)典的AT89C51就主要使用這種方式編程),但它既繁瑣,又不能滿(mǎn)足現今遠程升級的實(shí)際需求,因而已逐漸被方便快捷的ISP、IAP等在線(xiàn)編程方式所取代。

綜合來(lái)說(shuō),ISP模式是最容易使用的,因為它允許處理器在被焊接到用戶(hù)目標電路板上再進(jìn)行編程,也不需要復雜的代碼設計,該特性允許用戶(hù)在生產(chǎn)出硬件產(chǎn)品后再升級產(chǎn)品軟件。一般來(lái)說(shuō),增加校準信息數據和現場(chǎng)安裝最新的軟件版本是較常見(jiàn)的升級操作。不僅如此,ISP編程還特別適用于用戶(hù)產(chǎn)品研發(fā)階段。顯然,用戶(hù)可以非常方便快捷地更改自己的程序代碼并立即看到新代碼的運行結果。 P89LPC932使用串口作為ISP編程模式的主通信接口,使得這一系列處理器較那些依靠JTAG、SPI等通信接口作ISP編程接口的處理器要方便。因為一般的嵌入式系統都會(huì )配置異步串行口,這樣,在系統編程就不需要特殊的ISP編程器,而JTAG、SPI等及其類(lèi)似的編程方式一般都需要專(zhuān)用的接口適配器或下載線(xiàn)來(lái)配合,這些都可能會(huì )增加用戶(hù)的投資和成本。

P89LPC932芯片實(shí)現ISP編程是依靠在出廠(chǎng)時(shí)預置的一段啟動(dòng)代碼,這段代碼存儲在P89LPC932代碼空間內7號扇區的高端512B地址處(P89LPC932內部的8 KB程序存儲器被組織成8個(gè)扇區,每個(gè)扇區有1 KB)。這段代碼提供了設備底層操作代碼(執行如擦除、編程等操作)和串口通信之間的接口。如果用戶(hù)需要使用ISP編程模式,則必須注意,千萬(wàn)不要擦除或覆蓋包含ISP預置代碼的那個(gè)扇區,也就是7號扇區(1C00~1FFFH),因為P89LPC932的擦除操作是以扇區為基本單位的。

如圖1所示,用P89LPC932實(shí)現ISP的硬件連接很簡(jiǎn)單,它只需使用VDD電壓即可執行擦除和編程算法,不需要特殊的高編程電壓,所以,芯片外部只需要1片TTL和RS232電平相互轉換的芯片(常見(jiàn)的芯片包括Maxim的MAX202、MAX232等,其他公司如TI、Sipex、Linear 都有類(lèi)似功能的芯片產(chǎn)品)即可實(shí)現P89LPC932內異步串行口和用戶(hù)個(gè)人計算機上的RS232串口的連接。在用戶(hù)個(gè)人計算機上運行一個(gè)簡(jiǎn)單的終端仿真程序就可以實(shí)現ISP編程,不過(guò)還有一種更簡(jiǎn)單的,就是運行一個(gè)現成的免費程序,比如Flashmagic,就可以實(shí)現這個(gè)目的,這個(gè)程序集成了所有針對Philips LPC900系列處理器的ISP功能。P89LPC932內部的ISP代碼能夠自動(dòng)檢測其片上異步串行口與用戶(hù)個(gè)人計算機通信的波特率,進(jìn)而實(shí)現在用戶(hù)個(gè)人計算機控制下的代碼下載及編程。綜上所述,P89LPC932的這種ISP編程模式不需要外部編程器,但是需要一定的外部電路(串口通信電路),需要保留ISP駐留代碼,需要在用戶(hù)的應用程序代碼中添加ISP引導初始化程序(如中止控制符檢測初始化),且ISP加密字的第2位(禁止ISP/IAP擦除)不能置位。

5.jpg
圖1P89LPC932 ISP模式硬件連接圖

1.2進(jìn)入ISP模式的

觸發(fā)P89LPC932進(jìn)入ISP模式的4種方法分別是:通過(guò)檢測狀態(tài)位觸發(fā)進(jìn)入ISP模式(全新芯片最初上電時(shí)的默認狀態(tài));通過(guò)檢測中止控制符信號觸發(fā)復位后進(jìn)入ISP模式(最實(shí)用而且常用的方法);上電時(shí)在復位引腳上檢測到特定脈沖后觸發(fā)進(jìn)入ISP模式(即硬件激活進(jìn)入ISP模式);直接調用 ISP代碼實(shí)現進(jìn)入ISP模式。

1.2.1通過(guò)檢測狀態(tài)位觸發(fā)進(jìn)入ISP模式

P89LPC932復位時(shí),是否進(jìn)入 ISP模式會(huì )受一個(gè)狀態(tài)位的控制,這個(gè)狀態(tài)位保存在Flash存儲器里的一個(gè)保留位置,不過(guò)這個(gè)位置并不在P89LPC932可以尋址的程序存儲器空間內。在復位信號的下降沿,處理器將檢查該狀態(tài)位的值,如果其值為0,處理器將從地址0000H處開(kāi)始取指令執行,這里通常存儲著(zhù)用戶(hù)的應用程序代碼。如果該狀態(tài)位的值不是0,則處理器將從另一個(gè)確定的地址處開(kāi)始執行此處的代碼,這個(gè)地址(16位)的高8位由復位向量指定,低8位固定為00H。也就是說(shuō),引導向量的值將作為程序計數器(PC)的高字節,低字節為00H。如果用戶(hù)使用的是一片新芯片,芯片中的狀態(tài)位值在出廠(chǎng)時(shí)就被設置為1,而啟動(dòng)向量被預編程為1EH。因此,新芯片在復位后將直接從1E00H地址處開(kāi)始執行代碼。因為從1E00H開(kāi)始處的代碼,正好就是Philips公司給芯片預置的ISP啟動(dòng)代碼。如果用戶(hù)希望從0000H地址處開(kāi)始執行代碼,則狀態(tài)位的值可以通過(guò)并行編程器去清零。實(shí)際上,通過(guò)ISP代碼的自身功能也可以給狀態(tài)位清零;如果用戶(hù)往P89LPC932內部的程序存儲器寫(xiě)入自己的應用程序代碼后給狀態(tài)位清零,則下次芯片復位后處理器將直接執行用戶(hù)代碼。另外,ISP代碼也有修改啟動(dòng)向量值的功能,用戶(hù)可以修改它的值,也就是把芯片復位后取代碼執行的地址修改了(假如LPC932被觸發(fā)進(jìn)入ISP模式的話(huà)),而用戶(hù)自己編寫(xiě)的啟動(dòng)代碼就放在那里,這種設計通常是用來(lái)執行某些特殊功能的。不過(guò),如果用戶(hù)修改了啟動(dòng)向量的值,使它不再是1EH,則用戶(hù)就再也不能使用LPC932出廠(chǎng)時(shí)預置的啟動(dòng)代碼了。如果啟動(dòng)向量被修改而指向一個(gè)不包括任何啟動(dòng)代碼的地址,用戶(hù)則不得不使用一臺并行編程器來(lái)給這枚芯片編程,以恢復它的啟動(dòng)向量值;否則,用戶(hù)將無(wú)法再使用這種ISP編程方法。

1.2.2通過(guò)檢測中止控制符信號觸發(fā)芯片復位后進(jìn)入ISP模式

通過(guò)異步串行口檢測到中止控制符信號觸發(fā)芯片復位后進(jìn)入ISP模式是進(jìn)入ISP模式的第二種方式。中止控制符信號就是指在異步串行口的接收腳上出現長(cháng)達一幀長(cháng)度的低電平,這里一幀的長(cháng)度與異步串行口的工作模式有關(guān)。例如,在異步串行口的“模式一”中,一幀相當于10個(gè)比特的傳輸時(shí)間。一般地,當一個(gè)中止控制符信號發(fā)出時(shí),異步串行口的接收腳將會(huì )持續相當于很多幀時(shí)間的低電平。不過(guò),在第一幀的時(shí)候,中止控制符信號就會(huì )被檢測到。注意,如果用一個(gè)機械開(kāi)關(guān)來(lái)拉低異步串行口的接收腳,以創(chuàng )造一個(gè)中止控制符信號,同時(shí),處理器被配置為允許串行中斷,則異步串行口的接收中斷標志必須在其中斷服務(wù)全程中被處理,否則,處理器將進(jìn)入一種不確定的狀態(tài)。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 方法 編程 ISP P89LPC932

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>