天天看點

《51單片機應用開發範例大全(第3版)》——2.3 CPLD實作端口擴充

本節書摘來自異步社群《51單片機應用開發範例大全(第3版)》一書中的第2章,第2.3節,作者 張傑,宋戈,黃鶴松,員玉良,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

單片機與大規模cpld有很強的互補性。單片機具有成本效益高、功能靈活、易于實作人機對話和良好的資料處理能力等優點;cpld/fpga則具有高速度、高可靠性以及開發便捷、靈活等優點。以此兩類器件相結合的電路結構在許多高性能儀器儀表和電子産品中已經被廣泛應用。

單片機與cpld/fpga的接口方式一般有兩種,即總線方式與獨立方式。

1.總線方式

單片機以總線方式與cpld/fpga進行資料與控制資訊通信有如下優點。

(1)速度快。其通信工作時序是純硬體行為,對于mcs-51單片機,隻需一條指令就能完成所需的讀/寫時序,如:

其中,cpld_addr為位址,data_tem為資料暫存單元。

(2)節省cpld晶片的i/o口線。如圖2-13所示,如果将圖中的譯碼器decoder 設定足夠的譯碼輸出,并安排足夠的鎖存器,就能僅通過19根i/o口線在fpga與單片機之間進行各種類型的資料與控制資訊交換。

《51單片機應用開發範例大全(第3版)》——2.3 CPLD實作端口擴充

(3)與非總線方式相比較,單片機程式設計簡捷,控制可靠。

在cpld/fpga中通過邏輯切換,單片機易于與sram或rom接口。這種方式有許多優勢,如利用類似于微處理器系統的dma的工作方式,首先由cpld/fpga與接口的高速a/d等器件進行高速資料采樣,并将資料暫存于sram中,采樣結束後,通過切換,使單片機與sram以總線方式進行資料通信,以便發揮單片機強大的資料處理能力。

根據單片機外部操作時序,ale為位址鎖存使能信号,可利用其下降沿将低8位位址鎖存于cpld/fpga中的位址鎖存器(latch_addres)中;當ale将低8位位址通過p0鎖存的同時,高8位位址已穩定建立于p2口,單片機利用讀指令允許信号psen的低電平從外部rom中将指令從p0口讀入,其指令讀入的時機是在psen的上升沿之前。

接下來,由p2口和p0口分别輸出高8位和低8位資料位址,并由ale的下降沿将p0口的低8位位址鎖存于位址鎖存器。若需從cpld/fpga中讀出資料,單片機則通過指令“data_tem = cpld_addr”使rd信号為低電平,由p0口将鎖存器latch_in1中的資料讀入累加器a;但若欲将累加器a的資料寫進cpld/fpga,則需通過指令“cpld_addr = data_tem”和寫允許信号wr。

這時,dptr中的高8位和低8位資料作為高、低8位位址分别向p2和p0口輸出,然後由wr的低電平并結合譯碼,将累加器a的資料寫入圖2-14中相關的鎖存器。

《51單片機應用開發範例大全(第3版)》——2.3 CPLD實作端口擴充

由8051将資料#5ah寫入目标器件中的第一個寄存器latch_out1的指令是:

當ready為高電平時,8051從目标器件中的寄存器latch_in1将資料讀入的指令是:

2.獨立方式

和總線接口方式不同,幾乎所有單片機都能以獨立接口方式與cpld/fpga進行通信,其通信的時序方式可由所設計的軟體自由決定,形式靈活多樣。其最大的優點是cpld/fpga中的接口邏輯無需遵循單片機内固定總線方式的讀/寫時序。cpld/fpga的邏輯設計與接口的單片機程式設計可以分先後相對獨立地完成。事實上,目前許多流行的單片機已無總線工作方式,如at89c2051、97c2051、z84系列、pic16c5x系列等。

獨立方式的接口設計方法相對比較簡單,在此不作詳細介紹。

繼續閱讀