問(wèn)題3:為什么是STM32呢?為什么不是ARM9,ARM11呢?
答:這里有個(gè)誤區(qū),很多同學(xué)如果就僅僅希望入門嵌入式,那就盡量不要選擇ARM9和ARM11,為什么呢?因?yàn)檎T惑太多了,因?yàn)槟阋坏┻x擇ARM9或 ARM11,那么這個(gè)平臺(tái)就僅僅linux和wince等操作系統(tǒng)內(nèi)核,驅(qū)動(dòng),應(yīng)用,各種協(xié)議,硬件原理圖,等都有夠?qū)W一年半載了,沒(méi)這點(diǎn)時(shí)間,你無(wú)法完全掌握,所以并不適合入門,周期太長(zhǎng),難度相對(duì)來(lái)說(shuō)較大。
入門最好選擇主頻低一點(diǎn)的處理器,一切都是先掌握好原理,弄明白,弄透徹了,一切就都好辦!所以單片機(jī)中,STM32是目前最最主流的芯片,加上目前 STM32的資料非常的多,所以,最好還是推薦STM32的開發(fā)板做為入門級(jí)的板子,學(xué)會(huì)之后,即可自己獨(dú)立開發(fā)出各種產(chǎn)品,STM32官方提供的開源代碼庫(kù)也是非常好用,將底層的各種匯編,管腳定義都封裝成了各個(gè)功能函數(shù),開發(fā)起來(lái)非常方便,快捷!
20年的嵌入式經(jīng)驗(yàn)分享學(xué)習(xí)——來(lái)自STM32神舟系列開發(fā)板設(shè)計(jì)師的總結(jié)
首先,如果你有幸看到這篇文章,千萬(wàn)不要試圖在2個(gè)小時(shí)內(nèi)閱讀完,就算你2個(gè)小時(shí)閱讀完,我相信你也不會(huì)理解里面講解的精華之處,我相信,你應(yīng)該將此文章,慢慢品嘗,這絕對(duì)是一篇需要品嘗2~3天,再結(jié)合自己過(guò)往的經(jīng)驗(yàn),加上自己的思考,我相信會(huì)對(duì)你不僅僅是技術(shù)能力,甚至包括整體的思維方式都會(huì)有一個(gè)非常大的提高。
結(jié)合這篇文章,再結(jié)合STM32神舟系列開發(fā)板一些學(xué)習(xí),可能會(huì)更加加深對(duì)嵌入式概念的理解。
我寫這篇文章的目的,是用本人20年的嵌入式經(jīng)驗(yàn)呈現(xiàn)給大家一副完整的產(chǎn)品,項(xiàng)目開發(fā)藍(lán)圖,用本人多年經(jīng)的歷總結(jié)了一些教訓(xùn)無(wú)私的分享給各位,希望各位今后能站在本人的肩膀之上,少走彎路,多為公司,為個(gè)人多做貢獻(xiàn),那我的愿望就達(dá)到了,也同時(shí)希望能看到大家反饋和回復(fù),留個(gè)腳印,留下你的見(jiàn)解和智慧,為后人乘涼打點(diǎn)基礎(chǔ),先在這謝謝各位了。
那么由此開始我們充滿知識(shí)的旅程吧,最重要的一點(diǎn),就是在一個(gè)產(chǎn)品或項(xiàng)目的開發(fā)過(guò)程中,如果沒(méi)有明確的目標(biāo),那么成功將無(wú)從談起,做任何事的第一步必須明確目標(biāo)。
與日常生活中的大多數(shù)事務(wù)一樣,設(shè)計(jì)一個(gè)嵌入式產(chǎn)品的過(guò)程也必須從確定目標(biāo)開始,對(duì)生產(chǎn)的產(chǎn)品進(jìn)行明確定義。對(duì)產(chǎn)品進(jìn)行定義主要是對(duì)產(chǎn)品是什么和能有什么功能進(jìn)行描述,其次是在我們的整個(gè)開發(fā)過(guò)程中,應(yīng)該要撰寫一些開發(fā)文檔,大概的框架的如下:
1)產(chǎn)品需求文檔:描述產(chǎn)品的特性
2)功能需求文檔:描述產(chǎn)品必須具備的功能
3)工程說(shuō)明文檔:描述系統(tǒng)實(shí)現(xiàn)的方法和滿足需求的手段
4)硬件說(shuō)明文檔:對(duì)有關(guān)硬件進(jìn)行描述
5)軟件或固件說(shuō)明文檔:描述特定處理器下設(shè)計(jì)微程序以及固件的方法
6)測(cè)試說(shuō)明文檔:描述必須測(cè)試的項(xiàng)目和驗(yàn)證系統(tǒng)正常運(yùn)行的方法
1.需求定義
需求定義用來(lái)描述產(chǎn)品的基本功能,對(duì)于公司來(lái)說(shuō),需求一般由該公司的市場(chǎng)銷售部門或該公司的主要客戶來(lái)制定;而對(duì)小公司或愛(ài)好者,技術(shù)人員可以自己負(fù)責(zé)定義需求,并撰寫成文檔;對(duì)于STM32神舟系列開發(fā)板來(lái)說(shuō),主要就是提供各種接口,為大家開發(fā)產(chǎn)品時(shí)提供借鑒!
通常需求定義是圍繞以下幾個(gè)因素而來(lái):
1)系統(tǒng)的用途(定義需要系統(tǒng)實(shí)現(xiàn)的各種功能)
2)實(shí)際輸入輸出是何種方式實(shí)現(xiàn)的(為元器件的選型做參考)
3)系統(tǒng)是否需要操作界面(涉及軟件層操作系統(tǒng)的選型)
其實(shí)對(duì)小型的嵌入式產(chǎn)品來(lái)說(shuō),定義需求是非常關(guān)鍵的,因?yàn)樾枨笄宄?,就可以避免后續(xù)開發(fā)過(guò)程中出現(xiàn)的諸如隨機(jī)存儲(chǔ)器(RAM)容量不足或所選的CPU速度不能滿足處理的需要等一系列問(wèn)題。
----------------------------------------------------------------------------------------------------------
下面舉個(gè)簡(jiǎn)單的實(shí)際例子,供大家來(lái)參考:
系統(tǒng)描述:用于從化溫泉的水泵換水系統(tǒng)(用STM32神舟III號(hào)開發(fā)板模擬實(shí)現(xiàn))
電源輸入:使用來(lái)自于變壓器的9V~12V直流電
水泵功率:375W
1)使用單相交流電機(jī),由機(jī)械電氣進(jìn)行控制
2)如果溫泉池處于低水位,則輸入開關(guān)閉合信號(hào),以禁止水泵繼續(xù)運(yùn)行
3)用戶可以自由設(shè)置水泵運(yùn)行或關(guān)閉的時(shí)間長(zhǎng)度
4)除了自動(dòng)設(shè)置控制外,還需要提供一種人工裝置來(lái)允許維護(hù)人員靈活控制水泵進(jìn)行維修
5)水泵開啟/關(guān)閉/人工干預(yù)的時(shí)間可以30分鐘為單位,在30分鐘到23小時(shí)的范圍內(nèi)進(jìn)行調(diào)節(jié)
6)顯示設(shè)備可以指示水泵的開關(guān)狀態(tài),剩余時(shí)間,以及水泵是否處于人工干預(yù)模式
7)具備監(jiān)視低水位的功能,并顯示在屏幕上
如果需要商用,那么除了上面給出的功能要求外,其設(shè)計(jì)文檔中還要包括電磁干擾(EMI)和電磁兼容性(EMC)認(rèn)證、安全認(rèn)證以及使用環(huán)境(包括環(huán)境溫度、濕度、鹽霧腐蝕等)等方面的需求。
實(shí)際上,以上的需求確定之后,接下來(lái)就是要考慮選擇一款合適的CPU來(lái)滿足和實(shí)現(xiàn)系統(tǒng)的功能,那么我們就要將上述7點(diǎn)用戶能夠理解的需求轉(zhuǎn)化成我們專業(yè)領(lǐng)域的需求,轉(zhuǎn)化如下,大家可以參考一下:
a.處理或更新輸入輸出信號(hào)的速率究竟需要多快?
解釋:目前嵌入式處理器的主頻一般都在幾十兆到幾百兆不等,單片機(jī)的主頻一般是幾十兆,STM32神舟系列開發(fā)板的CPU都是72MHZ,有的 ARM9,ARM11處理器可以到幾百兆;我們主要看這個(gè)產(chǎn)品是否需要對(duì)大量數(shù)據(jù)進(jìn)行處理,或是否需要對(duì)緩沖區(qū)進(jìn)行頻繁操作,是否有類似的占用CPU資料的工作要做,這就決定我們要選擇一款合適的處理器來(lái)讓該產(chǎn)品得到最佳的性能。
b.是否可使用單片集成電路(專用IC)或FPGA來(lái)完成數(shù)據(jù)處理?
解釋:如果可以的話,就不一定要選擇處理器來(lái)做,用這些專業(yè)芯片就能替代
c.系統(tǒng)是否有大量的用戶輸入輸出操作(如對(duì)開關(guān)和顯示設(shè)備進(jìn)行頻繁操作)?
解釋:如果有的話,要在處理器選型的時(shí)候考慮這些因素,選擇一款能夠滿足以上要求的CPU.
d.系統(tǒng)與其他外部設(shè)備之間需要使用何種接口?
解釋:這也是需要評(píng)估處理器的一個(gè)關(guān)鍵問(wèn)題,選擇具備這些接口功能的處理器會(huì)方便于我們的電路設(shè)計(jì)以及軟件編程
e.設(shè)計(jì)完成后是否有可能需要進(jìn)行改動(dòng),或在設(shè)計(jì)過(guò)程中系統(tǒng)需求是否可能出現(xiàn)變化?我們的設(shè)計(jì)是否能適應(yīng)系統(tǒng)需求的變化?
解釋:要避免選擇的處理器剛好滿足當(dāng)前要求,這樣當(dāng)以后事務(wù)要求逐漸提高,處理器性能如果還有一定空間的話,那么就可以重用目前的產(chǎn)品;第二個(gè)就是要選擇不會(huì)即將停產(chǎn)的芯片,很多處理器用得很廣乏,可以借鑒的資料也很多,但是很可能這款芯片已經(jīng)在市場(chǎng)上流行很長(zhǎng)時(shí)間了,芯片廠商已經(jīng)推出更新?lián)Q代的替代品了,如果你選擇了這款芯片,很可能1,2年后就買不到這款處理器芯片了,導(dǎo)致不得不重新選擇新的處理器,重新設(shè)計(jì)產(chǎn)品,這樣的既耗費(fèi)時(shí)間,金錢,更消耗人力,延誤市場(chǎng)的戰(zhàn)機(jī)。
評(píng)論
查看更多