平板定制方案-微控制器與FPGA并行通信接口設計
時間:2024-07-22 作者:樂凡信息 瀏覽:192

平板定制方案中微控制器(如單片機)與FPGA在功能上有很強的互補性。微控制器具有性價比高、功能靈活、易于人機對話、良好的數(shù)據(jù)處理能力。FPGA的性能卓越,具有使用靈活、易升級、開發(fā)便捷、高可靠、規(guī)范及高速等性能,使其在系統(tǒng)設計中具有很強的優(yōu)勢。這兩類器件相結合的電路結構在許多高性能儀器儀表和電子產品中廣泛應用,因而它們之間的通信成為系統(tǒng)的關鍵部分。通信通常分為串行和并行兩種,串行接口方式占用的端口較少,但同時也降低了信息的傳送速率;并行接口方式占用的I/O端口資源較多,采用并行雙向的三態(tài)通信方式,既可以滿足高速數(shù)字系統(tǒng)設計要求,又可以使微處理器端口復用,大大減輕了系統(tǒng)設計的難度,具有較強的實用性。

一、平板定制中單片機與FPGA并行單向通信

單片機與 FPGA 并行單向通信接口設計比較簡單,常用的方法有兩種:I/O 方式和存儲器方式。

1.平板定制中I/O口方式

單片機把FPGA看成外部I/O接口器件,單片機向FPGA發(fā)送控制信息,F(xiàn)PGA接收信息并進行相應的處理,或者FPGA向單片機發(fā)送控制信息,單片機接收信息并進行相應的處理,它們之間通信條件與實現(xiàn)的功能取決于設計的約定。

例如,使用FPGA與單片機結合實現(xiàn)8位數(shù)字測頻計的接口傳送信息與交互約定,圖1所示為接口約定。輸出計數(shù)使能信號為CNT_EN,F(xiàn)PGA在CNT_EN上升沿時開始計數(shù),高電平為計數(shù)過程,下降沿計數(shù)結束,此時向單片機發(fā)出中斷請求信號,單片機響應中斷并進入中斷服務程序,依次發(fā)送選擇信號,分別將FPGA的32位測頻數(shù)據(jù)分4次、每次8位,由單片機的P0口讀到4個寄存器中,單片機完成從FPGA讀取數(shù)據(jù)后,退出中斷并等待下一次中斷請求。FPGA發(fā)送數(shù)據(jù)與單片機讀取數(shù)據(jù)的過程如圖2所示,此處FPGA與單片機接口可實現(xiàn)簡單的多路數(shù)據(jù)選擇方式。同理,單片機向FPGA單向發(fā)送數(shù)據(jù)的過程,同樣需要確定接口傳送信息與傳送方式,單片機可直接向FPGA端口賦值,F(xiàn)PGA接收數(shù)據(jù),識別控制信息和數(shù)據(jù)信息,進行相應的處理。



圖1 單片機與FPGA的接口約定



圖2 FPGA發(fā)送數(shù)據(jù)與單片機讀取數(shù)據(jù)的過程


FPGA與單片機的硬件連接時,需要注意它們之間的電平匹配,一般要在FPGA與單片機接口之間串接一個200 Ω的匹配電阻。

2.平板定制中存儲器方式

單片機發(fā)送給FPGA的信息可以分為命令字和數(shù)據(jù)字兩類。命令字告知FPGA應該做什么,例如設置頻率控制字、向 DDS 波形存儲器填充波形數(shù)據(jù)等;數(shù)據(jù)字則向 FPGA 發(fā)送命令字的參數(shù)值,例如頻率控制字的值、波形采樣點的值等。因此,接口模塊應能判斷出單片機發(fā)來的信息是命令字還是數(shù)據(jù)字。一個簡單的方法是:規(guī)定單片機向FPGA發(fā)送的信息時,命令字和數(shù)據(jù)字必須是成對出現(xiàn)的,即發(fā)送一字節(jié)的命令字之后,緊跟一字節(jié)的數(shù)據(jù)字,這樣FPGA的接口程序可以方便地分辨出命令字和數(shù)據(jù)字。

存儲器方式是把FPGA看成外部存儲器,單片機向FPGA發(fā)送信息也就轉換成向外部存儲器寫數(shù)據(jù)。平板定制中單片機對外部存儲器的寫操作時序如圖3所示。由圖3所示的時序圖可以看出,單片機寫外部存儲器的過程是先發(fā)送地址,再發(fā)送數(shù)據(jù),地址信息由ALE的下降沿鎖存,

數(shù)據(jù)信息由的下降沿鎖存。因此,可把要傳遞的命令字作為外存儲器的地址,數(shù)據(jù)字作為數(shù)據(jù),執(zhí)行單片機寫外存儲器指令,完成信息的傳遞。



圖3 單片機對外部存儲器的寫操作時序

二、平板定制中單片機與FPGA并行雙向通信

1.平板定制中并行雙向三態(tài)總線方式通信特點

單片機與FPGA的并行雙向三態(tài)通信接口設計的特點如下。

(1)速度快。其通信工作時序是純硬件行為,對于單片機,只需要一條單字節(jié)指令就能完成所需的讀/寫時序,以51單片機為例,如:

MOV @DPTR,A;

MOV A,@DPTR;

(2)節(jié)省FPGA芯片的I/O口線。僅通過19根I/O口線,就能在FPGA與單片機之間進行各種類型的數(shù)據(jù)與控制信息交換。

(3)相對于非總線方式,單片機編程簡捷、控制可靠。

(4)在FPGA中通過邏輯切換,單片機易與SRAM或ROM連接。這種方式有許多實用之處,例如,利用類似于微處理器系統(tǒng)的DMA的工作方式,首先由FPGA與接口的高速A/D轉換器等器件進行高速數(shù)據(jù)采樣,并將數(shù)據(jù)暫存于SRAM中,采樣結束后再通過切換,使單片機與SRAM以總線方式進行數(shù)據(jù)通信,以便發(fā)揮單片機強大的數(shù)據(jù)處理能力。

2.平板定制中單片機與FPGA之間并行雙向三態(tài)接口的工作原理

單片機與CPLD/FPGA之間采用并行總線方式通信的邏輯設計,要詳細了解單片機的總線讀寫時序,根據(jù)時序圖來設計邏輯結構,其時序電平變化速度與單片機工作時鐘頻率有關。以51系列單片機與FPGA通信為例,圖4為單片機與FPGA并行雙向三態(tài)總線通信原理框圖。ALE為地址鎖存使能信號,可利用其下降沿將低8位地址鎖存于FPGA中的地址鎖存器中。



圖4 單片機與FPGA之間并行雙向三態(tài)總線通信原理框圖

3.平板定制中單片機與FPGA之間并行雙向三態(tài)接口時序

(1)平板定制中FPGA 發(fā)送數(shù)據(jù)。FPGA向單片機發(fā)送數(shù)據(jù),即單片機從 FPGA中讀出數(shù)據(jù),其時序與單片機讀取外部RAM的時序相同。單片機則通過指令“MOVXA,@DPTR”使RD信號為低電平,由P0口將鎖存器中的數(shù)據(jù)讀入累加器A。單片機讀外部RAM時序如圖5所示。



圖5 單片機讀外部RAM時序

(2)平板定制中FPGA 接收數(shù)據(jù)。FPGA接收數(shù)據(jù),即單片機向 FPGA 發(fā)送數(shù)據(jù)時,其時序與單片機寫外部RAM的時序相同。但若欲將累加器A的數(shù)據(jù)寫進FPGA,則需通過指令“MOVX DPTR,A”和寫允許信號。這時,DPTR中的高8位和低8位數(shù)據(jù)作為高、低8位地址分別向P2和P0口輸出,然后由的低電平并結合譯碼,將累加器A的數(shù)據(jù)寫入相關的鎖存器,完成寫操作。單片機寫外部RAM時序如圖6所示。



圖6 單片機寫外部RAM時序

4.平板定制中單片機與FPGA并行雙向三態(tài)接口的VHDL描述

具體編程如下。