用CPLD實現微控制器讀寫模組

2021-04-01 09:05:25 字數 3834 閱讀 8523

用cpld實現微控制器讀寫模組

摘要:介紹實現微控制器與xilinx公司xc9500系列可程式設計邏輯器件的讀寫邏輯功能模組的介面設計,以及xilinx公司的xc9500系列可程式設計邏輯器件的開發流程。

1 概述

cpld(複雜可程式設計邏輯電路)是一種具有豐富的可程式設計i/o引腳的可程式設計邏輯器件,具有在系統可程式設計、使用方便靈活的特點;不但可實現常規的邏輯器件功能,還可實現複雜的時序邏輯功能。把cpld應用於嵌入式應用系統,同微控制器結合起來,更能體現其在系統可程式設計、使用方便靈活的特點。cpld同微控制器介面,可以作為微控制器的乙個外設,實現微控制器所要求的功能。例如,實現常用的位址解碼、鎖存器、8255等功能;也可實現加密、解密及擴充套件序列口等微控制器所要求的特殊功能。實現嵌入式應用系統的靈活性,也提高了嵌入式應用系統的效能。

cpld(複雜可程式設計邏輯電路)是一種具有豐富的可程式設計i/o引腳的可程式設計邏輯器件,具有在系統可程式設計、使用方便靈活的特點;不但可實現常規的邏輯器件功能,還可實現複雜的時序邏輯功能。把cpld應用於嵌入式應用系統,同微控制器結合起來,更能體現其在系統可程式設計、使用方便靈活的特點。cpld同微控制器介面,可以作為微控制器的乙個外設,實現微控制器所要求的功能。例如,實現常用的位址解碼、鎖存器、8255等功能;也可實現加密、解密及擴充套件序列口等微控制器所要求的特殊功能。實現了嵌入式應用系統的靈活性,也提高了嵌入式應用系統的效能。]

2 xilinx公司的可程式設計邏輯器件

xilinx公司的xc9500系列可程式設計邏輯器件是一款高效能、有特點的可程式設計邏輯器件。它的系統結構如圖1所示。從結構上看,它包含三種單元:巨集單元、可程式設計i/o單元和可程式設計的內部連線。它的主要特點是:

①在所有可程式設計引腳之間pin-pin延時最短可為5ns;系統的時鐘速度可達到100mhz。

②xc9500系列的容量範圍為36~288個巨集單元

③5v在系統可程式設計。可以程式設計10000次。

④具有強大的強腳鎖定能力。

⑤每個巨集單元都有可程式設計低功耗模式。

⑥沒有用的引腳有程式設計接地能力。

xilinx的xc9500系列可程式設計邏輯器件的主要效能如表1所列。

表1 xilinx xc9500系列器件

項  目

xc9536

xc9572

xc95108

xc95144

xc95216

xc95288

暫存器/個

3672

108144

216288

可用門數/個

8001600

2400

3200

4800

6400

巨集單元數/個

3672

108144

216288

fpd/ns

57.5

7.57.5

1010

tsu/ns

3.54.5

4.54.5

6.06.0

tco/ns

4.04.5

4.54.5

6.06.0

f**t/mhz

100125

125125

111.1

111.1

fsystem/mhz

10083.3

83.3

83.3

66.7

66.7

注:f**t=16位計數器最高工作頻率;fsystem=整個系統的最高工作效率。

3 cpld同微控制器介面設計

cpld同微控制器介面設計中,微控制器採用atmel公司的at89c52,cpld採用xilinx公司的xc95216。該cpld晶元結構及效能見圖1和表1。at89c52通過ale、cs、rd、we、p0口(資料位址復用)同xc95216晶元相連線。

ale:位址鎖存訊號。

cs:片選訊號。

rd:讀訊號。 wr:寫訊號。

本例的設計思想是,在xc95216設定兩個控制暫存器,通過微控制器對兩個控制暫存器的讀寫來完成對其它過程的控制。

xc95216設定的兩個控制暫存器,可以作內部暫存器,也可以直接是對映為i/o口。

4 cpld同微控制器介面設定結果

本例中,使用xilinx公司提供的fundation ise 4.2i+modelsim 5.5f軟體實現設計。實現設計的原始檔模組如下:

/**************************

//mcu和xc95216介面程式

//目的:mcu讀寫xc95216

/**************************/

module mcurw(mcu_data,ale,cs,rd,we,conreg1,conreg2);

inout[7:0]mcu_data;//微控制器的位址資料復用訊號

output[7:0]conreg1,conreg2;//內部控制暫存器

input ale; //微控制器的位址鎖存訊號

input cs; //微控制器的片選訊號

input rd; //微控制器的讀訊號

input we; //微控制器的寫訊號

reg[7:0]lamcu_data; //內部控制暫存器

reg[7:0]addressreg; //內部位址鎖存暫存器

reg[7:0]conreg1; //內部控制暫存器

reg[7:0]conreg2; //內部控制暫存器

assign mcu_data=rd?8'bzzzzzzzz:lamcu_data;

initial //暫存器初始化

begin

lamcu_data<=0;

addressreg<=0;

conreg1<=0;

conreg2<=0;

endalways@(negedge ale)

begin

addressreg<=mcu_data; //位址鎖存

endalways@(posedge we)

begin

if(!cs &&addressreg[0]= =0)) lamcu_data

<=conreg1; //從位址為0的conreg1暫存器讀資料

else if(!cs&&(addressreg[0]= =1))lamcu_data<=conreg2;

//從位址為1的conreg2暫存器讀資料

else lamcu_data<=8'bzzzzzzzz;

endelse

lamcu_data<=8'bzzzzzzzz;

endendmodule

使用modelsim 5.5f**結果如圖3和圖4所示。圖中ale、cs、rd、we、mcu_data是測試激勵源訊號,代表at89c52介面訊號;conreg1和conreg2的內部暫存器;addressreg是內部位址鎖存暫存器。

圖3是conreg1寫過程。首先,在ale訊號的下降沿,鎖存mcu_data的資料到addressreg內部位址鎖存暫存器。然後,在we訊號的上公升沿,把mcu_data(0xaa)的資料鎖存到暫存器conreg1。

圖4是conreg1讀過程。首先,在ale訊號的下降沿,鎖存mcu_data(0x00)的資料到addressreg內部位址鎖存暫存器。然後,在rd訊號的低電平期間,把mcu_data(0xaa)的資料鎖存到暫存器conreg1。

從圖3和圖4可以看出,對conreg1暫存器的讀、寫過程完全滿足進序要求,conreg2的讀寫過程同conreg1一樣,也完全滿足時序要求,實現了期望的功能。

結語

本文實現cpld與微控制器介面設計是筆者設計的高速取樣裝置的一部分,經實際驗證完全正確。簡單地修改該模組,筆者已成功地將其應用於多個cpld或fpga與微控制器介面的專案中。

微控制器藍芽模組

藍芽轉串列埠 ttl 模組,藍芽轉串列埠,不需要知道藍芽協議,只需要知道串列埠協議就好。我所用的是bt06,只能做從機,藍芽接收資料。bt06藍芽模組是專為智慧型無線資料傳輸而打造,遵循v3.0 藍芽規範。本模組支援uart介面,並支援spp藍芽串列埠協議,具有成本低 體積小 功耗低 收發靈敏性高等...

微控制器控制U盤 微控制器讀寫U盤 高速U盤讀寫模組

微控制器讀寫u盤的模組 usb118 不用電腦也能讀寫u盤中的檔案!型 號 usb118ad usb118a 簡 介 目前,基於usb2.0介面的移動儲存裝置已經被廣泛使用,尤其是採用usb flash技術的u盤產品的容量由幾年前的16m增加到現在的4g以上。我們知道,u盤通常是作為計算機的外部儲存...

1254微控制器用什麼編碼 微控制器小知識總結

rst復位電路 51微控制器是高電平復位,低電平正常工作 上電瞬間以及按下按鍵 電容相當於導線 rst為高電平。按鍵按下的瞬間會產生大電流衝擊,會區域性產生較大的電磁干擾。為了減小這種干擾,加乙個乙個限流電阻。有關ram和flash stc89c52rc系列微控制器有512b的ram以及8k的fla...