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