《單片機系統設計及工程應用》課件第7章_第1頁
《單片機系統設計及工程應用》課件第7章_第2頁
《單片機系統設計及工程應用》課件第7章_第3頁
《單片機系統設計及工程應用》課件第7章_第4頁
《單片機系統設計及工程應用》課件第7章_第5頁
已閱讀5頁,還剩39頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

7.1開發系統的組成與功能7.2應用系統調試7.3單片機仿真系統舉例習題7單片機應用系統設計完成以后,首先要做的就是樣機調試,要檢查電路裝配是否正確,程序設計是否合理,功能調試完成后還要將程序寫入存儲器中,這些都必須借助單片機開發系統來完成。單片機開發系統一般由PC機、仿真器、仿真頭、仿真軟件、電源和目標板組成,如圖7.1所示。

單片機開發系統是在通用計算機(PC機)的基礎上增加了目標系統的在線仿真器及安裝在PC機上的編程器、匯編程序和模擬仿真軟件等組成的。7.1開發系統的組成與功能其中,仿真器本身也是一個單片機系統。當一個單片機應用系統(目標系統)裝配完成后,其自身并無調試能力,無法驗證其功能,我們可以把應用系統中的單片機芯片拔掉,插上在線仿真器提供的仿真頭,此時整個仿真系統就仿真了一個可以隨時檢查內部設置的單片機了。仿真器的另一端通過RS-232口與PC機相連。在開發系統上通過在線仿真器調試

單片機應用系統時,利用PC機及仿真器的資源模擬單片機的功能,就像使用應用系統中真實的單片機一樣,這種“替代”稱之為“仿真”。圖7.1單片機開發系統組成框圖單片機開發系統有通用型和專用型兩類。通用型單片機開發系統配備多種在線仿真頭和相應的開發軟件,使用時,只需更換系統中的仿真頭,就能開發相應的單片機系統或可編程器件。專用開發系統只能仿真一種類型的單片機。無論是通用型還是專用型,單片機開發系統都具有以下內容所講的功能。7.1.1在線仿真功能

在線仿真器的英文名為InCircuitEmulator(簡稱ICE)。ICE是由一系列硬件構成的設備。開發系統中的在線仿真器應能仿真目標系統(即應用系統)中的單片機,并能模擬目標系統的ROM、RAM和I/O端口等。使用在線仿真時,目標系統的運行環境和脫機運行的環境完全“逼真”,以實現目標系統的一次性開發。仿真功能具體地體現在兩個方面。

1.單片機仿真功能

在線仿真時,開發系統應能將在線仿真器中的單片機完整地出讓給目標系統,不占用目標系統單片機的任何資源,使目標系統在仿真調試和脫機運行時的環境(工作程序、使用的資源和地址空間)完全一致,實現完全的一次性仿真。

單片機的資源包括:片內的CPU、RAM、ROM、SFR、定時器、中斷源、I/O端口及外部可擴充的程序存儲器和數據存儲器的地址空間。這些資源應允許目標系統充分自由地使用,不受任何限制,使目標系統能根據單片機固有的資源特性進行硬件設計和軟件編程。

2.模擬功能

在開發目標系統過程中,開發系統允許用戶使用其內部的RAM存儲器和I/O端口來替代目標系統中的ROM程序存儲器、RAM數據存儲器和I/O端口,使用戶在目標系統樣機還未完成裝配之前,便可以借助開發系統提供的資源進行軟件編程和模擬仿真。

在系統軟件設計和調試過程中,用戶編寫的程序必須存放在開發系統RAM存儲器內,以便于對程序進行調試和修改。開發系統所能出讓的可作為目標系統程序存儲器RAM的容量和地址映射應與目標系統完全一致。7.1.2調試功能

開發系統對目標系統軟、硬件調試功能的強弱,將直接影響開發效率。一般來講,單片機開發系統應具有以下調試功能:

1.運行控制功能

開發系統能使用戶有效地控制目標程序的運行,以便檢查程序運行的結果,對存在的硬件故障和軟件錯誤進行定位。

(1)單步運行:允許CPU從任意程序地址開始,一條一條地執行指令,每執行一條指令后停止運行,以便檢查運行狀態。

(2)斷點運行:允許用戶任意設置斷點條件,啟動CPU從規定地址運行程序,當符合斷點條件時停止運行。

(3)全速運行:CPU從指定地址開始連續全速運行目標程序。

(4)跟蹤運行:跟蹤程序走向,逐條執行指令,并可以跟蹤到子程序中運行。

2.目標系統狀態檢測功能

當CPU停止執行目標系統的程序后,允許用戶方便地讀出或修改目標系統資源的狀態,以便檢查程序運行的結果、設置斷點條件以及設置程序的初始參數。允許用戶讀出/修改的目標系統資源包括:

(1)可以隨時修改開發系統中的仿真RAM存儲器內容或目標機中的程序存儲器內容。

(2)可以修改單片機內部工作寄存器、特殊功能寄存器、I/O端口狀態、RAM數據存儲器及位單元等的內容。

(3)能夠很方便地修改系統中擴展的數據存儲器內容和I/O端口狀態。

3.跟蹤功能

在系統研發過程中,專門購置邏輯分析儀當然是十分有用的,但由于邏輯分析儀價格較高,對于大多數研發人員來說,擁有一臺邏輯分析儀就不太現實了。好在近期推出的單片機開發系統具有仿真邏輯分析儀的功能,在目標程序運行過程中,能跟蹤存儲目標系統總線上的地址、數據和控制信號的變化狀態,跟蹤存儲器能同步記錄總線上信息的變化過程。用戶可以根據需要顯示跟蹤存儲器搜集到的信息,也可以顯示某一位總線狀態變化的波形,掌握總線上的狀態變化過程,這樣能清楚地判斷信號時序,從而快速找到故障的準確位置。7.1.3輔助設計功能

軟件輔助設計功能的強弱是衡量單片機開發系統性能高低的重要標志。單片機應用系統軟件開發的效率在很大程度上取決于開發系統的輔助設計功能。

1.程序設計語言

單片機的程序設計語言有機器語言、匯編語言和高級語言。

機器語言只在簡單的開發裝置中才使用,程序的設計、輸入、修改和調試都很麻煩。因此,機器語言只能用來開發一些非常簡單的單片機應用系統。匯編語言具有使用靈活、直觀明了、程序容易優化的特點,是單片機應用系統中最常用的程序設計語言。相對而言,用匯編語言編寫程序比較麻煩,要求研發者非常熟悉單片機的指令系統,具有一定的編程經驗,才能設計出高效的應用程序。

高級語言通用性好,程序設計人員只需掌握開發系統所提供的高級語言,就可以直接編寫程序。MCS-51系列單片機常用的高級語言有PL/M51、C-51、MBASIC-51等。

編譯型高級語言可生成機器碼,解釋型高級語言必須在解釋程序支持下直接解釋執行,因此把編譯型高級語言作為單片機開發語言。單片機開發系統可以支持多種高級語言,目前廣泛采用的是C語言,當然,針對具體的開發系統會有一些特殊規定。

2.編譯程序

單片機大多應用于硬件環境相對簡單的嵌入式系統中,一般直接使用機器代碼程序。通常借助開發系統提供的編譯軟件將用戶設計的源程序翻譯成目標程序。

單片機開發系統與PC機連接,允許用戶使用PC機的編輯環境編寫匯編語言或高級語言程序。可以充分利用PC機的編輯環境,方便地將源程序輸入到計算機開發系統中,生成匯編語言或高級語言的源文件。然后利用開發系統提供的交叉匯編或編譯系統,將源程序編譯成可在單片機上直接運行的目標程序。7.1.4程序固化功能

在系統調試階段,應用程序尚未調試完成時,可借用開發系統的存儲器進行修改、調試和存儲程序。當系統調試完成,確認軟件功能正常后,要將調試完成的程序固化到應用系統的單片機(片內有程序存儲器的單片機)或片外程序存儲器(片內無程序存儲器或片內程序存儲器不夠使用時)中,程序寫入器(也叫編程器)就是用來完成這一任務的,是單片機開發系統的重要組成部分。編程器可以將完成調試、編譯的目標程序寫入目標單元,從而實現單片機應用系統脫機工作(脫離開發系統單獨工作)。當然,現在流行的寫入器不僅具有各類單片機、存儲器編程功能,而且還具有寫入可編程邏輯器件和檢測常用集成塊狀態等功能。7.2.1硬件調試方法

單片機應用系統的硬件調試和軟件調試既有區別又有聯系,是軟硬件結合十分緊密的一個整體。許多硬件故障是在調試軟件時才發現的,但通常是先排除系統中明顯的硬件故障后,再與軟件系統結合起來調試。

7.2應用系統調試

1.常見的硬件故障

1)邏輯錯誤

樣機硬件的邏輯錯誤是由于設計錯誤和加工過程中的工藝性錯誤所造成的。這類錯誤包括錯線、開路、短路等,其中短路是最常見最容易出現的故障。一般情況下,印刷電路板布線密度較高,易因制版工藝造成短路。

2)元器件失效

元器件失效的原因有兩個方面:一是元器件本身已損壞或性能指標達不到電路要求,如電容器耐壓不夠,集成電路速率低等;二是由于組裝錯誤造成的元器件失效,如電解電容、二極管的極性裝反,三極管極性不正確及集成塊安裝錯位等。

3)可靠性差

引起系統不可靠的因素很多,如電路板金屬化孔不通、接插件接觸不良造成系統時好時壞;內部和外部的高頻輻射干擾,電源容量不足,工作電壓不穩,總線驅動能力不夠造成邏輯電平不穩定等。另外,信號連線不規則和電路板布局不合理也會引起系統可靠性降低。

4)電源故障

若樣機中存在電源故障,則加電后將造成器件損壞。電源的故障包括電壓值不符合設計要求,電源引出線和插座不對應,電源功率不足及負載能力差等。

2.硬件調試方法

1)脫機檢查

脫機檢查是在電路板未連接到開發系統之前的檢查,分為靜態檢查和動態檢查。

(1)靜態檢查。

靜態檢查是在電路板沒加電的情況下,先直觀地檢查電路板上有沒有明顯的錯誤,根據硬件電路原理圖和裝配圖仔細檢查樣機線路的正確性,核對元器件的型號、規格和安裝是否符合要求,借助萬用表等工具,檢查有無短路、開路、線路板過孔不通等問題。應特別注意電路板電源線之間、電源線與地線之間有無短路現象,用三用表測量電路板電源端和地線之間的電阻,經確認無誤后方可接通電路板上的電源,防止電源之間或電源與地之間短路而燒壞器件或電源。檢查系統總線是否存在相互間的短路,接插件連接情況是否正確,信號線間有無短路、開路現象。

系統所用的直流電源,使用前必須單獨調試。確認其電壓值、負載能力、極性等均符合要求后,才能連接到系統的各個電路板上。

(2)動態檢查。

經過靜態檢查,確認電路板電源端與地線之間電阻正常無短路,所用電源電壓、極性、額定功率等均符合要求的情況下,才能給電路板加電。首先在電路板不插集成塊的情況下,加電檢查各插件上電源引腳的電位,測量各觀察點電位是否正常,尤其應注意單片機插座上各點的電位是否正常,發現故障及時排除。確認各點電位正常后,關閉電源,分別插上集成塊。

注意:此時應在插上一批集成塊時加電,檢查電源電壓,各點電位是否正常,有無異常現象發生。若有,則及時排除,正常后再插一批,直到集成電路器件全部插上,各點電位均正常為止。否則,聯機時可能會損壞仿真器。

2)聯機調試

仿真器可以很方便地進行硬件功能測試,能夠將動態執行的指令靜態化,利用邏輯筆(一種十分有用的測試工具,參見8.4.1節)、三用表能夠很容易地查出各種硬件連線及邏輯故障。利用仿真系統可以很方便地對硬件系統的基本功能進行測試。可以向存儲單元寫入/讀出數據來檢驗譯碼器、存儲器功能是否正常;采用循環向同一地址寫入/讀出數據,用邏輯筆檢測寫入/讀出信號;向I/O端口寫入數據,通過檢測端

口輸出電平來判斷端口的工作狀態。通過脫機檢查可解決一些明顯問題,排除一些簡單故障。然而有些硬件故障需要通過聯機調試才能發現和排除。

聯機前先斷電,把開發系統的仿真插頭插到樣機電路板的單片機插座上,檢查一下開發機與樣機之間的電源、接地是否良好,確認正常后,打開電源。

加電后,開發機執行讀/寫指令,對樣機電路板上的存儲器、I/O端口進行讀/寫操作和邏輯檢查,可用邏輯筆檢測相應端的邏輯電平和脈沖信號,或用示波器觀察信號波形(如輸出、讀/寫控制信號、地址線、數據線波形以及有關控制電平等),判斷其工作狀態。若有故障,則應查明原因及時排除。在這一過程中,要充分利用開發系統的軟件資源,通過編寫簡單的測試程序,來測試相應硬件模塊的功能。例如,希望檢查2000H地址的譯碼信號,可用以下程序:TEST:MOVEDPTR,#2000H

LOOP:MOVXA,@DPTR

NOP

SJMPLOOP

執行以上程序后,就會在譯碼器相應輸出端輸出一組譯碼脈沖信號,然后用邏輯筆進行檢測,就可判斷譯碼電路工作是否正常。

在用戶系統的主機部分調試完成后,可以插上用戶系統的其他外圍部件,如鍵盤、顯示器、輸出驅動板及A/D、D/A轉換板等,再對這些部件進行調試。7.2.2軟件調試方法

軟件調試方法與所選用的軟件和程序結構有關。如果采用模塊化程序設計,首先要逐個模塊調試,然后進行軟件功能調試;如果采用實時多任務操作系統,一般是逐個任務進行調試。對于模塊化程序結構,要一個模塊一個模塊分別調試。調試模塊程序時,一定要符合現場環境,確定好入口條件和出口狀態。可采用單步運行方式或斷點運行方式,通過檢查用戶系統CPU的狀態、RAM單元的內容和I/O端口的狀態來判斷程序執行結果是否符合設計要求。通過檢測,可以發現程序中存在的邏輯錯誤,同時也可以發現應用系統中的硬件故障、軟件算法及硬件設計缺陷等。在調試過程中不斷完善用戶系統的軟、硬件功能。各程序模塊調試完成后,可以把各功能模塊聯合起來進行程序綜合調試。在這一階段,若發生故障,則可以考慮各子程序在運行時是否會破壞現場,緩沖單元是否會發生沖突,置位和清除在設計上是否會產生失誤,堆棧區域是否會溢出,輸入設備的狀態是否正常等。若用戶系統是在開發系統的監控程序下運行的,則還要考慮用戶緩沖單元和監控程序的工作單元是否會發生沖突等。

單步和斷點運行調試完成后,要進行連續運行調試,因為單步運行只能驗證程序正確與否,而不能體現定時精度、CPU的實時響應等問題。全部軟件調試完成后,應反復運行,除了觀察系統穩定性外,還要觀察應用系統的功能是否達到設計要求,必要時還要作適當修正。

實時多任務操作系統的調試方法與上述方法相似,只是實時多任務操作系統的應用程序是由若干個子任務程序組成的,一般是逐個任務進行調試。調試某一任務時,同時也可調試相關的子程序、中斷服務程序等。各個任務調試完成后,將各個任務同時運行,如果操作系統沒有錯誤,一般情況下系統就能正常運行了。7.3.1仿真器功能

仿真器功能主要有以下幾點:

(1)一套完整的仿真系統由PC機、仿真器、仿真頭及仿真軟件組成,通過更換仿真頭(POD)可以對各種CPU進行仿真。

(2)仿真軟件一般采用Windows版本,支持匯編語言、C語言、PLM語言等混合編程,目前常用匯編語言和C語言編程,具有項目管理功能。

(3)雙工作模式。7.3單片機仿真系統舉例①軟件模擬仿真(沒有仿真器的情況下也能模擬仿真);

②硬件仿真。

(4)雙CPU結構,不能占用用戶資源。保證全空間硬件斷點,不受任何條件限制,支持地址、數據、外部信號、事件斷點,具有實時斷點計數、軟件運行時間統計功能。

(5)雙集成環境。

程序編輯、編譯、下載、調試全部集中在一個環境下進行。

(6)具有邏輯分析儀綜合調試功能。

邏輯分析儀由交互式軟件菜單窗口對系統硬件的邏輯進行同步實時采樣,并實時在線調試分析。系統在使用邏輯分析儀時,除普通的單步運行、鍵盤斷點運行、全速硬件斷點運行外,還可實現各種條件組合斷點設置。

由于邏輯分析儀可以直接對程序的執行結果進行分析,因此極大地方便了程序的調試。隨著科學技術的發展,單片機在通信領域的應用越來越多。在通信功能的調試時,查找故障原因比較麻煩,有了邏輯分析儀,處理問題就方便多了。用它可以分別或者同時對發送方、接收方的輸入、輸出波形進行記錄、存儲、對比、測量等直觀的分析,可以將實際輸出信號波形與源程序相比較,就能及時發現問題的所在,提高調試效率。

(7)具有程序跟蹤功能。

跟蹤功能以總線周期為單位,實時記錄仿真過程中CPU發生的總線事件及觸發條件。跟蹤窗口在仿真停止時可收集顯示追蹤的CPU指令記憶信息,總線跟蹤可以跟蹤程序的運行軌跡,統計軟件運行時間等。7.3.2仿真器硬件介紹

1.仿真頭

仿真頭是指仿真器與系統板連接的、能夠替代CPU的電路板,圖7.2是偉福E2000型仿真系統的POD8X5X仿真頭示意圖。

選用40腳DIP封裝的轉接座、44腳PLCC封裝的轉接、2051轉接座可以仿真多種型號的單片機。

2.仿真器簡介

用于仿真P0、P2口作

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論