久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > PLD和數據通路來釋放微控制器中CPU資源

PLD和數據通路來釋放微控制器中CPU資源

作者: 時間:2011-11-17 來源:網絡 收藏
靈活的路由

本文引用地址:http://cqxgywz.com/article/150055.htm

  雖然UDB在兩個子系統都有很多特色,但廣泛的數字路由讓它們如虎添翼。信號可以在之間路由,遍及整個UDB和器件的其它地方,形成了復雜的數字系統互連(DSI)結構。

  實例

  本例中,用一個UDB來創建一個帶重載(reload)功能的8位數字計數器。為了實現這點,連接一個狀態條件回到控制存貯SRAM地址線,如圖5所示。

  

  圖5:用UDB數據通路創建帶重載功能的計數器。

  在這個設計中,A0是計數寄存器,D0是重載寄存器。需要兩個函數,一個用來遞減計數,一個從周期寄存器重載計數器;這些函數在控制儲存RAM里預載了。

  邏輯如下:當A0不為0時,狀態輸出將會變低,在地址0會執行遞減操作。當A0為0時,狀態輸出將為高,在地址1會執行重載操作。

  所有操作都發生在時鐘輸入的上升沿,可以記錄時鐘沿數量。時鐘輸入可以來自各種時鐘源。狀態輸出可以通過DSI路由,包括到DMA和中斷請求輸入。使用數據通路鏈和掩碼模塊,該計數器的大小可以是任何位數,不受限于8的倍數。

  圖5所示為減法計數器。它可以很容易的轉換成加法計數器,可以通過使用不同的狀態輸出(A0= =D0)和控制存儲SRAM里的不同函數:A0=A0+1和A0=A0A0。異或任何值的結果永遠為0。

  通過使用這個簡單的設計可以創造更復雜的應用。以一個紅綠燈為例,紅綠燈周期由綠、黃、紅三種狀態構成,因此需要一個狀態機。每個狀態變化到下一個狀態之前會持續一定時間,所以必需有一個計數器。為了簡單起見,假設“綠燈”時間和“紅燈”是相同,但“黃燈”時間不同。

  只需要使用3個數據通路寄存器(假設為8位計數值)就可以實現這個時序結構。A0為計數寄存器,D0為“綠”和“紅”狀態保持計數器重載值,D1為“黃”狀態保持計數器重載值。模塊框圖如圖6顯示。

  

  圖6:采用UDB PLD和數據通路構建的紅綠燈框圖

  要保存在控制存儲RAM里的操作是:

  A0 = A0 - 1 // 計數

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

  // 計數值

  A0 = D1 //重載“黃”值

  狀態機在PLD里實現。數據通路條件輸出反饋到PLD,以表明需要改變狀態了。PLD也有這樣的邏輯,根據當前的狀態和從數據通路反饋的信號,控制執行哪個數據通路操作和哪個燈要點亮。

  超越基礎

  紅綠燈控制器是一種簡單的應用類型,通常使用編程。然而,我們已經看到,除了初始化代碼,這個功能可以完全和沒關系而可以由智能的可配置外設完成。這個功能可以很容易地擴展以支持附加需求,例如轉換信號、行人行走信號、車輛檢測傳感器、流量/緊急事件轉發器。

  



評論


相關推薦

技術專區

關閉