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