久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11225|回復: 0
打印 上一主題 下一主題
收起左側

Proteus教程第三部分:VSM虛擬系統模型

[復制鏈接]
跳轉到指定樓層
樓主
ID:290266 發表于 2018-4-5 02:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本系列完整的pdf版本教程下載(共150頁pdf)
http://m.zg4o1577.cn/bbs/dpj-111690-1.html

VSM 虛擬系統模型

介紹

本部分教程的目的是向您介紹如何使用 Proteus VSM 和 VSM Studio IDE 對帶有微控制器的系統進行交互式仿

真。本部分教程的重點將放在仿真器和 IDE 的實際使用上,針對每一個主題的詳細說明請參考幫助文檔中的內 容。本部分教程不包含原理圖的繪制,如果你對 ISIS中的原理圖繪制不熟悉,你應該先花時間學習第一部分教 程中的內容。


我們將使用預先畫好的微芯(Microchip)公司的 F1 評估板原理圖來學習本教程的內容,如下所示。


通過本教程,我們不僅可以掌握 VSM Studio IDE 的基本仿真功能,還可以了解 Proteus VSM 中的各種調試和 測試工具。要學習本教程你將需要:

          必須安裝 Proteus 8.0 版本或更高版本的軟件。如果沒有購買專業版的軟件,可以從 Labcenter 的網站 上免費下載這個軟件的試用版本,或者聯系 Proteus 軟件的大中華區總代理-廣州市風標電子技術有限公司

-獲取支持。
          必須安裝 9.8 版本或以上的 Hi-Tech PIC16 編譯器軟件。在 Proteus 軟件(VSM Studio IDE)中就可以進 行這個編譯器的下載和安裝,下載和安裝的過程將在本教程后面的工程設置部分進行介紹。


即使你沒有安裝符這些符合要求的軟件,我們仍然建議你讀完本教程。因為所有關于調試技術的知識都是通用
的,你如果使用舊版本的軟件來進行設計開發,這些知識可能也會有幫助。


建立工程


我們需要做的第一件事是建立 Proteus 8 的工程,由于我們使用預先繪制好的原理圖,即一塊虛擬開發板,因
此建立工程的過程就變得非常簡單:

從 Proteus 的主頁啟動新建工程向導,選擇“從開發板”選項,在“微控制器系列”列表框中選擇 PIC16,然 后從“開發板”列表框選擇 F1 評估板(F1 Releas),點擊完成導入工程。




導入項目之后,在 Proteus 中可以看到兩個選項卡:F1 評估電路板的原理圖模塊和包含 Microchip 標準硬件驅 動源代碼的 VSM Studio IDE,如下圖所示:



我們先來編譯源代碼,將生成的固件(firmware)進行仿真調試。


編譯器配置


Microchip 提供的源代碼是使用 Hi-Tech PIC16 編譯器編寫的,因此為了能夠成功編譯并生成固件,我們需要安
裝這個工具。切換到 VSM Studio 選項卡,從“系統”菜單啟動“編譯器配置”對話框。





這個對話框列出了所有支持的編譯器,并指示是否被安裝和配置。按下對話框底部的“檢查全部”按鈕,Proteus
將掃描你的計算機,查找安裝好的編譯器。如果找到 Proteus 支持的編譯器,Proteus 將自動進行配置并在
Proteus 中調用這些編譯器編譯源代碼。

開源的編譯器能夠直接從 Labcenter 的服務器上下載和安裝。需要收費的編譯器,Proteus 將提供鏈接到相應供 應商網站的下載頁面。在這個例子里,使用的是 Hi-Tech 編譯器,如果還沒有安裝,則需要從微芯的網站下載:


1.              點擊編譯器旁邊的“打開網站”按鈕;

2.              下載并安裝編譯器,如果沒有購買,可以使用 Lite mode,或者選擇使用 45 天的評估版,如下圖所示:


3.              安裝完成后點擊對話框底部的“檢查全部”按鈕,Proteus 將自動重新檢查所有的編譯器并進行配置, 使得它能夠在 Proteus 中編譯源代碼。




運行這個命令以后,你應該注意到對話框中的 Hi-Tech 編譯器被標記成已安裝。在 IDE 底部的輸出窗口也會報
告編譯器檢查的結果。





到了這里,編譯器、源代碼和原理圖已全部準備好了,使用 VSM Studio“構建”菜單下的“構建工程”命令(或 構建圖標)編譯固件。


編譯器的輸出將顯示在 IDE 的底部面板中,編譯完成以后,你能得到一個編譯成功的信息。



接下來運行仿真,在虛擬硬件上測試編譯后的代碼。

VSM Studio 會自動配置常見的編譯器選項用于正確編譯你的工程。如果你需要調整這些編譯器設置
(例如鏈接到外部庫),你可以通過“構建”菜單下的“工程設置”對話框進行調整。


運行仿真


只需要簡單的按下 Proteus 左下角“仿真控制面板”中的運行按鈕就可以運行仿真。



現在,軟件將自動切換到原理圖頁碼進行仿真,原理圖中的 LCD 面板將顯示默認的時間。


F1 評估板的示例程序可以顯示三種模式,時間,一溫度,和電位器的 ADC 采樣值。可以通過按下原理圖中的 控制按鈕來循環切換顯示模式,進行交互式仿真。



當處于溫度顯示模式時,你可以在 MCP9800 傳感器上通過點擊遞增或遞減按鈕來調整溫度值。當前的溫度值 是通過 I2C 總線傳輸到 PIC 處理器中,經過處理以后顯示在 LCD 上的。




當處于電壓顯示模式時,可以調節電位器,處理器將轉換后的電壓值顯示在 LCD 上。




這個 PIC16 微控制器有一個 10 位的 ADC,所以采樣得到的數據的顯示范圍是 0 到 1023,對應的電壓范圍是
0-3.3V。最后,按下動畫控制面板的停止按鈕可以停止仿真。




注意事項


當我們在 Proteus 中運行仿真時,仿真結果可能不會立刻顯現,但在你能看到的仿真結果背后,Proteus 軟件進
行了大量的處理和計算工作:

首先,Proteus 原理圖中的微控制器執行編譯后的固件文件與真實世界中的 PIC 執行編程的固件完全一樣。使 用 VSM Studio IDE 只是把燒寫 PIC 芯片的過程,變成把編譯成功后得到的文件發送給原理圖。


其次,你可能會注意到,原理圖中幾乎所有導線都使用了終端來結尾,并且終端都有一個名字。在原理圖中, 相同名字的兩個終端被認為是相連的(像有一根虛擬的導線)。例如,溫度傳感器旁邊的 RC3 和 RC4 終端連 接到了 PIC 處理器中的 I2C 接口的兩個引腳上。我們喜歡使用這種方式進行原理圖連線,因為可以避免導線的交叉,并且可以將原理圖分割成容易識別的邏輯塊。如果你要了解更多關于這種連接方式的信息,可以閱讀 ISIS 的參考手冊。


最后,在 Proteus 軟件底部的狀態欄顯示了仿真運行的時間。仿真很可能不是實時的,這取決于你的計算機的
性能、處理器的速度和原理圖的復雜程度。狀態欄顯示的執行時間就是虛擬仿真世界的時間。


例如,對于一個特別慢的計算機,在這個仿真中調節到時鐘模式時,仿真中 LCD 屏上顯示的時鐘與現實世界墻 上的掛鐘不是同時前進的,但它卻總是會和狀態欄的仿真時間同步前進。



寫固件程序


我們已經了解了仿真的整個工作流程,現在就讓我們給這個程序添加一些功能。我們知道通過按下原理圖中的

按鍵可以在時間、溫度和電壓模式之間進行切換,這樣我們就能很容易的在這里添加其它操作模式。首先,切 換到 VSM Studio IDE 選項卡,打開文件 main.c(在項目中雙擊 main.c)。





你會在這個文件的頂部看到有一些函數原型以及操作模式的枚舉類型定義。我們需要為我們的“測試模式”添
加一個新的函數原型,還要在這個枚舉類型中添加一個相對應的值,可以像下圖一樣進行添加:


接下來,我們需要找到按鈕切換的程序塊來添加新的操作模式。最簡單的方法就是搜索已有模式中的一個,我 們可以在 VSM Studio 右鍵點擊編輯窗口,從彈出的菜單中選擇“查找”,在查找內容下輸入“MODE_POT”。



查找到的第一個結果就是我們正要尋找的,也就是關于按鍵釋放后用于設置顯示模式的 switch 語句。在這里我 們只需要添加新的操作模式:


注意,MODE_TEST 前面的 case 語句也一樣需要修改顯示模式。

在這段代碼的下面還有另一個 switch 語句,用于執行當前的顯示模式。同樣,我們需要加入我們的 case 語句 來調用我們的函數。




最后一步是添加 display_test()函數,可以在這里添加進入我們的操作模式后要做的事情。我們在 main.c 文件的
底部加入這個函數的定義。


在這里你可以嘗試添加任何你想添加的動作,但我們只做一些簡單的動作,比如在顯示器上顯示一個固定值, 并在 LED 上顯示二進制的計數器。



由于我們是使用 PORTE 來控制 LED,所以我們需要配置端口的引腳,在 main()函數頂部的外設配置部分設置
ANSELE。

最后一步是構建工程。如果你的程序有錯誤,在輸出窗口會得到編譯錯誤,單擊這個錯誤,會指示出問題所在 的位置。


但有些錯誤,像鏈接錯誤,是不能指出具體出錯位置的。這種情況下,你可能需要修改工程設置選

項才能修正鏈接錯誤,例如需要在工程設置中加入“函數庫”的文件夾。 當我們這次運行仿真時,我們使用按鍵來切換操作模式,直到進入我們自己的模式(時間->溫度->電位器->測試),

我們應該能看到顯示器上顯示的數“1111”以及 LED 上的計數器。


這個例子實現的功能非常簡單,只是用于說明編寫代碼、編譯和仿真的整個流程。


調試彈出窗口


到目前為止,我們在 VSM Studio 頁面中完成了代碼的編寫,并在原理圖頁面進行了仿真。如果我們有兩個顯

示器,可以把其中一個頁面拖到另一個顯示器中,在兩個顯示器中同時觀察這兩個頁面。 但我們在調試時,通常更感興趣的是觀察代碼的單步運行,同時觀察原理圖的某一小部分進行驗證。Proteus

提供了一個調試彈出窗口控件,在仿真調試的過程中,可以將原理圖中選定的一部分電路在 VSM Studio 頁面
中顯示出來。這對于我們只有一個顯示器的用戶來說將變得非常方便,不需要經常在原理圖頁面和 VSM Studio

頁面之間進行切換,大大提高我們的調試效率。 在我們的教程的例子中,可以以溫度傳感器來說明實時監控窗口的使用,步驟如下:

1) 切換到 ISIS 選項卡,選擇“調試彈出模式”圖標。

2) 圍繞溫度傳感器從左上角開始拖出一個框。


3) 完成以后,你應該會看到圍繞溫度傳感器有一個藍色的虛線框。


如果做的過程中出現問題,可以右鍵雙擊虛線框進行刪除。同樣,如果虛線框的位置有問題,也可 以右鍵點擊虛線框然后選擇“移動對象”菜單進行移動。


其它可能需要我們在仿真過程中進行觀察和控制的對象有按鍵、電位器和顯示元件(LCD)。我們可以重復上 面的操作,圍繞這些器件各自拖出虛線框,完成以后,你的原理圖看起來應和下圖一樣。




因為我們指定了有效彈出窗口,這將會工作在 VSM Studio,F在如果你按下“運行”按鈕進行仿真,并切換到
VSM Studio 選項卡,在 IDE 的右邊將顯示我們剛才選擇的部分原理圖。





當全速運行代碼時,VSM Studio 頁面中的源代碼和變量的區域將顯示“仿真正在運行”的消息。我 們將在下一節介紹調試工具的使用。


調試彈出窗口非常有用,它不僅將原理圖中標記的區域顯示到調試環境中,而且還可以進行交互仿真。例如, 如果點擊按鍵 S1,切換程序模式,你應該會看到 LCD顯示 I2C 溫度傳感器的溫度值。如果你再調節溫度傳感 器的溫度,LCD 會反映出溫度的變化。



切換回到原理圖頁面,你會看到原理圖中的狀態和調試彈出窗口中的一樣。當停止仿真(從仿真控制面板), 調試彈出窗口會消失,VSM Studio 將從調試狀態切換回設計編輯狀態,你可以再次編輯和編譯你的源代碼。


只有當仿真停止以后,你才能在原理圖中創建或調整調試彈出窗。仿真還在運行時,你也可以在 VSM

Studio 頁面通過拖動來調整調試彈出窗口的大小。 現在我們已經配置完調試彈出窗口,來看看如何進行使用調試工具進行代碼的調試。


基本調試


Proteus VSM 的最強大的功能就是代碼和電路的聯合調試。我們已經知道如何在 VSM Studio 中編寫代碼,也
知道怎樣在運行仿真時進行觀察,F在我們來看看怎樣進行代碼的單步運行。

首先確保 Proteus 沒有運行仿真,處于停止狀態中。通過“仿真控制面板”暫停按鈕啟動仿真并暫停。




如上圖所示,Proteus 將自動切換到 VSM Studio 頁面,我們可以看到:調試彈出窗口顯示在右手邊;主面板報 告“沒有源代碼”的信息;程序變量的列表放在屏幕的底部。在這個階段,仿真處于“已經啟動”的狀態,電 路處在一個穩定的工作點,代碼還沒有執行,也沒有時間的消逝。


源代碼窗口沒有顯示任何的源代碼,這是因為在當前的程序計數器(PC=0)中沒有源代碼可以顯示。 你可以從窗口頂部的下拉框中選擇這個工程的任何源文件進行查看。但我們先從 main.c 文件開始,因為這個文

件包含了最整個程序的基本流程控制。


先來看看怎么設置斷點,舉一個簡單的例子——要在主函數的按鍵釋放處設置一個斷點。放置斷點最容易的方 法就是在希望放置斷點的代碼行進行雙擊。斷點指示器(一個小紅點)將會出現在源代碼窗口的代碼行左邊。 如果你誤設了一個斷點,可以在這行再次雙擊(或從代碼窗口中點擊右鍵,在彈出的菜單中)進行刪除或關閉。




如果我們現在點擊運行按鈕運行仿真,在運行模式下會全速執行代碼。直到我們點擊并釋放模式切換按鍵(即
S1,可以在調試彈出窗口中點擊),按鍵釋放以后代碼的執行會到達斷點處,仿真將暫停。


到達斷點以后,我們可以通過源代碼窗口右上角或 VSM Studio 調試菜單中的常用命令單步執行代碼。另外可 以使用快捷鍵 F10 和 F11 分別進行單步跳過調試和單步進入函數內部調試。



如果需要查看程序執行的細節,具體到每一條指令的執行過程。你可以在反匯編代碼中進行代碼的匯編級單步 調試。右鍵點擊源碼窗口,從彈出的菜單中選擇“反匯編”,然后同之前一樣使用單步調試命令。






再次點擊右鍵選擇“反匯編”子菜單將返回到高級語言的源代碼中進行單步調試。

在單步調試的過程中,你可能會注意到調試彈出窗口中的 LCD 顯示的數字是不完整的。但這是正確

的,因為顯示的結果就是由這些不完整的段組合起來的。 如果你想運行到下一個按鍵釋放的狀態,只需要按下仿真控制面板中的“運行”按鈕,然后在調試彈出窗口中

點擊按鍵再次觸發斷點。

完成以后,點擊右鍵選擇清除所有的斷點,然后按下仿真控制面板的“停止”按鈕結束仿真調試。

注意事項


在 Proteus 中,當進入斷點或單步調試后,要知道現在整個系統是受時間的控制,這意味著系統處于暫停狀態,

電容不進行放電,電機也失去了動力。當通過單步調試執行指令,這些指令對系統產生作用以后,系統將再次 停止。調試時,可以通過狀態欄看到時間前進的信息。


還有一些其它非常有用的調試窗口,但在本教程沒有進行介紹。這些調試窗口可以從 VSM Studio 的“調試” 菜單中啟動,并放到 IDE 的底部。在仿真暫停后,數據會顯示在相應的窗口中。但是本教程將會在下一節單獨 介紹監視窗口的功能和使用方法,因為它比較特殊。



監視窗口


監視窗口是一個調試窗口,能夠在運行仿真時提供實時數據,同時也給了我們另外一個設置斷點的方法,F在,
我們使用監視窗口監控電位器的 ADC 轉換為例子來說明監視窗口的使用方法。

先點擊 Proteus 軟件底部的“運行”按鈕開始仿真,然后從 VSM Studio 的“調試”菜單中啟動監視窗口,監 視窗口將出現在 IDE 的底部。



接下來,右鍵單擊監視窗口從彈出的菜單中選擇“使用名字添加監視項”。這里我們想添加 ADC 寄存器 ADRESH 和 ADRESL,可以通過雙擊寄存器進行添加,完成以后退出對話框,在監視窗口中應該有兩個我們剛剛添加的 監視項。









我們現在點擊電路中的按鈕來切換到電壓采集模式,可以使用調試彈出窗口(或切換到原理圖頁面)。點擊控
制按鈕三次進行模式切換,然后使用電位器左邊的調節按鈕改變電位器的阻值。



如果你覺得以二進制的形式顯示結果會更容易理解,可以更改項目的顯示格式。在監視窗口中右鍵點擊每一項, 將顯示格式改變成二進制。




由于這是一個 10 位的 ADC,因此讀取的最大值是 1023 或 0x03FF,當電位器調節到最頂端時,我們可以在 LCD
中看到這個值。




現在我們假設在電位器向下調節過程中,當電位器到達中間位置時仿真暫停下來。我們知道中間位置的值在

0x1FF 左右,所以我們可以在監視項上設置觸發斷點的條件。通過右鍵點擊監視項目,并從彈出菜單中選擇監 視點的條件。在我們的例子中,即要在 ADRESH 等于0x01、ADRESL 小于或等于 0xFF 時暫停仿真。當我們 從最大值開始向下調節電位器,調節到中間位置時將會第一次觸發斷點。






注意,你需要單獨配置 ADRESH 和 ADRESL,完成以后,監視窗口的顯示應該像下圖一樣。


設置好監視條件以后,我們現在需要向下調節電位器,直到滿足條件時觸發斷點。同之前一樣,既可以在 VSM Studio 的調試彈出窗口中調節電位器,也可以切換到原理圖頁面進行調節。當斷點被觸發后,你應該能看到兩 個監視項的值是 0x01 和 0xFF。如果有需要的話,你可以在條件觸發的這點開始單步執行你的代碼進行調試。


在調試定時器代碼時,如果想要捕獲溢出條件,使用監視窗口中的監視條件是非常有用的。

右鍵點擊監視項,在彈出的菜單中選擇“監視條件”,然后從彈出的對話框中選擇‘關閉監視點’

選項就可以關閉監視點。 我們接下來討論硬件斷點,在此之前,要先禁止監視條件或刪除監視項,然后在仿真控制面板中按下停止按鈕

結束仿真。


硬件斷點


到目前為止,我們已經學習了基于軟件條件的仿真中斷(觀察點和斷點)。另外也可以使用硬件斷點,以便當

硬件條件發生時檢查代碼,例如想在 I2C 總線剛開始動作時進行捕獲,我們可以像下面介紹的一樣在 I2C 總線 上設置一個硬件斷點。


先切換到原理圖選項卡,然后從左邊的模式選擇器中選擇電壓探針圖標。接下來在編輯窗口中單擊,開始進行 探針的放置,移到鼠標到總線的 SDA 線上,再次點擊左鍵放置探針。





現在右鍵點擊探針,從彈出的菜單中選擇編輯屬性。


實時斷點類型選擇“數字的”,如果我們想在低電平進行觸發,輸入 0 作為觸發值。


點擊“確定”,按下運行按鈕開始仿真,你應該會發現仿真幾乎立刻停止,并且在 VSM Studio 的源窗口中顯 示只執行了一個命令將 SDA 設置成低電平。



這個斷點實際上是發生在初始化程序中,如果想要跳過這個斷點,并且只在進入 I2C 模式后被激活,這樣我們 就需要設置斷點的裝備時間,先要停止仿真,然后切換到原理圖模塊,像之前一樣編輯電壓探針 RC4 的屬性, 裝備時間設置成 1s。






這時候,當運行仿真時斷點不會被觸發,直到我們按下模式切換按鍵進入溫度模式(溫度值在 I2C 總線上進行
傳輸)。


你應該會發現停在了源代碼的 I2C 子程序中,接下來可以像之前描述的從這里開始進行單步調試。


交互式測量


在設計和仿真電路的時候,經常會檢測電路的信號和波形。在 Proteus 中主要有兩個方法來實現這一點。例如,

假設我們想要檢查溫度傳感器 MCP9800 進行 I2C 傳輸的過程,無論是通過交互方式還是更傳統的圖表方式都 可以實現。


我們要做的第一件事就是整理原理圖,刪除我們先前使用過的各種斷點。你可以在原理圖中的探針上右鍵雙擊, 或點擊右鍵,從彈出的菜單中選擇“刪除”來刪除電壓探針,同樣,我們可以右鍵雙擊調試彈出窗口對象的邊 界刪除調試彈出窗口對象。


當原理圖中定義了調試彈出窗口對象,在仿真開始以后 Proteus 就會自動切換到 VSM Studio。因為

它會假定你主要的任務是進行源代碼調試。由于我們現在需要分析信號,所以我們移除調試彈出窗 口對象,以便仿真開始后打開的是原理圖頁面。


現在要做的第二件事就是放置和連接 I2C 調試器,選擇虛擬儀器模式,在對象選擇器列出了一系列交互式測量 工具,在我們的案例中,選擇 I2C 協議分析儀。



在對象選擇器中點擊 I2C 分析儀選中,然后以放置普通元器件對象的方式將它放置到原理圖中。為了容易連線,
你可以將它放在溫度傳感器的正下方。



接下來,我們需要連接引腳,注意,在連線的起點和終點光標會變成綠色。因此放置連線的過程就是將鼠標放

在起始點(I2C 調試器的引腳)直到光標變成綠色,然后點擊左鍵開始放置,移動鼠標到目標點(光標變成綠 色),最后點擊左鍵終止導線的放置,通過使用這種技術連接 SCL 和 SDA 到 I2C 總線,如下圖所示:


連上 I2C 協議分析儀以后,開始仿真。應該可以看到有一個 I2C 的調試器窗口懸浮在原理圖上,并且有一些初 始化/識別的數據傳輸。如果想要查看溫度傳感器在 I2C總線上傳輸的數據,我們需要按下原理圖中的按鍵切換 到溫度模式。



由于程序代碼會不斷查詢當前的溫度值,因此 I2C 總線上會不斷有數據在傳輸。如果我們要分析數據,應該先 暫停仿真,然后才可以花一些時間來分析 I2C 數據傳輸的詳細過程。





如果 Proteus 工作在單一框架下,即 ISIS 與 VSM Studio 都以選項頁的方式存在于 Proteus 軟件框 架下,當仿真暫停后,將自動切換到 VSM Studio 選項頁,因為 Proteus 會假定你對執行的源代碼 感興趣。但不管怎樣,分析儀始終在最頂層。如果你想在同一時間查看原理圖和源代碼,你可以使 用調試彈出窗口,也可以將 VSM Studio 拖到 Proteus 外面,把原理圖和 VSM Studio 分開。


I2C 協議分析儀中使用的語法是標準的 I2C 協議描述,你可以通過左邊的‘+’號展開傳輸的序列進行查看。外 設元件(MCP9800)有一個標準的地址 0x90,因此我們以讀請求為例進行說明:序列以開始位(S)開發,跟 著是一個讀請求 0x91(位 0 設置為 1 表示讀請求),后面跟著的是 0x1B(數據)等等。接收到的數據(0x1B) 以十進制顯示是 27,對應外設元件(MCP9800)中當前顯示的溫度值。



再次運行仿真,你可以改變原理圖中 MCP9800 的溫度值,然后再次停止,并檢查 I2C 調試器中的輸出來進一 步理解 I2C 和 I2C 協議分析儀。



注意,像這樣不斷進行輪詢的固件程序在性能方面有相當大的開銷,因為 I2C 協議分析儀需要不斷的刷新顯示 數據。然而在大多數情況下,只是使用虛擬儀器進行測試或調試,在測試或調試的過程中,仿真速度是次要的。 所有的調試窗口在不使用時都可以關閉,然后可以從 VSM Studio 或 ISIS 的“調試”菜單中重新打開。


深度閱讀:

關于 I2C 協議分析儀和其它虛擬儀器的更多幫助信息放在 Proteus VSM 的參考手冊中。需要特別注意的是你既
可以使用這個分析儀作為 I2C 總線上的一個主(或從)設備,也可以只作為一個監視器來使用。


基于圖表的測量


我們也可以使用基于圖表的仿真,以另一種方式來觀察 I2C 總線上數據的傳輸。但基于圖表的仿真與交互式仿
真有很大的不同,主要有以下幾點:
    在基于圖表的仿真中,不能和電路進行交互式操作。
    基于圖表的仿真運行在一個指定的時間段。

               在這個時間段結束、仿真停止之前,仿真結果是看不見的。 鑒于上述情況,讓我們看看如何使用數字圖表來分析 I2C 總線上的數據傳輸。首先,右鍵雙擊 I2C調試器把 I2C

調試器從原理圖中刪除。

然后選擇圖表模式,并從對象選擇器中選中“數字圖表”,然后在你想放置圖表的位置左上角點擊左鍵,移動 鼠標到右下角,再次點擊左鍵完成圖表的放置。


注意,原理圖中的圖表不需要特別大,因為當我們要分析仿真結果時,可以把圖表放大。 添加完圖表以后,我們現在就需要告訴它我們想要查看哪些導線上的信號。為此我們需要給導線附上探針,然

后在圖表中指定這個探針。選擇電壓探針圖標,然后在 I2C 總線的每一根線上都放置一個探針。


如果需要靠的更近,可以圍繞鼠標位置使用鼠標中間的滾筒或 F6/F7 快捷鍵進行放大和縮小,F8

快捷鍵將返回原理圖的默認視圖。 默認情況下,電壓探針會自動提取終端的名字為自己命名。但在我們的仿真中,對其重新命名讓它更有意義。

可以通過右鍵點擊探針,從彈出的菜單中選擇“編輯屬性”,然后將名字分別改成 SCL 或 SDA。



現在,導線上放置好了探針,而原理圖中也已經放置好了的圖表。我們需要添加探針到圖表中讓圖表去測量探 針上的信號,有幾種方法可以做到。最簡單的方法就是將探針拖到圖表中,可以右鍵點擊探針,從彈出的菜單 中選擇移動對象,然后移動鼠標到圖表之上,再次點擊左鍵完成添加;也可以左鍵點擊一次探針先選中,然后按下左鍵不放,移動鼠標到圖表之上,釋放左鍵即可完成添加操作。現在把這兩個探針添加到圖表中。




默認情況下,基于圖表的仿真運行時間是 0 到 1s。在我們的例子中,我們更關心 1s 到 2s 之間的數據,跳過了
初始化階段的數據傳輸?梢酝ㄟ^編輯圖表(點擊右鍵并編輯屬性)改變開始和停止的時間。


在原理圖的空白區域點擊左鍵將會取消選中任何當前被選中的對象。通常在退出編輯屬性對話框以 后需要進行這個操作,因為退出編輯屬性對話框以后對象仍然處于選中狀態。


我們準備進行仿真,但有一個嚴重的問題。正如前面提到的,在基于圖表的仿真中,你不能和電路進行交互式 操作,但是為了進入溫度模式,觸發 I2C 傳輸,我們需要點擊按鍵切換模式。由于我們不能按下按鍵,所以我 們需要給 PIC 加入一個等效的信號,以便程序能切換到溫度模式。我們一般是這樣做的,選擇激勵源圖標,從 對象選擇器中選中脈沖激勵源,將這個激勵源放在按鍵右邊 RD2 終端的旁邊。放置之前你可能要先移動這個終 端給這個激勵源騰出一些連線的空間。




現在以最常用的方法編輯激勵源(點擊右鍵,選擇“編輯屬性”菜單),在數字激勵源類型中選擇單脈沖,改變脈 沖極性為負,使用脈沖信號代替按鍵脈沖。由于我們圖表仿真的時間是從 1s 到 2s,因此設置開始時間 1.25s, 脈沖寬度 50ms。




我們現在可以運行仿真了,但使用的不是仿真控制面板中的交互式仿真按鈕,使用的是“圖表”菜單中的“仿
真圖表”命令,之后你看到的結果看起來應該像下圖一樣。

在 1.25s 之前沒有任何的數據傳輸,這時因為我們的模擬按鍵的脈沖是在 1.25s 時產生的。另外,現在在圖表 里面我們看不到其它的信息。右鍵點擊圖表,從彈出的菜單中選擇“最大化窗口”,這將在一個新的選項頁中 放大圖表。




當圖表選項頁出現在最前面時,菜單和工具欄會改變,通過這些菜單和工具可以對圖表進行一些操作。請特別 注意應用程序頂部出現的圖表工具欄。


在這里可以找到一些縮放工具,最有用的是“查看區域”工具。點擊這個工具的圖標,然后圍繞一個小的區域
拖動一個方框,可以進行選定區域的放大顯示。如果重復這個操作,你將很快就可以放大看到單個的 I2C 序列。



你也可以按住 SHIFT 鍵,然后使用鼠標拖一個選擇框進行區域放大。

熟悉 I2C 協議的人可以將圖表顯示的原始數據與之前在協議分析儀中看到的序列進行對比驗證。 最后,你可以按下面介紹的方法進行圖表測量:

               在圖表窗口點擊鼠標左鍵,將在圖表中放置一個(綠色)光標;
               按住鼠標左鍵并進行移動可以進行移動光標;
               按住 CTRL 鍵,點擊左鍵將放置一個(紅色)光標;
               按住 CTRL 鍵,并按住鼠標左鍵移動可以移動(紅色)光標;
               每個光標的數據和它們之間的增量顯示在圖表窗口的底部。

一般的放置和編輯技巧在這個教程里面都只是作簡單的介紹,而在 ISIS 教程文檔中有更多細節。 關于圖表的更多信息提供在本文檔的后面,而關于激勵源、探針以及基于圖表仿真的詳細說明只能在 Proteus

VSM 的參考手冊中找到。


診斷信息


在 Proteus 中另一個非常有用但經常被忽視的工具是仿真診斷信息。它提供了一個窗口,允許用戶查看指定外
設上仿真活動的文字性報告。

我們以 LCD 顯示屏為例來說明怎樣使用診斷信息。 切換到原理圖頁面,從“調試”菜單下打開“配置診斷信息”子菜單。




展開對話框中 LCD 顯示屏(VIM-332-DP)的條目,點擊“診斷信息”這個子條目,然后將診斷信息輸出等級
設置為“所有信息”。


現在展開 PIC16LF1937(U1)條目,向下滾動到“LCD 模塊”這個子條目,再次將診斷信息輸出等級設置為“所 有信息”。




首先從“仿真控制面板”中啟動交互式仿真,然后點擊“仿真日志”觀察診斷信息,Proteus 將會自動切換到
VSM Studio 頁面,仿真日志將會出現在 VSM Studio 頁面的底部。


如果你暫停仿真,我們可以看到[PIC16 LCD]的調試信息里包含了 PC 值,你可以點擊這個值來定位到源代碼中 的某一行,這一行就是引起 PIC16 輸出這個調試信息的指令。





只有當仿真被暫停以后,才能定位到源代碼中。 最后,停止仿真并將診斷信息輸出等級設置為“僅警告”。

在你的固件程序出現 bug 時,使用診斷信息來幫助你調試特別有用。但它會影響仿真的性能和速度(可以試試 對 PIC MSSP 外設和溫度傳感器 MCP9800 輸出診斷信息),因此只在需要時啟用它。如果你知道事件出現的 大概時間段,你也可以選擇在一個限制的時間段內輸出診斷信息。




本系列完整的pdf版本教程下載:
http://m.zg4o1577.cn/bbs/dpj-111690-1.html


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品一区 | 亚洲美乳中文字幕 | 91精品中文字幕一区二区三区 | 99视频免费播放 | 99久久影院 | 国产95在线 | 欧美日韩高清在线一区 | 国产欧美一级二级三级在线视频 | 日韩一区二区视频 | 中文字幕日韩欧美一区二区三区 | 成人精品一区 | 国产ts人妖系列高潮 | 久久久久久国产精品免费免费 | 欧美一区二区三区四区五区无卡码 | 国产99精品 | 在线免费看黄 | 欧美在线色 | 精品久久一区 | 国产成人精品免费视频大全最热 | 在线亚洲欧美 | 久久精品久久久 | 亚洲精品国产第一综合99久久 | 99福利在线观看 | 欧美日韩亚洲成人 | av在线电影网站 | 精品在线免费看 | 天堂一区二区三区 | 欧美a区| 在线视频一区二区三区 | 免费观看一级特黄欧美大片 | 91美女在线 | 福利国产| 成人影院午夜 | 夜夜骑首页 | 日本又色又爽又黄的大片 | 国产成人精品一区二区三区视频 | 久久精品高清视频 | 国产丝袜一区二区三区免费视频 | 超碰97免费在线 | 久久综合久 | 一级爱爱片|