国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

P89LPC922自編ISP代碼的研究

發布時間:2010-11-1 14:27    發布者:eetech
關鍵詞: ISP , P89LPC922 , 代碼
隨著微控制器應用領域的不斷擴展和深入,對其各方面性能的要求也逐漸提高。目前,越來越多種類的微控制器具有ISP(In System Programrning)即在系統編程功能。ISP編程時不需要將微控制器從目標系統中移出,并且只需要有限的幾個引腳與外界相連,最大限度減少了額外的元件開銷和電路板面積,使微控制器產品的開發和具體應用相當方便。本文將分析P89LPC922預設ISP代碼的優缺點,進一步結合應用的實際情況,研究自編ISP代碼的方案,并給出具體的實現方法,對于由Ps9LPC922構成的微控制器系統具有很強的實用價值。

1 P89LPC922預設ISP代碼功能分析
   
P89LPC922是一款由Philips公司生產的單片封裝的微控制器。它采用高性能的處理器結構,集成了包括ISP功能在內的許多系統級功能,適合于許多要求高集成度、低成本的場合,可以滿足多方面的性能要求。
   
P69LPC922在出廠時,用戶代碼空間的高512字節包含了一個串行ISP子程序,允許器件在電路中通過串行口進行編程。應用ISP功能時,需要使用芯片的5個引腳(Vdd、Vss、TxD、RxD、RST),并且需要一個連接器與計算機串口相連。
   
為了使器件進入ISP狀態,必須在上電時給復位引腳3個準確定時的低電平脈沖。脈沖數目只能是3個,少于或多于3個脈沖都會導致器件無法進入ISP模式。另外一種進入ISP模式的方法是利用串口間隔檢測功能使芯片復位,并使器件強制進入ISP模式。但這種方法需要在用戶程序中進行相應的功能設置,而P89LPC922預設的ISP代碼并不支持這種方式。
   
進入ISP模式后,雖然可以對接收到的特定字符進行波特率的自動設定,但這個波特率的設定參數只有1個字節,波特率的范圍受到一定的限制。另外,ISP串口工作在模式1狀態,波特率設定后只接收Intel-Hex格式的記錄。
   
由上述分析可知,P89LPC922預設ISP功能雖然比較完善,可以滿足芯片開發階段的應用,但如果產品定型后,特別是在將其做為聯網系統中下位機的實際現場,要進行用戶程序代碼的更新下載將很不方便,有些功能甚至根本不能實現。這主要體現在以下幾個方面:

    ◇必須在上電時才能進入ISP模式,不適合遠程控制;
    ◇需要使用復位引腳,且相應控制時序嚴格;
    ◇波特率范圍有一定限制;
    ◇無地址選項,不支持系統聯網;
    ◇只支持Intel-Hex格式,通信效率較低。  

2 自編ISP代碼方案  
   
P89LPC922具有非常完善的硬件系統,給使用者編寫自己的ISP代碼提供了相當大的自由度。下面以P89LPC922組成的485總線聯網系統為例,給出自編ISP代碼的功能要求:  

    ◇硬件上不使用復位引腳,只用串口收發兩線連接即可;  
    ◇不必上下電,隨時都可使器件進入ISP模式;  
    ◇自動判斷設定通信波特率,波特率應有十種;  
    ◇器件有地址,并且這個地址可隨時查詢、修改;  
    ◇可實現用戶代碼的擦除、寫、校驗、加密的功能。  
   
其中,485總線聯網系統的上位機為計算機,下位機為P89LPC922。  
   
為了實現上述功能,必須解決以下幾個問題:  

    ◇代碼存儲區如何分配;  
    ◇芯片地址的規劃及處理;  
    ◇進ISP方法;  
    ◇自動判定波特率方法;  
    ◇串口工作方式及通信協議的確定;  
    ◇ISP代碼加密及配置字確定。  

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

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

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

    ANL SSTAT,#OFAH ;清除BR位,SSTAT.2
    MOV BRGCON,#00H ;關波特串發生器
    ORL AUXRl,#40H ;置位EBRR位,當檢測到UART    ;間隔信號時即進行復位
    MOV SCON,#50H ;設置串口為工作方式1(也可為;方式2或方式3),允許串口接收  
    MOV BRGRl,#05H ;設置串口波特率4800(也可為;其他值)
    MOV BRGRO,#0fOH
    MOV BRGCON,#03H ;打開并使用串口波特率發生器
   
由上述程序可知,ISP代碼并不影響用戶程序對串口的使用,用戶程序可以對串口工作方式及波特率進行重新設定,同時用戶程序也不會影響利用串口喑隔檢測功能進入ISP模式。實際使用中,上位機發送0信號0.5s,然后恢復為1信號,即可使串口檢測到間隔信號,從而使芯片復位后進入ISP代碼程序。

2.4自動判定波特率
   
下位機(即P89LPC922)復位后,在規定的時間(如2s內,上位機按照用戶設定的波特串向下位機發送l字節址幀,此地址幀為85(十六進制為55H)。下位機根據此地址幀判定設置自己的波特率。
   
首先,設置定時器Tl為模式l,設置16位計數器并將其清零。然后判斷接收引腳RXD是否為低電平,如為低電平繼續判斷等待RXD為高電平。實際這一過程為判斷上位機發送地址幀的起始位,同時也是一種防干擾的措施。接下來在RXD的下降沿啟動定時器Tl,在RXD的下一個下降沿關閉定時器T1。這時定時器Tl的16位計數器的值即為以當前波特率發送2位數據的時間。固定時器的時鐘源為獨立的波特率發生器時鐘源的二分頻,因而此時定時器Tl的16位計數器的值即為波特率發生器速率寄存器BRGRl、BRGR0的值加上16。
   
當然,根據這種方法所得到的16位計數器的值與理論上的波特率所確定的值存在微小偏差。為了使所設定的波特率與理論值完全相同,可以根據功能要求的十種波恃串計算出理論值,再與16位計數器的值進行比較,然后將理論值寫入寄存器BRGR1及BRGR0,從而使設定的波特率百分之百準確。

2.5 串口工作方式及通信協議的確定
   
對于聯網系統,串口需要設為模式3狀態。上位機與下位機的每一次通信都按照“命令一響應”方式進行,上位機發出“命令”,下位機以“響應”方式進行應答。
   
單個數據幀由11位組成,格式如下:
   
1個起始位+8個數據位+1個標識位+1個停止位
   
其中,標識位=l表示此幀為地址幀,標識位=0表示此幀為數據幀。
   
通信開始時,下位機處于地址幀接收模式,上位機發送l字節地址幀做為點名包命令,點名地址幀范圍即下位機地址范圍為1"255;下位機接收到點名包后與自己的地址進行比較,如相符,則把地址幀接收模式改為地址幀和數據幀都可以接收的模式,并將自己的地址做為1字節數據幀應答發送給上位機。上位機收到后判斷與所發送的地址一致、上位機則開始以數據幀模式發送各種命令,與下位機進行通信。下位機進入ISP狀態后,如收到與自己地址不相符的地址幀,而且此地址不等于0,則轉到地址0去執行用戶程序代碼。如果地址等于0,下位機則把地址幀接收模式改為地址幀和數據幀都可以接收的模式,并將自己的當前地址做為l字節數據幀應答發送給上位機,從而完成下位機地址查詢功能。
   
注意,上位機發送O地址時只能連接一臺下位機。
   
根據功能要求,上位機發送給下位機的命令應有地址修改、扇區擦除、寫用戶程序代碼、讀用戶程序代碼、扇區加密和程序下載完畢六種。其中,上位機執行下載完畢命令,下位機返回下載完畢響應后,下位機轉到地址0去執行用戶程序代碼。
   
至于命令包格式,可由用戶自己編寫。這里給出一種典型的命令包格式:
   
包標識+包地址+包命令+包長度+包數據+包校驗。另外,ISP代碼文件推薦為二進制格式文件,這樣可以減少相應程序的復雜程度。

2.6 ISP代碼加密及配置字確定
   
ISP代碼編寫完畢后,需要由編程器寫入P89LPC922。在編程前需要進行相關配置字的設定,包括用戶配置字節,用戶保密字節,引導向量及引導狀態。
   
其中,引導向量為1FH,引導狀態為01H。為了防止用戶擦除或改寫ISP代碼,用戶保密字節的7扇區應為07H,即禁止對ISP代碼進行擦除和讀寫操作.其他扇區的用戶保密字節可為OOH,即不設保密狀態,而由用戶通過通信協議的扇區加密命令自由設定。用戶配置字節為0A3H,即看門狗復位功能使能,掉電檢測使能,復位引腳做為輸入引腳,使用內部RC振蕩器
   
綜上所述,完全可以利用P89LPC922完善的硬件資源,編寫出適合具體應用環境的ISP代碼程序。這將給這款芯片的實際使用帶來極大的方便,尤其在需要更新下載用戶程序時更會顯得得心應手。當然,具體應用時如果在上位機與下位機的通信過程中加入一些加密處理,那么將加強整個自編ISP代碼程序的可靠性、安全性,同時也使具體的應用系統更加完善。
本文地址:http://m.qingdxww.cn/thread-35608-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区四区视频在线观看 | 日韩三级不卡 | 重口婴交h小黄文 | 精品一区二区三区四区五区 | 中文字幕免费观看视频 | 在线一区免费视频播放 | 亚洲网站免费看 | 欧美国产伦久久久久 | gay80岁帅老头毛都白了 | 中文字幕成人网 | 国产在线色站 | 国产一级一片免费播放刺激 | 天天se天天cao综合网蜜芽 | h网站免费看 | 亚洲视频一区二区在线观看 | 99视频在线观看免费 | 中文字幕日本不卡 | 免费看污黄网站 | 黄 色 成 年人在线 幻女与人xx00毛片免费 | 日韩福利视频高清免费看 | 欧美成人免费午夜影视 | 四虎国产永久在线观看 | 91在线精品 | 欧美大片一区二区 | 久久综合久久精品 | 欧美日韩一区二区三 | 那个在线播放观看 | 四虎精品影院4hutv四虎 | 日本在线看片网站 | 日本韩国欧美在线观看 | 99久久免费午夜国产精品 | av免费网站在线观看 | 特级毛片aaaa免费观看 | 好男人官网在线手机免费观看 | 香蕉草莓丝瓜茄子番茄绿巨人 | 亚洲高清在线天堂精品 | 欧美在线免费 | 亚洲h视频在线 | 国产福利免费在线观看 | 91人成亚洲高清在线观看 | a天堂视频在线 |