在現(xiàn)在的單片機中,有8位單片機、16位單片機、32位單片機,數(shù)據(jù)總線寬度除了在執(zhí)行計算和更快的數(shù)據(jù)傳輸方面具有更高的性能優(yōu)勢外,總線寬度更大的MCU還具有哪些優(yōu)勢?
數(shù)據(jù)總線寬度更大的MCU在更快的操作,通常更強大的開發(fā)工具,更多的功能以及更好的電源效率方面享有更高的性能。通常,較低的總線寬度會限制性能。在本文中,請考慮下面的所有討論,以包括8位和32位之間的16位。但是,16位將在性能優(yōu)勢、編程、調試、成本、人工等方面,逐漸向32位傾斜。
隨著總線寬度的減小,周期數(shù)會增加:較低的位寬度需要更多的周期才能完成更大的計算。與具有16位數(shù)據(jù)總線寬度的MCU相比,8位MCU完成大型計算所花費的周期更多。使用32位MCU可以進一步減少計算周期。除了加快計算速度和提高數(shù)據(jù)吞吐量外,32位MCU還可以在一個周期內處理操作,而8位MCU則需要許多周期才能完成。如果在傳輸過程中出現(xiàn)中斷或故障,則與需要在一個周期內完成同一任務的32位MCU相比,8位MCU更有可能無法完成任務(需要幾個周期)。如果計算速度和吞吐量很重要,則32位對于吞吐量更好。示例包括計算密集型應用程序,例如圖像處理。
成本:8位MCU仍然很普遍,在某些應用中,就芯片成本而言,這是最便宜的計算選擇。但是,32位MCU芯片可以和某些8位MCU芯片一樣便宜。當要節(jié)省百分之一的錢很重要時(例如在大批量產品中),將根據(jù)最便宜的芯片滿足的最低項目要求(無論位寬如何)做出決定。添加更多功能可能不是面向未來產品的考慮因素。關于技能,一旦工程師掌握了32位單片機的學習曲線,該值將擴展到更廣泛的應用范圍。8位MCU的范圍相對于32位MCU受到很大限制。使用32位MCU的人工成本可能也更低,因為更多的選擇,功能,工具,并且現(xiàn)有的大量代碼圍繞32位生態(tài)系統(tǒng)開發(fā)。尖端技術不再圍繞8位發(fā)展。
代碼大?。簩挾仍酱?,代碼越密。代碼大小減少30%是對32位代碼所提供的代碼優(yōu)于8位代碼所帶來的好處的粗略估計。當然,用32位編程在匯編代碼中要比8位編程更具挑戰(zhàn)性,但是現(xiàn)代開發(fā)工具使工程師能夠使用C/C++(一種通常可跨體系結構移植的語言)以及跨體系結構使用類似的工具鏈和IDE的方法。但是,對于需要花時間思考操作效率的工程師而言,可以使用匯編代碼對8位MCU進行更有效的編碼。
更多功能:更高的數(shù)據(jù)總線寬度架構可以利用更多功能。使用32位單片機時,功能的縮放比例可能會顯著增加,而隨著位寬的增加,外圍設備的集成速度會大大提高。使用DMA完全跳過CPU的32位單片機更容易獲得實時性能。
但是,與32位MCU相比,有更多的8位MCU供選擇。造成這種情況的部分原因是,與16位和32位體系結構相比,8位體系結構存在的時間更長。
選擇許多8位MCU的主要原因是,每個MCU的成本,對舊代碼的重用以及對8位架構的個人熟悉程度。8位MCU可以以最低的要求完成工作,但是使用8位MCU開發(fā)產品所需的技能卻有所不同,尤其是在最低編程級別(匯編代碼)下工作時。匯編代碼可以被比一個編譯器可以從高級編程產生在C/C++,例如更有效地寫入。如果時間很緊迫,那么與使用8位MCU相比,在開發(fā)工具上使用32位架構所需要的精力和技巧就更少。
有些人只是更喜歡使用8位MCU進行“bit-bang”的簡單功能,這種功能更加透明,因為其遵循操作的復雜性更低,尤其是對于較低級別的調試而言。那些喜歡8位MCU的人可能會喜歡這樣的事實,即他們對8位MCU擁有更多的控制權,這更加透明,因為它可以更輕松地跟蹤最低級別的事件。但是使用8位MCU可能還需要更多的時間來了解MCU操作和內存管理知識。就可以在32位中創(chuàng)建的動作的復雜性與32位的更抽象的編程層之間的權衡而言,這是一個權衡取舍的問題。
選擇8位、16位和32位單片機的決定取決于應用程序的要求,比如MCU開發(fā)的最終成本和開發(fā)周期等等。許多開發(fā)人員都是8位MCU的忠實擁護者,可以用它們做很多事情。如果是大批量產品,將傾向于使用成本最低的單片機。最后,選擇取決于性價比。作為個人發(fā)展的決定,熟悉兩者都是明智的。8位級別的MCU核心操作的可視性提供了一種教育經驗,而這些經驗通常被32位抽象層所隱藏。
以上就是英銳恩單片機開發(fā)工程師分享的英銳恩8腳單片機。英銳恩專注單片機應用方案設計與開發(fā),提供8位單片機、16位單片機、32位單片機、運放芯片和模擬開關。