摘 要:現(xiàn)在分離元件在很多電路設(shè)計(jì)中還在普遍使用,完成邏輯轉(zhuǎn)換、地址譯碼、數(shù)據(jù)鎖存等任務(wù),在PLD技術(shù)相當(dāng)成熟的今天,采用PLD代替?zhèn)鹘y(tǒng)分離元器件,將會(huì)極大地減小PCB尺寸,節(jié)約成本。對(duì)CPLD器件和開(kāi)發(fā)工具進(jìn)行研究,提出一種單片機(jī)與CPLD總線(xiàn)接口方案。運(yùn)用該方案設(shè)計(jì)單片機(jī)系統(tǒng)實(shí)現(xiàn)A/D,D/A,LCD等多種外設(shè)的接口,電路簡(jiǎn)潔,并給出CPLD電路設(shè)計(jì)方案,總體電路原理圖和關(guān)鍵程序代碼。
關(guān)鍵詞:CPLD;分離元件;PLD;EDA
中圖分類(lèi)號(hào):TP331.1 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1004-373X(2008)02-034-03
Design of Single Chip Computer Interface Based on CPLD
TIAN Kaikun,XU Haixia
(Electrician and Electronics Experiment Center,Hubei Normal University,Huangshi,435002,China)
Abstract:Many circuit design still use separative components in nowadays,completes the logic to transform,the address decoding,the data lock saves and so on.Today the PLD technology has become more and more mature,using the PLD technology instead of tradational separative components not only reduce the PCB size,but also save the cost.This paper researches CPLD devices and the reference tools,proposes a bus interface between single chip computer and CPLD.The single chip computer system contain A/D,D/A,LCD and something else,adopting this way,making the circuit more easy and clear.This paper also gives CPLD circuit design scheme,circuit theory graphic and the main program code.
Keywords:CPLD;separative components;PLD;EDA
1 引 言
隨著PLD(可編程器件)技術(shù)的成熟,應(yīng)用越來(lái)越廣泛。單片機(jī)系統(tǒng)中,例如RAM,A/D,D/A,LED等常需要一些門(mén)電路作為接口,通常采用諸如74系列、40系列等分離元件實(shí)現(xiàn),往往電路龐大復(fù)雜,不便集成。PLD以可編程特性受到設(shè)計(jì)者的青睞,成為替代分離元件的最佳選擇。
復(fù)雜可編程邏輯器件(Complex Programable Logic Device,CPLD),其內(nèi)部有大量的門(mén)電路,組合邏輯的功能很強(qiáng),能完成任何數(shù)字器件的功能。高性能CPU,簡(jiǎn)單的74 電路,都可以用CPLD 實(shí)現(xiàn)。CPLD 如同一張白紙或是一堆積木,工程師可以通過(guò)傳統(tǒng)的原理圖輸入法,或是硬件描述語(yǔ)言自由地設(shè)計(jì)一個(gè)數(shù)字系統(tǒng)。用戶(hù)可以反復(fù)編程、擦除、使用或在外圍電路連接不變的情況下用不同軟件實(shí)現(xiàn)不同的功能。
CPLD基本都是由E2PROM和FLASH工藝制造,一上電就可以工作,無(wú)需其他芯片配合,使用方便,容易設(shè)計(jì)。
2 CPLD開(kāi)發(fā)工具
CPLD器件的設(shè)計(jì)與開(kāi)發(fā)離不開(kāi)EDA工具軟件,現(xiàn)在有很多支持CPLD/FPGA設(shè)計(jì)的軟件。
在眾多的開(kāi)發(fā)工具中,Xilinx的ISE軟件是非常流行的一種。ISE集成開(kāi)發(fā)軟件是Xilinx公司最新的EDA開(kāi)發(fā)工具,他支持所有的Xilinx芯片,如XC9500,XC9500XL等。
Ateral公司的MaxplusⅡ,QuartusⅡ,也是業(yè)界最著名的CPLD/FPGA開(kāi)發(fā)工具,支持所有的Ateral芯片,如MAX3000,MAX7000,MAX-Ⅱ系列。
由于EDA軟件已經(jīng)發(fā)展得相當(dāng)完善,用戶(hù)甚至可以不用詳細(xì)了解CPLD的內(nèi)部結(jié)構(gòu),也可以用自己熟悉的方法:如原理圖輸入或HDL語(yǔ)言來(lái)完成相當(dāng)優(yōu)秀的CPLD設(shè)計(jì)。
3 單片機(jī)與CPLD接口設(shè)計(jì)
單片機(jī)與CPLD之間可以根據(jù)需要,采用多種不同的接口方式,這里提出一種總線(xiàn)接口方案,采用三總線(xiàn)(數(shù)據(jù)、控制、地址)結(jié)構(gòu),如圖1所示。雙向數(shù)據(jù)總線(xiàn)完成數(shù)據(jù)傳輸,單向控制總線(xiàn)和地址總線(xiàn)通過(guò)CPLD對(duì)外圍對(duì)象控制。
這里以經(jīng)典51系列單片機(jī)和Ateral公司的EPM7064接口為例,設(shè)計(jì)單片機(jī)通過(guò)CPLD實(shí)現(xiàn)地址鎖存、地址譯碼譯碼、LCD,ADC0809,DAC0832的接口設(shè)計(jì),實(shí)現(xiàn)靈活可擴(kuò)展地址編碼。
單片機(jī)P0口為雙向數(shù)據(jù)總線(xiàn),該P(yáng)0口與CPLD的通用I/O口連接,完成數(shù)據(jù)和低8位地址傳送;控制總線(xiàn)包括單片機(jī)讀寫(xiě)控制總線(xiàn)Rd和Wr,以及地址鎖存信號(hào)(Address Lock Enable,ALE),地址總線(xiàn)A15(P2.7)??刂瓶偩€(xiàn)和地址線(xiàn)通過(guò)CPLD的全局輸入信號(hào)引腳輸入,包括全局時(shí)鐘Globle Clk、全局清零輸入Global Clear、全局使能輸入Global OE、特定輸入Ded.Input。這些全局信號(hào)與CPLD里面的每一個(gè)單元相連,當(dāng)用外部的時(shí)鐘觸發(fā)時(shí),用這些信號(hào)比用普通管腳速度快,保證信號(hào)到每個(gè)宏單元的延時(shí)相同并且延時(shí)最短。
4 應(yīng)用系統(tǒng)設(shè)計(jì)
CPLD擴(kuò)展接口系統(tǒng)結(jié)構(gòu)框圖如圖2所示。CPLD實(shí)現(xiàn)地址鎖存,地址譯碼,并產(chǎn)生滿(mǎn)足A/D,D/A,LCD時(shí)序的控制邏輯電路。系統(tǒng)不需要任何分離元件,電路簡(jiǎn)潔緊湊、極大的縮小PCB尺寸、增強(qiáng)系統(tǒng)可靠性。由于CPLD是硬件編程設(shè)計(jì),還可以在CPLD當(dāng)中設(shè)計(jì)硬件加密邏輯,有效防止產(chǎn)品復(fù)制。
4.1 電路設(shè)計(jì)
CPLD內(nèi)部電路如圖3所示,在Max+Plus Ⅱ環(huán)境中,直接調(diào)用集成庫(kù)74373B,實(shí)現(xiàn)地址鎖存,74138完成地址譯碼,地址編排如表1所列;用與門(mén)和或非門(mén)設(shè)計(jì)LCD帶地址使能控制信號(hào);DIV_CLK模塊對(duì)ALE信號(hào)8分頻后提供ADC時(shí)鐘;或非門(mén)設(shè)計(jì)ADC帶地址讀寫(xiě)控制信號(hào);ADC轉(zhuǎn)換完成EOC信號(hào)經(jīng)非門(mén)轉(zhuǎn)換實(shí)現(xiàn)與單片機(jī)外部中斷電平匹配;或門(mén)實(shí)現(xiàn)DAC編址寫(xiě)信號(hào)。
module counter(clkin,clkout);
input clkin;
output clkout;
reg [1:0]i;
reg clkout;
always@(posedge clkin)
begin
i<=i+1;
if(i==3)clkout=!clkout;
end
endmodule
電路圖如圖5所示,CPLD通用I/O與外設(shè)連接可以根據(jù)實(shí)際PCB布線(xiàn)需要,靈活選擇。
4.2 單片機(jī)程序設(shè)計(jì)
4.2.1 ADC0809編程控制
設(shè)定通道并啟動(dòng)一次A/D轉(zhuǎn)換
MOV DPTR,#8001H[JY];此處地址由硬件決定
MOV A,#CH[JY];設(shè)定通道CH,0~7有效
MOVX @DPTR,A[JY];鎖定通道同時(shí)啟動(dòng)1次A/D轉(zhuǎn)換
4.2.2 LCD編程控制
LCD接口如圖3所示,RS接P2.0,RW接P2.1,得LCD命令、數(shù)據(jù)讀寫(xiě)驅(qū)動(dòng)如下:
MOV DPTR,#8000H;
MOV A,#CMD
MOVX @DPTR,A[JY];寫(xiě)命令#CMD
MOV DPTR,#8100H;
MOV A,#DATA
MOVX @DPTR,A[JY];寫(xiě)數(shù)據(jù)#DATA
MOV DPTR,#8200H;
MOVX A,@DPTR[JY];讀命令
MOV DPTR,#8300H;
MOVX A,@DPTR[JY];讀數(shù)據(jù)
4.2.3 ADC0832編程控制
MOV DPTR,#8002H[JY];此處地址由硬件決定
MOV A,#DATA[JY];#DATA為DAC數(shù)據(jù)
MOVX @DPTR,A[JY];將數(shù)據(jù)寫(xiě)入ADC0832
通過(guò)CPLD擴(kuò)展單片機(jī)接口,電路簡(jiǎn)潔靈活,為二次開(kāi)發(fā)提供了便利,節(jié)省了PCB面積。
參 考 文 獻(xiàn)
[1]程耕國(guó),劉濤.CPLD擴(kuò)展51 單片機(jī)尋址范圍[J].微計(jì)算機(jī)信息,2006(5):185-186.
[2]周立功.單片機(jī)與CPLD 綜合應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2005.
[3]王淑文.基于CPLD的數(shù)字系統(tǒng)設(shè)計(jì)\\[J\\].現(xiàn)代電子技術(shù),2007,30,(12):184-185,188.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。