《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于CPLD/FPGA的出租車計費器
基于CPLD/FPGA的出租車計費器
吳冬梅 吳延海 鄧玉玖
摘要: 介紹了出租車計費器系統的組成及工作原理,簡述了在EDA平臺上用單片CPLD器件構成該數字系統的設計思想和實現過程。論述了車型調整模塊、計程模塊、計費模塊、譯碼動態掃描模塊等的設計方法與技巧。
Abstract:
Key words :

    摘  要:  介紹了出租車計費器" title="出租車計費器">出租車計費器系統的組成及工作原理,簡述了在EDA平臺上用單片CPLD器件構成該數字系統的設計思想和實現過程。論述了車型調整模塊、計程模塊、計費模塊、譯碼動態掃描模塊等的設計方法與技巧。
    關鍵詞: CPLD/FPGA" title="CPLD/FPGA">CPLD/FPGA  硬件描述語言  出租車計費器  MAX+PLUS軟件  數字系統

 

    隨著EDA技術的高速發展,電子系統的設計技術和工具發生了深刻的變化,大規模可編程邏輯器件CPLD/FPGA的出現,給設計人員帶來了諸多方便。利用它進行產品開發,不僅成本低、周期短、可靠性高,而且具有完全的知識產權。本文介紹了一個以Altera公司可編程邏輯芯片EPM7128SLC84-15為控制核心、附加一定外圍電路" title="外圍電路">外圍電路組成的出租車計費器系統。
1 系統組成
    基于CPLD/FPGA的出租車計費器的組成如圖1所示。各部分主要功能如下:(1)A計數器對車輪傳感器送來的脈沖信號" title="脈沖信號">脈沖信號進行計數(每轉一圈送一個脈沖)。不同車型的車輪直徑可能不一樣,通過“設置1”對車型做出選擇,以實現對不同車輪直徑的車進行調整。(2)B計數器對百米脈沖進行累加,并輸出實際公里數的BCD碼給譯碼動態掃描模塊。每計滿500送出一個脈沖給C計數器。“設置2”實現起步公里數預制。(3)C計數器實現步長可變(即單價可調)的累加計數,每500米計費一次。“設置3”用來完成超價加費、起步價預制等。(4)譯碼/動態掃描將路程與費用的數值譯碼后用動態掃描的方式驅動數碼管。(5)數碼管顯示將公里數和計費金額均用四位LED數碼管顯示(三位整數,1位小數)。

 


2 功能模塊設計
    出租車計費器由車型調整模塊、計程模塊、計費模塊、譯碼動態及掃描等模塊組成,整個系統采用模塊化設計,首先用VHDL編寫功能模塊,然后用頂層原理圖將各功能模塊連接起來。
2.1 車型調整模塊
    出租車車型并非單一,各個車型的輪胎直徑亦有所不同。據調查統計,現行出租車輪胎直徑大致有四種,直徑分別為520mm、540mm、560mm和580mm。若要使不同車型的出租車每行駛一百米均送出一個脈沖,可通過設置“可預制分頻器”的系數來完成。根據上述車輪直徑計算出的分頻系數分別為61、59、57和55。預制數據受兩個車型設置開關控制,DIP開關狀態與車輪直徑對應關系如表1所示(表中“1”為高電平,“0”為低電平)。

 


    在參數預制中,使用With_Select語句(查表法)做分頻選擇:
    with cartype select                 
             typecounter<=“111101” when“00”,   --520mm
                          “111011”when“01”,    --540mm
                          “111001”when“10”,    --560mm
                          “111000”when“11”,    --580mm
                          “000000”when others;
    分頻器采用的是加法分頻電路,其占空比可通過data1(x)進行調整,并且分頻器帶有“開始”/“清零”端(高電平清零)。時序仿真波形如圖2所示。從圖中可以看出,對于設置開關為“10” 的車型,當第57個脈沖到來時,該模塊oclk端從高變低,輸出一低電平信號。車型調整模塊(以下簡稱FP) 封裝見圖4。

 


2.2 計程模塊
    計程模塊是一個模為10、步長為1的加法計數器。該模塊可以預制參數,使其實際計數值大于預制數值后,每500米送出一個脈沖,并將計數值送譯碼動態掃描模塊進行顯示。預制參數采用非壓縮BCD碼,所以在計數器設計時必須將二進制1010至1111六個狀態跳過去。在VHDL程序中,用IF語句來實現。
    if  km( 3 downto 0)='1001' then  km:=km+'0111' ;
    else  km:= km+1;
    end if;  
    計程模塊也帶有“開始”/“清零”端。參數預制同樣使用With_Select語句。“起步里程”和“開關設置”對應關系如表2所示。計程模塊(以下簡稱MILE) 封裝見圖4。

 


2.3 計費模塊
    計費模塊是一個模為10、步長可變的加法計數器。該模塊通過開關量預制步長,當超過一定預制參數時改變步長。計費模塊也采用非壓縮BCD碼,但因步長不為1,所以在做非壓縮BCD加法時必須調整,否則可能導致在超過或未超過預置參數時出現超程錯誤。這里采用模仿微機的AF標志位,在其設立一個半進位標志,當累加和大于9或半進位標志為“1”時,對累加和進行調整。
    if  data1( 3 downto 0 ) > 9  or data1(4)=‘1’  then  
        data1(3 downto 0):= data1( 3 downto 0 )+“0110”;
        data1(8 downto 5):= data1( 8  downto  5) + 1;
    end  if;
其中,datal(4)為半進位標志。“起步價格”和“超價加費”設置參數分別如表3和表4所示。計費模塊(以下簡稱MONEY)封裝見圖4。

 

     


2.4 顯示模塊
    顯示模塊由七段" title="七段">七段LED數碼管譯碼和動態掃描顯示兩部分組成。
2.4.1 七段LED數碼管譯碼
    本次設計采用的是共陰極七段數碼管,根據16進制數和七段顯示段碼表的對應關系,用VHDL的With_Select或When_Else語句可方便實現它們的譯碼。
2.4.2 動態掃描顯示
    動態掃描是利用人眼的視覺暫留原理,只要掃描頻率不小于24Hz,人眼就感覺不到顯示器的閃爍。本系統24Hz的掃描脈沖由相應的外圍電路提供。動態掃描電路設計的關鍵在于位選信號要與顯示的數據在時序上一一對應,因此電路中必須提供同步脈沖信號。這里采用八進制計數器提供同步脈沖,VHDL程序段如下:
    clk1_label:PROCESS (scp)
    BEGIN
    IF scp'event and scp=‘1’ THEN count<= count+1;
    END IF;
    END PROCESS clk1_label;
    顯示數據的選擇由計數器控制,VHDL程序段如下:
    temp<=counter1 when count=“000”else  ...
          counter4 when count=“011”else
          mile1 when count=“100”else  ...
          mile4 when count=“111”;
    位選信號時序仿真如圖3所示。從時序仿真圖和上述程序可以看出,位選信號和要顯示的數據實現了同步。

 


    動態掃描電路中小數點的顯示無法在譯碼電路中完成。由于小數點的位置是固定的,因此可由計數器提供的同步信號產生另一信號控制DP。VHDL程序實現如下:
    if( count='101' or count='001' )then  data(0)<= '1';
    else data(0)<='0';
    end if;
    顯示模塊(以下簡稱SHOW) 封裝見圖4。此模塊中應用了兩個過程,在過程內程序順序執行,其中第一個過程觸發第二個過程。
3 系統綜合
3.1 模塊聯調
    各個功能子模塊設計完成后,利用MAXPLUS II的圖形編輯器(Graphic Editor)將各功能子模塊(.sym)進行連接。由于MILE模塊中存在毛刺,故不能直接與后級相連,通過對輸出脈沖信號加門電路延時,再與原始信號相“與”的方法即可消除毛刺。系統頂層原理圖如圖4所示。

 

 

    芯片管腳定義可以直接用編輯.pin文件或在FloorPlan Editor下進行。完成管腳定義后選擇器件(EPM7128SLC84-15),編譯后生成.sof、.pof及報告文件.rpt。查看報告文件可得到器件管腳的利用情況及器件內部資源的使用情況。通過更換適當的器件使其資源配置達到最優。選擇器件的一般原則是系統所使用的資源不要超過器件資源的80%,若超過90%,系統功耗將增大,工作不穩定。從本次設計器件部分報告中得知:輸入、輸出管腳各用16只,芯片資源利用率僅為51%,具有較大的擴展空間。
3.2 硬件設計說明
    本次設計的出租車計費器計數脈沖CP來自車輪轉速傳感器(干簧管),脈沖經器件內部整形后送計數器;動態掃描脈沖由外圍電路給出;系統使用整流、濾波、降壓后的出租車電源供電;由于CPLD/FPGA的驅動能力有限,為了增強數碼管的亮度,提高系統的可靠性,設計中在LED驅動和位驅動上分別增加了電流驅動器件ULN2803和2SC1015。
    現場實驗表明:該計費器實現了按預制參數自動計費(最大計費金額為999.9元)、自動計程(最大計程公里數為999.9公里)等功能;能夠實現起步價、每公里收費、車型及加費里程的參數預制(如:起步價5.00元;3公里后,1.20元/公里;計費超過15.00元,每公里加收50%的車費等),且預置參數可調范圍大。由于采用了CPLD/FPGA大規模可編程邏輯器件,整機功耗小、抗干擾能力強、系統穩定、工作可靠、升級方便。另外,根據實際需要,系統可方便地增加以下功能:① 通過芯片內部編程增加時鐘功能(器件內部資源足夠),既可為司機和乘客提供方便,又能為夜間行車自動調整收費標準提供參考;② 用CPLD/FPGA的輸出引線控制語音芯片,可向乘客發出問候語、提醒乘客告訴司機所要到達的地點、報出應收繳的費用等。
參考文獻
1 候伯亨. VHDL硬件描述語言與數字電路邏輯設計.西安:西安電子科技大學出版社,1999
2 曾繁泰,陳美金.VHDL程序設計(.第二版).北京:清華大學出版社,2001.2
3 黃正謹. CPLD系統設計技術入門與應用. 北京:電子工業出版社,2002.3
4 馮 濤,王 程.可編程邏輯器件開發技術-MAX+PLUS II入門與提高.北京:人民郵電出版社,2002
5 褚振勇,翁木云.FPGA設計及應用.西安:西安電子科技大學出版社, 2002.5

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
中国亚洲黄色| 欧美国产成人在线| 日韩视频在线观看国产| 欧美中文字幕视频| 亚洲欧美国产高清| 亚洲午夜一区二区三区| 在线午夜精品| 一区二区三区 在线观看视| 亚洲看片网站| 日韩一级视频免费观看在线| 亚洲美女av黄| 亚洲美洲欧洲综合国产一区| 亚洲理伦在线| 亚洲日本中文字幕| 亚洲人成网站在线播| 亚洲精品一区二区三区蜜桃久| 久久人人97超碰国产公开结果| 欧美在线亚洲一区| 亚洲主播在线| 午夜精品久久久久久久99樱桃| 亚洲国产精品va| 韩国欧美一区| 在线成人av.com| 亚洲国产精品成人| 日韩视频不卡中文| 亚洲婷婷综合色高清在线| 国产精品99久久不卡二区| 亚洲一区二区三区三| 亚洲欧美日韩精品在线| 欧美一区二区私人影院日本| 亚洲夫妻自拍| 亚洲另类视频| 亚洲一区二区精品视频| 性久久久久久久久久久久| 久久精品亚洲一区二区三区浴池| 中日韩午夜理伦电影免费| 亚洲午夜精品在线| 欧美专区在线观看| 美女精品一区| 欧美人与禽猛交乱配视频| 欧美日本一区二区三区| 国产精品久久福利| 国产喷白浆一区二区三区| 韩国av一区| 亚洲精品社区| 午夜精品久久久久久久白皮肤| 在线亚洲一区二区| 亚洲欧美国产精品va在线观看 | 亚洲欧美亚洲| 午夜精品美女久久久久av福利| 中文av一区二区| 午夜综合激情| 亚洲精品乱码久久久久久黑人 | 国产精品高潮呻吟视频| 国产日韩欧美亚洲一区| 亚洲第一成人在线| 亚洲午夜小视频| 亚洲激情黄色| 午夜精彩视频在线观看不卡 | 亚洲色图在线视频| 欧美影院久久久| 欧美国产一区二区在线观看 | 欧美性猛交xxxx乱大交蜜桃| 国产欧美日韩视频| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲国产另类精品专区| 一区二区三区日韩欧美| 亚洲国产91色在线| 亚洲欧美卡通另类91av| 欧美成人高清| 国产午夜精品理论片a级大结局| 国产精品网站在线观看| 国内自拍亚洲| 亚洲一区二区在线免费观看| 亚洲精品一二三区| 久久久精品国产免大香伊 | 国产精品福利av| 影音先锋日韩精品| 午夜国产精品视频免费体验区| 欧美亚洲一级| 一本色道久久综合亚洲精品不卡| 一区二区毛片| 久久这里只有精品视频首页| 国产精品毛片高清在线完整版| 国产精品视频yy9299一区| 亚洲激情校园春色| 亚洲第一区在线| 久久精彩视频| 国产精品国产三级国产aⅴ浪潮| 国产精品视频内| 亚洲三级免费观看| 91久久久久久国产精品| 久久久99免费视频| 欧美天天综合网| 亚洲精品免费一二三区| 亚洲国产精品123| 久久久人成影片一区二区三区观看 | 欧美日韩国产探花| 亚洲第一久久影院| 亚洲国产精品视频| 久久久久久久久久码影片| 国产精品夜夜夜| 夜夜嗨av一区二区三区免费区| 亚洲欧美精品| 亚洲一区二区三区影院| 欧美日韩久久精品| 亚洲精品少妇| 夜夜嗨av色一区二区不卡| 免费观看一区| 玉米视频成人免费看| 欧美尤物巨大精品爽| 欧美资源在线| 国产亚洲精品福利| 欧美一区二区| 久久久久高清| 狠狠色丁香婷婷综合久久片| 欧美在线国产精品| 久久男人av资源网站| 国内自拍一区| 亚洲国产经典视频| 男女激情视频一区| 最近看过的日韩成人| 日韩一区二区福利| 欧美日韩国产色视频| 9l视频自拍蝌蚪9l视频成人| 一区二区三区免费看| 欧美午夜久久| 亚洲一级片在线看| 性欧美超级视频| 国产欧美日韩在线播放| 性色一区二区| 久久人人97超碰国产公开结果| 国产精品海角社区在线观看| 一本大道久久a久久精二百| 亚洲午夜性刺激影院| 国产精品网站视频| 欧美在线精品免播放器视频| 久久综合网色—综合色88| 亚洲成人资源| 在线综合+亚洲+欧美中文字幕| 美女福利精品视频| 91久久综合| 亚洲视频一区在线观看| 国产精品大片免费观看| 亚洲欧美日韩在线| 久久婷婷国产综合尤物精品| 亚洲丰满少妇videoshd| 亚洲深夜影院| 国产欧美大片| 亚洲激情中文1区| 国产精品国产自产拍高清av| 午夜精品婷婷| 免费观看亚洲视频大全| 99视频一区二区| 久久成人免费电影| 国产精品视频大全| 欧美日韩国产亚洲一区| 亚洲黄色大片| 亚洲专区在线视频| 国产主播精品在线| 亚洲精品一区二区三区樱花| 欧美日韩一区二区免费视频| 亚洲综合日本| 蜜臀av一级做a爰片久久| 夜夜夜久久久| 久久人体大胆视频| 日韩视频免费看| 欧美综合激情网| 亚洲破处大片| 欧美一区二区网站| 亚洲人成人99网站| 欧美一区二区三区视频免费播放| 欧美日韩一本到| 亚洲欧美在线一区| 欧美精品日韩一本| 羞羞漫画18久久大片| 欧美激情网友自拍| 亚洲在线观看免费视频| 美女精品在线观看| 亚洲一本视频| 欧美成人精品一区二区| 亚洲一区精品电影| 免费欧美在线视频| 亚洲欧美激情精品一区二区| 欧美搞黄网站| 欧美伊人精品成人久久综合97| 久久久久久久一区二区| 99re6这里只有精品| 久久夜色精品国产欧美乱| 亚洲精品综合精品自拍| 久久久999精品| 这里只有精品电影| 欧美激情视频一区二区三区免费 | 亚洲一区二区在线视频| 美国十次了思思久久精品导航| 精品69视频一区二区三区| 中文国产成人精品| 在线免费观看视频一区| 欧美一区二区三区视频在线| 99国产精品久久久久久久成人热|