音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

一種P89LPC922自編ISP代碼的設(shè)計(jì)和實(shí)現(xiàn)

出處:互聯(lián)網(wǎng) 發(fā)布于:2011-08-26 17:36:25

 

  ISP(In-System Programming)在線(xiàn)系統(tǒng)可編程,指電路板上的空白器件可以編程寫(xiě)入終用戶(hù)代碼, 而不需要從電路板上取下器件,已經(jīng)編程的器件也可以用ISP方式擦除或再編程。ISP的實(shí)現(xiàn)相對(duì)要簡(jiǎn)單一些,一般通用做法是內(nèi)部的存儲(chǔ)器可以由上位機(jī)的軟件通過(guò)串口來(lái)進(jìn)行改寫(xiě)。對(duì)于單片機(jī)來(lái)講可以通過(guò)SPI或其它的串行接口接收上位機(jī)傳來(lái)的數(shù)據(jù)并寫(xiě)入存儲(chǔ)器中。所以即使我們將芯片焊接在電路板上,只要留出和上位機(jī)接口的這個(gè)串口,就可以實(shí)現(xiàn)芯片內(nèi)部存儲(chǔ)器的改寫(xiě),而無(wú)須再取下芯片。ISP技術(shù)的優(yōu)勢(shì)是不需要編程器就可以進(jìn)行單片機(jī)的實(shí)驗(yàn)和開(kāi)發(fā),單片機(jī)芯片可以直接焊接到電路板上,調(diào)試結(jié)束即成成品,免去了調(diào)試時(shí)由于頻繁地插入取出芯片對(duì)芯片和電路板帶來(lái)的不便。本文將分析P89LPC922預(yù)設(shè)ISP代碼的優(yōu)缺點(diǎn),進(jìn)一步結(jié)合應(yīng)用的實(shí)際情況,研究自編ISP代碼的方案,并給出具體的實(shí)現(xiàn)方法,對(duì)于由Ps9LPC922構(gòu)成的微控制器系統(tǒng)具有很強(qiáng)的實(shí)用價(jià)值。

  1 P89LPC922預(yù)設(shè)ISP代碼功能分析

  P89LPC922是一款單片封裝的微控制器,適用于要求高度集成、低成本的應(yīng)用場(chǎng)合,可以滿(mǎn)足多種多樣的性能要求。P89LPC922基于高性能的處理架構(gòu),執(zhí)行指令僅需2到4個(gè)時(shí)鐘周期,速度是標(biāo)準(zhǔn)80C51器件的6倍。P89LPC922集成了多種系統(tǒng)級(jí)功能,以便極大減少元件數(shù)目和減小電路板面積,從而降低系統(tǒng)成本。

  P89LPC922采用了高性能的處理器結(jié)構(gòu)指令執(zhí)行時(shí)間只需2 到4 個(gè)時(shí)鐘周期6 倍于標(biāo)準(zhǔn)80C51 器件P89LPC922集成了許多系統(tǒng)級(jí)的功能這樣可大大減少元件的數(shù)目和電路板面 當(dāng)操作頻率為12MHz 時(shí)除乘法和除法指令外高速80C51 CPU 的指令執(zhí)行時(shí)間為167~333ns 同一時(shí)鐘頻率下其速度為標(biāo)準(zhǔn)80C51 器件的6 倍只需要較低的時(shí)鐘頻率即可達(dá)到同樣的性能這樣無(wú)疑降低了功耗和EMI 操作電壓范圍為2.4 3.6V I/O 口可承受5V 可上拉或驅(qū)動(dòng)到5.5V 4KB/8KB Flash 程序存儲(chǔ)器具有1KB 可擦除扇區(qū)和64 字節(jié)可擦除頁(yè)規(guī)格可擦除單個(gè)字節(jié) 256 字節(jié)RAM 數(shù)據(jù)存儲(chǔ)器 2 個(gè)16 位定時(shí)/計(jì)數(shù)器每一個(gè)定時(shí)器均可設(shè)置為溢出時(shí)觸發(fā)相應(yīng)端口輸出或作為PWM 輸出 實(shí)時(shí)時(shí)鐘可作為系統(tǒng)定時(shí)器 2 個(gè)模擬比較器可選擇輸入和參考源 增強(qiáng)型UART 具有波特率發(fā)生器間隔檢測(cè)幀錯(cuò)誤檢測(cè)自動(dòng)地址識(shí)別和通用的中斷功能 400kHz 字節(jié)寬度的I2C 通信端口。

  為了使器件進(jìn)入ISP狀態(tài),必須在上電時(shí)給復(fù)位引腳3個(gè)準(zhǔn)確定時(shí)的低電平脈沖。脈沖數(shù)目只能是3個(gè),少于或多于3個(gè)脈沖都會(huì)導(dǎo)致器件無(wú)法進(jìn)入ISP模式。另外一種進(jìn)入ISP模式的方法是利用串口間隔檢測(cè)功能使芯片復(fù)位,并使器件強(qiáng)制進(jìn)入ISP模式。但這種方法需要在用戶(hù)程序中進(jìn)行相應(yīng)的功能設(shè)置,而P89LPC922預(yù)設(shè)的ISP代碼并不支持這種方式。

  進(jìn)入ISP模式后,雖然可以對(duì)接收到的特定字符進(jìn)行波特率的自動(dòng)設(shè)定,但這個(gè)波特率的設(shè)定參數(shù)只有1個(gè)字節(jié),波特率的范圍受到一定的限制。另外,ISP串口工作在模式1狀態(tài),波特率設(shè)定后只接收Intel-Hex格式的記錄。

  由上述分析可知,P89LPC922預(yù)設(shè)ISP功能雖然比較完善,可以滿(mǎn)足芯片開(kāi)發(fā)階段的應(yīng)用,但如果產(chǎn)品定型后,特別是在將其做為聯(lián)網(wǎng)系統(tǒng)中下位機(jī)的實(shí)際現(xiàn)場(chǎng),要進(jìn)行用戶(hù)程序代碼的更新將很不方便,有些功能甚至根本不能實(shí)現(xiàn)。這主要體現(xiàn)在以下幾個(gè)方面:

  ◇必須在上電時(shí)才能進(jìn)入ISP模式,不適合遠(yuǎn)程控制;

  ◇需要使用復(fù)位引腳,且相應(yīng)控制時(shí)序嚴(yán)格;

  ◇波特率范圍有一定限制;

  ◇無(wú)地址選項(xiàng),不支持系統(tǒng)聯(lián)網(wǎng);

  ◇只支持Intel-Hex格式,通信效率較低。

  2 自編ISP代碼方案

  P89LPC922具有非常完善的硬件系統(tǒng),給使用者編寫(xiě)自己的ISP代碼提供了相當(dāng)大的自由度。下面以P89LPC922組成的485總線(xiàn)聯(lián)網(wǎng)系統(tǒng)為例,給出自編ISP代碼的功能要求:

  ◇硬件上不使用復(fù)位引腳,只用串口收發(fā)兩線(xiàn)連接即可;

  ◇不必上下電,隨時(shí)都可使器件進(jìn)入ISP模式;

  ◇自動(dòng)判斷設(shè)定通信波特率,波特率應(yīng)有十種;

  ◇器件有地址,并且這個(gè)地址可隨時(shí)查詢(xún)、修改;

  ◇可實(shí)現(xiàn)用戶(hù)代碼的擦除、寫(xiě)、校驗(yàn)、加密的功能。

  其中,485總線(xiàn)聯(lián)網(wǎng)系統(tǒng)的上位機(jī)為計(jì)算機(jī),下位機(jī)為P89LPC922.

  為了實(shí)現(xiàn)上述功能,必須解決以下幾個(gè)問(wèn)題:

  ◇代碼存儲(chǔ)區(qū)如何分配;

  ◇芯片地址的規(guī)劃及處理;

  ◇進(jìn)ISP方法;

  ◇自動(dòng)判定波特率方法;

  ◇串口工作方式及通信協(xié)議的確定;

  ◇ISP代碼加密及配置字確定。

  2.1 代碼存儲(chǔ)區(qū)的分配

  為了不影響用戶(hù)的程序代碼編寫(xiě),自編ISP代碼應(yīng)用于程序存儲(chǔ)區(qū)的高端。當(dāng)然,不同的自編ISP代碼需要不同大小的存儲(chǔ)空間。這里規(guī)定自編ISP代碼的地址空間為1COOH~lFFFH,共l KB,即第7扇區(qū)的全部。其中ISP入口地址為1FOOH.

  2.2 芯片地址的規(guī)劃及處理

  因P89LPC922的程序存儲(chǔ)空間可做為數(shù)據(jù)存儲(chǔ)器使用,那么即可將第6扇區(qū)的16字節(jié)仿為ISP與用戶(hù)程序共用的數(shù)據(jù)空間,地址為1BFOH~1BFFU.其中,地址lBFAH存放芯片地址,地址1BFBH存放芯片地址取反。例如,芯片地址為0lH,則(1BFAH)=01H,(1BFBH)=0FEH.地址取反后再存放是為了用戶(hù)程序讀出時(shí)判斷地址合法性使用,從而增加可靠性。

  2.3 進(jìn)入ISP方法

  因功能要求不能利用復(fù)位引腳方式進(jìn)入ISP模式,所以只能將引導(dǎo)狀態(tài)設(shè)為l,引導(dǎo)向量設(shè)為lFH.這樣,每次上電復(fù)位或其他復(fù)位時(shí),程序固定從lF00H地址開(kāi)始執(zhí)行,即復(fù)位后芯片首先進(jìn)入ISP模式,執(zhí)行ISP代碼。在執(zhí)行完ISP過(guò)程或在規(guī)定的時(shí)間(如2s)內(nèi)沒(méi)有進(jìn)行任何ISP操作,程序都將轉(zhuǎn)到地址O去執(zhí)行用戶(hù)程序代碼。在轉(zhuǎn)到地址O即執(zhí)行用戶(hù)程序代碼之前,將串口間隔檢測(cè)功能設(shè)置完畢,這樣,在執(zhí)行用戶(hù)程序代碼時(shí)即可通過(guò)串口間隔檢測(cè)功能,使芯片復(fù)位后進(jìn)入ISP模式。下面為串口間隔檢測(cè)功能設(shè)置的相關(guān)程序。

  ANL SSTAT,#OFAH ;清除BR位,SSTAT.2

  MOV BRGCON,#00H ;關(guān)波特串發(fā)生器

  ORL AUXRl,#40H ;置位EBRR位,當(dāng)檢測(cè)到UART    ;間隔信號(hào)時(shí)即進(jìn)行復(fù)位

  MOV SCON,#50H ;設(shè)置串口為工作方式1(也可為;方式2或方式3),允許串口接收

  MOV BRGRl,#05H ;設(shè)置串口波特率4800(也可為;其他值)

  MOV BRGRO,#0fOH

  MOV BRGCON,#03H ;打開(kāi)并使用串口波特率發(fā)生器

  由上述程序可知,ISP代碼并不影響用戶(hù)程序?qū)Υ诘氖褂?,用?hù)程序可以對(duì)串口工作方式及波特率進(jìn)行重新設(shè)定,同時(shí)用戶(hù)程序也不會(huì)影響利用串口喑隔檢測(cè)功能進(jìn)入ISP模式。實(shí)際使用中,上位機(jī)發(fā)送0信號(hào)0.5s,然后恢復(fù)為1信號(hào),即可使串口檢測(cè)到間隔信號(hào),從而使芯片復(fù)位后進(jìn)入ISP代碼程序。

  2.4自動(dòng)判定波特率

  下位機(jī)(即P89LPC922)復(fù)位后,在規(guī)定的時(shí)間(如2s內(nèi),上位機(jī)按照用戶(hù)設(shè)定的波特串向下位機(jī)發(fā)送l字節(jié)址幀,此地址幀為85(十六進(jìn)制為55H)。下位機(jī)根據(jù)此地址幀判定設(shè)置自己的波特率。

  首先,設(shè)置定時(shí)器Tl為模式l,設(shè)置16位計(jì)數(shù)器并將其清零。然后判斷接收引腳RXD是否為低電平,如為低電平繼續(xù)判斷等待RXD為高電平。實(shí)際這一過(guò)程為判斷上位機(jī)發(fā)送地址幀的起始位,同時(shí)也是一種防干擾的措施。接下來(lái)在RXD的下降沿啟動(dòng)定時(shí)器Tl,在RXD的下一個(gè)下降沿關(guān)閉定時(shí)器T1.這時(shí)定時(shí)器Tl的16位計(jì)數(shù)器的值即為以當(dāng)前波特率發(fā)送2位數(shù)據(jù)的時(shí)間。固定時(shí)器的時(shí)鐘源為獨(dú)立的波特率發(fā)生器時(shí)鐘源的二分頻,因而此時(shí)定時(shí)器Tl的16位計(jì)數(shù)器的值即為波特率發(fā)生器速率寄存器BRGRl、BRGR0的值加上16.

  當(dāng)然,根據(jù)這種方法所得到的16位計(jì)數(shù)器的值與理論上的波特率所確定的值存在微小偏差。為了使所設(shè)定的波特率與理論值完全相同,可以根據(jù)功能要求的十種波恃串計(jì)算出理論值,再與16位計(jì)數(shù)器的值進(jìn)行比較,然后將理論值寫(xiě)入寄存器BRGR1及BRGR0,從而使設(shè)定的波特率百分之百準(zhǔn)確。

  2.5 串口工作方式及通信協(xié)議的確定

  對(duì)于聯(lián)網(wǎng)系統(tǒng),串口需要設(shè)為模式3狀態(tài)。上位機(jī)與下位機(jī)的每通信都按照"命令一響應(yīng)"方式進(jìn)行,上位機(jī)發(fā)出"命令",下位機(jī)以"響應(yīng)"方式進(jìn)行應(yīng)答。

  單個(gè)數(shù)據(jù)幀由11位組成,格式如下:

  1個(gè)起始位+8個(gè)數(shù)據(jù)位+1個(gè)標(biāo)識(shí)位+1個(gè)停止位

  其中,標(biāo)識(shí)位=l表示此幀為地址幀,標(biāo)識(shí)位=0表示此幀為數(shù)據(jù)幀。

  通信協(xié)議(communications protocol)是指雙方實(shí)體完成通信或服務(wù)所必須遵循的規(guī)則和約定。協(xié)議定義了數(shù)據(jù)單元使用的格式,信息單元應(yīng)該包含的信息與含義,連接方式,信息發(fā)送和接收的時(shí)序,從而確保網(wǎng)絡(luò)中數(shù)據(jù)順利地傳送到確定的地方。在計(jì)算機(jī)通信中,通信協(xié)議用于實(shí)現(xiàn)計(jì)算機(jī)與網(wǎng)絡(luò)連接之間的標(biāo)準(zhǔn),網(wǎng)絡(luò)如果沒(méi)有統(tǒng)一的通信協(xié)議,電腦之間的信息傳遞就無(wú)法識(shí)別。 通信協(xié)議是指通信各方事前約定的通信規(guī)則,可以簡(jiǎn)單地理解為各計(jì)算機(jī)之間進(jìn)行相互會(huì)話(huà)所使用的共同語(yǔ)言。兩臺(tái)計(jì)算機(jī)在進(jìn)行通信時(shí),必須使用的通信協(xié)議 .

  通信開(kāi)始時(shí),下位機(jī)處于地址幀接收模式,上位機(jī)發(fā)送l字節(jié)地址幀做為點(diǎn)名包命令,點(diǎn)名地址幀范圍即下位機(jī)地址范圍為1~255;下位機(jī)接收到點(diǎn)名包后與自己的地址進(jìn)行比較,如相符,則把地址幀接收模式改為地址幀和數(shù)據(jù)幀都可以接收的模式,并將自己的地址做為1字節(jié)數(shù)據(jù)幀應(yīng)答發(fā)送給上位機(jī)。上位機(jī)收到后判斷與所發(fā)送的地址一致、上位機(jī)則開(kāi)始以數(shù)據(jù)幀模式發(fā)送各種命令,與下位機(jī)進(jìn)行通信。下位機(jī)進(jìn)入ISP狀態(tài)后,如收到與自己地址不相符的地址幀,而且此地址不等于0,則轉(zhuǎn)到地址0去執(zhí)行用戶(hù)程序代碼。如果地址等于0,下位機(jī)則把地址幀接收模式改為地址幀和數(shù)據(jù)幀都可以接收的模式,并將自己的當(dāng)前地址做為l字節(jié)數(shù)據(jù)幀應(yīng)答發(fā)送給上位機(jī),從而完成下位機(jī)地址查詢(xún)功能。

  注意,上位機(jī)發(fā)送O地址時(shí)只能連接一臺(tái)下位機(jī)。

  根據(jù)功能要求,上位機(jī)發(fā)送給下位機(jī)的命令應(yīng)有地址修改、扇區(qū)擦除、寫(xiě)用戶(hù)程序代碼、讀用戶(hù)程序代碼、扇區(qū)加密和程序完畢六種。其中,上位機(jī)執(zhí)行完畢命令,下位機(jī)返回完畢響應(yīng)后,下位機(jī)轉(zhuǎn)到地址0去執(zhí)行用戶(hù)程序代碼。

  至于命令包格式,可由用戶(hù)自己編寫(xiě)。這里給出一種典型的命令包格式:包標(biāo)識(shí)+包地址+包命令+包長(zhǎng)度+包數(shù)據(jù)+包校驗(yàn)。另外,ISP代碼文件推薦為二進(jìn)制格式文件,這樣可以減少相應(yīng)程序的復(fù)雜程度。

  2.6 ISP代碼加密及配置字確定

  ISP代碼編寫(xiě)完畢后,需要由編程器寫(xiě)入P89LPC922.在編程前需要進(jìn)行相關(guān)配置字的設(shè)定,包括用戶(hù)配置字節(jié),用戶(hù)保密字節(jié),引導(dǎo)向量及引導(dǎo)狀態(tài)。

  其中,引導(dǎo)向量為1FH,引導(dǎo)狀態(tài)為01H.為了防止用戶(hù)擦除或改寫(xiě)ISP代碼,用戶(hù)保密字節(jié)的7扇區(qū)應(yīng)為07H,即禁止對(duì)ISP代碼進(jìn)行擦除和讀寫(xiě)操作。其他扇區(qū)的用戶(hù)保密字節(jié)可為OOH,即不設(shè)保密狀態(tài),而由用戶(hù)通過(guò)通信協(xié)議的扇區(qū)加密命令自由設(shè)定。用戶(hù)配置字節(jié)為0A3H,即看門(mén)狗復(fù)位功能使能,掉電檢測(cè)使能,復(fù)位引腳做為輸入引腳,使用內(nèi)部RC振蕩器。

  綜上所述,完全可以利用P89LPC922完善的硬件資源,編寫(xiě)出適合具體應(yīng)用環(huán)境的ISP代碼程序。這將給這款芯片的實(shí)際使用帶來(lái)極大的方便,尤其在需要更新用戶(hù)程序時(shí)更會(huì)顯得得心應(yīng)手。當(dāng)然,具體應(yīng)用時(shí)如果在上位機(jī)與下位機(jī)的通信過(guò)程中加入一些加密處理,那么將加強(qiáng)整個(gè)自編ISP代碼程序的可靠性、安全性,同時(shí)也使具體的應(yīng)用系統(tǒng)更加完善。

 



  

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類(lèi)作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線(xiàn)人工客服

買(mǎi)家服務(wù):
賣(mài)家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線(xiàn)時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫(kù)提出的寶貴意見(jiàn),您的參與是維庫(kù)提升服務(wù)的動(dòng)力!意見(jiàn)一經(jīng)采納,將有感恩紅包奉上哦!