AG32看上去像是一款平淡無(wú)奇的MCU產(chǎn)品,兼容了通用STM32(從103到407),表面上跟市場(chǎng)上大部分32位兼容MCU的大路貨沒(méi)什么不同,價(jià)格比大牌友商要低,但比內(nèi)卷的兼容MCU稍微要高一點(diǎn)。
但是它隱藏在外表下面的核心部分完全不同。
AG32的用法可以說(shuō)是千變?nèi)f化,在有想象力的客戶手里可以玩出各種花來(lái),只把它當(dāng)成兼容MCU用就太可惜了。
大量的工業(yè)客戶場(chǎng)景中,都同時(shí)使用了MCU和FPGA(或CPLD)。內(nèi)置了CPLD可編程邏輯的MCU,最大的優(yōu)勢(shì)是客戶既可以將其作為純MCU使用,又可以當(dāng)成獨(dú)立的CPLD使用,還可以同時(shí)使用MCU+CPLD。由于AG32的管腳可以通過(guò)配置文件全部靈活重定義,為客戶的設(shè)計(jì)帶來(lái)巨大便利,且CPLD邏輯可以靈活模擬出客戶額外所需的接口功能。
[2顆芯片的功能,1顆芯片的體積,半顆芯片的價(jià)格]
用法一:IO口的復(fù)用
AG32和其他MCU的最大區(qū)別,是數(shù)字I/O口可以設(shè)置到任意位置,哪怕用最小封裝,也可以使用以太網(wǎng)等任何外設(shè)。
傳統(tǒng)的低端MCU由于I/O口數(shù)量不足導(dǎo)致部分功能無(wú)法實(shí)現(xiàn),用戶需要使用數(shù)字集成芯片進(jìn)行擴(kuò)展,如74LS系列移位寄存器,但是這種集成芯片也會(huì)由于引腳數(shù)量限制而無(wú)法確保單片機(jī)端口的充分?jǐn)U展,用戶也常通過(guò)CPLD(如EPM1270)進(jìn)行擴(kuò)展,根據(jù)實(shí)際需求擴(kuò)展對(duì)應(yīng)數(shù)量的端口。以下是通過(guò)Altera CPLD擴(kuò)展IO口的一個(gè)案例。
AG32系列定義的PIN_XX可以用軟件定義成任意數(shù)字接口,如UART,SPI,IIC, PWM,IO等等。除了模擬部分,ADC, DAC,CMP,usb外,其它接口都能任意定義。這樣根據(jù)PCB布局來(lái)調(diào)整數(shù)字接口部分的順序,2層板就輕松搞定。這樣布出來(lái)的板子不但美觀大方,而且性能更加可靠,基本上不存在交叉走線的情況。
AG32的管腳可以通過(guò)配置文件全部靈活重定義,給內(nèi)核中的MCU和CPLD使用,因此可提供超出STM32的GPIO口數(shù)量,最大可能地利用所有管腳資源,有效降低了客戶的BOM成本。
用法二:MCU+CPLD混用場(chǎng)景
傳統(tǒng)工業(yè)應(yīng)用場(chǎng)景,有很多場(chǎng)合需要同時(shí)用到MCU和CPLD(或FPGA),比如說(shuō)在高速數(shù)據(jù)采集的應(yīng)用中,傳統(tǒng)的數(shù)據(jù)采集方案,很多通過(guò)STM32加上CPLD來(lái)完成。MCU主要負(fù)責(zé)數(shù)據(jù)處理和與上位機(jī)的通信,而CPLD則負(fù)責(zé)控制信號(hào)的輸入和輸出以及數(shù)據(jù)的存儲(chǔ)??蛻舨捎肁G32的二合一方案后,有效地降低了BOM成本。
FPGA最擅長(zhǎng)的就是大數(shù)據(jù)量的并行采集分析處理。高速AD數(shù)據(jù)采樣即使使用了DMA數(shù)據(jù)讀取,也會(huì)頻繁與MCU搶占AHB總線,導(dǎo)致MCU的運(yùn)行效率極其低下。如果用FPGA來(lái)做緩存就好很多了,會(huì)大幅減少AHB總線的搶占情況。使MCU有更多的時(shí)間來(lái)刷新波形的顯示,以及一些人機(jī)界面的操作。FPGA同時(shí)還能對(duì)采集到的數(shù)據(jù)進(jìn)行縮放、過(guò)濾等,盡可能幫助MCU完成波形顯示前的數(shù)據(jù)處理。MCU和CPLD通過(guò)芯片內(nèi)部AHB總線高速通信,速度遠(yuǎn)超傳統(tǒng)外接SPI的方式。
還有很多場(chǎng)景會(huì)需要同時(shí)用到MCU和CPLD(或FPGA),比如伺服驅(qū)動(dòng)、逆變器、激光控制器等,如果所需的2K邏輯數(shù)量夠用,那么方案的性價(jià)比會(huì)超過(guò)STM32+CPLD。
用法三:接口定制
CPLD邏輯可以用來(lái)定制出客戶需要的各種定制接口,這是兼容MCU沒(méi)法做到的。
-某數(shù)字示波器客戶,通過(guò)AG32里的FPGA實(shí)現(xiàn)了高速AD9288的數(shù)據(jù)接口,這個(gè)時(shí)鐘的速度高達(dá)100Mhz,普通的MCU沒(méi)有類似這種同步機(jī)制的接口來(lái)讀數(shù)據(jù)。
-某客戶需要MCU實(shí)現(xiàn)兩路CAN接口,AG32已經(jīng)支持一路CAN接口,其利用CPLD邏輯實(shí)現(xiàn)了第二路CAN接口。
-某客戶需要USB轉(zhuǎn)以太網(wǎng)標(biāo)準(zhǔn)模塊,AG32支持USB FS+OTG和以太網(wǎng)MAC,并且提供了標(biāo)準(zhǔn)例程,包括網(wǎng)絡(luò)Lwip和USB的開(kāi)發(fā)例程,上層應(yīng)用調(diào)tinyUSB的接口即可??蛻糇孕袑?shí)現(xiàn)了接口轉(zhuǎn)換邏輯。
-其他的一些實(shí)現(xiàn)案例包括了74HC164,138甚至高速UWB收發(fā)接口。
用法四:算法加速
由于CPLD/FPGA中的邏輯單元是可編程的,可針對(duì)特定的應(yīng)用而定制硬件,用硬件來(lái)?yè)Q取速度和簡(jiǎn)單性。因此,僅使用所需要的硬件即可,而不必做出任何板級(jí)變動(dòng)(前提是FPGA中的邏輯單元足夠用)。
算法可以用軟件,也可用硬件實(shí)現(xiàn)。FPGA使軟件模塊和硬件模塊的相互交換更加簡(jiǎn)便,不必改變處理器或進(jìn)行板級(jí)變動(dòng)。設(shè)計(jì)者可以在速度、硬件邏輯、存儲(chǔ)器、代碼大小和成本之間做出折衷。利用FPGA可以設(shè)計(jì)定制的嵌入式系統(tǒng),以增加新的功能特性及優(yōu)化性能。
比如CRC算法的硬件加速,由于大量且重復(fù)的計(jì)算,循環(huán)冗余校驗(yàn)(CRC)算法或任何“校驗(yàn)和”算法都是硬件加速的不錯(cuò)選擇。下面的應(yīng)用中,在以太網(wǎng)圖像傳輸上的應(yīng)用,CPLD截取MAC傳輸?shù)臄?shù)據(jù),加上了自定義的CRC值,再通過(guò)MAC傳輸出去,相當(dāng)于對(duì)實(shí)時(shí)圖像數(shù)據(jù)進(jìn)行了簡(jiǎn)單的CRC加密。
如需對(duì)數(shù)據(jù)進(jìn)行加密,也可以利用CPLD實(shí)現(xiàn)對(duì)數(shù)據(jù)的AES算法加密操作,原理大體相同。
此外,在音視頻有大量的應(yīng)用可以通過(guò)可編程邏輯進(jìn)行性能優(yōu)化。
目前AG32系列產(chǎn)品線計(jì)劃擴(kuò)充少量代理商,有興趣的朋友可掃描下面二維碼加我微信(加的時(shí)候備注下公司名和個(gè)人名字)。