現(xiàn)今的嵌入式工業(yè)及汽車系統(tǒng)中,有許多是基于8位或16位微控制器架構來設計的。隨著新的低功耗32位架構的面市,這些應用有可能獲得更高的性能、準確度和功效。此外,處理能力的提高也有助于實現(xiàn)新產品的差異性功能,包括先進的控制算法,GUI顯示器、語音控制,以及電容式觸摸感測等下一代接口。
例如,在許多工業(yè)應用中,馬達效率是影響功耗的主要因素之一。利用先進的控制算法可以提高馬達效率,但這些算法又需要更高性能的微控制器來實現(xiàn)。另一方面,通信速度也同樣會影響效率,因為通信速度越高,系統(tǒng)就能夠從傳感器收集到更多的信息,同時更快速地識別事件并采取相應的行動。
過去32位架構轉換一直受拖延的原因很多,比如微控制器的成本較高,不支持5V I/O等等。而現(xiàn)在,隨著愛特梅爾推出帶有全浮點單元(floating-point unit,FPU)的工業(yè)級微控制器——AVR® UC3C 32位微控制器,這些問題甚至其他一些設計問題都已迎刃而解。AVR UC3C整合了外設事件系統(tǒng)、高精度時鐘方案和高性能外設,可提高系統(tǒng)的性能、可靠性和功效。此外,安全Flash、硬件式安全機制、直接連接模擬傳感器的能力,以及可配置軟件框架等多項功能的集成,可大大加快應用的開發(fā)進程。最后,AVR UC3C專門針對工業(yè)及汽車應用的特殊要求進行了優(yōu)化,不僅能提供32位處理能力,而且其功耗僅相當于8位或16位微控制器的水平。
32位處理性能
32位與8/16位系統(tǒng)的效率差異相當大,在16位處理器上,一次普通的32位乘/累加操作需要4次乘法與4次加法運算。由于需要訪問存儲器以存儲中間結果或釋放多個寄存器,執(zhí)行效率會進一步降低,并可能減慢其他操作的速度。因此,在16處理器上,一次32位乘法可能需要20~40個周期。而32位UC3C處理器只需要單個周期即可。此外,32位管線較寬,故從存儲器檢索數(shù)據(jù)及指令的速度更快。
集成式FPU的推出也使應用開發(fā)得以進一步簡化。當一種算法過于周期密集或需采用定點格式來實現(xiàn)時,必須花費產品開發(fā)周期的很大一部分時間來尋找能夠簡化算法、加速計算的方法。這類簡化常常是以準確度為代價的。而利用FPU實現(xiàn)復雜算法所需要的工作量較小,動態(tài)范圍更寬,并可保持最高的精度。利用32位浮點指令來實現(xiàn)復雜算法,不僅可以提高系統(tǒng)的準確度和效率,還能夠大幅度加快開發(fā)進程。浮點技術對廣大范圍內的多種應用都很有用,包括機器人技術、運動控制、馬達控制和音頻應用。
愛特梅爾AVR® UC3C 32位微控制器指令集是結合了16位和32位指令的豐富指令集,可以利用C語言編譯器平衡性能與代碼密度。不過,UC3C微控制器的最大優(yōu)勢在于它的架構針對嵌入式系統(tǒng)中常見的實時事件管理進行了優(yōu)化。UC3C微控制器支持廣大范圍的各種高精度外設和接口,比如嵌入式系統(tǒng)需要的CAN和LIN,并支持整個工業(yè)溫度范圍的可靠運作。AVR UC3C架構設計是針對較小化處理延時以確保實時事件處理的,如圖1所示,系統(tǒng)可靠性和操作人員安全性的微控制器。
圖1表示的是愛特梅爾AVR UC3C 32位微控制器是一款高性能微控制器,設計具有較小處理延時以確保實時事件處理,從而確保系統(tǒng)可靠性和操作人員安全性。
圖1 愛特梅爾AVR UC3C 32位微控制器設計框圖[!--empirenews.page--]
增強的處理能力可通過多種不同的方式來提升應用的性能:
更高的準確度和精度:更大的處理能力讓微控制器能夠以更高的采樣率支持更精確的ADC和DAC。
模擬傳感器的直接使用:AVR UC3C具有基于DMA的ADC、先進的處理能力,以及可正確管理模擬傳感器的精確時序的集成技術,故相比傳統(tǒng)的微控制器架構,可以支持更多的模擬傳感器。
更先進的算法:實現(xiàn)更先進的算法,如三相馬達控制和死區(qū)插入技術(dead-band insertion techniques),可以提高系統(tǒng)效率,降低系統(tǒng)的功耗和成本。
差異性:更大的處理能力還能夠實現(xiàn)更先進的用戶接口圖形。例如,許多微控制器都需要4或5個芯片才能實現(xiàn)系統(tǒng)的電容式觸摸功能。而利用靈活、高性能的AVR UC3C,電容式就能夠采用軟件實現(xiàn)觸摸功能,并可通過任何I/O引腳工作,無需外部元件。
更大的通信帶寬:系統(tǒng)可以共享更多的數(shù)據(jù),控制多個節(jié)點,并捕捉分辨率更高的數(shù)據(jù)。目前的16位系統(tǒng)往往無法支持單個CAN或以太網(wǎng)堆棧。而利用帶DMA的32位架構,單個器件就可以作為多接口網(wǎng)關。
5V I/O標準
隨著制造工藝尺寸的縮小,微控制器供應商也順應形勢,致力于減小I/O電壓以降低功耗和提高穩(wěn)定性。雖然這種電壓減小對消費電子產品等眾多應用是很有利的,但由于工業(yè)市場中的系統(tǒng)要求更長的使用壽命,故不適合于采用3.3V I/O。因此,工業(yè)應用中的大多數(shù)元件仍然是基于5V I/O的。
一直以來,32位處理器只提供3.3V I/O,因為它們的晶體管數(shù)目較多,導致其制造工藝的幾何尺寸更小。為了支持市面上大量的基于5V的工業(yè)元件,這些處理器需要附加的電路,包括成本高昂的電平轉換器和電源,把5V I/O降至3.3V電平,以便于連接。當然,更高的處理能力總是受歡迎的,但更高的成本卻不為市場所接受。至于轉換到3.3V I/O及元件這一替代方案也是不切實際的。大多數(shù)傳感器及其他工業(yè)元件都基于5V,故與其把系統(tǒng)需要的所有傳感器都來個大調換,繼續(xù)采用8位和16位微控制器則更方便、更具成本效益。
獨特的愛特梅爾AVR® UC3C 32位微控制器是首個支持5V I/O的工業(yè)級微控制器。這一成果通過更先進的0.18µm工藝技術而得以實現(xiàn),因為其以一種可靠且具成本效益的方法支持更高的I/O電壓水平。這種本征5V I/O讓基于AVR UC3C的設計能夠充分利用32位微控制器新增加的CPU性能,無需任何復雜昂貴的電壓轉換器件。
除了支持5V I/O之外,AVR UC3C還附帶有廣大范圍的高性能外設,可滿足工業(yè)和汽車應用的需求:
ADC:16通道,12位,采樣速率高達1.5Msps;雙采樣及保持能力;內置校準;內部與外部參考電壓。
DAC:4路輸出(2×2通道),12位分辨率;轉換速率達1Msps,1us建立時間(settling time);靈活的轉換范圍;每通道1個連續(xù)輸出或2個采樣/保持輸出。
模擬比較器:4通道并帶有可選功率與速度;可選磁滯(0V、20mV和50mV);靈活的輸入選擇和中斷;結合兩個比較器的窗口比較功能。
定時器/計數(shù)器:多個時鐘源(5個內部的,3個外部的);豐富的功能集(計數(shù)器、捕獲、上/下,PWM);每通道2個輸入/輸出信號;全局啟動控制,實現(xiàn)同步運作。
正交解碼器:集成式解碼器,支持直接馬達旋轉檢測。
多個接口:包括一個雙通道雙線接口(TWI)、主/從SPI,以及可用作SPI或LIN的全功能USART。
全集成USB:內置USB2.0收發(fā)器,支持低(1.5Mbps)、全(12Mbps)和On-The-Go模式。此外,AVR軟件框架為各種USB設備(海量存儲、HID、CDC、音頻)、主設備(大容量存儲、HID、CDC)和組合功能設備提供生產就緒(production-ready)的驅動程序。
更高的系統(tǒng)吞吐量
外設管理可能已經(jīng)成為一個主要的系統(tǒng)瓶頸問題,情況在外設數(shù)目與其工作頻率不斷提高的情況下則更嚴重。在一個傳統(tǒng)的中斷式系統(tǒng)中,數(shù)據(jù)到達一個接口或傳感器端口,在被下一個數(shù)據(jù)值覆寫之前,CPU必須讀取和存儲結果。由于多通道高采樣速率,中斷開銷和數(shù)據(jù)處理會消耗很大比例的處理器可用時鐘周期。隨著被管理的外設數(shù)目增加,中斷延時也增加,從而引入抖動,降低準確度。另外,其他設計問題也隨之產生,比如致使任務調度復雜化的優(yōu)先級中斷處理。
為了便于多個高性能外設的高效工作,AVR UC3C架構采用了一個外設事件系統(tǒng),其允許外設自我管理,并彼此通信,無需主處理器干預,如圖2所示。外設事件控制器通過一個可實現(xiàn)所有外設互連的內部通信結構來獨立處理CPU的外設間信令。取代觸發(fā)一個中斷去通知CPU讀取外設或端口數(shù)據(jù),外設可以自我管理,把數(shù)據(jù)直接傳送給SRAM存儲,所有這些都無需CPU任何干預。從功率角度來看,只有那些轉換功能模塊是有源的。在整個事件發(fā)生期間,設備中最耗電的部件CPU,被釋放出來執(zhí)行應用代碼或進入IDIE模式以節(jié)能,而不必為了處理高頻中斷頻頻處于活躍狀態(tài)。[!--empirenews.page--]
圖2表示了外設事件系統(tǒng)允許外設自我管理,無需主處理器干預。例如,若無外設事件系統(tǒng),定時器會在一個ADC上觸發(fā)一個轉換,然后把結果傳送給DMA,再存儲到存儲器里,所有這些都無需CPU的任何干預。若帶有外設事件系統(tǒng),沒有抖動,且當愛特梅爾AVR工作在66MHz時,響應延時固定在三個周期僅33ns。
圖2 外設事件系統(tǒng)允許外設自我管理
相比基于CPU的中斷驅動式事件控制器,外設事件控制器的響應還具有更大的確定性。當32位AVR UC3C工作在66MHz時,延時固定在三個周期或僅33ns,從而實現(xiàn)無抖動的精確事件時序,使ADC和DAC上的數(shù)據(jù)讀取和傳輸更準確。這種延時可預測以及無需CPU開銷的特性還可防止事件遺漏或數(shù)據(jù)丟失。
為了全面地觀察外設事件系統(tǒng)的功能,考慮管理單個SPI端口所需的CPU負荷。如果外設與SRAM之間的數(shù)據(jù)傳輸是基于中斷的,SPI端口在接收到數(shù)據(jù)時會觸發(fā)一個中斷,然后CPU保存應用環(huán)境(application context),把數(shù)據(jù)傳送到SRAM的適當數(shù)據(jù)緩沖器中,再恢復應用環(huán)境。即使在1.2Mbps的低數(shù)據(jù)率之下,管理SPI端口也需要53%的處理器能力。
反之,若采用外設事件系統(tǒng),USB端口會自動把接收到的數(shù)據(jù)傳輸?shù)紻MA。DMA再自動把該數(shù)據(jù)存儲在適當?shù)拇鎯彌_器中,所有這些操作都無需CPU的任何干預。實質上,采用外設事件系統(tǒng)可省去與外設管理有關的所有中斷,從而能把更多的CPU能力留給應用。
外設事件系統(tǒng)還能減低實時系統(tǒng)管理的總體復雜性。以一個典型的三相馬達控制應用為例,這種應用需要一個PWM利用開/關脈沖發(fā)送來驅動電流。在開環(huán)架構中必須同時測量兩個電流,才能確定反電動勢(back-EMF),以計算轉子的位置。閉環(huán)架構也需要測量兩個電流,以讀取增量式編碼器返回的位置和方向數(shù)據(jù)。在緊急狀態(tài)下,系統(tǒng)還需要執(zhí)行硬件故障機制來中止馬達。而利用愛特梅爾AVR® UC3C 32位微控制器,所有這些輸入和輸出都可以通過外設事件系統(tǒng)在后臺進行管理。
工業(yè)和汽車應用需要大量不同的時鐘來實現(xiàn)這些系統(tǒng)支持的眾多功能。AVR UC3C架構提供有多個時鐘選擇,從而可省去系統(tǒng)原本可能需要的多個外部時鐘源。AVR UC3C提供的時鐘選擇包括3個內部RC振蕩器(115kHz、8MHz及120MHz)和1個用于生成頻率范圍從80MHz到240MHz的高速系統(tǒng)時鐘的鎖相環(huán)(PLL)。任何一個振蕩器都可作為系統(tǒng)的實時時鐘(RTC)源,外部振蕩器可用于提供額外的時鐘頻率。
IP保護
由于目前制造業(yè)常常將業(yè)務外包和離岸外包,加上軟件所包含的知識產權(IP)越來越多,代碼保護成為關鍵的設計考慮事項。有關IP保護的三大主要因素包括:
源代碼和目標代碼的保護:存儲程序代碼的Flash必須具有鎖定功能,以保護代碼不被讀取或拷貝。這不僅可以防止競爭對手竊取應用代碼,還能防止欠考慮的離岸制造商復制代碼,私下制造產品在當?shù)劁N售。
代碼的部分鎖定:利用第三方開發(fā)商提供的應用代碼,可以顯著加快系統(tǒng)開發(fā)進程,尤其是對依賴專用算法的應用而言。傳統(tǒng)的保護機制,比如只提供目標代碼的方案,因為無法檢驗代碼被使用的次數(shù),故不足以保護第三方的投資。而部分鎖定Flash的功能讓第三方開發(fā)商能夠放心地提供專有的代碼,因為代碼已經(jīng)編程在微控制器上了。
器件編程成本:微控制器的編程必須在安裝在電路板上之前進行,或者是采用器件內編程的方式。預編程技術給物流帶來挑戰(zhàn),因為器件必須先在可靠的設施上編程,再運送到制造廠房。器件內編程技術則可以在制造階段添加最新代碼。器件編程常用的一種方法是利用微控制器的JTAG端口。這種方法的缺點是需要指定4個I/O引腳專用于此目的,而且二進制代碼在微控制器和電路板之間傳送時會被暴露。替代方案是讓器件在工廠裝載啟動加載程序代碼,而這些代碼擁有足以支持一個接口(如USB端口)的功能。AVR UC3C 就附帶有USB驅動器,能夠支持器件固件升級(DFU),允許器件通過系統(tǒng)的USB端口進行編程。這就釋放了I/O引腳,并從系統(tǒng)BOM中刪去了JTAG標頭。
愛特梅爾AVR® UC3C 32位微控制器架構還包含了愛特梅爾FlashVault™代碼保護技術。FlashVault允許片上Flash進行部分編程和鎖定,創(chuàng)建安全的片上存儲空間,用以保護軟件IP。Flash上的鎖定部分不能被讀取、拷貝或調試。在開發(fā)和調試期間,F(xiàn)lashVault還可以采用一種部分未保護模式工作,以訪問存儲在Flash中的應用程序代碼,同時仍然能夠保護第三方代碼。啟動加載程序代碼也可以被鎖定,以確保器件在出現(xiàn)災難性軟件故障的情況下總是能夠重載應用代碼。[!--empirenews.page--]
系統(tǒng)安全性
對于工業(yè)和汽車應用,由于系統(tǒng)故障可能造成代價高昂的后果,甚至可能導致操作人員的傷亡,故安全性是其主要考慮事項。事實上,相當比例的系統(tǒng)都會遇到時鐘故障,因而系統(tǒng)必須具有從時鐘故障中良好恢復的能力,對于那些使用壽命預計數(shù)十年的工業(yè)系統(tǒng)尤其如此。例如,馬達控制系統(tǒng)必須能夠在檢測到時鐘故障時就智能化關斷系統(tǒng),以保護馬達或操作人員避免災難性損害。為此,AVR UC3C器件可以檢測出主要的時鐘故障,并切換到一個內部115kHz RC振蕩器。系統(tǒng)可以利用備份時鐘繼續(xù)運行(同時觸發(fā)一個主時鐘發(fā)生故障的警報),或執(zhí)行任何必須的關斷操作,以使系統(tǒng)進入故障保護狀態(tài)。
另一個重要的安全功能是窗口式看門狗定時器。微控制器一般都采用看門狗定時器來監(jiān)測系統(tǒng)是否正常運行。如果應用代碼被破壞,看門狗定時器就不會被啟動,而一個軟件復位被觸發(fā),警告系統(tǒng)啟動失敗。這種機制在軟件更新后顯得特別重要,以確保更新成功。
不過,看門狗定時器存在一個問題,就是它是通過軟件來設置和激活的。如果設置看門狗定時器的代碼從未被執(zhí)行,故障保護中斷就不會被觸發(fā)。窗口式看門狗定時器,如圖3所示,則是一種更為可靠的故障檢測形式,它定義了一個較窄的看門狗啟動窗口。這種方案仍然需要定時器以軟件形式啟動,但不會出現(xiàn)上述看門狗因是通過硬件設置和激活的就無法被設置的異常情況,并可防止已破壞的應用程序錯誤修改看門狗配置。于是,窗口式看門狗總是在系統(tǒng)上電時被設置和激活,故若應用代碼被破壞,在設置時間之后,故障保護中斷將被觸發(fā)。
圖3所示的看門狗定時器的作用是,通過要求應用在設置時間幀之內對看門狗定時器進行清零來確認系統(tǒng)是否正常工作。對于傳統(tǒng)看門狗定時器,如果已破壞的系統(tǒng)復位看門狗定時器,若不能首先激活它,就無法執(zhí)行故障檢測。而窗口式看門狗定時器在系統(tǒng)上電時以硬件形式被設置和激活,故可確保系統(tǒng)故障被檢測到。
圖3 窗口式看門狗定時器
窗口式看門狗定時器只在某個時間幀內被啟動。例如有一個中斷,其應該在執(zhí)行了一定的周期數(shù)之后才返回到主循環(huán)(啟動看門狗定時器)。如果中斷返回太快,中斷就沒有被正確執(zhí)行,因此可能存在某個系統(tǒng)問題。對于傳統(tǒng)的看門狗定時器,這個問題會被忽略過去。而使用時間幀式看門狗定時器的話,這時定時器將被過快啟動,從而觸發(fā)看門狗中斷。
加速系統(tǒng)開發(fā)
今天,在評測微控制器架構時,需要考慮的不僅有器件的硬件能力,還包括可使用什么樣的軟件庫和應用就緒應用軟件。從頭開始設計一個完整的系統(tǒng)需要大量的開發(fā)資源和時間。反之,利用現(xiàn)有的軟件框架則可以加快上市速度,大幅度減少應用開發(fā)投資。
愛特梅爾AVR®軟件框架可以簡化系統(tǒng)開發(fā),它支持各種最優(yōu)化接口驅動器、外設固件和應用代碼,包括大量的馬達控制算法、電容式觸摸驅動器、先進的數(shù)字信號處理算法(即FFT,以及帶通、高通及低通濾波器)、常用音頻與圖像編解碼器(如MP3)、語音識別引擎、顯示驅動器、CAN/LIN服務,以及FAT12/16/32文件系統(tǒng)等等。利用該框架實現(xiàn)外設或接口驅動器可大大簡化固件開發(fā),并縮短在AVR產品系列上移植應用程序所需的時間。譬如,可用3個UART驅動器支持RS-232與RS-485接口,還可以覆蓋一個CAN接口。同樣的,創(chuàng)建一個USB驅動器就和選擇一個器件類別一樣簡單,而且該框架提供有對應的驅動器代碼和協(xié)議堆棧。這個框架還包含了一個完整的實時操作系統(tǒng)(freeRTOS),并支持眾多流行產品,如uC-OS/II、embOS、ThreadX和openRTOS。愛特梅爾可免費向客戶提供AVR軟件框架。
利用廣義的軟件框架有助于縮短開發(fā)時間,加快上市速度。AVR軟件框架提供有業(yè)界范圍最廣的生產就緒的軟件驅動器及程序庫選擇,并包含了一組豐富的范例應用完備文檔代碼。AVR微控制器可支持實時跟蹤,實現(xiàn)系統(tǒng)操作的完全可視化。此外,AVR微控制器每季都進行更新,推出新功能。
利用直觀的GUI式愛特梅爾AVR Studio®開發(fā)環(huán)境可以快速配置驅動器和接口,這樣一來,只需數(shù)分鐘而不是數(shù)個月就可以實現(xiàn)首個原型,如圖4所示??焖儆趾唵蔚耐庠O配置對工業(yè)市場而言是至關重要的,因為這樣一來,整個設計團隊得以把主要精力集中在應用開發(fā)上,而不是浪費在另一個UART驅動器的編碼上。AVR Studio是業(yè)界最完善的8位和32位應用開發(fā)環(huán)境,可為所有AVR微控制器提供全面的編譯器和調試器支持。由于利用AVR軟件框架來配置外設,故不同AVR器件之間的移植是真正無縫的。AVR Studio與AVR軟件框架完全集成,二者都可免費或免權益金獲取。
圖4所示為愛特梅爾AVR Studio開發(fā)環(huán)境,可為所有外設提供驅動器和接口固件。采用這種方法,無需數(shù)個月,數(shù)分鐘就可以配置出首個原型。
圖4 愛特梅爾AVR Studio開發(fā)環(huán)境
愛特梅爾還提供有廣泛的硬件式系統(tǒng)內編程、調試和評測工具。例如,愛特梅爾AT32UC3C-EK評測工具套件就具有開箱即用的簡便性,可為愛特梅爾AVR® UC3C 32位微控制器架構的大量功能提供使用入口。它能夠接入每一個引腳和片上資源,以簡單的過程直接驗證AVR UC3C出色的低功耗特性。該評測工具套件還有愛特梅爾QTouch®電容式觸摸能力,以及用于無線連接的RF4CE、ZigBee、Wi-Fi和藍牙插件板。
真正的系統(tǒng)設計并不是把各種不同的芯片或子系統(tǒng)簡單地組合起來。現(xiàn)在的嵌入式應用產品是包含了眾多功能性組件的復雜系統(tǒng)。向32位架構轉換可以實現(xiàn)將設計整合在單個微控制器上,而這種32位微控制器架構針對高性能、低功耗、實時處理與系統(tǒng)可靠性進行了優(yōu)化。此外,這時系統(tǒng)設計還可以在單個協(xié)調環(huán)境中完成,從而加快系統(tǒng)的開發(fā)和測試進程。
AVR UC3C是業(yè)界首款專為工業(yè)和汽車應用而設計的32位處理器。UC3C整合了浮點計算能力和外設事件系統(tǒng),支持32位性能,它提供的性能與處理能力能夠為這些系統(tǒng)引入先進的功能性,并創(chuàng)建新的市場機遇。再結合適當?shù)母呔韧庠O組合、原生5V I/O、安全Flash和最完善的設計環(huán)境,加之針對馬達控制、傳感器監(jiān)控以及數(shù)字信號處理功能的生產就緒代碼,UC3C成為那些需要實時可靠性、高性能及高功效的應用的理想MCU選擇。