• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于MultiSim10的MCU實時性仿真與研究

      2011-08-11 07:10:38張小進
      關(guān)鍵詞:動態(tài)顯示數(shù)碼管實時性

      張小進

      (閩江學院 計算機科學系,福州350108)

      0 引 言

      隨著EDA技術(shù)的不斷發(fā)展,電子產(chǎn)品的設計過程從模型的建立,到包括電原理圖、PCB板圖、MCU及接口、MCU控制程序、FPGA的構(gòu)建、仿真、外觀界面、熱穩(wěn)定分析、電磁兼容分析在內(nèi)的物理級設計,再到PCB鉆孔圖、自動貼片、焊膏漏印、元器件清單、總裝配圖等生產(chǎn)所需資料等等全部在計算機上完成,發(fā)達國家目前已經(jīng)基本上不存在電子產(chǎn)品的手工設計[1].

      單片機系統(tǒng)的開發(fā)需要經(jīng)歷軟、硬件設計、調(diào)試,以及制作后的聯(lián)合統(tǒng)調(diào);以上的任何一個步驟一旦存在錯誤就要回朔到前一個或若干個步驟進行修改設計,這導致了開發(fā)費用高、開發(fā)周期長等問題.美國NI公司推出的MultiSim9開始引入了MCU系統(tǒng)設計與仿真,它不但可以設計、仿真 MCU系統(tǒng),也可以對外圍的接口進行設計與仿真,還可以支持C或匯編的軟件開發(fā)及斷點調(diào)試、MCU的內(nèi)存、寄存器查看等;從而使得單片機系統(tǒng)的開發(fā)可以更好地借助于計算機的輔助設計.

      1 實時性仿真問題

      單片機系統(tǒng)通常應用于各種控制領域,它的實時性是一個極其重要的指標;主要體現(xiàn)在時鐘定時中斷、信息的動態(tài)顯示和數(shù)據(jù)的輸入等方面.無論是做系統(tǒng)開發(fā)還是輔助教學,設計者都希望自己的設計能在實現(xiàn)前進行很好地仿真,以檢驗設計中存在的軟硬件錯誤、邏輯功能上的問題和實時性的效果.那么利用MultiSim軟件對單片機系統(tǒng)進行輔助設計能否滿足實時性仿真的要求呢?以常用的七段數(shù)碼管顯示系統(tǒng)時鐘為例,在單片機系統(tǒng)中為了節(jié)省有限的I/O端口,數(shù)碼管的顯示一般采用動態(tài)顯示技術(shù),它利用人眼的視覺暫留現(xiàn)象,快速地輪流點亮各個數(shù)碼管以達到穩(wěn)定顯示信息的目的[4-5].眾所周知,只有位選通輪轉(zhuǎn)的頻率至少達到24/秒次才能看到連續(xù)的信息,而要看到穩(wěn)定的信息需至少要達到48/秒次.實現(xiàn)一個六位七段數(shù)碼管動態(tài)顯示的硬件系統(tǒng)如圖1所示.

      這個系統(tǒng)采用7447N作為BCD-段碼的譯碼輸出,而不使用查表法;利用74LS138D輸出位選通信號;用共陽七段數(shù)碼管顯示時、分和秒信息.

      軟件系統(tǒng)的算法流程如圖2、圖3、圖4所示.

      圖1 數(shù)碼管顯示硬件系統(tǒng)

      定時器工作于定時的方式1,利用其每隔50ms中斷一次,寄存器計數(shù)累計到20次為1s時間到.按照以上的軟硬件設計,仿真的結(jié)果應該是顯示設置的時、分、秒,并實時更新時間,但是在仿真中我們會發(fā)現(xiàn)存在兩個問題,導致仿真的結(jié)果與實際情況大相近庭.第一,沒有實現(xiàn)連續(xù)、穩(wěn)定的顯示時間,而只是像跑馬燈地顯示;第二,仿真顯示的時間與實際的時間相差很大,即顯示的時鐘走時慢了很多.

      在MultiSim中,可以通過修改“仿真”菜單下的“交互式仿真設置”菜單項上的“默認瞬態(tài)分析”選項卡上的“設置初始時間步長”的值來改變仿真的速度,但是這個值的改變對數(shù)碼管的動態(tài)顯示仿真基本沒有作用,表1是對該值選擇不同時以上系統(tǒng)中某個數(shù)碼管被選通的次數(shù)比較.

      表1 設置初始時間步長

      從表1統(tǒng)計的數(shù)據(jù)可以看出,在六位數(shù)碼管動態(tài)顯示系統(tǒng)中,50次/min的選通顯然不能滿足正常顯示的條件;另外,初始時間步長的改變對動態(tài)顯示效果的改善基本無效.

      2 動態(tài)顯示的極限測試

      為了測試MultiSim下數(shù)碼管動態(tài)顯示的極限值,需要排除軟件執(zhí)行所花費的時間;因此,設計一個環(huán)形計數(shù)器用于產(chǎn)生數(shù)碼管動態(tài)顯示所需要的位選通信號[6-8],讓數(shù)碼管段碼引腳固定連接“高”或“低”電平以顯示某些數(shù)字,其測試硬件電路如圖5所示.連接于P0口的數(shù)碼管(內(nèi)部帶有譯碼電路)用于顯示定時的數(shù)值;連接于P2口的數(shù)碼管用于在定時時間到時顯示選通脈沖的個數(shù).

      圖5 動態(tài)顯示極限測試

      單片機用MultiSim默認的晶振頻率12MHz,利用T0定時器定時以產(chǎn)生與實際時間相同的一分鐘定時;利用T1定時器對環(huán)形計數(shù)器的輸出,即位選通信號脈沖進行計數(shù),測試出在實際時間1min內(nèi)某位數(shù)碼管被選通的次數(shù).

      在MultiSim默認的仿真條件下,通過改變環(huán)形計數(shù)器的脈沖頻率(占空比為50%),測試數(shù)碼管某位實際顯示的頻率,表2是實際位顯示頻率測試的結(jié)果.

      表2 極限測試實際位顯示頻率的變化

      10kHz 1.1Hz 2.5kHz 20kHz 1.133Hz 5kHz 60kHz 1.167Hz 12.5kHz 100kHz 1.25Hz 25kHz 200kHz 1.25Hz 50kHz

      從表2的結(jié)果可以看到,當環(huán)形計數(shù)器的脈沖頻率達到100kHz后,實際位顯示的頻率已經(jīng)無法提高了.

      測試所用的程序代碼如下:

      在程序設計中,讓T0、T1都工作于方式2,自動重裝初值以減少誤差.在純硬件實現(xiàn)四位動態(tài)顯示的條件下,環(huán)形計數(shù)器計數(shù)脈沖頻率為100kHz,按照MultiSim默認的“設置初始時間步長”值,測試結(jié)果為75次/min,即1.25次/s;當“最大時間步長”和“初始時間步長”都設置為80s時,測試結(jié)果為96次/min,即1.6次/s;顯然這都是無法滿足連續(xù)地顯示仿真,但是這并不代表該軟件不能實現(xiàn)數(shù)碼管的動態(tài)顯示仿真,因為在數(shù)碼管的位選通引腳上只要接上“測量探針”就可以檢測到位選通脈沖的頻率,如圖2中所示.因此,盡管看不到實際仿真的實時效果,但只要該頻率大于48Hz,在實際系統(tǒng)中是一定可以實現(xiàn)動態(tài)顯示的.

      在單片機系統(tǒng)中,定時器的計數(shù)初值計算公式是:

      (2n-X)機器周期(μs)=定時時間(μs)

      式中n的取值為0、1、2,分別對應定時器的各種方式;由于在MultiSim中8051默認的晶振頻率是12MHz,所以機器周期是1μs.在使用定時器仿真時由于線程時間配額的關(guān)系,定時器初值計算值的定時結(jié)果在仿真的實際效果中會大大延長;具體延長多少與不同的PC硬件、操作系統(tǒng)、當時運行的進程、以及是否正在做I/O操作等因素是有關(guān)的;在雙核的Intel(R)Pentium(R)Dual e2140@1.60 GHz CPU、Windows XP的操作系統(tǒng)下,大約100 μs的定時時間相當于實際時間的1s;之所以是大約的值,是因為與PC系統(tǒng)開啟的進程多少,如是否播放音頻、視頻等有關(guān).

      3 MultiSim實時性分析

      Multisim運行于多用戶、多任務的操作系統(tǒng)平臺下,其設計的仿真作為一般用戶進程中的線程分時輪轉(zhuǎn)地使用操作系統(tǒng)的線程時間配額.對于Windows 2000/XP操作系統(tǒng)而言,每個線程都有一個優(yōu)先級和時間配額.

      3.1 線程優(yōu)先級

      在Windows 2000/XP操作系統(tǒng)下線程分為32個線程優(yōu)先級,優(yōu)先數(shù)是0到31,優(yōu)先數(shù)越大優(yōu)先級越高.其調(diào)度是基于內(nèi)核級線程的搶占式調(diào)度,調(diào)度策略是采用動態(tài)優(yōu)先數(shù)多級反饋隊列,每個優(yōu)先數(shù)都對應于一個就緒隊列[2].線程優(yōu)先數(shù)在31~16范圍的屬于實時優(yōu)先級,用于通信和實時任務;線程優(yōu)先數(shù)在15~1范圍的屬于可變優(yōu)先級,用于用戶的交互式任務;線程優(yōu)先數(shù)為0的屬于系統(tǒng)線程優(yōu)先級,用于系統(tǒng)中的頁面任務.

      在Windows 2000/XP操作系統(tǒng)中可以通過任務管理器修改進程的基本優(yōu)先級,相應的線程會繼承進程的優(yōu)先級.如果用戶有權(quán)限,可以將 Multi-Sim的進程優(yōu)先級升高到“實時”,由于硬件中斷的優(yōu)先級高于任何線程,所以它不會阻塞硬件中斷處理,但是它可能阻塞關(guān)鍵系統(tǒng)線程(如存儲管理器、緩存管理器、本地和網(wǎng)絡文件系統(tǒng)和設備驅(qū)動程序等)[3].因此,在仿真過程中會看到,當優(yōu)先級設置為“實時”后仿真可能處于不穩(wěn)定的狀態(tài);另外,在仿真過程中不能有I/O操作,例如,移動鼠標、敲擊鍵盤等,因為這些操作的中斷處理將優(yōu)先進行,會導致仿真中線程暫停和時鐘定時的嚴重滯后.

      3.2 線程時間配額

      時間配額是一個線程從進入運行狀態(tài)到 Windows 2000/XP檢查是否有其他優(yōu)先級相同的線程需要開始運行之間的時間總和[3].缺省狀態(tài)下,線程開始的時間配額為6,每個時鐘中斷減少的時間配額為3,因此一個線程的缺省運行時間為2個時鐘中斷間隔.對于X86單處理器系統(tǒng)的時鐘中斷間隔為10ms.換而言之就是在Windows 2000/XP(專業(yè)版)平臺下線程缺省的運行時間是20ms.如果一個進程只有一個或幾個線程,線程優(yōu)先級為“實時”且仿真運行時不進行I/O操作的話,那么至少是可以滿足數(shù)碼管連續(xù)的動態(tài)顯示.

      然而,通過任務管理器可以看到MultiSim運行時有二十幾個線程,且操作系統(tǒng)中還有相當數(shù)量較高優(yōu)先級的系統(tǒng)進程和后臺進程(每個進程有至少1個的線程),通過簡單的推算可以估計出一個仿真線程最快的情況下需要約500ms輪轉(zhuǎn)一次,也就是最快2次/s;這與動態(tài)顯示的極限測試的結(jié)果是基本吻合的,因此,在MultiSim下仿真要看到數(shù)碼管動態(tài)顯示符合實際的效果是不可能的.

      4 結(jié) 語

      本文主要針對MultiSim下MCU系統(tǒng)的實時性仿真存在的問題進行分析與研究,設計了數(shù)碼管動態(tài)顯示的極限測試硬件電路和測試代碼,對極限測試的結(jié)果從MultiSim運行的平臺,即 Windows 2000/XP操作系統(tǒng)的角度分析了其實時性仿真的局限性和造成仿真中與實際效果不符的原因.

      由于仿真中MCU的定時時間顯示效果與實際時間差別較大,因此在MultiSim使用仿真時,為顯示需要所調(diào)用的延遲子程序可先注釋掉,以利于顯示效果.

      [1] 王冠華.Multisim10電路設計及應用[M].北京:國防工業(yè)出版社,2008:20-23.

      [2] Abraham Silberschatz.[美]等.操作系統(tǒng)概念[M].北京:高等教育出版社,2002:114-122.

      [3] 孫鐘秀.操作系統(tǒng)教程[M].高等教育出版社,2003,(3):153-161.

      [4] 張毅剛.新編 MCS-51單片機應用設計[M].黑龍江:哈爾濱工業(yè)大學出版社,2006:153-157.

      [5] 周立功.單片機與CPLD綜合應用技術(shù)[M].北京航空航天大學出版社,2003:338-340.

      [6] 黃 麗.基于Multisim仿真的超聲波測距系統(tǒng)的設計與實現(xiàn)[J].湖南工程學院學報,2009,19(2):27.

      [7] 劉 超,等.基于NI Multisiml0MCU模塊的單片機仿真[J].應用天地,2008,27(8):58-59.

      [8] 石嘉順.基于Multisim環(huán)境下的電路設計與仿真[J].計算機仿真,2007,24(12):307-308.

      猜你喜歡
      動態(tài)顯示數(shù)碼管實時性
      基于規(guī)則實時性的端云動態(tài)分配方法研究
      Arduino編程
      電腦報(2019年2期)2019-09-10 07:22:44
      MC9S08FL16單片機數(shù)碼管靜態(tài)顯示分析
      科技風(2019年13期)2019-06-11 13:38:30
      單片機控制的四位數(shù)碼管動態(tài)顯示編程
      基于Qt的數(shù)碼管數(shù)字編碼系統(tǒng)的設計與實現(xiàn)
      基于虛擬局域網(wǎng)的智能變電站通信網(wǎng)絡實時性仿真
      航空電子AFDX與AVB傳輸實時性抗干擾對比
      基于單片機的LED大屏幕顯示的設計
      科技資訊(2016年28期)2017-02-28 09:52:16
      數(shù)碼管動態(tài)顯示Proteus 仿真失敗分析
      “搖搖棒”為大學生涯畫個七彩圓*——”基于單片機的LED動態(tài)顯示裝置”的創(chuàng)作報告
      南宫市| 合川市| 江永县| 泸州市| 黔东| 子洲县| 曲阳县| 云林县| 肥城市| 德阳市| 福泉市| 陕西省| 德令哈市| 聂拉木县| 施秉县| 若尔盖县| 昌都县| 盐源县| 尉犁县| 安西县| 易门县| 北碚区| 弋阳县| 九台市| 永川市| 巴彦淖尔市| 灌南县| 游戏| 长寿区| 定兴县| 昂仁县| 淳安县| 英吉沙县| 古蔺县| 阿克陶县| 饶河县| 呼图壁县| 二连浩特市| 新乡县| 井陉县| 乐平市|