摘要:介紹一種用CPLD實(shí)現(xiàn)單片機(jī)對(duì)Flash Rom的讀寫控制方法。用CPLD實(shí)現(xiàn)單片機(jī)對(duì)Flash Rom的讀寫控制,不僅可以突破單片機(jī)I/O有限的局限,也充分體現(xiàn)了CPLD邏輯控制器件不僅可以擴(kuò)展I/O口,而且具有邏輯功能的特點(diǎn)。
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
引言:
無論哪種類型的單片機(jī),I/O口是有限的。在某些應(yīng)用場合,單片機(jī)的I/O口是不夠用的,這時(shí)需要擴(kuò)展單片機(jī)的I/O口,本設(shè)計(jì)選用CPLD擴(kuò)展單片機(jī)的I/O口,實(shí)現(xiàn)單片機(jī)對(duì)Flash Rom的讀寫控制。之所以選用CPLD, 因?yàn)镃PLD具有高集成度、高可靠性以及硬件邏輯結(jié)構(gòu)的可描述性等特點(diǎn)。采用CPLD作為接口擴(kuò)展芯片, 大大減少了所用芯片的種類和數(shù)量,縮小了體積, 降低了功耗, 提高了系統(tǒng)的可靠性和整體性。
1 ispMACH 4032ZCPLD
復(fù)雜可編程邏輯器件CPLD (Complex Program2mable Logic Device)是一種半定制的專用集成電路ASIC (Application Specific Integrated Circuit) 。其芯片上按一定排列方式集成了大量的門和觸發(fā)器等基本邏輯元件。通過軟件編程可以實(shí)現(xiàn)這些元件的連接,從而使之完成某個(gè)邏輯電路或系統(tǒng)的功能,成為一個(gè)可在實(shí)際電子系統(tǒng)中使用的ASIC。
本設(shè)計(jì)采用的是ispMACH 4000Z CPLD。ispMACH 4000Z CPLD系列器件的主要特點(diǎn)是,靜態(tài)功耗僅為目前低電壓CPLD的20%,而且運(yùn)行速度極快。該系列第一種產(chǎn)品ispMACH 4032Z,管腳至管腳的遲延為3.5nS,時(shí)鐘至輸出的遲延為3.0nS,建立時(shí)間為2.2nS,工作頻率高達(dá)265MHz。ispMACH 4032Z目前已經(jīng)上市,有商用、工業(yè)用和車用三種溫度選擇,采用48腳TQFP或球間距為0.8毫米的49球芯片柵格陣列封裝。
2 系統(tǒng)的總體設(shè)計(jì)
2.1 硬件設(shè)計(jì)
眾所周之,無論哪種型號(hào)的單片機(jī),I/O口是有限的,如果不去擴(kuò)展I/O口,單片機(jī)的應(yīng)用將受到局限。而CPLD具有豐富的I/O口的邏輯器件,單片機(jī)用COLD擴(kuò)展接口可以大大擴(kuò)展單片機(jī)的實(shí)現(xiàn)功能,在單片機(jī)對(duì)Flash Rom的讀寫控制中,采用CPLD實(shí)現(xiàn)單片機(jī)對(duì)Flash Rom讀寫控制,不僅可以實(shí)現(xiàn)I/O口有限的局限,也充分體現(xiàn)了CPLD邏輯控制器件不僅能擴(kuò)展I/O口,而且具有邏輯功能的特點(diǎn),系統(tǒng)的設(shè)計(jì)思想闡述如下:
系統(tǒng)硬件連接框圖如圖
[align=center]

圖1 系統(tǒng)總體設(shè)計(jì)框圖[/align]
上述框圖設(shè)計(jì)說明如下:利用單片機(jī)ADUC831的P2.5、P2.6分別與Flash Rom的寫控制端相連。P0口作為CPLD與單片機(jī)I/O相連,P2.0作為CPLD的控制選擇端,P2.7作為CPLD同步控制端,CPLD的輸出A0-A7作為Flash Rom的低8位地址,A8-A15為Flash Rom的高8位地址,D0-D7作為數(shù)據(jù)的輸入輸出口。
2.2 CPLD軟件設(shè)計(jì)
ALTERA 公司的CPLD 開發(fā)軟件有MAX +PlusII和QuartusII,這里使用MAX+PlussII完成系統(tǒng)的軟件設(shè)計(jì), MAX+PlussII支持原理圖輸入、VHDL 語言輸入、狀態(tài)圖輸入和混合輸入等輸入方法。VHDL硬件描述語言,與具體的工藝技術(shù)和器件無關(guān),易于共享和復(fù)用,具有多層次描述系統(tǒng)硬件功能的能力。單片機(jī)通過CPLD實(shí)現(xiàn)對(duì)Flash Rom的控制,在設(shè)計(jì)中, CPLD需要實(shí)現(xiàn)的功能是CPLD對(duì)Flash Rom讀和寫,大大縮減了單片機(jī)的工作。用VHDL對(duì)該功能模塊編程編譯。程序片段如下:
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單片機(jī)程序設(shè)計(jì)
單片機(jī)主要完成系統(tǒng)的控制功能,在實(shí)現(xiàn)輸出控制接口時(shí)需要與CPLD配合,提供CPLD 需要的數(shù)據(jù)和地址及控制線。當(dāng)需要某一組輸出工作時(shí),先將該組地址存入DPTR 中, 再使用指令:MOVX A, @DPTR,同時(shí)“WR”被拉低,而CPLD 的通道選擇端口與單片機(jī)的P0、P2. 0、P2. 7 相連接。CPLD通過這組信號(hào)判斷選擇并且使能Flash Rom,完成Flash Rom讀寫操作。
3 結(jié)束語
使用單片機(jī)和CPLD結(jié)合可以有效地實(shí)現(xiàn)過去需要利用單片機(jī)和大量外圍接口芯片才能完成的功能。采用CPLD作為接口擴(kuò)展芯片,大大減少了所用芯片的種類和數(shù)量,縮小了體積,降低了功耗,提高了系統(tǒng)的可靠性和整體性。用CPLD實(shí)現(xiàn)單片機(jī)對(duì)Flash Rom的讀寫控制不僅可以實(shí)現(xiàn)I/O口有限的局限,也充分體現(xiàn)了CPLD邏輯控制器件不僅能擴(kuò)展I/O口,而且具有邏輯功能的特點(diǎn).近年來,隨著采用先進(jìn)的集成工藝和大批量生產(chǎn), CPLD 器件成本不斷下降,集成密度、速度和性能都大幅度提高。這樣,一個(gè)芯片就可以實(shí)現(xiàn)一個(gè)復(fù)雜的數(shù)字電路系統(tǒng);再加上使用方便的開發(fā)工具,給設(shè)計(jì)修改帶來很大方便,可以大大縮短系統(tǒng)的設(shè)計(jì)周期,從而極大提高產(chǎn)品的市場競爭力。
參考文獻(xiàn)
[1] 張毅剛,彭喜源,曲春波. 單片機(jī)應(yīng)用技術(shù). 哈爾濱:哈爾濱工業(yè)大學(xué)出版社。1997
[2] 侯伯亨,顧新. VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計(jì)。西安:西安電子科技大學(xué)出版社, 1999。
[3] 陳耀. VHDL語言設(shè)計(jì)技術(shù).北京:電子工業(yè)出版社.2004