日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

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

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

 

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

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

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

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

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

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

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

  ◇必須在上電時才能進入ISP模式,不適合遠程控制;

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

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

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

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

  2 自編ISP代碼方案

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

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

  ◇不必上下電,隨時都可使器件進入ISP模式;

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

  ◇器件有地址,并且這個地址可隨時查詢、修改;

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

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

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

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

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

  ◇進ISP方法;

  ◇自動判定波特率方法;

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

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

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

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

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

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

  2.3 進入ISP方法

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

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

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

  ORL AUXRl,#40H ;置位EBRR位,當檢測到UART    ;間隔信號時即進行復(fù)位

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

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

  MOV BRGRO,#0fOH

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

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

  2.4自動判定波特率

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

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

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

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

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

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

  1個起始位+8個數(shù)據(jù)位+1個標識位+1個停止位

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

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

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

  注意,上位機發(fā)送O地址時只能連接一臺下位機。

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

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

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

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

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

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

 



  

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

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

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

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

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

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

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

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

13606545031

客服在線時間周一至周五
9:00-17:30

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

建議反饋

聯(lián)系人:

聯(lián)系方式:

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