單片機在線仿真技術的出現,極大地提高了開發單片機應用系統、仿真調試的效率和可靠性,減輕了開發者的勞動強度。 一般地,單片機開發采用“宿主機/目標機”方式(如圖1所示)。首先,利用宿主機上豐富的資源及良好的開發環境開發和仿真調試目標機上的軟件。然后,通過串行口將編譯生成的目標代碼傳輸下載到目標板上,并用交叉調試器在調試軟件支持下進行實時分析和在線仿真調試。最后,目標板在特定環境下編程脫機運行。 圖1 宿主機/目標板的開發方式 這種一對一式的開發,無疑是很好的開發方式,但它的問題是設備利用率低下,這在單片機實驗室顯得尤其突出。所以在設備緊缺情況下,開發一套輔助設備來提高仿真開發設備的利用率是非常有必要的。 性能要求 在現有單片機仿真設備的基礎上,設計一個多路開發應用裝置,實現一套可供幾個用戶輪流開發仿真的單片機仿真器。這樣幾人一組共用實驗設備,既能提高設備利用率,又能形成良好的開發仿真氛圍,更重要的是降低設備重復投入。 多路開發器的整機框圖 本文陳述的設計實現了一套單片機仿真器的多路開發應用板,很好地滿足了以上要求,并且在實踐過程中取得了較好的效果。其原理如圖2所示。 圖2 仿真多路開發器的原理框圖 多路開發器的電路設計 整機是通過一個控制電路來實現多個用戶主機對一臺單片機仿真器的輪流地一對一的仿真使用。這里選用了AT89C2051單片機芯片、74LS04反相器和電磁繼電器為主要部件,來組成一個利用單片機自動控制的選通電路,來正確地完成每個用戶主機與單片機仿真器之間串行口的數據通信。最終目的是設計一個單片機仿真器的多路復用系統板,以實現4個用戶共同使用一個仿真器。 AT89C2051是一個低電壓,高性能CMOS 8位單片機,片內含2Kb的可反復擦寫的只讀Flash程序存儲器和128 字節的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8位中央處理器和Flash存儲單元,功能強大AT89C2051單片機可提供許多高性價比的應用場合。 它只有20個引腳,15個雙向輸入/輸出(I/O)端口,其中P1是一個完整的8位雙向I/O口,兩個外中斷口,兩個16位可編程定時計數器,兩個全雙向串行通信口,一個模擬比較放大器。 多路開發器電路原理如圖3所示。當用戶1按下連接在單片機P3.5的按鍵S1時,產生一個低電平,單片機查詢到P3.5變低時,使P1.0變低,讓連接此端口的發光二極管導通發光以指示用戶1正在申請使用,同時單片機P1.7產生一個高電平,經過74LS04反相后再經三極管放大,使得繼電器K1導通,從而使得連接用戶1主機和單片機仿真器的串行口TxD線,RxD線和地線能夠順利連接,使用戶J1主機能順利地使用單片機仿真器,這樣就完成了用戶J1主機與單片機仿真器的連接使用。 圖3 仿真器多路開發器電路圖 當用戶2按下連接在單片機P3.4的按鍵S2時,產生一個低電平,單片機查詢到P3.4變低時,使P1.0恢復高電平,此端口的發光二極管熄滅,此時單片機P1.1端口產生一個低電平,連接在此端口的發光二極管導通發光以指示用戶J2正在申請使用,同時讓P1.7變成低電平,流經繼電器的電流消失,繼電器K1斷開,使得用戶J1主機與單片機仿真器斷開。此時P1.6端口產生高電平,經反相放大后使繼電器K2導通,使得用戶J2主機順利使用單片機仿真器。 同樣的道理,其他用戶按下按鍵后,當單片機查詢到時,就會使相應LED發光指示正在使用,從而相應繼電器發生動作,這樣就實現了單片機仿真器多路復用。 軟件編程 軟件流程如圖4所示。整個程序用C51編寫完成,通過編譯,編程至芯片AT89C2051,完成脫機工作。 圖4 多路開發仿真軟件流程 單片機系統應用開發仿真調試借助WAVE6000仿真器,該調試器有集成的isp仿真調試環境。安裝使用時,其默認的編譯系統是匯編語言,為了實現C51編譯,開發過程中,為WAVE6000安裝了KEIL C51編譯器。 結語 整個系統運行正常,達到了單片機仿真器多路復用的目的。在開發實踐過程中,取得了預期目的效果,多個用戶開發單片機應用系統仿真調試時,能很好地交替使用,從而提高了實驗設備利用率。 |