在過去25年里,微控制器的內(nèi)部外設(shè)發(fā)生了巨大的變化。最初許多微控制器只包含RAM、ROM,也許還有基本的定時器。隨著微控制器的發(fā)展,更多的外設(shè)被基礎(chǔ)到這種單價不超過一美元的器件中。定時器/計數(shù)器、PWM和包括UART、SPI和I2C在內(nèi)的標準串行接口常用于這些廉價的微控制器。另一個重大變化是32位CPU正在取代同一價格范圍的8位器件。
但是即便有如此豐富的特性,對于廉價微控制器而言,隨時都存在微控制器廠商不能迅速支持的項目專用硬件接口或新的第三方接口。往往這要求設(shè)計人員使用外部硬件或是通過位拆裂在固件中實現(xiàn)接口。位拆裂使用固件觸發(fā)IO端口,一般可用于實現(xiàn)串行接口。如果要監(jiān)測端口以解碼串行數(shù)據(jù)的時候,也可以使用這種方法。無論是使用外部硬件還是位拆裂來實現(xiàn)接口,都會產(chǎn)生額外的設(shè)計成本。雖然增加外部硬件帶來的成本是明顯的,但使用軟件實現(xiàn)串行接口可能也會要求使用速度更快因而也更加昂貴的CPU。
大多數(shù)通用微控制器今天都支持SPI、UART和I2C接口,但仍然有很多時候,某些內(nèi)部用戶可編程邏輯會非常有用。Atmel、賽普拉斯、Microchip和NXP等多家公司已經(jīng)把部分用戶可定義邏輯添加到自己的部件上,用于修復(fù)部分此類問題。這些器件主要是帶附加邏輯的微控制器。CPU仍然是主要的處理器件,附加邏輯的作用是提高CPU的工作效率。這類器件常見于成本敏感性產(chǎn)品中,但也在低級任務(wù)中用作小型協(xié)處理器,以減輕主處理器的負擔(dān),從而提升效率。
另一方面FPGA也正在朝著類似的目標前進,雖然是從另一個方向。賽靈思和Altera多年來一直在添加軟硬核處理器以創(chuàng)建片上系統(tǒng)。FPGA方法一般成本較高,但如果項目需要大量定制邏輯,這就是一種高成本效益的方法。這些器件對于構(gòu)建ASIC、小批量產(chǎn)品的原型而言極具價值。這類應(yīng)用的上市時間至關(guān)重要,而較大型產(chǎn)品需要持續(xù)的硬件靈活性。
微控制器搭配邏輯與FPGA搭配CPU,這兩種器件類型都能為現(xiàn)場提供硬件靈活性。一旦基于閃存的器件成為常規(guī),現(xiàn)場升級就會成為標準。最早設(shè)計人員只能夠升級固件,但現(xiàn)在硬件(邏輯)和固件都能夠在現(xiàn)場輕松實現(xiàn)升級。從計算機鼠標到高速網(wǎng)絡(luò)路由器等設(shè)備均能夠重新編寫設(shè)備的固件和硬件,從而進行現(xiàn)場升級。
上文提及的四家公司(Atmel、賽普拉斯、Microchip和NXP)均可提供“膠連”邏輯,幫助減輕主處理器的負荷,或是無需使用外部邏輯。就提供的邏輯模塊類型和這些邏輯模塊彼此互聯(lián)的方式以及與定時器、UART和IO引腳等板載模塊互聯(lián)的方式而言,每家公司都采取了不同的方法。
因此有必要了解這些廠家各自是如何實現(xiàn)內(nèi)部可編程邏輯的,以便為選擇最適合自己項目的解決方案做出最佳決策。只要一個簡單的內(nèi)部AND或者OR門控就足以避免使用外部組件,或是改善CPU性能。所有四種方法都支持用定制邏輯門控輸入和輸出信號。這類方法可借助時鐘門控輸入,以便使用計數(shù)器測量外部時鐘頻率。這四類邏輯模塊均支持的一個簡單例子是一種調(diào)制UART輸出,使之用于IR通信的方法。在此例中,不僅有圖1所示的內(nèi)部AND門控,還能夠?qū)碜詴r鐘或計數(shù)器的信號及UARTTX輸出路由到AND門控。
AtmelXCL模塊內(nèi)置兩個LUT(查找表)模塊,配套兩個8位定時器/計數(shù)器模塊。這兩個LUT不必連接到定時器/計數(shù)器模塊,而是與UART、EVENT模塊或IO引腳互聯(lián)。這兩個LUT可用作兩個獨立的2輸入單元或一個單獨的3輸入單元。該邏輯模塊可配置為組合邏輯,如AND、NAND、OR、NOR、XOR、XNOR、NOT或MUX功能。它們也可配置為順序邏輯功能,例如D觸發(fā)器、D鎖存器或RS鎖存器。由于能夠與其它邏輯模塊和IO引腳互聯(lián),這些簡單的LUT模塊能夠方便地讓設(shè)計人員避免使用某些外部邏輯,或者節(jié)省CPU周期。例如AtmelXCL模塊應(yīng)用手冊(AT01084)解釋了如何配置XCL模塊,以避免在產(chǎn)生額外CPU開銷或使用外部邏輯的情況下,為UART輸出提供曼徹斯特編碼。AVRXMEGAE器件內(nèi)置一個XCL模塊。