競爭激烈的MCU市場,迫切需要差異化的創(chuàng)新產(chǎn)品。為了能夠從眾多競爭者中脫穎而出,MCU產(chǎn)品一直在不斷添加新“技能”,以適應(yīng)市場環(huán)境的新要求。
特別是在MCU內(nèi)核趨向同質(zhì)化的時代,廠商為了增加賣點,在MCU外設(shè)功能上做了很多文章,存儲器、定時器、模擬外設(shè)、通信接口,甚至是射頻收發(fā)器,都有廠商集成到MCU里,現(xiàn)在市面上銷售的通用MCU產(chǎn)品,在外設(shè)上也已經(jīng)幾乎看不出什么差異化了。
MCU和以FPGA為代表的可編程邏輯,是兩個特性迥異的開發(fā)平臺:前者是在通用CPU架構(gòu)的基礎(chǔ)上,通過軟件編程去滿足不同應(yīng)用的設(shè)計要求,具有較高的靈活性和可擴展性,不過代價就是在性能和功耗上有所折中;而后者由于具有硬件可編程特性,開發(fā)者可以根據(jù)應(yīng)用“定制”所需的硬件電路,在性能和功耗上自然更勝一籌,不過開發(fā)門檻相對較高。兩者如果能夠有效地結(jié)合起來,那么就有可能成為兼具靈活性和?能效的異構(gòu)平臺。
MCU+FPGA(CPLD/CLB)的獨特結(jié)合,可以為開發(fā)者帶來諸多好處:
首先,集成到MCU的可編程邏輯,是通過硬件的方式實現(xiàn)邏輯功能,在性能上明顯優(yōu)于“通用MCU+軟件”的模式,有利于優(yōu)化嵌入式控制系統(tǒng)的速度和響應(yīng)時間,提升整體的系統(tǒng)性能。而且由于在系統(tǒng)設(shè)計時,無需增加額外的外部邏輯器件,還可以降低BOM成本,可謂是一舉兩得。
其次,作為獨立于CPU內(nèi)核的外設(shè),可編程邏輯模塊可以在MCU處于睡眠模式時運行,以響應(yīng)和處理來自外部和內(nèi)部的任務(wù),更大限度地降低MCU的功耗??删幊踢壿嬤€可以與其他外設(shè)(如定時器、ADC、PWM模塊等)結(jié)合使用,進一步優(yōu)化系統(tǒng)功耗性能。
此外,可編程邏輯還有助于MCU實現(xiàn)更強的可擴展性。在實際工作中,隨著需求的變化,設(shè)計的調(diào)整在所難免,而MCU所具備的可編程邏輯功能,使得開發(fā)者無需“從頭再來”徹底修改整個設(shè)計,就能夠通過靈活的硬件編程快速完成設(shè)計迭代,簡化整個設(shè)計流程。
業(yè)內(nèi)經(jīng)典的產(chǎn)品有這些:
1、Microchip的PIC16F13145 系列MCU
作為一款8位MCU,與傳統(tǒng)不同,PIC16F13145系列的外設(shè)中,除了ADC、DAC、比較器和定時器等這些“常規(guī)”配置,還有?個特別的可配置邏輯塊(CLB)模塊。
CLB由32個基本邏輯元件(BLE)陣列(每個BLE都能夠模擬AND / OR / NAND / NOR門)以及緩沖器/反相緩沖器、D觸發(fā)器、JK觸發(fā)器、多路復(fù)用器或四輸入LUT構(gòu)成。這意味著,開發(fā)者可以利用CLB直接在MCU內(nèi)創(chuàng)建基于硬件的定制組合邏輯功能,實現(xiàn)自己想要的硬件電路,而不受通用MCU固定硬件架構(gòu)的限制,就好像在MCU中添加了?個“微型FPGA”。
十多年前,Microchip就曾在其MCU中引入了?種被稱為可配置邏輯單元(CLC)的可編程邏輯外設(shè),這一設(shè)計思路的價值已經(jīng)被市場所驗證。隨著實際應(yīng)?中對更復(fù)雜的可編程邏輯需求的增加,終在PIC16F13145系列中演化出了CLB這個規(guī)模更大、更復(fù)雜的可編程邏輯塊,完成了?次重要的迭代升級,也使得該系列MCU能夠?于以往屬于獨立可編程邏輯器件的應(yīng)用領(lǐng)域。
PIC16F13145 系列MCU的開發(fā), 可以得到MPLAB? 代碼配置器(MCC)的支持,MCC是Microchip的MPLAB X IDE中?個免費軟件插件,為開發(fā)者提供了?個基于GUI的簡便開發(fā)界面,用于配置器件和片上外設(shè)(包括CLB)。CLB所需的?定義邏輯配置可通過MCC創(chuàng)建原理圖,因此大大減少了開發(fā)時間,而且用戶可以使用硬件描述語言(Verilog)作為開發(fā)語言,增加了開發(fā)的靈活性。
2、TI的C2000系列
C2000一共有三代產(chǎn)品,有人叫它MCU(微處理器),有人叫它DSP(數(shù)字信號處理器),不過官方還是把這款產(chǎn)品規(guī)劃到了MCU之下。
C2000 的可配置邏輯塊 (CLB, Configurable Logic Block),這是C2000在系統(tǒng)架構(gòu)上值得稱道的一大創(chuàng)新點。在C2000芯片的內(nèi)部創(chuàng)建了一種靈活的自定義邏輯機制,用戶可以利用其在MCU內(nèi)部的硬件中添加個性化的定制邏輯電路。
有些應(yīng)用利用 FPGA 來實現(xiàn)時序關(guān)鍵型功能或特殊功能,例如電機應(yīng)用中的編碼器。為了滿足這種需求,TI 開發(fā)了可配置邏輯塊 (CLB) 解決方案。使用 CLB 實現(xiàn)不同的編碼器,例如絕對編碼器、T-format 等。C2000 在 CLB 中提供了許多編碼器示例,同時允許客戶創(chuàng)建自己的解決方案,還使用 CLB 實現(xiàn)有源 EMI 濾波器等創(chuàng)新解決方案,從而減少數(shù)字電源應(yīng)用中的 EMI。
CLB 將一個經(jīng)優(yōu)化的高速可編程邏輯集成到 C2000 MCU 等實時控制器中,為增強型脈寬調(diào)制器 (PWM)、增強型捕捉、增強型正交編碼器和通用 I/O 等關(guān)鍵外設(shè)提供智能的信號輸入/輸出 (I/O) 路由功能,最終成為具有系統(tǒng)級差異化特性的增強版知識產(chǎn)權(quán) (IP) 模塊。
工程師們在利用單片DSP的情況下,有更大的自由度去實現(xiàn)一些復(fù)雜的邏輯,減少外圍的邏輯門。從一些應(yīng)用實例來看,CLB可以直接支持市面上大多數(shù)編碼器的接口協(xié)議,包括EnDat2.2,BiSS, 多摩川T-format,其余的,比如尼康、松下,還是要自己去開發(fā)。使用CLB可以省去少一塊解碼芯片,可以從整個BOM上節(jié)省成本。
3、AGM的AG32系列
AG32芯片內(nèi)置兩部分硬核:MCU(RISC-V)、CPLD(2K)。也就是說,一顆AG32芯片,即包含一顆 32位MCU 的功能(最高 248M 主頻),又包含了一顆 CPLD(2K 邏輯單元)的功能。
MCU部分可以平替市面上多數(shù)流行的芯片(如:ST系列)
CPLD可以輔助增加MCU無法實現(xiàn)的芯片功能(如:新增外設(shè)、實現(xiàn)高速邏輯)
通過CPLD,還可以新增自己獨有的功能,相當于“定制自己的MCU”。
AG32的兩部分是相互獨立的(各自編譯、各自下載),但又可以相互連通起來(信號連通)。在開發(fā)生態(tài)上,AG32采用最流行的VSCode開發(fā)環(huán)境對MCU和CPLD進行編程和燒錄,輔助AGM自研的Supra工具來對CPLD生成最終的bin。
此外,在AG32中,MCU和CPLD和外部引腳,三者是相互獨立的。這樣做的好處是AG32的所有管腳幾乎都可以通過軟件重新配置,無形中增加了GPIO口的可用數(shù)量,大大提升了客戶的靈活度。
客戶使用AG32的芯片時,有三種選擇:
1)只使用 MCU部分;
2)只使用 CPLD部分;
3)同時使用 MCU和 CPLD(即:MCU和 CPLD聯(lián)合編程);
以上產(chǎn)品將可編程邏輯外設(shè)功能與MCU架構(gòu)相結(jié)合,在繼承MCU固有優(yōu)勢特性的同時,又帶來了更佳的性能、低功耗特性和可擴展性,在實時控制、數(shù)字傳感器節(jié)點,以及工業(yè)、消費和汽車等細分市場,為嵌入式開發(fā)者提供了全新的想象空間和開發(fā)體驗。