今天半導體工藝幾何尺寸的不斷減小正在改變微控制器的經濟學。新的嵌入式設計開發工具成本快速增長,但微控制器上的數字邏輯線路成本正不斷下降。這使得提供具有更多外圍的微控制器更具經濟性,尤其是如果這些外圍屬于數字類電路、UART、CAN控制器和以太網MAC等。目前市場上帶有更復雜外圍的微控制器正不斷出現。如果我們將閃存和RAM也看作是外圍,那么今天許多微控制器的結構中90%以上的部分都是外圍。
這里以目前銷售的8051和許多衍生器件為例進行說明。10年前,8051幾乎要被棄用,但是現在有許多新產品還在采用8051內核,為提高性能,其外圍的數量和種類都有了顯著增加。許多熟悉8051的工程師都在關注這些新產品。他們認為自己了解8051內核,所以采用基于8051的器件比采用基于其它內核的器件會更簡單。但僅僅熟悉微控制器內核就足夠了嗎?
1 用C編譯器編寫控制器軟件
在回答這個問題之前,先了解一下新微控制器發展的過程。大多數微控制器制造商都有許多不同的變種產品,某個廠商甚至擁有500多個不同的變種。這些變種對于設計者為特定應用充分選擇外圍提供了條件。
圖1:CyanIDE集成開發環境。
一種更好的方式就是選擇已經具備很多項目所需的所有外圍和靈活輸入輸出排列的微控制器。因此,用戶可以選擇和配置每個項目要求的具體外圍組合,顯著降低了PCB重新設計所需的工作量。選擇這類微控制器可以使硬件修改更加容易。這可使用戶更加靈活地選取恰當的外圍組合來滿足設計要求。
此外,工程師通過降低不同零部件購買和庫存的數量,將獲得公司內的物料供應人員認同,因為在過去很長的一段時間內,我們看到制造商都以能提供各種各樣的微控制器為榮,實際上,這對于客戶和制造商本身來說都無異于一場物流供應方面的噩夢。事實上,供貨商應更好地利用不斷降低的硅成本制造更少變種、但功能更強大的微控制器。
大多數工程師會爭辯說軟件功能是他們不能放棄現有微控制器系列的原因之一,所以我們來談談軟件問題。
考慮一款新的微控制器時,需要解決2個主要軟件問題:
1. 編寫完全運行在內核中的算法,包括數學算法(如濾波算法)或主循環;
2. 外圍初始化和接口的軟件。
首先來談談在微控制器內核中運行的軟件。過去幾年里,C編譯器的使用不斷普遍,并且效率也有所提高。這意味著,C編譯器可節省的編程工作比所有應用程序中性能損失的程度更重要。仍有一些與時間精確性相關的軟件功能需要用匯編程序編寫,但是這些程序也可能打包在C編譯器編寫的主程序中。
除了編譯器的效率外,微控制器總體性能也有了明顯的提高。許多工程師都利用比以前性能強10倍的現代控制器并轉變成用C編譯器編寫軟件,而設計出的產品比前幾代產品運行起來要快得多。
采用C編譯器的另外一個驅動因素就是許多產品普遍都需要增加代碼數量。在匯編程序中編寫8K代碼可能相當于100張A4紙的軟件。編寫和維護這種數量的代碼需要耗費大量的工作量。一旦你開始著眼于需要32K或64K代碼的應用程序,那么使用編譯器自然而然就成了99%應用程序的唯一實際選擇。
如果我們決定下一個要開發項目使用C編譯器,那么就可以做出一個大膽得結論。包括C語言在內的高級語言可以使工程師避開微控制器內核的繁雜工作。如果我們編寫:
Counter=Counter+1; (or Counter++;),
我們可以意識到其實我們不必在乎它在應用程序中究竟如何執行。這就是編譯器的主要目的所在,所以也就不足為怪。只要變量Counter增加,我們并不需要知道是否使用累加器或寄存器架構獲得結果。
2 應對復雜外圍電路編程挑戰
現在來討論外圍電路編程的問題。在市場上許多新款微控制器中,外圍數量迅速增長。越來越多的芯片面積都被外圍電路占用,它們的復雜性和功率似乎也在不斷增加。今天市場上的一些8051微控制器擁有300~400頁的數據手冊。其中,你會發現只有25頁內容是介紹內核工作原理的,剩下的都是關于外圍的,從復位控制器、復雜的ADC到更復雜的通信控制器(如CAN、USB、以太網)。
這讓我們得出一個結論,涉及外圍的軟件比完全在內核中運行的軟件要花費更多得多的工作量。
進一步說就是,專門針對外圍的datasheet越多,對熟悉這種控制器內核來說就越無益。
圖2:賽恩的16位微控制器μCOG1m集成了密集的外圍電路
作為面對復雜外圍的工程師,為了避免淹沒在那些外圍實現所有預期用途的繁重任務時,你會怎樣做呢?有些微控制器制造商提供能夠生成源代碼的工具。在圖1中,你可以到這種工具的一個例子,賽恩科技公司提供的CyanIDE集成開發環境,顯示了只需點擊鼠標就可以輕松設定UART波特率的便捷方法。
有了這些工具,開發者無需閱讀長篇累牘的數據手冊就能算出每個寄存器中應該編程的數值。此外,CyanIDE還具有全面的上下文相關的幫助。這種工具可以大幅減少新款微控制器所涉及的工程量。
3 本文小結
本文開篇就對一項假設提出了質疑,即選擇帶有熟悉內核的微控制器一定會降低新項目設計工作涉及的學習任務量嗎?對所涉及的工作進行簡單分析后,可以清楚的發現這種假設是不正確的。如果使用C編譯器和即使帶有為數不多外圍的器件,那么對內核的熟悉程度比起幫助完成外圍電路編程的工具來說其重要性要小得多。
實際上,如果新制造商擁有性能良好且集成的工具幫助進行外圍的編程,那么選擇新制造商的微控制器可能不比選擇來自傳統系列和制造商但具有重要新型外圍的微控制器更容易。工具和可配置性的強有力結合比擁有內核方面的豐富經驗要重要得多。
責任編輯:gt
-
控制器
+關注
關注
112文章
16434瀏覽量
178978 -
寄存器
+關注
關注
31文章
5363瀏覽量
120915 -
編譯器
+關注
關注
1文章
1642瀏覽量
49229
發布評論請先 登錄
相關推薦
評論