崔秀敏+朱向榮
摘 要:?jiǎn)纹瑱C(jī)具有邏輯控制功能靈活、成本低、易于產(chǎn)品化等優(yōu)點(diǎn),但單片機(jī)作為控制核心,硬件連線復(fù)雜、可靠性差,實(shí)際應(yīng)用中需要外加擴(kuò)展芯片,增加控制系統(tǒng)的體積;CPLD具有集成度高、可靠性好及工作速度快、與外圍電路接口方便的優(yōu)點(diǎn);兩者的組合使用,能夠充分發(fā)揮兩種器件各自的優(yōu)點(diǎn)。該文就是基于此提出了單片機(jī)與CPLD協(xié)處理的研究及實(shí)現(xiàn)方法。
關(guān)鍵詞:CPLD 單片機(jī) 協(xié)處理
中圖分類號(hào):TP910 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2016)12(b)-0043-02
單片微型計(jì)算機(jī)(單片機(jī))自問(wèn)世以來(lái),因其小巧靈活、成本低、控制能力強(qiáng)、易于產(chǎn)品化等優(yōu)勢(shì),在社會(huì)各領(lǐng)域中得到廣泛的應(yīng)用。然而,隨著信息時(shí)代的到來(lái),傳統(tǒng)單片機(jī)固有的結(jié)構(gòu)缺陷,使其呈現(xiàn)出諸多弊端, 單片機(jī)的端口數(shù)目、內(nèi)部定時(shí)器和中斷源的數(shù)目都有限,在應(yīng)用中往往要加外圍擴(kuò)展芯片,這就增加了系統(tǒng)硬件的復(fù)雜程度;若選擇CPLD作為系統(tǒng)控制核心,不僅可以簡(jiǎn)化系統(tǒng)設(shè)計(jì),而且提高了系統(tǒng)的整體性能和系統(tǒng)穩(wěn)定性,但若單獨(dú)通過(guò)CPLD完成整個(gè)系統(tǒng)的控制功能,則需選用內(nèi)部容量大,可用門數(shù)多的CPLD器件,這勢(shì)必使系統(tǒng)功耗和成本都有所提高,而且控制時(shí)序的實(shí)現(xiàn)也相當(dāng)復(fù)雜,應(yīng)用者開(kāi)發(fā)起來(lái)比較費(fèi)力。該文提出一種基于CPLD與單片機(jī)技術(shù)的協(xié)處理方法。
1 硬件組成
該設(shè)計(jì)中單片機(jī)采用Atmel公司的89S52,CPLD采用XILINX的XCR3256XL;電源采用9 V的交流或直流電源,經(jīng)LM7805穩(wěn)壓,為開(kāi)發(fā)板提供5 V的直流電源;外部數(shù)據(jù)存儲(chǔ)器擴(kuò)展采用了一片6264;通過(guò)兩片74LS377擴(kuò)展了16個(gè)輸出I/O;開(kāi)發(fā)板設(shè)計(jì)了一路RS232接口,可以通過(guò)單片機(jī)的串口與PC機(jī)進(jìn)行通信。A/D轉(zhuǎn)換電路利用了ADC0809來(lái)實(shí)現(xiàn)。如框圖1所示。
對(duì)于簡(jiǎn)單的項(xiàng)目,可由單片機(jī)或CPLD單獨(dú)完成。對(duì)于復(fù)雜項(xiàng)目,可由單片機(jī)和CPLD聯(lián)合完成。CPLD與單片機(jī)雙向通信,由單片機(jī)作為主控制器,處理各種信息。接收用戶操作指令并控制各個(gè)電路進(jìn)行工作。其與RS232接口芯片相連,可與PC及其他設(shè)備進(jìn)行串口通信,其Po和P213與CPLD相連,并可以通過(guò)CPLD進(jìn)行接口擴(kuò)展控制更多的外部電路。
2 軟件實(shí)現(xiàn)
CPLD可選用ISE軟件,采用VHDL或Verilog語(yǔ)言編程,編譯成功后,通過(guò)Xilinx并口下載線下載到芯片中即可;單片機(jī)部分可選用通用的Keil軟件,將程序編譯成.HEX或.BIN后,下載到單片機(jī)芯片中即可。下載軟件可選擇網(wǎng)上流行的免費(fèi)軟件Easy51Pro。
3 應(yīng)用測(cè)試
利用CPLD和單片機(jī)協(xié)處理開(kāi)發(fā)板設(shè)計(jì)一顯示模塊來(lái)驗(yàn)證協(xié)處理的功能。其接線圖如圖2所示。
單片機(jī)的外部數(shù)據(jù)輸出時(shí)序如圖3所示,該時(shí)序是51單片機(jī)在執(zhí)行MOVX @DPTR,A時(shí)的接口時(shí)序,為使協(xié)處理器接收來(lái)自單片機(jī)的數(shù)據(jù),其必須實(shí)現(xiàn):
(1)在ALE下降沿鎖存P0口的低8位地址和P2口的高8位地址;
(2)在WR的下降沿鎖存P0口的8位數(shù)據(jù);
(3)比較16位地址是否與指定的顯示緩沖區(qū)地址相同,若相同,將數(shù)據(jù)存入顯示緩沖區(qū);
(4)利用動(dòng)態(tài)顯示技術(shù)控制將緩沖區(qū)中的數(shù)據(jù)顯示在數(shù)碼管上。
在51單片機(jī)上定義協(xié)處理的顯示緩沖區(qū)地址為0020H和0021H,編寫程序如下:
MOV DPTR,#0020A
MOV A,#34H
MOVX DPTR,#0021H
MOV A,#12H\
MOVX @DPTR,A
在Keil C51環(huán)境中編譯成功,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(μVision)下載到89S52中。
CPLD部分采用VHDL語(yǔ)言編程。其框圖如圖4所示。
在ISE環(huán)境中,編譯,仿真,符合設(shè)計(jì)要求,下載到芯片中,結(jié)果如圖5所示。
利用協(xié)處理器,開(kāi)發(fā)板上顯示結(jié)果正確,比較不用該協(xié)同設(shè)計(jì)技術(shù)實(shí)現(xiàn)相同功能,51單片機(jī)程序簡(jiǎn)單,運(yùn)行速度提高。
4 結(jié)論
單片機(jī)+CPLD可以作為電子系統(tǒng)設(shè)計(jì)的一個(gè)框架,單片機(jī)智能控制靈活、邏輯運(yùn)算能力強(qiáng),可以實(shí)現(xiàn)復(fù)雜智能的控制與檢測(cè);CPLD集成度高、運(yùn)算速度快,可以實(shí)現(xiàn)靈活多變的外圍擴(kuò)展電路設(shè)計(jì),尤其是可以用硬件實(shí)現(xiàn)特殊的單片機(jī)無(wú)法實(shí)現(xiàn)的功能,相互彌補(bǔ),使設(shè)計(jì)的系統(tǒng)具有結(jié)構(gòu)緊湊、體積小,可靠性高等優(yōu)點(diǎn),完全能夠達(dá)到設(shè)計(jì)者的要求。
參考文獻(xiàn)
[1] 王振紅,李洋.由可編程邏輯器件和單片機(jī)構(gòu)成的雙控制器[J].電子技術(shù)應(yīng)用,2002(1):79-81.
[2] 潘松,黃繼業(yè).EDA技術(shù)與VHDL[M].北京:清華大學(xué)出版社,2005:13-67.
[3] 陳云洽,保延翔.CPLD應(yīng)用技術(shù)與數(shù)字系統(tǒng)設(shè)計(jì)[M].北京電子工業(yè)出版社,2005:47-98.