用CPLD實現單片機對Flash Rom的讀寫控制
Abstract:Introducing a way of CPLD realizes that Microcontroller controls the read and write of Flash Rom. CPLD realizes that Microcontroller controls the read and write of Flash Rom, which not only is a breakthrough I / O limitations of Microcontroller, but also fully embodies the CPLD ——Logic Control Device not only can expand I / O port, but also has the characteristics of logic functions
引言:
無論哪種類型的單片機,I/O口是有限的。在某些應用場合,單片機的I/O口是不夠用的,這時需要擴展單片機的I/O口,本設計選用CPLD擴展單片機的I/O口,實現單片機對Flash Rom的讀寫控制。之所以選用CPLD, 因為CPLD具有高集成度、高可靠性以及硬件邏輯結構的可描述性等特點。采用CPLD作為接口擴展芯片, 大大減少了所用芯片的種類和數量,縮小了體積, 降低了功耗, 提高了系統的可靠性和整體性。
1 ispMACH 4032ZCPLD
復雜可編程邏輯器件CPLD (Complex Program2mable Logic Device)是一種半定制的專用集成電路ASIC (Application Specific Integrated Circuit) 。其芯片上按一定排列方式集成了大量的門和觸發器等基本邏輯元件。通過軟件編程可以實現這些元件的連接,從而使之完成某個邏輯電路或系統的功能,成為一個可在實際電子系統中使用的ASIC。
本設計采用的是ispMACH 4000Z CPLD。ispMACH 4000Z CPLD系列器件的主要特點是,靜態功耗僅為目前低電壓CPLD的20%,而且運行速度極快。該系列第一種產品ispMACH 4032Z,管腳至管腳的遲延為3.5nS,時鐘至輸出的遲延為3.0nS,建立時間為2.2nS,工作頻率高達265MHz。ispMACH 4032Z目前已經上市,有商用、工業用和車用三種溫度選擇,采用48腳TQFP或球間距為0.8毫米的49球芯片柵格陣列封裝。
2 系統的總體設計
2.1 硬件設計
眾所周之,無論哪種型號的單片機,I/O口是有限的,如果不去擴展I/O口,單片機的應用將受到局限。而CPLD具有豐富的I/O口的邏輯器件,單片機用COLD擴展接口可以大大擴展單片機的實現功能,在單片機對Flash Rom的讀寫控制中,采用CPLD實現單片機對Flash Rom讀寫控制,不僅可以實現I/O口有限的局限,也充分體現了CPLD邏輯控制器件不僅能擴展I/O口,而且具有邏輯功能的特點,系統的設計思想闡述如下:
系統硬件連接框圖如圖
圖1 系統總體設計框圖
上述框圖設計說明如下:利用單片機ADUC831的P2.5、P2.6分別與Flash Rom的寫控制端相連。P0口作為CPLD與單片機I/O相連,P2.0作為CPLD的控制選擇端,P2.7作為CPLD同步控制端,CPLD的輸出A0-A7作為Flash Rom的低8位地址,A8-A15為Flash Rom的高8位地址,D0-D7作為數據的輸入輸出口。
2.2 CPLD軟件設計
ALTERA 公司的CPLD 開發軟件有MAX +PlusII和QuartusII,這里使用MAX+PlussII完成系統的軟件設計, MAX+PlussII支持原理圖輸入、VHDL 語言輸入、狀態圖輸入和混合輸入等輸入方法。VHDL硬件描述語言,與具體的工藝技術和器件無關,易于共享和復用,具有多層次描述系統硬件功能的能力。單片機通過CPLD實現對Flash Rom的控制,在設計中, CPLD需要實現的功能是CPLD對Flash Rom讀和寫,大大縮減了單片機的工作。用VHDL對該功能模塊編程編譯。程序片段如下:
Architecture flash rom is
Signal oel, opl: std_logic
Signal oeh, oph: std_logic
Signal rdw, rdr: std_logic
Begin
Status_select: block
Signal tmp:std_ logic_vector (5 down to)
Signal reg:std_logic_vector (44 down 0)
Tmp<=”01011011000zz01”when reg=”00000”else
”00011011000zz01”when reg=”00000”else
”01010111000zz01”when reg=”00000”else
”11110001000zz01”when reg=”00000”else
”111100110000zz01”
Process (clk)
Begin
If clk’event and clk=’1’then
Reg<=status;
End if;
End process;
2.3單片機程序設計
單片機主要完成系統的控制功能,在實現輸出控制接口時需要與CPLD配合,提供CPLD 需要的數據和地址及控制線。當需要某一組輸出工作時,先將該組地址存入DPTR 中, 再使用指令:MOVX A, @DPTR,同時“WR”被拉低,而CPLD 的通道選擇端口與單片機的P0、P2. 0、P2. 7 相連接。CPLD通過這組信號判斷選擇并且使能Flash Rom,完成Flash Rom讀寫操作。
3 結束語
使用單片機和CPLD結合可以有效地實現過去需要利用單片機和大量外圍接口芯片才能完成的功能。采用CPLD作為接口擴展芯片,大大減少了所用芯片的種類和數量,縮小了體積,降低了功耗,提高了系統的可靠性和整體性。用CPLD實現單片機對Flash Rom的讀寫控制不僅可以實現I/O口有限的局限,也充分體現了CPLD邏輯控制器件不僅能擴展I/O口,而且具有邏輯功能的特點.近年來,隨著采用先進的集成工藝和大批量生產, CPLD 器件成本不斷下降,集成密度、速度和性能都大幅度提高。這樣,一個芯片就可以實現一個復雜的數字電路系統;再加上使用方便的開發工具,給設計修改帶來很大方便,可以大大縮短系統的設計周期,從而極大提高產品的市場競爭力。
參考文獻
[1] 張毅剛,彭喜源,曲春波. 單片機應用技術. 哈爾濱:哈爾濱工業大學出版社。1997
[2] 侯伯亨,顧新. VHDL硬件描述語言與數字邏輯電路設計。西安:西安電子科技大學出版社, 1999。
[3] 陳耀. VHDL語言設計技術.北京:電子工業出版社.2004
文章版權歸西部工控xbgk所有,未經許可不得轉載。