用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...