我們學(xué)習(xí)單片機(jī)的目的,就是為了進(jìn)行嵌入式產(chǎn)品的開發(fā)。要想學(xué)好單片機(jī),首先就得對(duì)流程有一個(gè)整體了解。
本文,先簡(jiǎn)要介紹一下單片機(jī)應(yīng)用系統(tǒng)的開發(fā)流程。
單片機(jī)系統(tǒng)開發(fā)流程
上圖是單片機(jī)系統(tǒng)開發(fā)流程框圖。
1、明確任務(wù)
分析和了解項(xiàng)目的總體要求,并綜合考慮系統(tǒng)使用環(huán)境、可靠性要求、可維護(hù)性及產(chǎn)品的成本等因素,制定出可行的性能指標(biāo)。
2、劃分軟、硬件功能
單片機(jī)系統(tǒng)由軟件和硬件兩部分組成。在應(yīng)用系統(tǒng)中,有些功能既可由硬件來實(shí)現(xiàn),也可以用軟件來完成。硬件的使用可以提高系統(tǒng)的實(shí)時(shí)性和可靠性;使用軟件實(shí)現(xiàn),可以降低系統(tǒng)成本,簡(jiǎn)化硬件結(jié)構(gòu)。因此在總體考慮時(shí),必須綜合分析以上因素,合理地制定硬件和軟件任務(wù)的比例。
3、確定希望使用的單片機(jī)及其他關(guān)鍵部件
根據(jù)硬件設(shè)計(jì)任務(wù),選擇能夠滿足系統(tǒng)需求并且性價(jià)比高的單片機(jī)及其他關(guān)鍵器件,如A/D、D/A轉(zhuǎn)換器、傳感器、放大器等,這些器件需要滿足系統(tǒng)精度、速度以及可靠性等方面的要求。
4、硬件設(shè)計(jì)
根據(jù)總體設(shè)計(jì)要求,以及選定的單片機(jī)及關(guān)鍵器件,利用Protel等軟件設(shè)計(jì)出應(yīng)用系統(tǒng)的電路原理圖。
5、軟件設(shè)計(jì)
在系統(tǒng)整體設(shè)計(jì)和硬件設(shè)計(jì)的基礎(chǔ)上,確定軟件系統(tǒng)的程序結(jié)構(gòu)并劃分功能模塊,然后進(jìn)行各模塊程序設(shè)計(jì)。
單片機(jī)程序設(shè)計(jì)語言可分為三類:
機(jī)器語言 :又稱為二進(jìn)制目標(biāo)代碼,是CPU硬件唯一能夠直接識(shí)別的語言(在設(shè)計(jì)CPU時(shí)就已經(jīng)確定其代碼的含義)。人們要計(jì)算機(jī)所執(zhí)行的所有操作,最終都必須轉(zhuǎn)換成為相應(yīng)的機(jī)器語言由CPU識(shí)別、控制執(zhí)行。CPU系列不同,其機(jī)器語言代碼的含義也不盡相同。
匯編語言 :由于機(jī)器語言必須轉(zhuǎn)換為二進(jìn)制代碼描述,不便于記憶、使用和直接編寫程序,為此產(chǎn)生了與機(jī)器語言相對(duì)應(yīng)的匯編語言。用匯編語言編寫的程序執(zhí)行速度快,占用存儲(chǔ)單元少,效率高。
高級(jí)語言 :高級(jí)語言具有很好的可讀性,使程序的編寫和操作都十分方便,目前廣泛使用的高級(jí)語言是C51。
機(jī)器語言 :又稱為二進(jìn)制目標(biāo)代碼,是CPU硬件唯一能夠直接識(shí)別的語言(在設(shè)計(jì)CPU時(shí)就已經(jīng)確定其代碼的含義)。人們要計(jì)算機(jī)所執(zhí)行的所有操作,最終都必須轉(zhuǎn)換成為相應(yīng)的機(jī)器語言由CPU識(shí)別、控制執(zhí)行。CPU系列不同,其機(jī)器語言代碼的含義也不盡相同。
匯編語言 :由于機(jī)器語言必須轉(zhuǎn)換為二進(jìn)制代碼描述,不便于記憶、使用和直接編寫程序,為此產(chǎn)生了與機(jī)器語言相對(duì)應(yīng)的匯編語言。用匯編語言編寫的程序執(zhí)行速度快,占用存儲(chǔ)單元少,效率高。
高級(jí)語言 :高級(jí)語言具有很好的可讀性,使程序的編寫和操作都十分方便,目前廣泛使用的高級(jí)語言是C51。
匯編語言和高級(jí)語言都必須被翻譯成機(jī)器語言之后才能被CPU識(shí)別。
6、仿真調(diào)試
軟件和硬件設(shè)計(jì)結(jié)束后,需要進(jìn)行進(jìn)行進(jìn)入兩者的整合調(diào)試階段。為避免浪費(fèi)資源,在生成實(shí)際電路板之前,可以利用Keil C51和Proteus軟件進(jìn)行系統(tǒng)仿真,出現(xiàn)問題可以及時(shí)修改。
7、系統(tǒng)調(diào)試
完成系統(tǒng)仿真后,利用Protel等繪圖軟件,根據(jù)電路原理圖繪制PCB(Printed Circuit Board)印刷電路板圖,然后將PCB圖交給相關(guān)廠商生產(chǎn)電路板。拿到電路板后,為便于更換器件和修改電路,可首先在電路板上焊接所需芯片插座,并利用編程器將程序?qū)懭雴纹瑱C(jī)。
接下來,將單片機(jī)及其他芯片插到相應(yīng)的芯片插座中,接通電源及其他輸入、輸出設(shè)備,進(jìn)行系統(tǒng)聯(lián)調(diào),直至調(diào)試成功。
8、測(cè)試修改、用戶試用
經(jīng)測(cè)試檢驗(yàn)符合要求后,將系統(tǒng)交給用戶試用,對(duì)于出現(xiàn)的實(shí)際問題進(jìn)行修改完善,系統(tǒng)開發(fā)完成。
單片機(jī)學(xué)習(xí)方法探討
單片機(jī)學(xué)習(xí)的過程應(yīng)該是一個(gè)循序漸進(jìn)、不斷學(xué)習(xí)、不斷積累的過程,大致分為三個(gè)階段。
第一階段:掌握開發(fā)單片機(jī)的必備基礎(chǔ)知識(shí)
首先是熟練掌握單片機(jī)的基本原理,雖然現(xiàn)在單片機(jī)廠商眾多,但各家單片機(jī)的基本結(jié)構(gòu)和原理都比較相近,例如內(nèi)核結(jié)構(gòu)、內(nèi)存分配、中斷處理、定時(shí)計(jì)數(shù)、串行通信、端口復(fù)用等一些最基本的概念和原理。
除此之外,我們還需要學(xué)習(xí)模擬電子、數(shù)字電子、C語言程序開發(fā)以及原理圖和PCB(Printed Circuit Board,印刷電路板)設(shè)計(jì)等知識(shí)。只有扎實(shí)的掌握了這些知識(shí),在進(jìn)行系統(tǒng)開發(fā)的時(shí)候,才能順利地進(jìn)行原理設(shè)計(jì)、PCB布板、程序編寫、系統(tǒng)聯(lián)調(diào)等工作。相關(guān)文章:如何成為高級(jí)嵌入式硬件工程師?
第二階段:研究其他單片機(jī)功能、特點(diǎn)
在掌握好一款單片機(jī)原理和應(yīng)用的基礎(chǔ)上,開始學(xué)習(xí)其他各家單片機(jī),了解其獨(dú)有的功能和特點(diǎn)。
例如實(shí)際工作中若客戶要求低成本,那我們可以選用和泰、義隆、華邦等這類臺(tái)灣芯片;如果客戶要求工業(yè)級(jí)的性能,那么最好從PIC、NEC、飛思卡爾、NXP等這些歐美和日式單片機(jī)中選擇;若要進(jìn)行功耗的開發(fā),選用MSP430系列應(yīng)該有一定優(yōu)勢(shì);在進(jìn)行測(cè)量?jī)x器設(shè)計(jì)的時(shí)候,C8051和AduC842這類數(shù)?;旌闲酒诛@得比較實(shí)用。
另外,平時(shí)要注意技術(shù)積累。在項(xiàng)目開發(fā)過程中將一些常用的接口程序和控制算法整理成模塊或者函數(shù),日后若在其他的項(xiàng)目開發(fā)中有同樣或者接近的需求時(shí),原程序可以直接或者進(jìn)行少量改動(dòng)后使用,這樣一來會(huì)節(jié)約大量開發(fā)成本。
第三階段:工作項(xiàng)目中積累經(jīng)驗(yàn)
在實(shí)際的項(xiàng)目開發(fā)過程中,不斷深入研究單片機(jī)應(yīng)用技術(shù),不斷積累應(yīng)用行業(yè)的專業(yè)知識(shí)。
有了扎實(shí)的單片機(jī)應(yīng)用相關(guān)的基礎(chǔ)知識(shí),并且熟悉掌握了幾款不同類型單片機(jī)的開發(fā)方法后,對(duì)于各種實(shí)際的應(yīng)用項(xiàng)目,往往還需要理解和掌握外圍電路相關(guān)的原理和分析方法,并結(jié)合實(shí)際的應(yīng)用背景,綜合考慮各種因素,才能設(shè)計(jì)出性能最優(yōu)、結(jié)構(gòu)最合理的單片機(jī)應(yīng)用系統(tǒng)。
來源:STM32嵌入式開發(fā)
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請(qǐng)聯(lián)系小編進(jìn)行處理
審核編輯 黃宇
-
單片機(jī)
+關(guān)注
關(guān)注
6032文章
44525瀏覽量
633261
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論