孫美玲,侯 蕊,郭 勇,魯 姸秦皇島職業(yè)技術(shù)學(xué)院,河北 秦皇島 066100
隨著CPLD/FPGA等數(shù)字可編程器件的出現(xiàn),他們可以解決傳統(tǒng)電子設(shè)計(jì)不能完成的任務(wù)。利用CPLD來(lái)實(shí)現(xiàn)出租車(chē)計(jì)費(fèi)器,可行性很高,而且電路簡(jiǎn)單,大大減少外圍器件,可以用軟件完全仿真,靈活度高,可以設(shè)計(jì)一些復(fù)雜的系統(tǒng),而且編好的系統(tǒng)可以在不同的FPGA或CPLD芯片上通用。
本設(shè)計(jì)采用了 Mars-EDA-S實(shí)驗(yàn)主板,其核心芯片是Altera公司的 EPM3256ATC144-7芯片。板上具有如下資源:主芯片:EPM3256ATC144-7,有源晶振:40MHz;復(fù)位芯片:STC811,支持復(fù)位手動(dòng)輸入,支持JTAG下載模式。核心板可以作為原型板,用戶(hù)可以根據(jù)自己需要自行擴(kuò)展。
基于CPLD設(shè)計(jì)的出租車(chē)自動(dòng)計(jì)費(fèi)器,計(jì)費(fèi)包括起步價(jià)、行車(chē)?yán)锍逃?jì)費(fèi)、等待時(shí)間計(jì)費(fèi)3部分,用三位數(shù)碼管顯示總金額,最大值為99.9元。起步價(jià)為5.0元,3km之內(nèi)按起步價(jià)計(jì)費(fèi),超過(guò)3km的,每1km增加1元,等待時(shí)間單價(jià)為每分鐘0.1元。用兩位數(shù)碼管顯示總里程,最大值為99km,用兩位數(shù)碼管等待時(shí)間,最大值為99min。系統(tǒng)框圖如圖1所示。

圖1 出租車(chē)自動(dòng)計(jì)費(fèi)器系統(tǒng)框圖
由于EPM3256ATC144-7芯片的時(shí)鐘頻率為40MHz,而主控模塊所用頻率為1Hz,必須經(jīng)過(guò)分頻才能使得EPM3256ATC144-7芯片與程序匹配。
//分頻
/*信號(hào)定義:
clk_in:輸入時(shí)鐘信號(hào):大小為40MHz;
clk:輸出時(shí)鐘信號(hào);大小為1Hz;*/


在主控模塊中,設(shè)置撥碼開(kāi)關(guān)m控制led燈使系統(tǒng)顯示出租車(chē)的當(dāng)前狀態(tài),當(dāng)led燈亮?xí)r開(kāi)始計(jì)程,計(jì)費(fèi)顯示起步價(jià)5元,3km之內(nèi)為起步價(jià),即300個(gè)clk之內(nèi)為起步價(jià),以后每1km增加1元,即每10個(gè)clk增加0.1元;led燈滅時(shí)開(kāi)始記等待時(shí)間,每分鐘計(jì)費(fèi)增加0.1元,即每60個(gè)clk增加0.1元。
整個(gè)系統(tǒng)采用自頂向下,模塊化設(shè)計(jì)理念,將整個(gè)系統(tǒng)設(shè)計(jì)為3個(gè)模塊,分別為分頻模塊(clock_send)、顯示模塊(sel)、主控模塊(ntaxi)。最底層子模塊用Verilog HDL編寫(xiě),在MAX+plusⅡ環(huán)境下對(duì)每個(gè)底層模塊程序進(jìn)行編譯,仿真,然后再將各個(gè)模塊連接起來(lái),圖形法逐級(jí)形成頂層模塊,最終的整個(gè)系統(tǒng)頂層。

圖2 出租車(chē)計(jì)費(fèi)器系統(tǒng)頂層設(shè)計(jì)
該設(shè)計(jì)在Mars—EDA—S實(shí)驗(yàn)板上用到了七位數(shù)碼管、一個(gè)撥碼開(kāi)關(guān)和一個(gè)led燈和復(fù)位鍵。用三位數(shù)碼管顯示計(jì)費(fèi)金額,用兩位數(shù)碼管顯示等待時(shí)間,用兩位數(shù)碼管顯示行駛里程。當(dāng)撥碼開(kāi)關(guān)處于on狀態(tài)時(shí),led燈亮,出租車(chē)計(jì)費(fèi)器開(kāi)始計(jì)程和計(jì)費(fèi)。當(dāng)撥碼開(kāi)關(guān)處于off狀態(tài)時(shí),led燈滅,出租車(chē)計(jì)費(fèi)器開(kāi)始計(jì)等待時(shí)間和計(jì)費(fèi)。按下復(fù)位鍵計(jì)費(fèi)器顯示起步價(jià)。
此出租車(chē)計(jì)費(fèi)器能夠?qū)崿F(xiàn)計(jì)程、計(jì)等待時(shí)間和計(jì)費(fèi)功能,還可以實(shí)現(xiàn)以下功能:
1)增加計(jì)價(jià)標(biāo)準(zhǔn)設(shè)定功能。通過(guò)設(shè)計(jì)此功能模塊可以使得計(jì)價(jià)標(biāo)準(zhǔn)設(shè)計(jì)更加靈活,體現(xiàn)目前出租車(chē)行業(yè)發(fā)展的需要,白天和黑夜可實(shí)行不同的計(jì)費(fèi)標(biāo)準(zhǔn),不同車(chē)型的出租車(chē)也可執(zhí)行不同的計(jì)費(fèi)標(biāo)準(zhǔn),并可根據(jù)油價(jià)的變化實(shí)行適當(dāng)?shù)馗淖冇?jì)費(fèi)標(biāo)準(zhǔn)。
2)限速功能。如果出租車(chē)超速發(fā)出報(bào)警聲,提示司機(jī)減速行駛。
3)靜態(tài)顯示計(jì)時(shí)功能,空車(chē)使用點(diǎn)陣顯示“空”字。
采用傳統(tǒng)的電路原理圖輸出法進(jìn)行設(shè)計(jì)時(shí),具有設(shè)計(jì)周期長(zhǎng),需要專(zhuān)門(mén)的設(shè)計(jì)工具,以及手工布線等缺陷。與之相比,使用語(yǔ)言描述的形式,則大大縮短了開(kāi)發(fā)周期,減少了開(kāi)發(fā)難度,總之,Verilog HDL有著類(lèi)似C語(yǔ)言的風(fēng)格,易于學(xué)習(xí)和掌握,用Verilog HDL等硬件描述語(yǔ)文進(jìn)行數(shù)字系統(tǒng)的設(shè)計(jì)是當(dāng)前EDA發(fā)展的趨勢(shì),也是一種具有廣闊前景的集成電路開(kāi)發(fā)工具。在具體的EDA教學(xué)過(guò)程中,除了要培養(yǎng)學(xué)生在電路功能實(shí)現(xiàn)方而的能力,還需要培養(yǎng)工程實(shí)用問(wèn)題的解決能力。
[1]侯繼紅,李向東.EDA實(shí)用技術(shù)教程.中國(guó)電力出版社,2004.
[2]李洋.EDA技術(shù)實(shí)用教程.機(jī)械工業(yè)出版社,2004.
[3]劉艷萍,高振斌,李志軍.EDA實(shí)用技術(shù)及應(yīng)用.國(guó)防工業(yè) 出版社,2006.