日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]PLD和數(shù)據(jù)通路來(lái)釋放微控制器中CPU資源

本文介紹了一種采用PLD和數(shù)據(jù)通路(datapath)來(lái)解放微控制器系統(tǒng)中CPU任務(wù)的方案。在大多數(shù)微控制器結(jié)構(gòu)中,智能的CPU身邊總會(huì)環(huán)繞著一系列不可編程的外設(shè)。外設(shè)的功能有限,通常它們只負(fù)責(zé)數(shù)據(jù)形式的轉(zhuǎn)換。例如,I2C外設(shè)只是實(shí)現(xiàn)串行和并行數(shù)據(jù)格式之間的轉(zhuǎn)換,而ADC則實(shí)現(xiàn)模擬到數(shù)字信號(hào)的轉(zhuǎn)換。CPU因此不得不完成所有的數(shù)據(jù)處理工作,實(shí)際上它還能做些更有用的事情。此外,管理外設(shè)將會(huì)導(dǎo)致CPU固件異常復(fù)雜,并可能需要一個(gè)快速高效的CPU在實(shí)時(shí)的時(shí)序限制下執(zhí)行這些固件。這又會(huì)導(dǎo)致更多的潛在程序漏洞,從而需要使用更復(fù)雜和昂貴的調(diào)試設(shè)備等。

  但是如果外設(shè)具備足夠的復(fù)雜度、靈活度與智能,是否能有效地減輕CPU的許多任務(wù)呢?本文將展示如何把智能、靈活、低成本、可定制的數(shù)字外圍設(shè)備設(shè)計(jì)到微控制器并配置,以幫助實(shí)現(xiàn)穩(wěn)定的分布式系統(tǒng)設(shè)計(jì)。

  智能邏輯選擇—PLD還是數(shù)據(jù)通路?

  通常有兩種方法構(gòu)建一個(gè)智能的可配置外設(shè)。首先是使用PLD。如圖1所示,PLD有一個(gè)驅(qū)動(dòng)若干宏單元的積和(sum of products)邏輯門(mén)陣列。“T”和“C”符號(hào)表示每一個(gè)乘積項(xiàng)都能產(chǎn)生一個(gè)真值或補(bǔ)數(shù)(反向)輸出,這樣無(wú)論是正、負(fù)邏輯都可以支持。

  

 

  圖1:一個(gè)PLD實(shí)例(包括12個(gè)輸出項(xiàng)、8個(gè)乘積項(xiàng)、4個(gè)宏單元)。

  圖1顯示了一個(gè)簡(jiǎn)單的PLD例子。PLD可以有成百上千的宏單元,每個(gè)宏單元最高由16個(gè)乘積項(xiàng)驅(qū)動(dòng)。乘積項(xiàng)里的與門(mén)和或門(mén)可以互聯(lián)形成高度靈活的定制邏輯功能。宏單元是典型的時(shí)鐘架構(gòu),它們的輸出可以反饋到乘積項(xiàng)陣列,因此允許創(chuàng)建狀態(tài)機(jī)。

  大規(guī)模PLD可以用來(lái)形成復(fù)雜的邏輯功能,甚至是完全的CPU,因此PLD當(dāng)然可以用來(lái)實(shí)現(xiàn)智能數(shù)字外設(shè)。然而,很多門(mén)可能只是實(shí)現(xiàn)諸如計(jì)數(shù)器或加法器等簡(jiǎn)單的邏輯功能,但對(duì)于更復(fù)雜功能的實(shí)現(xiàn),基于PLD的方案就會(huì)變得很貴。從某種程度上說(shuō),使用真正的CPU會(huì)更合理。

  CPU的一個(gè)非常簡(jiǎn)單的形式是基于算術(shù)邏輯單元(ALU)的數(shù)據(jù)通路,也稱為納米處理器(nano-processor)。數(shù)據(jù)通路只是實(shí)現(xiàn)幾個(gè)常用函數(shù),但會(huì)比使用PLD實(shí)現(xiàn)的效率更高。圖2:顯示了一個(gè)基于ALU的簡(jiǎn)單的數(shù)據(jù)通路。典型的ALU可以進(jìn)行各種操作,通常是8位操作:向上計(jì)數(shù)(遞增)、向下計(jì)數(shù)(遞減)、加、減、邏輯與、邏輯或、邏輯異或,左位移、右位移。這里有兩個(gè)8位累加器,它們能夠?yàn)锳LU輸出充當(dāng)輸入數(shù)據(jù)寄存器或存儲(chǔ)器。一個(gè)輸入時(shí)鐘信號(hào)沿產(chǎn)生一次操作。函數(shù)選擇寄存器用來(lái)控制:

  

 

  圖2:基于ALU的數(shù)據(jù)通路。

  * 產(chǎn)生什么操作。

  * 該操作的源寄存器。

  * 輸出的目的寄存器。[!--empirenews.page--]

根據(jù)數(shù)據(jù)通路的具體設(shè)計(jì),其可能會(huì)做一系列復(fù)雜操作,如表1顯示。

 

  

 

  表1:數(shù)據(jù)通路函數(shù)的實(shí)現(xiàn)舉例。

  這個(gè)函數(shù)選擇模塊實(shí)際上可以是一個(gè)小容量的SRAM,預(yù)加載所需的函數(shù)選擇位,SRAM的地址線可以用來(lái)選擇運(yùn)行哪個(gè)操作。最后,多數(shù)據(jù)通路可以用進(jìn)位和移位信號(hào)鏈在一起,以便可以進(jìn)行多字節(jié)操作數(shù)。

  由于數(shù)據(jù)通路只有少數(shù)特定功能函數(shù),很容易優(yōu)化設(shè)計(jì),因此其創(chuàng)建成本較低。然而,對(duì)于實(shí)現(xiàn)復(fù)雜的邏輯,數(shù)據(jù)通路遠(yuǎn)遠(yuǎn)沒(méi)有PLD那么靈活。那么,對(duì)于創(chuàng)建智能、靈活、低成本的數(shù)字外設(shè)來(lái)說(shuō),哪一種方法是更好的呢?是PLD還是數(shù)據(jù)通路?答案是,將兩者相結(jié)合。下面是一個(gè)實(shí)例,來(lái)看看是如何實(shí)現(xiàn)的。

  通用數(shù)字模塊

  同時(shí)使用PLD和數(shù)據(jù)通路的系統(tǒng)實(shí)例是賽普拉斯半導(dǎo)體的PSoC3和PSoC5芯片。每個(gè)系統(tǒng)包含最高24個(gè)通用數(shù)字邏輯子系統(tǒng),稱為通用數(shù)字模塊(UDB),其結(jié)構(gòu)如圖3所示。一個(gè)UDB包含兩個(gè)圖1所示的PLD,一個(gè)數(shù)據(jù)通路以及狀態(tài)機(jī)和控制寄存器。有兩個(gè)鏈路路徑,一個(gè)用于PLD,一個(gè)用于數(shù)據(jù)通路。由一個(gè)路由通道來(lái)連接各UDB子塊之間以及UDB之間的信號(hào)。PLD配置、數(shù)據(jù)通路和路由通過(guò)寫(xiě)入U(xiǎn)DB配置寄存器來(lái)實(shí)現(xiàn)。

  UDB的PLD設(shè)計(jì)在圖1中進(jìn)行了描述。如圖4,UDB數(shù)據(jù)通路類似于圖2所示的基本的數(shù)據(jù)通路,但是它更精密復(fù)雜,因?yàn)閾碛懈嗉拇嫫骱透嗟墓δ堋?/p>

  

 

  圖4:UDB數(shù)據(jù)通路框圖。

  * 8位ALU可以實(shí)現(xiàn)所有的七個(gè)基本函數(shù)—遞增、遞減、加、減、與、或以及異或,并且它有單獨(dú)的位移和位掩碼模塊來(lái)進(jìn)行ALU結(jié)果后處理(8位ALU傳輸功能只需通過(guò)ALU傳送一個(gè)值到位移和位掩碼模塊)。位移模塊可以做左位移、右位移、半字節(jié)交換和傳輸。掩碼模塊可以和單獨(dú)的掩碼寄存器里的內(nèi)容逐位相與(圖中未顯示)。

  * 操作可以使用兩個(gè)累加器(A0,A1)和兩個(gè)數(shù)據(jù)寄存器(D0,D1)來(lái)完成。兩個(gè)FIFO寄存器(F0、F1)可用來(lái)在數(shù)據(jù)通路和CPU之間傳輸數(shù)據(jù)。FIFO深度可達(dá)4字節(jié)。這一結(jié)構(gòu)可以使多任務(wù)處理變得簡(jiǎn)單;在不同的時(shí)間,獨(dú)立操作可以在寄存器子集完成。例如,A0、D0、F0可以用于一個(gè)任務(wù),而A1、D1、F1則可用于不同的任務(wù)。

  * 廣泛的狀態(tài)條件(例如:比較、零檢測(cè)、所有個(gè)體檢測(cè)、溢出檢測(cè))可以應(yīng)用到累加器,數(shù)據(jù)寄存器,以及路由到器件其它地方。[!--empirenews.page--]靈活的路由

 

  雖然UDB在PLD和數(shù)據(jù)通路兩個(gè)子系統(tǒng)都有很多特色,但廣泛的數(shù)字路由讓它們?nèi)缁⑻硪怼P盘?hào)可以在PLD和數(shù)據(jù)通路之間路由,遍及整個(gè)UDB和器件的其它地方,形成了復(fù)雜的數(shù)字系統(tǒng)互連(DSI)結(jié)構(gòu)。

  實(shí)例

  本例中,用一個(gè)UDB數(shù)據(jù)通路來(lái)創(chuàng)建一個(gè)帶重載(reload)功能的8位數(shù)字計(jì)數(shù)器。為了實(shí)現(xiàn)這點(diǎn),連接一個(gè)狀態(tài)條件回到控制存貯SRAM地址線,如圖5所示。

  

 

  圖5:用UDB數(shù)據(jù)通路創(chuàng)建帶重載功能的計(jì)數(shù)器。

  在這個(gè)設(shè)計(jì)中,A0是計(jì)數(shù)寄存器,D0是重載寄存器。需要兩個(gè)函數(shù),一個(gè)用來(lái)遞減計(jì)數(shù),一個(gè)從周期寄存器重載計(jì)數(shù)器;這些函數(shù)在控制儲(chǔ)存RAM里預(yù)載了。

  邏輯如下:當(dāng)A0不為0時(shí),狀態(tài)輸出將會(huì)變低,在地址0會(huì)執(zhí)行遞減操作。當(dāng)A0為0時(shí),狀態(tài)輸出將為高,在地址1會(huì)執(zhí)行重載操作。

  所有操作都發(fā)生在時(shí)鐘輸入的上升沿,可以記錄時(shí)鐘沿?cái)?shù)量。時(shí)鐘輸入可以來(lái)自各種時(shí)鐘源。狀態(tài)輸出可以通過(guò)DSI路由,包括到DMA和中斷請(qǐng)求輸入。使用數(shù)據(jù)通路鏈和掩碼模塊,該計(jì)數(shù)器的大小可以是任何位數(shù),不受限于8的倍數(shù)。

  圖5所示為減法計(jì)數(shù)器。它可以很容易的轉(zhuǎn)換成加法計(jì)數(shù)器,可以通過(guò)使用不同的狀態(tài)輸出(A0= =D0)和控制存儲(chǔ)SRAM里的不同函數(shù):A0=A0+1和A0=A0A0。異或任何值的結(jié)果永遠(yuǎn)為0。

  通過(guò)使用PLD這個(gè)簡(jiǎn)單的設(shè)計(jì)可以創(chuàng)造更復(fù)雜的應(yīng)用。以一個(gè)紅綠燈控制器為例,紅綠燈控制器周期由綠、黃、紅三種狀態(tài)構(gòu)成,因此需要一個(gè)狀態(tài)機(jī)。每個(gè)狀態(tài)變化到下一個(gè)狀態(tài)之前會(huì)持續(xù)一定時(shí)間,所以必需有一個(gè)計(jì)數(shù)器。為了簡(jiǎn)單起見(jiàn),假設(shè)“綠燈”時(shí)間和“紅燈”是相同,但“黃燈”時(shí)間不同。

  只需要使用3個(gè)數(shù)據(jù)通路寄存器(假設(shè)為8位計(jì)數(shù)值)就可以實(shí)現(xiàn)這個(gè)時(shí)序結(jié)構(gòu)。A0為計(jì)數(shù)寄存器,D0為“綠”和“紅”狀態(tài)保持計(jì)數(shù)器重載值,D1為“黃”狀態(tài)保持計(jì)數(shù)器重載值。模塊框圖如圖6顯示。

  

 

  圖6:采用UDB PLD和數(shù)據(jù)通路構(gòu)建的紅綠燈控制器框圖

  要保存在控制存儲(chǔ)RAM里的操作是:

  A0 = A0 - 1 // 計(jì)數(shù)

  A0 = D0 // 重載“綠”或“紅”

  // 計(jì)數(shù)值

  A0 = D1 //重載“黃”值

  狀態(tài)機(jī)在PLD里實(shí)現(xiàn)。數(shù)據(jù)通路條件輸出反饋到PLD,以表明需要改變狀態(tài)了。PLD也有這樣的邏輯,根據(jù)當(dāng)前的狀態(tài)和從數(shù)據(jù)通路反饋的信號(hào),控制執(zhí)行哪個(gè)數(shù)據(jù)通路操作和哪個(gè)燈要點(diǎn)亮。

  超越基礎(chǔ)

  紅綠燈控制器是一種簡(jiǎn)單的應(yīng)用類型,通常使用CPU編程。然而,我們已經(jīng)看到,除了初始化代碼,這個(gè)功能可以完全和CPU沒(méi)關(guān)系而可以由智能的可配置外設(shè)完成。這個(gè)功能可以很容易地?cái)U(kuò)展以支持附加需求,例如轉(zhuǎn)換信號(hào)、行人行走信號(hào)、車(chē)輛檢測(cè)傳感器、流量/緊急事件轉(zhuǎn)發(fā)器。

   [!--empirenews.page--]CPU需要做什么

 

  通過(guò)使用PLD和數(shù)據(jù)通路的有效組合,可以創(chuàng)建智能的、靈活的、低成本的外設(shè),以減輕CPU的負(fù)擔(dān)。然而,如果這么多的功能都由外設(shè)處理了,那還留著CPU做什么呢?在許多情況下,CPU不需要做很多事,在某些情況下系統(tǒng)初始化后,CPU就可以關(guān)掉了。不過(guò),更實(shí)用的方案是使用CPU做CPU能做得最好的事情,例如:

  * 復(fù)雜的計(jì)算

  * 字符串和文本處理

  * 數(shù)據(jù)庫(kù)管理

  * 通信管理

  * 系統(tǒng)管理

  例如,在我們的紅綠燈應(yīng)用中,CPU可以用于以下幾個(gè)方面:

  * 檢測(cè)車(chē)輛闖紅燈

  * 使用相機(jī)拍攝牌照

  * 從照片上提取車(chē)牌文字信息

  * 從國(guó)家數(shù)據(jù)庫(kù)中查閱車(chē)主信息,以及向車(chē)主發(fā)送罰單

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

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(chē)(EV)作為新能源汽車(chē)的重要代表,正逐漸成為全球汽車(chē)產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車(chē)的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車(chē)的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車(chē) 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車(chē)場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周?chē)娮釉O(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉