基于CPLD/FPGA的出租車(chē)計費器系統的設計實(shí)現
1 引言
本文引用地址:http://dyxdggzs.com/article/201610/308523.htm隨著(zhù)EDA技術(shù)的發(fā)展及大規??删幊踢壿嬈骷?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/CPLD">CPLD/FPGA的出現,電子系統的設計技術(shù)和工具發(fā)生了巨大的變化,通過(guò)EDA技術(shù)對CPLD/FP-GA編程開(kāi)發(fā)產(chǎn)品,不僅成本低、周期短、可靠性高,而且可隨時(shí)在系統中修改其邏輯功能。本文介紹了一種以Altera公司可編程邏輯器件EP1K30TC144-3為控制核心,附加一定外圍電路組成的出租車(chē)計費器系統。
2 系統總體結構
基于CPLD的出租車(chē)計費器的組成如圖1所示。各部分主要功能包括:信號輸入模塊對車(chē)輪傳感器傳送的脈沖信號進(jìn)行計數(每轉一圈送一個(gè)脈沖),并以高低脈沖模擬出租汽車(chē)啟動(dòng)、停止、暫停、加速按鈕,具有輸入信號作用;數據轉換模塊將計費模塊輸出的車(chē)費和路程轉換成4位的十進(jìn)制數據;譯碼/動(dòng)態(tài)掃描模塊將路程與費用的數值譯碼后用動(dòng)態(tài)掃描的方式驅動(dòng)數碼管;數碼管顯示模塊將公里數和計費金額均用4位LED數碼管顯示(2位整數,2位小數)。

3 單元模塊設計
3.1 信號輸入模塊
該模塊主要實(shí)現計費功能和現場(chǎng)模擬功能。計費標準為:對車(chē)輪傳感器傳送的脈沖信號進(jìn)行計數(每轉一圈傳送一個(gè)脈沖),按行駛里程計費,起步價(jià)為7.00元,并在車(chē)行3 km后按2.40元/km計費,當計費器達到或超過(guò)20元時(shí),每公里加收50%的車(chē)費,車(chē)停止不計費。并以高低脈沖模擬出租汽車(chē)啟動(dòng)、停止、暫停、加速按鈕,具有輸入信號的作用。
該模塊的時(shí)序仿真圖如圖2所示。圖中的stop下降沿到來(lái)時(shí)系統不計費,車(chē)費為“0”,路程為“0”,起步價(jià)為7.00元,在車(chē)行3 km(圖中300為3 km。因為后面有2位小數)后按2.40元/km計費,當計費器達到或超過(guò)20元時(shí),每公里加收50%(即按3.60元/km)的車(chē)費。
3.2 數據轉換模塊
數據轉換模塊是一個(gè)模為10、步長(cháng)可變的加法計數器,可將計費模塊輸出的車(chē)費和路程轉換成4位的十進(jìn)制數。該模塊通過(guò)開(kāi)關(guān)量預置步長(cháng),當超過(guò)一定預置參數時(shí)改變步長(cháng)。計費模塊也采用非壓縮BCD碼,但因步長(cháng)不為1,所以在做非壓縮BCD加法時(shí)必須調整,否則可能導致在超過(guò)或未超過(guò)預置參數時(shí)出現超程錯誤。這里采用模仿微機的AF標志位,在其設立一個(gè)半進(jìn)位標志,當累加和大于9或半進(jìn)位標志為“1”時(shí),對其累加和調整。轉換模塊的時(shí)序仿真圖如圖3所示,可見(jiàn)能將路程和車(chē)費轉換為4位的十進(jìn)制數,便于8位數碼管顯示。

3.3 顯示模塊
顯示模塊是由七段LED數碼管譯碼和動(dòng)態(tài)掃描顯示兩部分組成。采用的是共陰極七段數碼管,根據十六進(jìn)制數和七段顯示段碼表的對應關(guān)系,其中要求路程和車(chē)費都要用2位小數點(diǎn)來(lái)表示,所以須設置一個(gè)控制小數點(diǎn)的變量,即程序中的dp。這段程序所示的是在數碼管的第二、第六個(gè)后面顯示小數點(diǎn),實(shí)現了路程和車(chē)費都用2位小數點(diǎn)表示的功能。要注意的是如果選擇的掃描頻率不合適,可能會(huì )出現小數點(diǎn)閃動(dòng)的情況。但只要掃描頻率不小于24 Hz,人眼就感覺(jué)不到顯示器的閃爍。本系統采用36 Hz的掃描頻率,掃描脈沖由相應的外圍電路提供。七段數碼管顯示模塊的時(shí)序如圖4所示。
數碼管控制及譯碼顯示模塊將十進(jìn)制的輸入信號用七段數碼管顯示,由七段發(fā)光二極管組成數碼顯示器,利用字段的不同組合??煞謩e顯示0~9十個(gè)數字。本設計中,要求輸出的段信號為低電平有效。
4 系統仿真、綜合、下載
仿真是EDA技術(shù)的重要組成部分,也是對設計的電路進(jìn)行功能和性能測試的有效手段。EDA工具提供了強大且與電路實(shí)時(shí)行為相吻合的精確硬件系統測試工具。在建立了波形文件、輸入信號節點(diǎn)、波形參數、加輸入信號激勵電平并存盤(pán)之后,選擇主菜單“MAX+plusII”中的仿真器項 “Simulator”,彈出對話(huà)框之后單擊“Start”進(jìn)行仿真運算,完成之后就可以看到時(shí)序波形。圖5為總電路的時(shí)序圖。

最終的電路設計完成后,若總體電路編譯無(wú)錯,且時(shí)序仿真成功,可進(jìn)行硬件測試。將總電路下載到可編程邏輯器件中,按fit文件中自動(dòng)分配引腳搭建硬件電路。系統頂層原理圖如圖6所示。

打開(kāi)電源,數碼管有正確的數字顯示,操作運行實(shí)驗結果完全符合要求。查看報告文件可得到器件引腳的利用情況及器件內部資源的使用情況,通過(guò)更換適當的器件使其資源配置達到最優(yōu)。選擇器件的一般原則是系統所使用的資源不要超過(guò)器件資源的80%,若超過(guò)90%,系統功耗將增大,工作不穩定。本設計中輸入、輸出引腳各用22個(gè),器件資源利用率僅為62%,具有較大的擴展空間。
5 結束語(yǔ)
硬件設計說(shuō)明本次設計的出租車(chē)計費器計數脈沖CP來(lái)自車(chē)輪轉速傳感器(干簧管),脈沖經(jīng)器件內部整形后送計數器;動(dòng)態(tài)掃描脈沖由外圍電路給出;系統使用整流、濾波、降壓后的出租車(chē)電源供電;由于CPLD/FPGA的驅動(dòng)能力有限,為了增強數碼管的亮度,提高系統的可靠性,設計中在LED驅動(dòng)和位驅動(dòng)上分別增加了電流驅動(dòng)器件ULN2803和2SCl015?,F場(chǎng)實(shí)驗表明:該計費器實(shí)現了按預制參數自動(dòng)計費(最大計費金額為999.9元)、自動(dòng)計程(最大計程公里數為999.9公里)等功能;能夠實(shí)現起步價(jià)、每公里收費、車(chē)型及加費里程的參數預制(如:起步價(jià)5.00元;3公里后,1.20元/公里;計費超過(guò)15.00元,每公里加收50%的車(chē)費等),且預置參數可調范圍大。由于采用了CPLD/FPGA大規??删幊踢壿嬈骷?,整機功耗小、抗干擾能力強、系統穩定、工作可靠、升級方便。另外,根據實(shí)際需要,系統可方便地增加以下功能:①通過(guò)芯片內部編程增加時(shí)鐘功能(器件內部資源足夠),既可為司機和乘客提供方便,又能為夜間行車(chē)自動(dòng)調整收費標準提供參考;②用CPLD/FPGA的輸出引線(xiàn)控制語(yǔ)音芯片,可向乘客發(fā)出問(wèn)候語(yǔ)、提醒乘客告訴司機所要到達的地點(diǎn)、報出應收繳的費用等。
評論