當(dāng)前位置:首頁 > 模擬 > 模擬
[導(dǎo)讀]在過去25年里,微控制器的內(nèi)部外設(shè)發(fā)生了巨大的變化。最初許多微控制器只包含RAM、ROM,也許還有基本的定時(shí)器。隨著微控制器的發(fā)展,更多的外設(shè)被基礎(chǔ)到這種單價(jià)不超過一美元的器件中。定時(shí)器/計(jì)數(shù)器、PWM和包

導(dǎo)讀:在過去25年里,微控制器的內(nèi)部外設(shè)發(fā)生了巨大的變化。最初許多微控制器只包含RAM、ROM,也許還有基本的定時(shí)器。隨著微控制器的發(fā)展,更多的外設(shè)被基礎(chǔ)到這種單價(jià)不超過一美元的器件中。定時(shí)器/計(jì)數(shù)器、PWM和包括UART、SPI和I2C在內(nèi)的標(biāo)準(zhǔn)串行接口常用于這些廉價(jià)的微控制器。另一個(gè)重大變化是32位CPU正在取代同一價(jià)格范圍的8位器件。

但是即便有如此豐富的特性,對于廉價(jià)微控制器而言,隨時(shí)都存在微控制器廠商不能迅速支持的項(xiàng)目專用硬件接口或新的第三方接口。往往這要求設(shè)計(jì)人員使用外部硬件或是通過位拆裂在固件中實(shí)現(xiàn)接口。位拆裂使用固件觸發(fā)IO端口,一般可用于實(shí)現(xiàn)串行接口。如果要監(jiān)測端口以解碼串行數(shù)據(jù)的時(shí)候,也可以使用這種方法。無論是使用外部硬件還是位拆裂來實(shí)現(xiàn)接口,都會產(chǎn)生額外的設(shè)計(jì)成本。雖然增加外部硬件帶來的成本是明顯的,但使用軟件實(shí)現(xiàn)串行接口可能也會要求使用速度更快因而也更加昂貴的CPU。

大多數(shù)通用微控制器今天都支持 SPI、UART和I2C接口,但仍然有很多時(shí)候,某些內(nèi)部用戶可編程邏輯會非常有用。Atmel、賽普拉斯、Microchip和NXP等多家公司已經(jīng)把部分用戶可定義邏輯添加到自己的部件上,用于修復(fù)部分此類問題。這些器件主要是帶附加邏輯的微控制器。CPU仍然是主要的處理器件,附加邏輯的作用是提高CPU的工作效率。這類器件常見于成本敏感性產(chǎn)品中,但也在低級任務(wù)中用作小型協(xié)處理器,以減輕主處理器的負(fù)擔(dān),從而提升效率。

另一方面FPGA也正在朝著類似的目標(biāo)前進(jìn),雖然是從另一個(gè)方向。賽靈思和Altera多年來一直在添加軟硬核處理器以創(chuàng)建片上系統(tǒng)。FPGA方法一般成本較高,但如果項(xiàng)目需要大量定制邏輯,這就是一種高成本效益的方法。這些器件對于構(gòu)建ASIC、小批量產(chǎn)品的原型而言極具價(jià)值。這類應(yīng)用的上市時(shí)間至關(guān)重要,而較大型產(chǎn)品需要持續(xù)的硬件靈活性。

微控制器搭配邏輯與FPGA搭配CPU,這兩種器件類型都能為現(xiàn)場提供硬件靈活性。一旦基于閃存的器件成為常規(guī),現(xiàn)場升級就會成為標(biāo)準(zhǔn)。最早設(shè)計(jì)人員只能夠升級固件,但現(xiàn)在硬件(邏輯)和固件都能夠在現(xiàn)場輕松實(shí)現(xiàn)升級。從計(jì)算機(jī)鼠標(biāo)到高速網(wǎng)絡(luò)路由器等設(shè)備均能夠重新編寫設(shè)備的固件和硬件,從而進(jìn)行現(xiàn)場升級。

上文提及的四家公司(Atmel、賽普拉斯、Microchip和NXP)均可提供“膠連”邏輯,幫助減輕主處理器的負(fù)荷,或是無需使用外部邏輯。就提供的邏輯模塊類型和這些邏輯模塊彼此互聯(lián)的方式以及與定時(shí)器、UART和IO引腳等板載模塊互聯(lián)的方式而言,每家公司都采取了不同的方法。

因此有必要了解這些廠家各自是如何實(shí)現(xiàn)內(nèi)部可編程邏輯的,以便為選擇最適合自己項(xiàng)目的解決方案做出最佳決策。只要一個(gè)簡單的內(nèi)部AND或者OR門控就足以避免使用外部組件,或是改善CPU性能。所有四種方法都支持用定制邏輯門控輸入和輸出信號。這類方法可借助時(shí)鐘門控輸入,以便使用計(jì)數(shù)器測量外部時(shí)鐘頻率。這四類邏輯模塊均支持的一個(gè)簡單例子是一種調(diào)制UART輸出,使之用于IR通信的方法。在此例中,不僅有圖1所示的內(nèi)部AND門控,還能夠?qū)碜詴r(shí)鐘或計(jì)數(shù)器的信號及UARTTX輸出路由到AND門控。

圖1 簡單調(diào)制的UART

AtmelXMEGA定制邏輯(XCL)

AtmelXCL模塊內(nèi)置兩個(gè)LUT(查找表)模塊,配套兩個(gè)8位定時(shí)器/計(jì)數(shù)器模塊。這兩個(gè)LUT不必連接到定時(shí)器/計(jì)數(shù)器模塊,而是與UART、 EVENT模塊或IO引腳互聯(lián)。這兩個(gè)LUT可用作兩個(gè)獨(dú)立的2輸入單元或一個(gè)單獨(dú)的3輸入單元。該邏輯模塊可配置為組合邏輯,如AND、NAND、 OR、NOR、XOR、XNOR、NOT或MUX功能。它們也可配置為順序邏輯功能,例如D觸發(fā)器、D鎖存器或RS鎖存器。由于能夠與其它邏輯模塊和IO 引腳互聯(lián),這些簡單的LUT模塊能夠方便地讓設(shè)計(jì)人員避免使用某些外部邏輯,或者節(jié)省CPU周期。例如AtmelXCL模塊應(yīng)用手冊(AT01084)解釋了如何配置XCL模塊,以避免在產(chǎn)生額外CPU開銷或使用外部邏輯的情況下,為UART輸出提供曼徹斯特編碼。AVRXMEGAE器件內(nèi)置一個(gè)XCL模塊。

圖2 Atmel的XMEGA定制邏輯(XCL)

Microchip可配置邏輯單元(CLC)

MicrochipCLC允許用戶從八路輸入中選擇最多四個(gè)信號。這些輸入可以是兩個(gè)IO引腳、內(nèi)部時(shí)鐘、外設(shè)或寄存器位的組合。這四個(gè)信號隨后路由到可編程邏輯模塊中。該邏輯模塊可編程為AND-OR、OR-XOR、4輸入AND、S-R鎖存器的8種組合之一,也可配置為4種其它觸發(fā)器組合之一。 Microchip在其《可配置邏輯單元提示與技巧》應(yīng)用手冊中給出了部分實(shí)例。其中的實(shí)例之一演示了如何配置這些模塊以解碼正交信號。在不使用這些額外的邏輯模塊情況下,CPU需要以高得多的速率采樣信號,才能避免正處于轉(zhuǎn)換階段的信號發(fā)生偽旋轉(zhuǎn),讓CPU只被有效轉(zhuǎn)換中斷。 MicrochipPIC10(L)F320/322器件每個(gè)都包含一個(gè)CLC模塊,而每個(gè)CLC模塊都包含四個(gè)圖3所示的模塊。

圖3 Microchip的可配置邏輯單元(4個(gè)中的一個(gè))

NXP模式匹配引擎

NXP提供的用戶可配置邏輯被稱為模式匹配引擎。該邏輯模塊的輸入可選擇最大八個(gè)GPIO輸入。這八個(gè)輸入可為復(fù)雜的布爾表達(dá)生成乘積項(xiàng)。這些輸出可用于觸發(fā)中斷,驅(qū)動(dòng)特殊IO引腳,或是路由到下一個(gè)邏輯模塊或slice。其它特性則支持上升或下降信號以及反相信號的邊緣檢測。該附加硬件經(jīng)配置后,只有發(fā)生復(fù)雜(或簡單)事件組合時(shí)才中斷CPU。NXPLPC81x器件內(nèi)置一個(gè)模式匹配引擎。

圖4 NXP引腳中斷/模式匹配引擎

賽普拉斯PSoC通用數(shù)字模塊(UDB)

賽普拉斯通過使用通用數(shù)字模塊或UDB,采用更先進(jìn)的方法在上文介紹的其他三個(gè)廠商的方法和FPGA之間獨(dú)樹一幟。一個(gè)UDB由兩個(gè)12C4PLD和一個(gè)數(shù)據(jù)通路構(gòu)成。PLD可用于控制數(shù)據(jù)通路的操作和數(shù)據(jù)流,也可用作通用邏輯和狀態(tài)機(jī)。數(shù)據(jù)通路是一種能提供8位功能(AND、OR、ADD、SUB、INC、DEC、XOR)、移位功能(左和右)以及供數(shù)據(jù)排隊(duì)的兩個(gè)4字節(jié)FIFO的定制模塊。這些模塊也可以結(jié)合在一起提供16位、24位或32位功能。

UDB的輸入和輸出可路由到任何 GPIO、外設(shè)/組件IO、中斷等。UDB、固定功能模擬和數(shù)字模塊以及GPIO之間的互聯(lián)都使用數(shù)字信號接口(DSI)處理。UDB經(jīng)編程可實(shí)現(xiàn)為任何功能,包括從簡單的邏輯門到計(jì)數(shù)器和PWM以及UART和I2C外設(shè)等通用串行接口。

就利用UDB實(shí)現(xiàn)設(shè)計(jì)而言,用戶可以選擇多種選項(xiàng)。既可把簡單的邏輯門布局在原理圖中,也可在Verilog中實(shí)現(xiàn)設(shè)計(jì)。還可提供定制圖形界面,無需使用Verilog即可實(shí)現(xiàn)設(shè)計(jì)。PSoC3、 PSoC4和PSoC5系列微控制器可包含4個(gè)到24個(gè)此類邏輯模塊(UDB)。

圖5 賽普拉斯PSoC通用數(shù)字模塊(UDB)

定制接口實(shí)例

最近我注意到Worldsemi生產(chǎn)的一些RGBLED很有意思。部件編號分別為WS2811、WS2812和WS2812B,但它們工作方式一致。只需要一個(gè)GPIO引腳,您就可以驅(qū)動(dòng)1,000個(gè)或者更多的此類部件。這相當(dāng)令人感興趣,因?yàn)槲夷軌蛴靡粋€(gè)GPIO引腳控制如此大數(shù)量的RGBLED。連接這些LED的接口不是SPI、UART或I2C,而是定制接口。通信信號采用異步信號,每一位開始于上升沿。數(shù)據(jù)為1或0由下圖所示的高脈沖長度決定。

圖6 WS2811/12數(shù)據(jù)0/1時(shí)序

每個(gè)部件需要24位數(shù)據(jù),每一種顏色(紅、綠、藍(lán))為下列格式的8位。

圖7 WS2811/12數(shù)據(jù)格式

WS2811/12部件采用DIN(數(shù)據(jù)輸入)和DOUT(數(shù)據(jù)輸出)信號,以便簡單地進(jìn)行串行連接。每個(gè)部件都保留其看到的頭24位數(shù)據(jù),然后把剩余數(shù)據(jù)從DOUT引腳輸出。參見下面的圖8。

圖8 連接多個(gè)WS2811/12部件

當(dāng)數(shù)據(jù)流啟動(dòng)后,每個(gè)部件將看到持續(xù)的數(shù)據(jù)流。如果數(shù)據(jù)信號的上升沿不超過50微秒,部件會鎖存數(shù)據(jù),將緊鄰的24位數(shù)據(jù)視為自己的數(shù)據(jù),并將其余數(shù)據(jù)重新發(fā)送出去。

圖9 數(shù)據(jù)流閑置時(shí)間超過50微秒時(shí)器件復(fù)位

正如您所看到的,其原理并不復(fù)雜,但它并不能輕松地適配到標(biāo)準(zhǔn)的微控制器硬件上。我確實(shí)發(fā)現(xiàn)有人使用SPI接口來維持時(shí)序,但這要求每個(gè)真實(shí)的數(shù)據(jù)位使用至少三個(gè)SPI數(shù)據(jù)位,對于通過位拆裂獲得CPU性能而言優(yōu)勢不大。由于時(shí)序并不嚴(yán)格,如果您在固件中實(shí)現(xiàn)接口(位拆裂),CPU將專門用于翻轉(zhuǎn)驅(qū)動(dòng)信號直至LED全部更新。這意味著您需要禁用所有中斷,在整個(gè)過程中不對任何其它輸入做出響應(yīng)。如果您有1,000個(gè)LED,則更新時(shí)間為(0.40微秒+0.85)*24位*1,000個(gè)LED=30,000微秒或30毫秒。這可能并不是什么問題,但如果您要以30Hz的頻率更新LED,將幾乎占用 100%的CPU!

在編寫代碼時(shí),我習(xí)慣于在不得不較長時(shí)間禁用中斷的地方避免阻塞代碼或條件,特別在系統(tǒng)中有用戶接口或是需要與其它處理器通信的情況下尤為如此。我的目的是盡量減輕CPU的負(fù)擔(dān),讓硬件完成大部分工作,就如同今天常見的內(nèi)部UART或SPI模塊所做的工作一樣。賽普拉斯PSoCUDB有幾項(xiàng)特性能讓這項(xiàng)工作變得非常簡便。每個(gè)UDB在數(shù)據(jù)通路中有兩個(gè)4字節(jié)FIFO和一個(gè)移位器。在實(shí)現(xiàn)UART時(shí),您可將一個(gè)FIFO 用作TX緩存,另一個(gè)用作RX緩存。對于WS2811/12,我只需要一個(gè)輸出FIFO和移位器。我決定配置硬件,為每個(gè)器件每次生成一次中斷。中斷處理器將加載24位(3字節(jié))數(shù)據(jù),直到FIFO為空時(shí)返回。采用這種方法,可以每30微秒中斷一次,而不必以150毫微秒或更短間隔禁用全部中斷和位拆裂。我決定使用的微控制器是賽普拉斯PSoCCY8C4245AXI。該微控制器大批量采購價(jià)格約為一美元,有四個(gè)UDB,運(yùn)行頻率為48MHz,足以滿足此項(xiàng)工作所需的速度和硬件要求。

設(shè)計(jì)使用了PSoC提供的四個(gè)UDB中的兩個(gè)。一個(gè)用于使用FIFO緩沖數(shù)據(jù)和移位數(shù)據(jù),這樣每個(gè)器件的全部24位(3字節(jié))可一次性寫入。第二個(gè)UDB可使用兩個(gè)比較輸出創(chuàng)建PWM。一個(gè)比較輸出用于創(chuàng)建邏輯0,另一個(gè)用于創(chuàng)建邏輯1。該串行數(shù)據(jù)可用于控制數(shù)字多路復(fù)用器,選擇波形1或0。敬請參見下圖10的方框圖。

圖10 WS2811/12接口使用PSoCUDB的方框圖

UDB中四個(gè)PLD(每個(gè)UDB有2個(gè))的大多數(shù)乘積項(xiàng)可用于控制數(shù)據(jù)通路,生成中斷,提供狀態(tài)和控制功能,但這也使用了這種低成本微控制器中一半的UDB資源。

接下來的工作是明確這一附加硬件能為設(shè)計(jì)節(jié)省多少CPU開銷。以1,000個(gè)LED組成的陣列為例,其刷新頻率為30Hz。如果設(shè)計(jì)使用固件對接口進(jìn)行位拆裂操作,會差不多占用100%的CPU資源。使用PSoC器件中的可編程硬件仍然可以做到每30微秒中斷一次,雖然這也是較重的負(fù)荷,但運(yùn)行在 48MHz的ARMCortex-M0足以應(yīng)付。為測試CPU開銷,我創(chuàng)建了一個(gè)簡單的環(huán)路,以大約30Hz的頻率刷新顯示器。在主環(huán)路中,我觸發(fā)了一個(gè)引腳,然后使用示波器計(jì)算40毫秒內(nèi)的觸發(fā)數(shù)量。然后我禁用中斷,再次運(yùn)行項(xiàng)目,并比較結(jié)果。與使用固件中的位拆裂造成的幾乎100%的CPU占用相比,持續(xù)顯示刷新只占用大約12%的CPU資源。這樣另外88%的CPU周期可用于外部通信和用戶界面。如果為設(shè)計(jì)添加DMA,該開銷可能會從12%下降到 2%或更低。我使用的最廉價(jià)PSoC(約1美元)只包含UDB但未包含DMA,不過一些較大型的部件確實(shí)內(nèi)置有DMA。

隨后我實(shí)際制作了一個(gè)由60x16個(gè)LED(960個(gè)LED)網(wǎng)格組成的真正RGBLED板,用于測試該組件。該組件的運(yùn)行符合預(yù)期,可用作顯示基本的直線、矩形、圓圈以及文本的圖形界面。

圖11 使用960個(gè)RGBLED制作的廣告牌

無論是大型LED板還是簡單的定制界面,部分內(nèi)部可編程硬件會給設(shè)計(jì)性能造成重大影響。不是每一種定制界面都需要多字節(jié)FIFO或全硬件狀態(tài)機(jī),但擁有這種靈活性能為您提供更多設(shè)計(jì)選擇、提高性能,或是讓現(xiàn)有設(shè)計(jì)迅速適合產(chǎn)品需求。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉