51單片機(jī)+CPLD讓系統(tǒng)更高效
三、單片機(jī)與CPLD接口設(shè)計(jì)
以上經(jīng)典電路中,系統(tǒng)擴(kuò)展使用了單片機(jī)總線模式,各個(gè)對象采用的三總線連接,根據(jù)這種電路結(jié)構(gòu),這里給出一種單片機(jī)同CPLD 的總線接口模式,如圖4 所示。
圖4 單片機(jī)與CPLD總線接口示意圖
這里選擇A l t e r a 公司早期的EPM7064SLC44-10 為例,這是很老的一款CPLD器件,是5V 供電。其實(shí)選擇什么CPLD 型號并不是關(guān)鍵,關(guān)鍵是學(xué)習(xí)用CPLD 代替分立器件的思想和方法。數(shù)據(jù)總線P0 口同CPLD 一般IO 口相連,完成數(shù)據(jù)和低8 位地址傳送;控制總線包括單片機(jī)讀寫控制信號Rd(P3.7) 和Wr(P3.6),以及地址鎖存信號ALE(Address Lock Enable)和高位地址線A15(P2.7) 通過CPLD 的全局信號引腳輸入,包括全局時(shí)鐘輸入:INPUT/GCLK1, 全局清零輸入INPUT/GCLRn, 全局使能輸入INPUT/OE1,INPUT/OE2, 這幾個(gè)信號有專用連線與CPLD 中每個(gè)宏單元相連,保證信號到每個(gè)宏單元的延時(shí)相同并且延時(shí)最短。實(shí)際電路原理圖如圖5所示。
圖5 MCU與CPLD接口電路原理圖
這樣一塊CPLD 器件就代替以上除單片機(jī)外的7 塊芯片了,在電路板上將節(jié)約大片的PCB 面積,好處還遠(yuǎn)不止這些,因?yàn)镃PLD 是二次開發(fā)的,其內(nèi)部電路可以根據(jù)需要再次設(shè)計(jì),反復(fù)修改,極大的增加了電路設(shè)計(jì)的靈活性。
讀者看到這里,肯定對自己動手設(shè)計(jì)CPLD 電路充滿了期待,下面介紹如何借助工具軟件開發(fā)CPLD 內(nèi)部電路。
四、CPLD開發(fā)介紹
一般來說,CPLD 生產(chǎn)商都有配套的開發(fā)工具, 這里介紹ALTERA 公司的一款易學(xué)易用的CPLD 開發(fā)軟件MaxPlusII,雖然該公司最新版的軟件是QuartusII,但針對某些具體的器件,選擇MaxPlusII 還是很方便的。該軟件入門教程請到百度搜索《MaxplusII 設(shè)計(jì)CPLD 入門》,很多手把手的資料。
最容易的電路設(shè)計(jì)方法不外乎是直接繪制電路原理圖。采用原理圖輸入,初學(xué)者甚至不需要額外學(xué)習(xí)就可以從事CPLD 設(shè)計(jì)。我們只需要在軟件平臺上從集成器件庫調(diào)出對應(yīng)的器件,繪制相同的電路原理圖即可,實(shí)現(xiàn)以上功能電路原理圖繪制完成后如圖6 所示。
圖6 原理圖輸入設(shè)計(jì)CPLD
該原理圖編譯成功后,我們還需要根據(jù)實(shí)際電路連接圖分配綁定引腳,引腳綁定如圖7 所示,再編譯就可以得到可供下載的文件*.pof 了,最后只需要將下載電纜連接到電路板上,仍然通過該軟件即可完成下載。
正因?yàn)镃PLD 的IO 腳是可以隨意分配的,通常我們會結(jié)合實(shí)際的PCB 板設(shè)計(jì)布線的便利來調(diào)整引腳分配,引腳分配更改后,只需要重新分配引腳再編譯下載即可。
圖7 CPLD引腳綁定
除了原理圖輸入外,復(fù)雜的CPLD 器件開發(fā),一般用硬件描述語言設(shè)計(jì),常用的硬件描述語言有VHDL,VerilogHDL,這些硬件描述語言的掌握是需要系統(tǒng)學(xué)習(xí)的,基于硬件描述語言的片上系統(tǒng)設(shè)計(jì),F(xiàn)PGA 開發(fā)目前已經(jīng)成為高薪職業(yè),社會需求巨大。用硬件描述語言開發(fā)CPLD 的方法與前面的原理圖輸入法類似,也需要編譯糾錯,時(shí)序仿真,引腳綁定,最后編譯下載即可。
給CPLD 下載完程序,這塊芯片就是你所設(shè)計(jì)的邏輯時(shí)序電路了,通常比分離元器件功耗更低,性能更優(yōu)。
真正是基于上述思想, 筆者將51 單片機(jī)同CPLD 相結(jié)合,開發(fā)了一款適合初學(xué)者使用的學(xué)習(xí)板--Mini51 板。
評論