基于CPLD/FPGA的出租車計(jì)費(fèi)器系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)
隨著EDA技術(shù)的發(fā)展及大規(guī)模可編程邏輯器件CPLD/FPGA的出現(xiàn),電子系統(tǒng)的設(shè)計(jì)技術(shù)和工具發(fā)生了巨大的變化,通過EDA技術(shù)對(duì)CPLD/FP-GA編程開發(fā)產(chǎn)品,不僅成本低、周期短、可靠性高,而且可隨時(shí)在系統(tǒng)中修改其邏輯功能。本文介紹了一種以Altera公司可編程邏輯器件EP1K30TC144-3為控制核心,附加一定外圍電路組成的出租車計(jì)費(fèi)器系統(tǒng)。
2 系統(tǒng)總體結(jié)構(gòu)
基于CPLD的出租車計(jì)費(fèi)器的組成如圖1所示。各部分主要功能包括:信號(hào)輸入模塊對(duì)車輪傳感器傳送的脈沖信號(hào)進(jìn)行計(jì)數(shù)(每轉(zhuǎn)一圈送一個(gè)脈沖),并以高低脈沖模擬出租汽車啟動(dòng)、停止、暫停、加速按鈕,具有輸入信號(hào)作用;數(shù)據(jù)轉(zhuǎn)換模塊將計(jì)費(fèi)模塊輸出的車費(fèi)和路程轉(zhuǎn)換成4位的十進(jìn)制數(shù)據(jù);譯碼/動(dòng)態(tài)掃描模塊將路程與費(fèi)用的數(shù)值譯碼后用動(dòng)態(tài)掃描的方式驅(qū)動(dòng)數(shù)碼管;數(shù)碼管顯示模塊將公里數(shù)和計(jì)費(fèi)金額均用4位LED數(shù)碼管顯示(2位整數(shù),2位小數(shù))。
3 單元模塊設(shè)計(jì)
3.1 信號(hào)輸入模塊
該模塊主要實(shí)現(xiàn)計(jì)費(fèi)功能和現(xiàn)場模擬功能。計(jì)費(fèi)標(biāo)準(zhǔn)為:對(duì)車輪傳感器傳送的脈沖信號(hào)進(jìn)行計(jì)數(shù)(每轉(zhuǎn)一圈傳送一個(gè)脈沖),按行駛里程 計(jì)費(fèi),起步價(jià)為7.00元,并在車行3 km后按2.40元/km計(jì)費(fèi),當(dāng)計(jì)費(fèi)器達(dá)到或超過20元時(shí),每公里加收50%的車費(fèi),車停止不計(jì)費(fèi)。并以高低脈沖模擬出租汽車啟動(dòng)、停止、暫停、加速按鈕,具有輸入信號(hào)的作用。
該模塊的時(shí)序仿真圖如圖2所示。圖中的stop下降沿到來時(shí)系統(tǒng)不計(jì)費(fèi),車費(fèi)為“0”,路程為“0”,起步價(jià)為7.00元,在車行3 km(圖中300為3 km。因?yàn)楹竺嬗?位小數(shù))后按2.40元/km計(jì)費(fèi),當(dāng)計(jì)費(fèi)器達(dá)到或超過20元時(shí),每公里加收50%(即按3.60元/km)的車費(fèi)。
3.2 數(shù)據(jù)轉(zhuǎn)換模塊
數(shù)據(jù)轉(zhuǎn)換模塊是一個(gè)模為10、步長可變的加法計(jì)數(shù)器,可將計(jì)費(fèi)模塊輸出的車費(fèi)和路程轉(zhuǎn)換成4位的十進(jìn)制數(shù)。該模塊通過開關(guān)量預(yù)置步長,當(dāng)超過一定預(yù)置參數(shù)時(shí)改變步長。計(jì)費(fèi)模塊也采用非壓縮BCD碼,但因步長不為1,所以在做非壓縮BCD加法時(shí)必須調(diào)整,否則可能導(dǎo)致在超過或未超過預(yù)置參數(shù)時(shí)出現(xiàn)超程錯(cuò)誤。這里采用模仿微機(jī)的AF標(biāo)志位,在其設(shè)立一個(gè)半進(jìn)位標(biāo)志,當(dāng)累加和大于9或半進(jìn)位標(biāo)志為“1”時(shí),對(duì)其累加和調(diào)整。轉(zhuǎn)換模塊的時(shí)序仿真圖如圖3所示,可見能將路程和車費(fèi)轉(zhuǎn)換為4位的十進(jìn)制數(shù),便于8位數(shù)碼管顯示。
3.3 顯示模塊
顯示模塊是由七段LED數(shù)碼管譯碼和動(dòng)態(tài)掃描顯示兩部分組成。采用的是共陰極七段數(shù)碼管,根據(jù)十六進(jìn)制數(shù)和七段顯示段碼表的對(duì)應(yīng)關(guān)系,其中要求路程和車費(fèi)都要用2位小數(shù)點(diǎn)來表示,所以須設(shè)置一個(gè)控制小數(shù)點(diǎn)的變量,即程序中的dp。這段程序所示的是在數(shù)碼管的第二、第六個(gè)后面顯示小數(shù)點(diǎn),實(shí)現(xiàn)了路程和車費(fèi)都用2位小數(shù)點(diǎn)表示的功能。要注意的是如果選擇的掃描頻率不合適,可能會(huì)出現(xiàn)小數(shù)點(diǎn)閃動(dòng)的情況。但只要掃描頻率不小于24 Hz,人眼就感覺不到顯示器的閃爍。本系統(tǒng)采用36 Hz的掃描頻率,掃描脈沖由相應(yīng)的外圍電路提供。七段數(shù)碼管顯示模塊的時(shí)序如圖4所示。
數(shù)碼管控制及譯碼顯示模塊將十進(jìn)制的輸入信號(hào)用七段數(shù)碼管顯示,由七段發(fā)光二極管組成數(shù)碼顯示器,利用字段的不同組合??煞謩e顯示0~9十個(gè)數(shù)字。本設(shè)計(jì)中,要求輸出的段信號(hào)為低電平有效。
4 系統(tǒng)仿真、綜合、下載
仿真是EDA技術(shù)的重要組成部分,也是對(duì)設(shè)計(jì)的電路進(jìn)行功能和性能測試的有效手段。EDA工具提供了強(qiáng)大且與電路實(shí)時(shí)行為相吻合的精確硬件系統(tǒng)測試工具。在建立了波形文件、輸入信號(hào)節(jié)點(diǎn)、波形參數(shù)、加輸入信號(hào)激勵(lì)電平并存盤之后,選擇主菜單“MAX+plusII”中的仿真器項(xiàng)“Simulator”,彈出對(duì)話框之后單擊“Start”進(jìn)行仿真運(yùn)算,完成之后就可以看到時(shí)序波形。圖5為總電路的時(shí)序圖。
最終的電路設(shè)計(jì)完成后,若總體電路編譯無錯(cuò),且時(shí)序仿真成功,可進(jìn)行硬件測試。將總電路下載到可編程邏輯器件中,按fit文件中自動(dòng)分配引腳搭建硬件電路。系統(tǒng)頂層原理圖如圖6所示。
打開電源,數(shù)碼管有正確的數(shù)字顯示,操作運(yùn)行實(shí)驗(yàn)結(jié)果完全符合要求。查看報(bào)告文件可得到器件引腳的利用情況及器件內(nèi)部資源的使用情況,通過更換適當(dāng)?shù)钠骷蛊滟Y源配置達(dá)到最優(yōu)。選擇器件的一般原則是系統(tǒng)所使用的資源不要超過器件資源的80%,若超過90%,系統(tǒng)功耗將增大,工作不穩(wěn)定。本設(shè)計(jì)中輸入、輸出引腳各用22個(gè),器件資源利用率僅為62%,具有較大的擴(kuò)展空間。
5 結(jié)束語
出租車計(jì)費(fèi)器計(jì)數(shù)脈沖來自車輪轉(zhuǎn)速傳感器(干簧管),脈沖經(jīng)器件內(nèi)部整形后送至計(jì)數(shù)器;動(dòng)態(tài)掃描脈沖由外圍電路給出,將單位脈沖看做行駛的單位公里數(shù),并在此基礎(chǔ)上進(jìn)行計(jì)費(fèi)與顯示。系統(tǒng)采用整流、濾波、降壓后的出租車電源供電。
實(shí)驗(yàn)表明:該計(jì)費(fèi)器實(shí)現(xiàn)了按預(yù)置參數(shù)自動(dòng)計(jì)費(fèi)(最大計(jì)費(fèi)金額為99.99元)、自動(dòng)計(jì)程(最大計(jì)程公里數(shù)為99.99 km)等功能;能夠?qū)崿F(xiàn)起步價(jià)、每公里收費(fèi)、車型及加費(fèi)里程的參數(shù)預(yù)置(如:起步價(jià)7.00元;3 km后,2.40元/km;計(jì)費(fèi)超過20.00元,每公里加收50%的車費(fèi)等),且預(yù)置參數(shù)可調(diào)范圍廣。由于采用CPLD大規(guī)??删幊踢壿嬈骷?,整機(jī)功耗小、抗干擾能力強(qiáng)、系統(tǒng)穩(wěn)定、工作可靠、升級(jí)方便。另外,由于器件資源尚有較大的擴(kuò)展空間,根據(jù)實(shí)際需要,系統(tǒng)可方便地增加所需功能,如通過器件內(nèi)部編程增加時(shí)鐘功能,既可為司機(jī)和乘客提供方便,又能為夜間行車自動(dòng)調(diào)整收費(fèi)標(biāo)準(zhǔn)提供參考;還可以通過FPGA的輸出引線控制語音器件,對(duì)顧客發(fā)出問候語,提醒其所要收繳的費(fèi)用等;也可以通過FPGA的輸出引線控制打印機(jī)打印發(fā)票等?! ?nbsp;
評(píng)論