當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]摘要:51內(nèi)核單片機在線仿真調(diào)試是一種取代專業(yè)仿真器的有效手段。利用ISP/IAP方法和STC Monitor-51監(jiān)控程序,以及單片機集成開發(fā)環(huán)境Keil C51的在線仿真功能的支持,STC公司的IAP15F2K61S2單片機實現(xiàn)了在線仿真調(diào)

摘要:51內(nèi)核單片機在線仿真調(diào)試是一種取代專業(yè)仿真器的有效手段。利用ISP/IAP方法和STC Monitor-51監(jiān)控程序,以及單片機集成開發(fā)環(huán)境Keil C51的在線仿真功能的支持,STC公司的IAP15F2K61S2單片機實現(xiàn)了在線仿真調(diào)試功能,為單片機教學(xué)和應(yīng)用開發(fā)提供了一條新的途徑。

引言

當(dāng)今很多院校中,單片機的教學(xué)仍以經(jīng)典的51內(nèi)核單片機為主。其實驗與應(yīng)用開發(fā)中最重要的環(huán)節(jié)是軟、硬件綜合調(diào)試,通常采用的方法主要有兩種:一種是使用仿真器,優(yōu)點是功能齊全,但是價格較高,一般廠家研發(fā)采用;另一種是使用軟件仿真和芯片直接燒寫驗證的方法,其成本雖然低,但在程序或硬件出現(xiàn)疑難問題時,很難找到原因。

實際上,還有一種成本低且具有在線仿真調(diào)試功能的技術(shù)是在線仿真調(diào)試,它特別適合初學(xué)者。“在線仿真調(diào)試”是指:通過Keil C51編譯器,結(jié)合單片機中的監(jiān)控程序,對系統(tǒng)的應(yīng)用程序和硬件進行仿真調(diào)試,可以讓單片機以單步、斷點、全速等運行模式來執(zhí)行程序。在線仿真調(diào)試是單片機應(yīng)用開發(fā)過程中的高效方法,國內(nèi)STC公司的51內(nèi)核單片機IAP15F2K61S2便具有在線仿真調(diào)試功能。

1 在線仿真調(diào)試概述

Keil C51編譯器開放了調(diào)試器與目標(biāo)芯片的接口,只要芯片廠商提供自己特有的驅(qū)動程序(動態(tài)鏈接庫DLL),就能使Keil調(diào)試器在不改變圖形界面的情況下支持相應(yīng)的硬件仿真調(diào)試。

STC Monitor-51是STC公司開發(fā)的內(nèi)嵌Keil C51編譯器的目標(biāo)系統(tǒng)調(diào)試模塊,它是一個實時監(jiān)控程序,可利用PC機的USB口與目標(biāo)端進行通信。在線仿真調(diào)試系統(tǒng)的結(jié)構(gòu)示意圖如圖1所示。

PC機端由Keil調(diào)試器和STC Monitor-51的驅(qū)動程序stcmon51.DLL組成,stcmon51.DLL是STC公司自主開發(fā)的Keil仿真驅(qū)動協(xié)議,功能相比于 Keil自帶的Mon51.DLL有較大的突破,例如:更改通信接口為真正的USB口,支持Keil Flash Download功能,支持軟件復(fù)位,增加斷點數(shù)量等。目標(biāo)端由USB轉(zhuǎn)串口芯片CH340、51內(nèi)核單片機及STC Monoitor-51監(jiān)控程序組成。Keil調(diào)試器將用戶的調(diào)試指令通過PC機的USB口傳送給目標(biāo)端;目標(biāo)端的USB轉(zhuǎn)串口芯片將其轉(zhuǎn)換為TTL電平后發(fā)送給單片機,最后由單片機中駐留的STC Monitor-51監(jiān)控程序分析并執(zhí)行。

2 在線仿真調(diào)試實現(xiàn)

2.1 IAP15F2K61S2的存儲器結(jié)構(gòu)

STC Monitor-51具有載入并執(zhí)行用戶程序的功能,所以要求單片機的程序存儲器為Flash ROM,并具有ISP功能。ISP(In System Programming,在系統(tǒng)編程)指電路板上器件不用取出,就可以寫入用戶代碼,已經(jīng)編程的芯片也可以用ISP方式擦除或再編程。

IAP15F2K61S2單片機的程序存儲器與數(shù)據(jù)存儲器是獨立編址的。IAP15F2K61S2單片機內(nèi)部在物理上有4個相互獨立的存儲器空間;程序存儲器(程序Flash)、片內(nèi)基本RAM、片內(nèi)擴展RAM與EEPROM(數(shù)據(jù)Flash)。IAP15F2K61S2單片機片內(nèi)集成了61 KB的程序Flash存儲器,其地址為0000H~F3FFH。用戶可以使用的最大程序空間為55 KB,整個程序Flash存儲器的分布圖如圖2所示。

很多單片機在出廠時已經(jīng)將具有Boot loader功能的程序固化在系統(tǒng)區(qū)中,因此無需編程器就可通過ISP下載軟件將用戶程序下載到Flash ROM中。STC公司的單片機可以進行ISP串行下載程序,就是因為系統(tǒng)區(qū)中有芯片出廠時就已經(jīng)固化的ISP引導(dǎo)碼。如果想要下載應(yīng)用程序至單片機,先要在下載軟件界面上進行相應(yīng)選擇,然后再上電,當(dāng)單片機檢測到上位機中有特定的下載條件時,便啟用ISP下載功能將程序下載至用戶程序區(qū);否則,單片機便會從用戶應(yīng)用程序區(qū)中開始執(zhí)行代碼。

STC公司的最新ISP下載軟件stc-isp-15xx-v6.77.exe還可以將STC Monoitor-51監(jiān)控程序下載到監(jiān)控程序區(qū),從而實現(xiàn)在線仿真調(diào)試功能。

2.2 IAP15F2K61S2的ISP和IAP實現(xiàn)

在線仿真調(diào)試功能的實現(xiàn)依賴于用戶系統(tǒng)內(nèi)部的監(jiān)控程序和PC機上的下載程序。其具體實現(xiàn)主要利用IAP(In Applicatin Programming,在應(yīng)用編程)技術(shù),即在程序運行時程序存儲器可由程序自身進行擦寫。IAP15F2K61S2單片機的IAP功能,與以下幾個特殊功能寄存器有關(guān)。

IAP_DATA:ISP/IAP數(shù)據(jù)寄存器,從Flash讀出的數(shù)據(jù)放在此處,寫入Flash的數(shù)據(jù)也需放在此處。

IAP_ADDRH:ISP/IAP地址寄存器高8位。

IAP_ADDRL:ISP/IAP地址寄存器低8位。

IAP_CMD:ISP/IAP命令寄存器,須IAP_TRIG觸發(fā)方可生效。

IAP_TRIG:ISP/IAP命令觸發(fā)寄存器。

IAP_CONTR:ISP/IAP控制寄存器。

當(dāng)IAPEN(IAP_CONTR.7)=1時,只有對IAP_TRIG先寫入0x5A、再寫入0xA5,ISP/IAP命令才會生效。

ISP/IAP操作完成后,IAP命令寄存器、IAP地址高8位地址寄存器和低8位地址寄存器的內(nèi)容都不變。如果需要對下一個地址的數(shù)據(jù)進行 ISP/IAP操作,則要手動將該地址的高8位和低8位對應(yīng)寫入地址寄存器中。每次進行IAP操作時,都要對IAP_TRIG先寫入0x5A,再寫入 0xA5,ISP/IAP命令才會生效。

ISP/IAP命令寄存器IAP_CMD的格式如表1所列。通過對命令寄存器IAP_CMD的MS1和MS0位進行賦值,可以實現(xiàn)相應(yīng)功能。

IAP15F2K61S2程序在用戶應(yīng)用程序區(qū)時,不僅可以對數(shù)據(jù)Flash區(qū)(EEPROM)進行字節(jié)讀、字節(jié)編程和扇區(qū)擦除,而且可以修改用戶應(yīng)用程序區(qū)。扇區(qū)擦除程序示意性代碼如下所示,其他ISP/IAP操作類似。

IAP_ADDRH=EE_address/256; //送扇區(qū)地址高字節(jié)(地址需要改變時才需重新送地址)

IAP_ADDRL=EE_address%256; //送扇區(qū)地址低字節(jié)(512字節(jié)/扇區(qū))

IAP_CONTR=0xS0; //設(shè)置等待時間,允許ISP/IAP操作,送一次就夠

IAP_CMD=3; //送扇區(qū)擦除命令,命令不需改變時,不需重新送命令

IAP_TRIG=0x5A;

IAP_TRIG=0xA5; //ISP/IAP觸發(fā)命令

2.3 監(jiān)控程序

為配合Keil調(diào)試器的硬件仿真調(diào)試,監(jiān)控程序應(yīng)具備相應(yīng)的單步、斷點設(shè)置、ID讀取等功能。仿真開始時,監(jiān)控程序接收命令,判斷相應(yīng)的功能操作,再執(zhí)行。STCMonoit or-51監(jiān)控程序只能在程序中給定點處監(jiān)測,調(diào)試時需要占用程序空間,屬于一種侵入式的調(diào)試,其工作流程如圖3所示。

2.4 IAP15F2K61S2在線仿真調(diào)試過程

以前的51內(nèi)核單片機在線仿真調(diào)試時,需要根據(jù)硬件結(jié)構(gòu),修改應(yīng)用程序和Keil C51集成開發(fā)環(huán)境的參數(shù),初學(xué)者不易掌握,從而影響普及推廣。STC公司的IAP15F2K61S2是十分易用的在線仿真調(diào)試芯片,只需利用最新ISP 下載軟件stc-isp-15xx-v6.77.exe,將監(jiān)控程序下載到單片機中,就可輕松地實現(xiàn)在線仿真調(diào)試功能。IAP15F2K61S2線仿真調(diào)試過程如下。

2.4.1 安裝仿真驅(qū)動

運行ISP下載軟件stc-isp-15xx-v6.77.exe,在“Keil仿真設(shè)置”頁面中單擊“添加MCU型號到Keil中”按鈕,在出現(xiàn)的目錄選擇窗口中,確定到Keil的安裝目錄(一般可能為“C:\Keil\”)。添加頭文件的同時也會安裝STC的STC Monitor-51仿真驅(qū)動stcmon51.DLL。

2.4.2 創(chuàng)建仿真芯片

將一顆IAP15F2KG1S2通過目標(biāo)板連接到電腦的USB口,然后在“Keil仿真設(shè)置”頁面中單擊“將IAP15F2K61S2設(shè)置為仿真芯片”按鈕,再給目標(biāo)板上電,當(dāng)程序下載完成后仿真器便制作完成。

2.4.3 創(chuàng)建項目工程

若上一步的驅(qū)動安裝成功,則在Keil中新建項目工程、選擇芯片型號時,便會有“STC MCU Database”的選擇項,然后從列表中選擇相應(yīng)的MCU型號(目前STC支持仿真的型號只有STC15F2K60S2),單擊“確定”完成選擇,再按Keil的一般使用方法添加源程序到項目工程中,若編譯無誤,則可以進行下面的項目設(shè)置。

2.4.4 硬件仿真驅(qū)動選擇

選擇Project中的Opertions for Target’Target1’,進入“Debug”設(shè)置頁,在右側(cè)的硬件仿真驅(qū)動下拉列表中選擇“STC Monitor-51 Driver”項,然后單擊“Settin gs”按鈕,對串口的端口號和波特率進行設(shè)置,波特率一般選擇115 200或者57 600。到此設(shè)置便完成了。

2.4.5 在線仿真調(diào)試

在這個Keil工程下,按下“Ctrl+F5”即可開始在線仿真調(diào)試。若硬件連接無誤,將會進入到類似于常用的軟件調(diào)試,并在命令輸出窗口顯示當(dāng)前的仿真驅(qū)動版本號和當(dāng)運行、全速運行等進行仿真調(diào)試。調(diào)試中的注意事項主要有:斷點設(shè)置的個數(shù)不要太多,否則會影響調(diào)試速度;若仿真源代碼為匯編程序,則第一條語句必須是長跳轉(zhuǎn)語句,不能使用其他語句;仿真中,不能使用與P3.0和P3.1引腳相關(guān)的中斷和功能。

結(jié)語

結(jié)合IAP15F2K61S2單片機與監(jiān)控程序STC Monoitor-51、Keil C51集成開發(fā)軟件,提供了一種成本低、功能強的在線硬件仿真調(diào)試技術(shù),降低了使用單片機開發(fā)工具的門檻,特別適用于單片機初學(xué)者以及學(xué)校的教學(xué)活動,也為選用51內(nèi)核單片機進行應(yīng)用開發(fā)帶來了極大便利,只需下載監(jiān)控代碼就可以進行在線仿真調(diào)試。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉