1引言
SoC(System on Chip)是將來(lái)電路設(shè)計(jì)的一個(gè)趨勢(shì),由于CPLD(Complex Programmable Logic Device)芯片密度不斷增加和新一代EDA(Electronic Design Automatic)開發(fā)工具的使用,利用CPLD器件實(shí)現(xiàn)SoC已成為可能,而單片機(jī)與CPLD之間的通信和合作方法亦成為目前單片機(jī)應(yīng)用的一個(gè)熱門方向。
通過(guò)水流、氣流的噴射和循環(huán)以達(dá)到按摩功效并具備一些輔助功能的按摩浴缸已經(jīng)成為時(shí)尚產(chǎn)品,而目前市場(chǎng)上的一般產(chǎn)品往往采用在浴缸中安裝機(jī)械式閥門,并在浴缸表面配以手動(dòng)的開關(guān)、旋鈕來(lái)實(shí)現(xiàn)諸如背部、腳部及其他部位的出水按摩效果,這樣的方式一來(lái)用戶使用不方便,二來(lái)安裝難度增加,三者維護(hù)成本高。
在新型的按摩浴缸產(chǎn)品中,為了滿足高端用戶的需求,往往綜合了水泵、氣泵、加熱器、電控閥門、燈光、收音機(jī)、消毒、電話等設(shè)備的控制,而控制部分通常會(huì)選用價(jià)格低廉、功能強(qiáng)大的各種8位單片機(jī)產(chǎn)品。由于單片機(jī)I/O端口的數(shù)量限制,在輸入輸出的數(shù)量較多的情況下,如果直接使用單片機(jī)的I/O端口會(huì)造成單片機(jī)數(shù)量的增加以及系統(tǒng)設(shè)計(jì)的難度增加,同時(shí)還會(huì)造成系統(tǒng)的成本增加。
按照新型按摩浴缸的模型設(shè)計(jì),需控制的輸出包括水泵1路、氣泵1路、加熱器1路、電控閥門12路、燈光6路、消毒泵1路,共22路輸出,另外還包括了故障檢測(cè)(19路)及液位檢測(cè)(2路)共21路輸入。在單片機(jī)尚要兼顧鍵盤、LCD顯示及遙控器的情況下,直接使用其I/O端口顯然是不現(xiàn)實(shí)的。通過(guò)引入CPLD的設(shè)計(jì)可以解決上述多輸入輸出的控制問(wèn)題。
2 CPLD介紹
ATF1508AS是ATMEL公司生產(chǎn)的電可擦寫、可在線編程的邏輯電路器件,它內(nèi)含128個(gè)邏輯宏單元,可以通過(guò)LogicDoubling技術(shù)進(jìn)行邏輯功能設(shè)計(jì)的擴(kuò)展,可以靈活地實(shí)現(xiàn)用戶設(shè)計(jì)的要求。
ATF1508AS共有84個(gè)管腳,其中61個(gè)管腳可作為I/O使用,完全可以滿足上述新型浴缸的控制要求。圖1是ATF1508AS的組成示意圖。
圖1 ATF1508AS的組成示意圖
3 CPLD應(yīng)用開發(fā)
CPLD的設(shè)計(jì)方法包括電路原理圖法、Verilog編程、VHDL編程等,本設(shè)計(jì)中采用電路原理圖的設(shè)計(jì)方法,下面說(shuō)明相關(guān)設(shè)計(jì)過(guò)程。
顯然CPLD是處于單片機(jī)與驅(qū)動(dòng)控制電路之間的接口部分,單獨(dú)將它抽象出來(lái),則其輸入輸出框圖如圖2所示:
圖2 CPLD輸入輸出框圖
3.1 輸出部分設(shè)計(jì)
由于前述新型浴缸模型中有22路輸出,所以輸入信號(hào)應(yīng)設(shè)計(jì)五位地址輸入線(25=32》22)以滿足輸出數(shù)量的要求,另外相應(yīng)的控制信號(hào)線還包括復(fù)位、時(shí)鐘及輸出開關(guān)控制信號(hào)共三個(gè)。顯然,對(duì)輸出部分來(lái)說(shuō),CPLD的功能類似于5線-22線的譯碼器,但由于輸出信號(hào)之間要求相互不能影響,所以在譯碼器的基礎(chǔ)上需增加觸發(fā)器以實(shí)現(xiàn)上述要求,同時(shí)還需加入相應(yīng)輸出設(shè)備的開關(guān)控制信號(hào)。
5線-22線譯碼器是用兩片4線-16線譯碼器74154擴(kuò)展而成的(多余的輸出不用), 對(duì)于4線-16線譯碼器74154來(lái)說(shuō),它有兩個(gè)片選信號(hào)控制端G1N和G2N,只有當(dāng)G1N和G2N都為邏輯“0”時(shí),74154芯片才能正常譯碼。利用G1N進(jìn)行兩片74154的擴(kuò)展,再利用G2N作為輸出設(shè)備的開關(guān)控制信號(hào)剛好可以滿足設(shè)計(jì)需求。擴(kuò)展后的譯碼器電路能實(shí)現(xiàn)5線-32線的譯碼,可以滿足22路輸出的要求,因?yàn)檩敵鲈O(shè)備存在多路共同輸出的組合,通過(guò)在譯碼器的輸出端添加多個(gè)雙二輸入JK觸發(fā)器7474可以實(shí)現(xiàn)這一功能。分析JK觸發(fā)器的特性方程:Qn+1=J + Qn可知,當(dāng)
(1) J=1,K=0時(shí)Qn+1=1;對(duì)應(yīng)于相應(yīng)設(shè)備關(guān)閉;
(2) J=0,K=1時(shí)Qn+1=0;對(duì)應(yīng)于相應(yīng)設(shè)備開啟;
(3) J=K=0時(shí)Qn+1=Qn;對(duì)應(yīng)于相應(yīng)設(shè)備保持原開關(guān)狀態(tài);
(4) J=K=1時(shí)Qn+1= 。(實(shí)際上該種組合因電路設(shè)計(jì)的原因不存在)
針對(duì)圖3所示的電路,經(jīng)分析可知,左半部分的電路用于控制輸出設(shè)備的開啟,而右半部分的電路控制輸出設(shè)備的關(guān)閉,且由于各個(gè)輸出設(shè)備的控制碼不同,所以不存在沖突的問(wèn)題。輸出部分的設(shè)計(jì)占用了CPLD的30個(gè)I/O端子,其中8個(gè)I/O端子用于與單片機(jī)的連接,另外22個(gè)I/O端子通過(guò)驅(qū)動(dòng)控制電路與相應(yīng)設(shè)備連接。
對(duì)于設(shè)計(jì)完成的輸出控制部分來(lái)說(shuō),其與單片機(jī)連接的8位數(shù)據(jù)格式及相應(yīng)定義如下:
CLRN CLK G2N G1N A B C D
CLRN:復(fù)位信號(hào)(低電平有效)
CLK:時(shí)鐘信號(hào)(上升沿有效)
G2N:輸出控制信號(hào)(“0”:開,“1”:關(guān))
G1N、A、B、C、D:地址碼輸入
3.2輸入部分設(shè)計(jì)
3.2.1 故障檢測(cè)部分設(shè)計(jì)
該部分是針對(duì)浴缸控制器中關(guān)于故障檢測(cè)的功能進(jìn)行設(shè)計(jì)的,它的信號(hào)來(lái)自各相應(yīng)設(shè)備的故障檢測(cè)電路,并規(guī)定“1”表示設(shè)備發(fā)生故障,“0”表示設(shè)備正常。對(duì)故障檢測(cè)的輸入部分來(lái)說(shuō),CPLD相當(dāng)于一個(gè)多路數(shù)據(jù)選擇器。利用兩片16選1數(shù)據(jù)選擇器74150可以擴(kuò)展成32選1數(shù)據(jù)選擇器,從而滿足19路故障檢測(cè)信號(hào)輸入的要求。具體的實(shí)現(xiàn)方法是利用74150的片選端EN作為擴(kuò)展端,對(duì)于74150來(lái)說(shuō),只有當(dāng)EN為邏輯“0”時(shí),數(shù)據(jù)選擇器才能正常工作,設(shè)計(jì)電路如圖3所示。故障檢測(cè)輸入部分的設(shè)計(jì)占用了CPLD的27個(gè)I/O端子,其中6個(gè)I/O端子(5個(gè)地址碼端子,1個(gè)選擇輸出端子)與單片機(jī)連接,其他21個(gè)I/O端子通過(guò)接口電路與故障檢測(cè)電路連接。
3.2.2 液位檢測(cè)部分設(shè)計(jì)
液位檢測(cè)是新型浴缸系統(tǒng)正常工作的一個(gè)重要組成部分。液位檢測(cè)包括浴缸液位檢測(cè)和消毒液液位檢測(cè)兩個(gè)部分,其中浴缸液位是否達(dá)到預(yù)定水位是系統(tǒng)中水泵、氣泵等設(shè)備開啟的必要條件,而消毒液液位是否高于正常位置也是系統(tǒng)能否正常消毒的充分條件。
實(shí)際設(shè)計(jì)中通過(guò)兩個(gè)非接觸式液位開關(guān)檢測(cè)相關(guān)液位,液位開關(guān)的輸出為標(biāo)準(zhǔn)的TTL電平信號(hào),并規(guī)定“1”表示液位達(dá)到設(shè)定值,“0”表示液位未達(dá)到設(shè)定值。如果浴缸液位未達(dá)到設(shè)定值,則系統(tǒng)會(huì)提示加水信息,如果消毒液液位低于設(shè)定值,則系統(tǒng)會(huì)提示添加消毒液。
對(duì)于設(shè)計(jì)完成的輸入控制部分來(lái)說(shuō),其與單片機(jī)連接的6位數(shù)據(jù)格式及相應(yīng)定義如下:
Yselect:數(shù)據(jù)選擇輸出
A0、A1、A2、A3、A4:地址碼輸入
3.3 CPLD的燒錄
上述關(guān)于CPLD輸入輸出功能的設(shè)計(jì)是使用MaxplusII工具進(jìn)行的,設(shè)計(jì)完成后得到的結(jié)果是*.pof文件,使用Pof2Jed工具將*.pof 轉(zhuǎn)換為 *.jed 文件, 然后利用 AtmIsp 工具將相應(yīng)的*.jed燒錄到CPLD中,就完成了整個(gè)CPLD芯片的設(shè)計(jì)、實(shí)現(xiàn)過(guò)程。
圖3 CPLD 設(shè)計(jì)示意圖
4 CPLD的應(yīng)用效果[1][2]
4.1 輸出設(shè)備控制
在所有的控制設(shè)備中,除了氣泵、多路水閥及燈光以外,其他均是簡(jiǎn)單的開關(guān)控制。現(xiàn)在以氣泵及燈光的控制說(shuō)明CPLD的應(yīng)用效果。
4.1.1氣泵控制
根據(jù)氣泵電機(jī)的組成原理,經(jīng)過(guò)實(shí)際測(cè)試,可以通過(guò)PWM調(diào)節(jié)實(shí)現(xiàn)氣泵的調(diào)速,而用單片機(jī)實(shí)現(xiàn)不同的脈沖輸出或PWM波形是非常簡(jiǎn)單的功能,具體的電路連接示意圖如下圖所示。
通過(guò)實(shí)驗(yàn),我們實(shí)現(xiàn)了氣泵的無(wú)極調(diào)速。下面是典型的脈沖波形輸出示意圖。
4.1.2燈光控制
一般情況下,浴缸中安裝三個(gè)彩燈及三個(gè)白燈,均是由高亮度發(fā)光二極管構(gòu)成,彩燈按照紅、籃、綠三色由2個(gè)、3個(gè)、2個(gè)共7個(gè)發(fā)光二極管組成,白燈由7個(gè)白色發(fā)光二極管組成,要求白燈能夠?qū)崿F(xiàn)亮度的控制,彩燈能夠?qū)崿F(xiàn)幾種不同周期循環(huán)狀態(tài)的控制。
白燈亮度的控制采用控制不同發(fā)光二極管組合的方式實(shí)現(xiàn),亮度共分7級(jí),分別對(duì)應(yīng)相應(yīng)數(shù)量的白燈點(diǎn)亮,具體實(shí)現(xiàn)時(shí),將白燈分成三組:第一組1個(gè)白色發(fā)光二極管,第二組2個(gè)白色發(fā)光二極管,第三組4個(gè)白色發(fā)光二極管,通過(guò)這三組白色發(fā)光二極管的組合就可以實(shí)現(xiàn)7級(jí)亮度的調(diào)節(jié)。
彩燈循環(huán)狀態(tài)的控制采用脈沖式輸出的方式實(shí)現(xiàn),配合定時(shí)器及外圍添加邏輯或門的方式可以具體實(shí)現(xiàn)彩燈循環(huán)的控制。
4.2 輸入設(shè)備控制
4.2.1 故障檢測(cè)控制
故障檢測(cè)是本文作者針對(duì)新型多功能浴缸提出的一種全新功能,它一方面可以提醒用戶關(guān)于系統(tǒng)故障的信息,另一方面,也為浴缸生產(chǎn)廠家的維護(hù)人員提供了全面的檢測(cè)、維修信息。
如前所述,故障檢測(cè)的信號(hào)來(lái)自各相應(yīng)設(shè)備的故障檢測(cè)電路,并規(guī)定“1”表示設(shè)備發(fā)生故障,“0”表示設(shè)備正常。在軟件實(shí)現(xiàn)的過(guò)程中,首先要建立一個(gè)設(shè)備與地址A4-A0的對(duì)應(yīng)表,然后定時(shí)輪詢CPLD的相應(yīng)端子,采集故障檢測(cè)信息,并根據(jù)相應(yīng)的信息進(jìn)行顯示及驅(qū)動(dòng)蜂鳴器報(bào)警。同時(shí)軟件系統(tǒng)還會(huì)存儲(chǔ)累積的設(shè)備故障次數(shù),以方便廠家分析故障原因。
4.2.2 液位檢測(cè)控制
系統(tǒng)響應(yīng)按鍵操作需進(jìn)行關(guān)于水泵、氣泵、加熱器、閥門的啟動(dòng)時(shí),均會(huì)先行采集液位開關(guān)的輸入狀態(tài),并根據(jù)采集的信息判斷是進(jìn)行設(shè)備開啟操作,還是顯示錯(cuò)誤提示。
5 結(jié)束語(yǔ)
本文作者的創(chuàng)新點(diǎn)在于將單片機(jī)控制與CPLD的應(yīng)用綜合在新型浴缸的設(shè)計(jì)和生產(chǎn)過(guò)程中。從以上CPLD的實(shí)際應(yīng)用效果可以總結(jié)出,使用CPLD不但可以簡(jiǎn)化控制電路的設(shè)計(jì),而且可以獲得穩(wěn)定、可靠的控制效果,同時(shí)還降低了系統(tǒng)開發(fā)的成本,完全達(dá)到了設(shè)計(jì)要求。可以預(yù)見的是,隨著CPLD芯片密度的進(jìn)一步提高,必然會(huì)將單片機(jī)及CPLD的設(shè)計(jì)加入SoC,以形成更加專用的SoC系統(tǒng),進(jìn)一步降低產(chǎn)品的生產(chǎn)成本,并提高系統(tǒng)的保密性。
責(zé)任編輯:gt
評(píng)論
查看更多