摘 要:單片機應用系統(tǒng)開發(fā)過程像一般的計算機系統(tǒng)一樣,單片機的應用系統(tǒng)也是由硬件和軟件組成。硬件和軟件只有緊密配合,協(xié)調一致,才能組成高性能的單片機應用系統(tǒng)。本文簡要介紹了單片機應用系統(tǒng)的硬件與軟件的設計流程和方法。
關鍵詞:單片機 硬件設計 軟件設計
中圖分類號:TB1 文獻標識碼:A 文章編號:1672-3791(2012)12(a)-0019-01
1 總體設計
在進行系統(tǒng)設計之前,首先應根據(jù)對系統(tǒng)的功能要求及其應用環(huán)境等確定合理、具體的功能和技術指標,對應用系統(tǒng)的可靠性、通用性、先進性、可維護性以及成本等進行綜合考慮,以盡量合理并符合單片機性能及開發(fā)工具等因素選擇合適的單片機機型。接下來要根據(jù)系統(tǒng)中可能涉及的傳感器、模擬電路、I/O接口、存儲器、打印機和顯示器等器件和設備進行器件選擇,使之符合系統(tǒng)在精度、速度和可靠性等方面的要求。最后確定硬件和軟件的功能劃分,由于在系統(tǒng)設計中某些功能用硬件和軟件都能實現(xiàn),在設計中應綜合考慮研制周期和成本等因素具體劃分軟、硬件功能。
2 系統(tǒng)硬件設計
硬件系統(tǒng)設計的任務是根據(jù)總體設計要求,在所選擇的單片機型的基礎上,確定系統(tǒng)擴展所要用的存儲器、I/O電路、A/D及D/A電路和有關的外圍電路等,然后設計出系統(tǒng)的電路原理圖。
單片機內部沒有程序存儲器或存儲器容量不夠時需擴展外部程序存儲器。可作為程序存儲器的芯片有多種非易失存儲器,從它們的價格和性能特點上考慮選擇。由于目前單片機片內存儲器的容量越來越大,如設計的應用系統(tǒng)所需的存儲器空間比較小,則可能就沒有必要擴充程序存儲器。對于數(shù)據(jù)存儲器的容量要求,各個系統(tǒng)之間差別比較大。有的測量儀器和儀表只需少量的RAM即可,此時應盡量選用容量能符合要求的單片機。對于要求較大容量RAM的系統(tǒng),對RAM芯片的選擇原則是盡可能減少芯片的數(shù)量。由于外設多種多樣,這使得單片機與外設之問的接口電路也各不相同。因此,I/O接口電路常常是單片機應用系統(tǒng)中設計最復雜也是最困難的部分之一。在設計I/O接口電路時應從體積、價格、功能、負載等幾方面考慮。此外還要考慮和系統(tǒng)中的傳感器、放大器相匹配等問題。所有的需要擴展外部存儲器和輸入/輸出接口設計的單片機系統(tǒng)都需要設計譯碼電路,譯碼電路在設計時要盡可能簡單,這就要求存儲器空間分配合理、譯碼方式選擇得當。
如果單片機外部擴展的器件較多,負載過重,就要考慮設計總線驅動器。系統(tǒng)擴展和配置設計遵循的原則如下:(1)盡可能選擇典型通用的電路,并符合單片機的常規(guī)用法。(2)系統(tǒng)的擴展與外圍設備配置的水平應充分滿足應用系統(tǒng)當前的功能要求,并留有適當余地,便于以后進行功能擴充。(3)整個系統(tǒng)中相關的器件要性能匹配。(4)應注意在硬件系統(tǒng)設計時,要盡可能充分地利用單片機的片內資源,使自己設計的電路向標準化、模塊化靠攏。硬件設計結束后,應編寫出硬件電路原理圖及硬件設計說明書。
3 系統(tǒng)軟件設計
單片機應用系統(tǒng)是一個整體。軟件設計和硬件設計應統(tǒng)一,系統(tǒng)的硬件電路設計定型后,軟件的功能也就基本明確了。一個應用系統(tǒng)中的軟件一般是由系統(tǒng)監(jiān)控程序和應用程序兩部分組成的。
合理的軟件結構是設計出一個性能優(yōu)良的單片機應用系統(tǒng)軟件的基礎,必須予以充分重視。在程序設計方法上,模塊程序設計是單片機應用中最常用的程序設計技術。這種方法是把一個完整的程序分解為若干個功能相對獨立的較小的程序模塊,對各個程序模塊分別進行設計、編制和調試,最后將各個調試好的程序模塊連成一個完整的程序。這種方法的優(yōu)點是單個程序模塊的設計和調試比較方便、容易完成,一個模塊可以為多個程序所共享。缺點是各個模塊的連接有時有一定難度。還有一種方法是自上而下設計程序。此方法是先從主程序開始設計,主程序編好后,再編制各從屬的程序和子程序。這種方法比較符合人們的日常思維。其缺點是上一級的程序錯誤將對整個程序產(chǎn)生影響。
在軟件結構設計確定之后就可以進入程序設計了,一般設計過程首先根據(jù)問題的定義,描述出各輸入變量和輸出變量之間的數(shù)學關系,即建立數(shù)學模型。然后根據(jù)系統(tǒng)功能及操作過程,先列出程序的簡單功能流程框圖(粗框圖),再對粗框圖進行擴充和具體化,即對存儲器、寄存器、標志位等工作單元作具體的分配和說明。把功能流程圖中每一個粗框轉變?yōu)榫唧w的存儲單元、寄存器和I/O口的操作,從而繪制出詳細的程序流程圖(細框圖)。在完成流程圖設計以后,便可編寫程序。
編寫一個好的程序,正確性是主要的。但是,應當在保證完成規(guī)定功能的情況下,使整個程序所占內存空間少、執(zhí)行指令時間短。這就要根據(jù)指令的功能、長度和執(zhí)行時間,精心選擇指令和排列指令。一般來說,編寫程序的過程可分為下述幾個步驟: 分析課題,根據(jù)要求確定算法或解題思路;根據(jù)算法或解題思路定出運算步驟和順序,把運算步驟畫成框圖;確定數(shù)據(jù)和工作單元,分配存放單元;按所使用的計算機指令系統(tǒng),把確定的運算步驟寫成匯編語言程序;上機調試源程序,從而確定源程序。在進行程序設計時,必須根據(jù)實際問題和所使用的計算機的特點來確定算法,然后按盡可能節(jié)省數(shù)據(jù)存放單元、縮短程序長度和程序運行時間3個原則編寫程序。按程序的基本結構一般可分為直接程序、分支程序、循環(huán)程序和子程序。一個復雜的程序,一般由上述基本程序組成。單片機應用程序可以采用匯編語言,也可以采用某些機器語言,例如可通過KielC51軟件來編寫C語言等。編寫完均須匯編成80C51的機器碼,經(jīng)調試正常運行后,再固化到非易失性存儲器中去,完成系統(tǒng)的設計。
4 系統(tǒng)調試
當完成了單片機應用系統(tǒng)的硬件、軟件設計和硬件組裝后,便可進入單片機應用系統(tǒng)調試階段。系統(tǒng)調試的目的是要查出用戶系統(tǒng)中硬件設計與軟件設計中存在的錯誤及可能出現(xiàn)的不協(xié)調問題,以便修改設計,最終使用戶系統(tǒng)能正確、可靠地工作。通常是先排除明顯的硬件故障后和軟件結合起來進行調試。常見的硬件故障有邏輯錯誤、元器件失效、可靠性差和電源故障等。在進行硬件調試時先進行靜態(tài)調試,用萬用表等工具在樣機加電前根據(jù)原理圖和裝配圖仔細檢查線路,核對元器件的型號、規(guī)格和安裝是否正確。然后加電檢查各點電位是否正常。接下來再借助仿真開發(fā)儀器進行聯(lián)機調試,分別測試擴展的RAM、I/O口、I/O設備、程序存儲器以及晶振和復位電路,改正其中的錯誤。軟件調試就是檢查系統(tǒng)軟件中的錯誤。通常是把各個程序模塊分別進行調試,調試通過后再組合到一起進行綜合調試,達到預定的功能技術指標后即可將軟件固化。
參考文獻
[1] 孫霞,周金陵.基于單片機的大容量數(shù)據(jù)存儲技術的應用研究[J].微計算機信息,2006(14).
[2] 胡漢才.單片機原理及其接口技術[M].清華大學出版社,2004.