一、單片機系統(tǒng)設(shè)計簡述
經(jīng)過幾十年的發(fā)展,現(xiàn)在的單片機技術(shù)已經(jīng)非常的成熟,相關(guān)的系統(tǒng)設(shè)計軟件也有很多,目前在進行單片機系統(tǒng)設(shè)計時,通常采用C語言進行程序的編寫,為了滿足不同工業(yè)生產(chǎn)的需要,單片機中的功能模塊會有一些差別,目前市場上使用最多的單片機就是Atmel公司生產(chǎn)的AT89SC51和AT89SC52,根據(jù)單片機型號的不同,相應(yīng)引腳的功能也會有所變化,而在系統(tǒng)的設(shè)計時,首先要明確的就是單片機各個引腳對應(yīng)的功能。雖然單片機型號的不同,相應(yīng)程序編寫時引腳的代碼會有所變化,但是在所有單片機系統(tǒng)設(shè)計中,最小系統(tǒng)的設(shè)計與調(diào)試都是非常重要的,單片機的最小系統(tǒng)是調(diào)試程序和單片機工作的基礎(chǔ),通常情況下,一個最小系統(tǒng)包括了單片機芯片、電源模塊、時鐘模塊、復(fù)位模塊幾個部分,在進行單片機系統(tǒng)的設(shè)計時,由于單片機自身沒有人機交互模塊,因此必須借助一些輔助設(shè)備才能完成,通常情況下都是從硬件和軟件兩個方面來考慮輔助設(shè)備,硬件方面需要計算機、數(shù)據(jù)線和萬用表等必要的輔助工具,軟件方面就需要Keil等程序編寫軟件和必要的下載軟件,隨著單片機自身的不斷進步,現(xiàn)在已經(jīng)出現(xiàn)了ISP在線編程功能,傳統(tǒng)的單片機系統(tǒng)設(shè)計中,要想向單片機中寫入程序,必須將單片機從系統(tǒng)中拿下,放到指定的系統(tǒng)中,然后與計算機進行連接,通過下載程序進行寫入,而現(xiàn)在的工業(yè)生產(chǎn)開始向多樣化發(fā)展,甚至在一些工業(yè)生產(chǎn)中,需要不斷的對程序進行修改,如果每次修改都需要對單片機進行拆卸和安裝,不但會影響生產(chǎn)的效率,單片機的接口也會受到一定的損壞,而ISP在線編程就不需要以上的步驟,單片機在電路板上時,依然可以對程序進行修改和重新下載等操作。
二、單片機系統(tǒng)設(shè)計的方法和步驟
隨著單片機應(yīng)用的范圍越來越廣,相應(yīng)的系統(tǒng)設(shè)計也越來越多樣化,因此在進行單片機系統(tǒng)開始時,第一個要明確的就是設(shè)計的目的和可行性分析,首先應(yīng)該了解單片機要控制的對象,對控制系統(tǒng)的要求進行深入的分析,對系統(tǒng)的整體有一個充分的了解,只有在明確了以上的信息后,才能進行總體方案的設(shè)計,在總體方案的設(shè)計中,應(yīng)該根據(jù)分析的結(jié)果,對單片機系統(tǒng)的構(gòu)成方式進行確定,進而確定系統(tǒng)的信號檢測方式等,以上兩個步驟屬于理論上的設(shè)計,在理論設(shè)計完成后,就要從硬件和軟件兩個方面來進行實際的設(shè)計,一般情況下,都是按照先硬件后軟件的順序進行,在硬件設(shè)計中,首先要做的就是原理圖的設(shè)計,目前市場上有很多原理圖設(shè)計的軟件,例如英國Labcenterelectronics公司研發(fā)的Proteus等,然后在原理圖的基礎(chǔ)上進行元件的選擇,這些都可以在Proteus軟件內(nèi)完成,用元件連接出一個原理圖之后,可以選擇直接制作電路板,然后再進行軟件的設(shè)計,但是在實際的生產(chǎn)過程中,這樣的過程經(jīng)常會發(fā)現(xiàn)印制出的電路板存在問題,軟件的設(shè)計無法正常進行,從而需要重新制作電路板,針對這種情況,Proteus等軟件都集成了仿真的功能,因此可以在連接完原理圖之后,就進行軟件的編寫,如果采用51系列單片機,程序的編寫可以采用美國KeilSoftware公司開發(fā)的Keil系列軟件,軟件調(diào)試成功后,就可以利用軟件的仿真功能,對設(shè)計的單片機系統(tǒng)進行功能的調(diào)試,如果沒有發(fā)現(xiàn)任何問題,再進行電路板的印制,那么將會極大的減少錯誤的出現(xiàn)率。
三、單片機系統(tǒng)設(shè)計的誤區(qū)及對策
在單片機系統(tǒng)的設(shè)計中,CPU死機是一個重要的問題,在出現(xiàn)了死機的情況后,系統(tǒng)整體后無法響應(yīng),嚴(yán)重時甚至?xí)龤б恍┰骷挥型ㄟ^復(fù)位按鍵后,才能使系統(tǒng)恢復(fù)正常,針對這種情況,很多單片機系統(tǒng)設(shè)計時,都會添加一個定時器DogTimer,也就是人們俗稱的看門狗,這個DogTimer定時器是按照一定的速率來計時的,當(dāng)時間達到計時器設(shè)定的標(biāo)準(zhǔn)后,就會執(zhí)行復(fù)位的命令,單片機系統(tǒng)在實際的工作過程中,CPU會定時的向這個定時器發(fā)出清零的命令,使DogTimer定時器不能滿足復(fù)位的要求,而造成CPU死機的主要原因就是執(zhí)行命令的過程中,CPU進入了一個死循環(huán),從而不能正常的執(zhí)行程序,如果添加了這個DogTimer定時器,CPU在進入到死循環(huán)后,就不會對定時器發(fā)出清零的命令,那么定時器就會達到設(shè)定的標(biāo)準(zhǔn),然后自動的執(zhí)行復(fù)位的命令,以這樣的方式來解決死機的問題,由于這種方式非常簡單,很多單片機自身就集成了這個功能,最大程度的降低CPU死機的次數(shù),很多單片機系統(tǒng)設(shè)計人員也認(rèn)為,有了這個定時器后,CPU就不會出現(xiàn)死機的問題,通過實際的調(diào)查發(fā)現(xiàn),即使有了這個定時器的存在,也會因為很多原因?qū)е翪PU死機,因此可以說這是單片機系統(tǒng)設(shè)計的一個誤區(qū),例如當(dāng)CPU進入一個死循環(huán)之后,會不斷的執(zhí)行死循環(huán)中的命令,如果這個死循環(huán)的命令剛好和定時器清零的命令一樣,那么導(dǎo)致的現(xiàn)象就是CPU不斷的向定時器發(fā)出清零的命令,這是CPU雖然已經(jīng)處于死機的狀態(tài),但是定時器卻已經(jīng)失效了。
針對這種現(xiàn)象,可以對定時器進行必要的完善,例如可以做雙保險,即設(shè)計兩個定時器,一個定時器和傳統(tǒng)的定時器一樣,執(zhí)行對CPU看護的功能,而第二個定時器就是防止前面所說定時器失效問題,第二個定時器可以設(shè)置為執(zhí)行一個主循環(huán)清零一次,對于清零的命令兩個定時器是獨立的,這樣即使CPU進入到了一個死循環(huán),死循環(huán)中又包涵了一個定時器的清零命令,那么另一個計時器也會檢測出來,從而對CPU執(zhí)行復(fù)位,這種雙保險的設(shè)計就有效的解決了定時器失效的問題,使單片機系統(tǒng)設(shè)計中CPU死機的幾率將到最低,通過實際的調(diào)查發(fā)現(xiàn),目前很多設(shè)計人員在進行系統(tǒng)設(shè)計時,考慮到單片機已經(jīng)集成了一個防止死機的定時器,在設(shè)計中就不再進行防死機定時器的設(shè)計,這樣完全依賴CPU集成定時器的做法,是不科學(xué)的,從實際應(yīng)用的效果來看,CPU集成的定時器對防止死機能起到一定的效果,但是這種效果沒有最大化,隨著工業(yè)生產(chǎn)水平的提高,很多生產(chǎn)線對單片機系統(tǒng)的要求是百分之百不死機,這樣僅僅依靠單片機集成的定時器顯然無法完成,因此在進行單片機系統(tǒng)設(shè)計時,無論有沒有集成的防死機定時器,都應(yīng)該針對性的設(shè)計一個科學(xué)合理的定時器,最大程度的保證CPU不會出現(xiàn)死機的現(xiàn)象。
在單片機系統(tǒng)設(shè)計中,還有一個很大的誤區(qū)就是PCB布線中,由于單片機系統(tǒng)設(shè)計已經(jīng)存在了幾十年,經(jīng)過多年的積累,有很多寶貴的經(jīng)驗值得我們借鑒,但是由于電子行業(yè)的特殊性,摩爾定律揭示了每個十八個月,電子行業(yè)的技術(shù)就會翻倍,正是這種更新的頻繁化,導(dǎo)致了一些過實的經(jīng)驗還被人們使用,例如在PCB布線中,設(shè)計人員根據(jù)以往的經(jīng)驗,都喜歡橫平豎直的去布線,而且認(rèn)為粗線比細(xì)線好,在傳統(tǒng)的單片機系統(tǒng)中,這樣的布線的確能夠帶來很多方便,但是隨著PCB電路板的進步,層數(shù)越來越多,線路之間的電磁干擾已經(jīng)成為了一個嚴(yán)重的問題,在這種背景下,傳統(tǒng)的PCB布線方式無疑就是錯誤的,是目前單片機系統(tǒng)設(shè)計中存在的一個誤區(qū),為了使電路具有良好的抗電磁干擾能力,在PCB布線時首先應(yīng)該做好地線層,在布線的過程中盡量保持線路之間的距離,現(xiàn)在看來這樣的布線方式才科學(xué)、合理。
四、總結(jié)
總之,在進行單片機系統(tǒng)開發(fā)的過程中,要注重對誤區(qū)的認(rèn)識,從而提高其開發(fā)的效率和質(zhì)量。在實際的工業(yè)生產(chǎn)中,也需要通過不斷的改進和測試,保證其結(jié)果的準(zhǔn)確性。通過全文的分析可以知道,在電子設(shè)備已經(jīng)普及應(yīng)用的今天,單片機作為一種控制系統(tǒng),越來越受到人們的重視,而根據(jù)單片機應(yīng)用的領(lǐng)域不同,系統(tǒng)設(shè)計也會有較大的差異,要想讓單片機更好的在不同領(lǐng)域中使用,就要做出一個科學(xué)合理的設(shè)計,但是通過實際的調(diào)查發(fā)現(xiàn),目前的單片機系統(tǒng)設(shè)計中,雖然設(shè)計的方法和步驟已經(jīng)有了一定的標(biāo)準(zhǔn),但是在設(shè)計的過程中還是存在一些誤區(qū),這些誤區(qū)很容易使設(shè)計出來的系統(tǒng)無法正常的工作,相信隨著時間的推移,人們對單片機系統(tǒng)設(shè)計研究的深入,這些誤區(qū)都會得到很好的解決。
作者:劉穎 單位:長春職業(yè)技術(shù)學(xué)院食品與生物技術(shù)分院