為什么要使用仿真器
1,、 仿真的概念:
仿真的概念其實使用非常廣,最終的含義就是使用可控的手段來模仿真實的情況,。在嵌入式系統(tǒng)的設(shè)計中,,仿真應(yīng)用的范圍主要集中在對程序的仿真上。例如,,在單片機(jī)的開發(fā)過程中,,程序的設(shè)計是最為重要的但也是難度最大的一種最簡單和原始的開發(fā)流程是:編寫程序燒寫芯片驗證功能,這種方法對于簡單的小系統(tǒng)是可以對付的,,但在大系統(tǒng)中使用這種方法則是完全不可能的,。
2、 仿真的種類:
軟件仿真:這種方法主要是使用計算機(jī)軟件來模擬運(yùn)行,,實際的單片機(jī)運(yùn)行因此仿真與硬件無關(guān)的系統(tǒng)具有一定的優(yōu)點(diǎn),。用戶不需要搭建硬件電路就可以對程序進(jìn)行驗證,,特別適合于偏重算法的程序。軟件仿真的缺點(diǎn)是無法完全仿真與硬件相關(guān)的部分,,因此最終還要通過硬件仿真來完成最終的設(shè)計,。
硬件仿真:使用附加的硬件來替代用戶系統(tǒng)的單片機(jī)并完成單片機(jī)全部或大部分的功能。使用了附加硬件后用戶就可以對程序的運(yùn)行進(jìn)行控制,,例如單步,,全速,查看資源斷點(diǎn)等,。硬件仿真是開發(fā)過程中所必須的,。
3、 為什么要使用仿真器?
在與一些有經(jīng)驗的工程師交談中,,我們會發(fā)現(xiàn)有相當(dāng)一部分工程師在開發(fā)中不使用或很少仿真器,。向他們詢問,原因得到的回答是"仿真器不可靠"但是他們是如何解決程序開發(fā)中遇到的問題呢,?通過深入的交流才明白他們是按照這樣的方法來開發(fā)程序的:
(1),、根據(jù)自己的設(shè)計建立一個符合要求的硬件平臺,如果該平臺涉及的程序比較復(fù)雜,。還要搭建一個人機(jī)交流的通道人機(jī)交流通道可能是一個簡單的發(fā)光二極,管蜂鳴器,,復(fù)雜的可能是串口通訊口LCD顯示屏,。
(2)、寫一個最簡單的程序例,,如只是將發(fā)光二極管連續(xù)的閃爍,。程序編譯后燒寫到單片機(jī)芯片中,驗證硬件平臺是否工作正常,。
(3),、硬件平臺正常工作后編寫系統(tǒng)最低層的驅(qū)動程序,每次程序更改后都重新燒寫單片機(jī)芯片驗證,。如果在程序驗證中遇到問題,,則可能在程序中加入一些調(diào)試手段。例如通過串口發(fā)送一些信息到PC端的超級終端上,,用于了解程序的運(yùn)行情況,。
(4)、系統(tǒng)低層驅(qū)動程序完成后再編寫用戶框架程序,,由于這部分已經(jīng)不涉及到硬件部分,,所以程序中的問題用戶一般能夠發(fā)現(xiàn)。
但是更多的調(diào)查表明,,使用以上方法的工程師總的看來所設(shè)計的程序不是很龐大或很復(fù)雜,。因為在做簡單的項目時,,我們可以通過一個發(fā)光二極管就可以表達(dá)出內(nèi)部的信息:如果程序復(fù)雜,可能需要更多的信息來表示內(nèi)部的狀態(tài),,這樣可能就需要串口協(xié)助調(diào)試,;如果程序更復(fù)雜,硬件更多,,實時性更強(qiáng),,那工程師就要更多的增強(qiáng)調(diào)試手段,串口可能就不能滿足了,,需要類似于斷點(diǎn)的功能,,因為我想知道在某一個時刻單片機(jī)內(nèi)部的狀態(tài)究竟是怎樣?
如果用戶程序的修改非常頻繁,,可能一次又一次地的燒寫芯片占用的時間就很多,,這時用戶就會想能下載程序并運(yùn)行的裝置。
到這里,,您會看到,,隨著用戶要求的越來越高,調(diào)試裝置已經(jīng)越來越象一個通用的仿真器了,。因此我們的建議是:不要回避使用仿真器,,因為使用仿真器能提高您的開發(fā)速度。
但是不能否認(rèn)的是,,用戶回避使用仿真器也是有原因的,。因為仿真器也是一種電子裝置,非常依賴于設(shè)計者的水平,。如果一個仿真器設(shè)計者的水平有欠缺,,那將給仿真器的使用者帶來很大的問題。因為仿真器的使用者將分不清楚究竟是程序的問題還是出在那里,。隨著電子設(shè)備的復(fù)雜化,,設(shè)計工程師面臨前所未有的壓力。您可以想象,,用戶發(fā)現(xiàn)了程序中有一個問題,,首先懷疑是自己系統(tǒng)中的問題,可能是軟件方面也可能是硬件方面,。因為用戶系統(tǒng)處于開發(fā)階段,,用戶基本上不會懷疑仿真器。在這種情況下,,用戶將耗費(fèi)很大的精力在自己的系統(tǒng)中尋找并不存在的問題,。如果用戶最終發(fā)現(xiàn)問題來源于仿真器,并通過燒寫芯片驗證確,,實如此那這個仿真器用戶以后可能會逐漸放棄使用仿真器,。
用戶放棄使用仿真器,,對用戶的影響是巨大的。因為放棄使用一個設(shè)計不完善的仿真器,,也放棄了使用其它設(shè)計完善的仿真器,,關(guān)鍵是放棄了合理的開發(fā)方法。因此我們的建議是:不要回避使用仿真器但要挑選好的仿真器,。
4,、仿真器的附加服務(wù)更加重要
在購買仿真器的同時,還要注意仿真器廠家的服務(wù),,這一點(diǎn)很關(guān)鍵,。這里說的服務(wù)包含仿真器本身的服務(wù),例如仿真器使用上的指導(dǎo)服務(wù),,仿真器的維修服務(wù),,這些都是一個產(chǎn)品的最基本的服務(wù)。對于仿真器這種特殊產(chǎn)品來將還不是全部的服務(wù),。
使用仿真器來開發(fā)產(chǎn)品,,會遇到很多問題:產(chǎn)品本身的問題,仿真器的問題,,仿真器和用戶系統(tǒng)的問題,。如果用戶開發(fā)經(jīng)驗不是很豐富,他并不能排除遇到的問題究竟來源于哪個方面,。這時,,他可能求助于仿真器生產(chǎn)廠商。如果仿真器的生產(chǎn)廠商只專注于仿真器的設(shè)計,,而對于其它的單片機(jī)應(yīng)用不熟悉,他可能對用戶提出的問題不能作出正確的判斷而一味的強(qiáng)調(diào)自己的仿真器沒有問題,。與之相反,,一個既熟悉仿真器的使用,又有豐富開發(fā)經(jīng)驗的仿真器支持廠商則能協(xié)助用戶快速的找出問題,。實踐證明這兩種情況帶來的效果是完全不一樣的,。