前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇出租車計價器設計范文,相信會為您的寫作帶來幫助,發現更多的寫作思路和靈感。
【關鍵詞】計價器;AT89S52
一、設計方案
(一)主控電路的設計
利用單片機豐富的 I/O端口和其本身控制的靈活性,可以實現基本的里程計價功能和價格調整、時鐘顯示等功能。
(二)掉電保護
DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘,它可以在很小電流的后備電源(2.5V~5.5V電源,在2.5V時耗電小于300nA)下工作,利用DS1302的RAM就可以實現掉電保護,而且可以很直觀的就可以顯示時間,可帶來很多方便。
(三)顯示設計
采用LED數碼管顯示。數碼管具有編程簡單,夜間顯示效果好,而且其價格便宜。
二、各單元電路設計
(一)里程計算、計價單元的設計
里程計算是通過安裝在車輪上的霍爾傳感器檢測到的脈沖信號,送到單片機產生中斷,單片機再根據程序設定,計算出里程。
A44E 屬于開關型的霍爾器件,其工作電壓范圍比較寬(4.5~18V),其輸出的信號符合TTL電平標準,可以直接接到單片機的IO 端口上,而且其最高檢測頻率可達到1MHZ。
在霍爾電勢發生器的兩端加上電壓VCC后,根據霍爾效應原理,當霍爾片處在磁場中時,霍爾傳感器的輸出端輸出低電平。當車輪轉動一圈時小磁鐵提供一個磁場,則霍爾傳感器輸出一次低電平完成一次數據采集。我們選擇了P3.3 口作為信號的輸入端,內部采用外部中斷0,車輪每轉一圈,霍爾開關就檢測并輸出信號,引起單片機的中斷,對脈沖計數。通過計算將脈沖增加體現在金額和里程上。
(二)掉電存儲單元電路
當主電源低于10V時單片機就要采取掉電保護措施,我們采用看門狗電路MAX813L對電源電壓進行監視,該芯片PFI的門限電壓是1.25V,當電源電壓為10V時分壓結果使PFI引腳的電壓等于1.25V,電源電壓下降10V以下時V小于1.25V,則PFO就從高電平跳變到低電平,將PFO連接單片機的外部中斷P3.2口,當PFO從高電平跳變到低電平時觸發中斷進行數據保護,數據保護采用的是時鐘芯片DS1302,該芯片內部有32個寄存器可以對數據進行讀和寫以及時鐘的設置,所以當掉電時將數據寫入DS1302,重新上電后在從該芯片中讀取數據,這樣就完成了掉電保護功能。如圖1所示。
(三)按鍵電路
按鍵設計了一個功能鍵,能夠選擇時,分,單價,配合上調和下調,對時間,單價調整。設一個“計價”鍵,當乘客上車后,出租車開始計價,設一個“清零”鍵,乘客下車后,里程,總價清零,設一個“打印”鍵,當乘客到站付錢后,打印基本收費信息。共六個按鍵。各鍵盤設置的功能如圖2所示。
按下對應按鍵時調用對應的程序執行功能,其中計價按鍵含一個有乘客指示燈,清零按鍵還包含一個空車指示燈進行輔助顯示。
(四)顯示電路
顯示采用LED數碼管,LED顯示效果好,能顯示基本的數字信息,且程序簡單。LED顯示器與單片機的接口一般有靜態顯示和動態顯示兩種方式。LED采用靜態顯示與單片機接口時,共陰極或共陽極點連接在一起接地或高電平。靜態顯示器接口電路,在位數較多時,電路比較復雜,需要的接口芯片較多,成本也較高。動態LED顯示接口由于各個數碼管共用同一個段碼輸出口,分時輪流通電的,從而大大簡化了硬件線路,降低了成本。此次設計用動態顯示位選用74LS138驅動,138輸出低電平,所以選用共陰極數碼管。LED顯示器中每個發光二極管要通過5毫安-20毫安的電流才能達到正常亮度。
在本設計中,LED的主要功能就是把北京時間和乘客坐出租車的單價、路程和費用顯示出來,給乘客帶來方便。
參考文獻
[1]曹巧媛.單片機原理及應用[M].電子工業出版社,2002.
[2]李朝青.單片機原理與接口技術[M].北京航空航天大學出版社,1999.
關鍵詞:出租車計價器;加密裝置;解碼器;密碼寫入裝置
在出租車計價器設計中使用加密傳感器技術,是為了避免計價作弊等問題,保護消費者的利益。比如,某些不法分子利用空車牌設計的缺陷,在乘客上車之前,汽車已經提前進入了計價狀態。在乘客上車之后,司機只需要按倒空車牌,就可以置入預先的計價里程,侵害了消費者的利益。事實上,出租車計價器作弊的方式還有很多,這不僅降低了計價器計價的可靠性,而且也給統一管理工作增加了難度。雖然我國計量部門已經采取了措施,實現了對計價器的統一安裝,但是設計本身的缺陷讓很多不法分子鉆了空子,出租車司機私自更改計價傳感器的行為較為普遍。
1 出租車傳感器加密算法模型
通過對出租車計價器作弊行為的分析可知,傳感器所發送的計算脈沖沒有加密是導致出租車計價器計價漏洞的根本原因。加密傳感器在出租車計價器中的使用就是要實現對計算脈沖的加密,實現脈沖的加密傳輸,解碼后再傳遞給計價器,實現了計價器的有效計價。置換表是所有算法模型中最簡單的一種,但是在出租車計價器中使用的效果卻較好。在置換表中,不同的信號脈沖對應表中的一個偏移量,偏移量所對應的值就構成了加密文件。在加密傳感器中,加密和解密工作都需要用到置換表,而且由于其結構較為簡單,加密和解密的速度都很快。
在具體設計中,首先要以置換表為依據,將出租車電子傳感器中的所有計價脈沖信號都轉換成二進制數,這就實現了對計價脈沖信號的加密。然后加密后的脈沖信號將會發送給特定的解碼器,當解碼器接收到加密脈沖信號后,會對加密文件和原有的密碼進行比較,判斷傳感器所發送信號的有效性。如果解碼器判斷傳感器所發送的脈沖信號有效,那么就會向計價器發送計價脈沖信號,否則不發送。
在這個模型中,只有解碼器中的固有密碼和加密脈沖相同時,計價器才能夠開始計價,否則將無法計價。在統一管理工作中,計量部門可以通過改變加密協議、加密密碼等方式,實現對出租車計價的有效管理。
2 出租車計價器加密傳感器的設計
2.1 出租車加密傳感器的構成
加密裝置、解碼器以及密碼寫入裝置共同構成了加密傳感器。加密器的主要工作是接收計價脈沖信號,當加密器檢測到脈沖信號發生變化后,就會將加密信號發送給解碼器。解碼器的主要作用就在接收到加密文件后,通過比較、判斷等環節,實現對加密脈沖信號的判斷和解碼。同時,解碼器也可以接受密碼寫入裝置輸入的信號。因為加密裝置會接收到來自加密裝置和密碼寫入裝置兩方面的信息,因此,解碼器會有一個識別功能,能夠辨別信號的類型。通常情況下,解碼器會通過判斷所接受第一個數據刪除的類型,來判斷信號的類型。如果第一組數據不是字符,那么將會和解密器中的密碼進行比較,如果相同就會將脈沖信號發送給計價器。如果第一組數據是字符,那么就認為是密碼寫作裝置所發送的信號,解碼器會將其保存到E2PROM中作為固定的密碼。圖1為加密傳感器的系統構成,從圖中可以看出加密裝置、解碼器和密碼寫入裝置的基本關系。
圖1 加密傳感器系統構成
密碼寫入裝置的主要作用就是為了方便計量部門的密碼修改工作。首先,識別出密碼寫入裝置中所設定的密碼,當檢測到按鍵被按下后,同步的字符就會發送給解碼器。最后,由解碼器對比和分析后,存儲為固定密碼。
2.2 加密器設計
加密器是加密傳感器中的重要組成部分,加密器的固定密碼采用的二進制數,通常是由16個數字組成,但是表現時則采用5位十進制的數字表示。在發送脈沖信號時,1~9發送與其數值相等的脈沖而0則發送10個脈沖。脈沖是有固定格式的,脈沖的高電平時間為15us,低電平時間為10us。在實際工作中,要求發送每一個數字的時間要小于255us。加密器具體的工作流程如圖2所示:
2.3 解碼器設計
解碼器在整個加密傳感器中起到了接收密碼寫入裝置和加密器所輸入信號的作用,同時還能夠判斷信號的類型,并在此基礎上進行不同的處理。解碼器在設計中主要包含了兩方面內容:
第一,密碼存儲。串行E2PROM具有體積小、功耗低以及改寫便捷等特點,在出租車加密傳感器中使用較為廣泛。I2C總線是串行E2PROM總線的一種形式之一,I2C又稱之為內部集成線路總線,在數據傳輸過程中采用了SCL、SDA兩種方式,這兩種數據傳輸方式的特點就在于接口較為簡單。這種總線模式在目前出租車計價器加密傳感器中的應用較為普遍。
第二,密碼接收。數據接收功能是解碼器的基本功能,在實際工作中,要確保數據讀取的準確性,就必須要使用正確的方式接收密碼,尤其強調密碼接收的時序。傳感器發送信號的最小時間是20ms,因此,密碼發送的時間是決定解碼器接收時間的主要因素。在這種模式下,能夠將計價脈沖的發送時間控制在最短時間內。在具體的解碼工作中,解碼器首先讀取E2PROM中保存著的固定密碼,然后在寄存器中對數據的類型進行判斷。比對后,如果顯示密碼正確,那么在GP0引腳上就會發送高脈沖,進而實現計價器的計價。但是如果接收到的信號是密碼寫入裝置發送來的,那么解碼器就會接收這幾個數據,并將這些數據寫入到00h-04h中,完成后改程序即終止。
2.4 密碼寫入裝置設計
密碼寫入裝置是由計量部門控制的,具有修改密碼的作用,因此,要求發送的時序和加密器一致。為了實現解碼器對脈沖信號的有效判斷,就必須要在發送新密碼之前,先發送一個同步字符。在具體設計中,設置了5個小數字鍵,方便密碼的設置和修改。這5個小數字鍵分別代表的是個位到萬位的數據。
在密碼寫入裝置中,還設置了一個開關,用于設置密碼的啟動功能,會產生由高到低的跳變。當單片機在檢測到變化時,就會開始發送新密碼。密碼寫入裝置的工作流程如圖3所示:
3 結束語
加密傳感器在出租車計價器中的使用,不僅提高了出租車計價的準確性,而且方便了計量部門對出租車計價的管理。將加密傳感技術應用于出租車計價系統中,首先就要建立一個加密模型,在這個加密模型的基礎上,實現對加密裝置、解碼器以及密碼寫入裝置的設計。
參考文獻
[1]張國印,付小晶,馬春光.移動對等傳感器網絡的基于屬性加密的組密鑰管理協議[J].高技術通訊,2013(02).
關鍵詞:互聯網;出租車;計價器;單片機
doi:10.3969/J.ISSN.1672-7274.2016.02.007 中圖分類號:TH714 文獻標示碼:A 文章編碼:1672-7274(2016)02-0027-03
1引言
出租車計價器是司機與乘客交易的一種方式,也是出租車行業的發展標志,還是非常重要的工具,它關系雙方的利益。具有良好性能的出租車計價器,對廣大出租車司機與乘客來說都是很重要的。因此,出租車計價器的研究十分必要。本文設計的出租車自動計價器,上電后顯示最初的起步價,當乘客說出要去的目的地時,顯示出路線和預計的總價,同時乘客可以掃描計價器上的二維碼,將百度地圖下載到自己的手機上;通過按鍵可以調節起步價,里程計費單價。同時具有運行、暫停、停止等狀態,可以顯示暫停的時間,具有累加功能,暫停和運行時間在暫停和運行前一次的狀態上計時。出租車停止后能夠顯示行駛的總費用。
2系統框圖
計價器的單片機控制方案圖如圖1所示。它由以下幾個部件組成:單片機STC15F2K61S2、總金額及單價顯示部件、鍵盤控制部件、掉電存儲控制、里程計算單元、串中顯示驅動電路等。利用單片機豐富的IO端口及其控制的靈活性,實現基本的里程計價、價格調節、時鐘顯示等功能。不但能實現所要求的功能,而且能在很大程度上擴展功能,還可以方便的對系統進行升級。具體參見圖1。(1)里程計算、計價單元的設計。里程計算是通過安裝在車輪上的霍爾傳感器A44E檢測到的信號,送到單片機,經處理計算送給顯示單元的?;魻栭_關就檢測并輸出信號,引起單片機的中斷,對脈計數,當計數達到1,000次時,也就是1千米,單片機就控制將金額自動地增加,其計算公式:當前單價×千米數=金額。(2)數據顯示單元設計。由于設計要求有單價、路程、總金額顯示輸出,加上另外擴展了時鐘顯示(包含時分秒的顯示)和路線顯示,因此采用1602液晶顯示屏。(3)掉電存儲單元的設計。掉電存儲單元的作用是在電源斷開的時候,存儲當前設定的單價信息,該部分采用AT24C02。AT24C02是某公司的2KB字節的電可擦除存儲芯片,采用兩線串行的總線和單片機通信,電壓最低可以到2.5V,額定電流為1mA,靜態電流10Ua(5.5V),芯片內的資料可以在斷電的情況下保存40年以上,而且采用8腳的(4)信息采集與處理部分。主要利用了GPS對車輛的地理位置信息進行采集,并由單片機對數據進行處理(提取、轉換等)。(5)信息傳輸部分由GPRS將經單片機處理后的數據通過GPRS網絡、GPRS-Internet網關以及Internet通過Wi-Fi傳輸給Android終端。Android終端監控部分,通過編寫的基于百度地圖的軟件接收回來的數據存在SQL數據庫,再以百度地圖的形式呈獻給出租車駕駛人員和乘客。(6)票據打印部分。當出租車到達指定地點,司機翻起空車牌,便產生一個信號通知單片機,單片機啟動打印服務,將行車的中途等待時間、營運里程、單價、金額、日期及上下車時間等數據打印成出租車專用發票。采用接口插板方式與單片機相連,這一特點使得計價器的票據打印在功能上與主系統一體化,而在檢查、維修時又可單獨進行。
3主程序模塊
在主程序模塊中,需要完成對各芯片的初始化,在主程序模塊中還需要設置啟動/清除標志寄存器、里程寄存器和價格寄存器,并對它們進行初始化。然后,主程序將根據各標志寄存器的內容,分別完成啟動、清除、計程和計價等不同的操作。主程序流程如圖2所示。當空車信號燈打下時,表示有乘客上車,乘客報地名,系統根據目的地規劃路線,乘客選擇路線,并啟動計價,將根據里程寄存器中的內容計算和判斷出行駛里程是否已超過起價千米數。若已超過,則根據里程值、每千米的單價和起價來計算出當前的累計價格,并將結果存于價格寄存器中,然后將當前時間和累計價格送MAX7219驅動的顯示電路顯示出來。當中途塞車(等待或低速行駛)時,在一定時間內沒有檢測到傳感器的脈沖信號就啟動計時器進行計時,當超過規定的等待時間后,計價器就根據等待價格進行當前金額的累加與顯示,并在計價器上顯示等待時間;當到達目的地的時候,司機把空車燈打上,就停止計價,顯示當前所應該付的金額和對應的單價,并進行語音播報及票據打印。等乘客下車后,啟動出租車,計價器檢測到傳感器的脈沖信號,系統自動對顯示清零,并重新進行初始化過程,完成1次計價。
4結束語
基于互聯網的計價器用高度可靠的存儲功能開申報營業稅,而用打印機打印出正式發票,同時當乘客報出目的地時,可以通過互聯網規劃路線,其他附帶有電子時鐘、語音提醒等功能,構成了現今最為完善、先進的智能計價器。本系統的研制,為運管部門在出租車繞路、亂收費、交稅等提供方便。該設計具有性能穩定、功耗低、安全可靠、操作方便等特點,相信很受出租車公司、運管部門、出租車司機及廣大乘客的青睞。
參考文獻
[1]李廣弟,朱月秀,冷祖祁.單片機基礎[M].北京:北京航空航天大學出版社,2007
[2]李華.MCS-51系列單片機實用接口技術[M].北京:北京航空航天大學出版社,1993
[3]馬忠梅,張凱,馬巖.單片機的C語言應用程序設計[M].北京:北京航空航天大學出版社,2003
[4]胡輝.單片機原理及應用設計—21世紀高等院校規劃教材[M].北京:水利水電出版社,2005
關鍵詞:出租車計價; 自頂向下; VHDL; FPGA
中圖分類號:
TN911.7-34
文獻標識碼:A
文章編號:1004-373X(2012)05
-0179
-03
Design of taximeter based on FPGA
WANG Cui
(Department of Experimental Teaching, Yancheng Institute of Technology, Yancheng 224051, China)
Abstract:
A taximeter based on Quartus Ⅱ simulation software was designed by using FPGA chip cyclone Ⅱ EP2C8T144C8, which is of top-down design idea. The circuit of each module and the entire system were simulated. The simulation results prove that the taximeter system is of counting time, billing, metering and dynamic display function. To modify the VHDL language source code, it can complete more taximeter extended functions.
Keywords: taximeter; top-down; VHDL; FPGA
收稿日期:2011-09-13
0 引 言
隨著電子技術的發展,出租車計價器的設計也從傳統的全部由機械元器件組成的機械式設計到半電子式(即用電子線路代替部分機械器件的出租車計價器[1]),再從集成電路式到目前基于FGPA芯片為核心的系統的設計共經歷了四個階段,利用FPGA芯片,用較少的外部硬件和適當的軟件相互配合,可以通過軟件編程來完成更多的附加功能,設計比較靈活,并且還具有功耗小,體積小、低成本、安全可靠、使用方便[2]等優點。因此,使用FPGA來設計出租車計價系統已受到人們的關注,也能更好地發揮其優點。
本文以FPGA為設計載體,通過VHDL語言編程,采用Quartus Ⅱ 仿真軟件,設計了一種能動態顯示出租車計時、計費、計程的系統,具有一定的實際應用價值。
1 出租車計價系統的設計要求
1.1 實現計費功能
車起步開始計費,首先顯示起步價(本次設計為8.0元),行程在3 km以內,按起步價收費;當行駛超過3 km,1.6元/km,車暫時停車(如遇紅綠燈或中途暫時停車),當等待時間超過3 min,按1元/min收費。
1.2 實現顯示功能
能動態顯示出租車行駛的里程,范圍為00~99 km(考慮到出租車就在市區或近郊附近活動),同時顯示等待時間,范圍為00~59 min,顯示總計價值,范圍為00~999.9元,計價分辨率為0.1元。
2 出租車計價系統的設計體系
圖1為整個系統的頂層框圖,根據層次化設計理論[3],將出租車自動計價系統自頂向下可分為分頻模塊、控制模塊、計量模塊、譯碼和動態掃描顯示模塊。
(1) 分頻模塊。
通過分頻[4]產生不同頻率的脈沖信號用來實現系統的計費,本次設計中通過對240 Hz的輸入脈沖進行15次,24次和240次分頻,得到16 Hz,10 Hz和1 Hz的三種頻率,分別用于1.6元,1元和0.1元的計費。
(2) 計量控制模塊。
計量控制模塊是出租車自動計費器系統的主體部分[5],該模塊主要完成出租車的計時、計價、計程功能。計時器的量程為59 min,滿量程自動歸零。計程器的量程為99 km,滿量程自動歸零。行程在3 km內,且等待累計時間在3 min內,起步價費為8元;3 km外以1.6元/km計費,等待累計時間超過3 min按1元/min計費。
(3) 譯碼顯示模塊。
該模塊經過8選1數據選擇器將計費數據(4位BCD碼)、計時數據(2位BCD碼)、計程數據(2位BCD碼)動態顯示輸出。其中計費數據最大顯示為999.9元;計時數據最大顯示為59 min;計程數據最大顯示為99 km。
3 出租車計價系統的實現
系統的頂層原理圖如圖2所示,出租車計價器系統由主體FPGA電路taxi模塊和動態掃描顯示部分(8選1選擇器mux8_1模塊、模8計數器mo8模塊、七段數碼顯示譯碼器di_LED模塊、生成動態掃描顯示片選信號的3-8譯碼器模塊74138)[6]組成。
3.1 系統各功能模塊
3.1.1 taxi模塊
Taxi模塊是系統中十分重要的模塊,模塊設計中,系統的輸入信號為clk_240(240 Hz)、計價開始信號start、等待信號stop、里程脈沖信號fin。系統的輸出信號有總費用數cha3(百),cha2(拾),cha1(元),cha0(角),行駛距離信號為km1,km0,等待時間信號為m1,m0。
Taxi模塊的控制過程為:start作為計費開始開關,當start為高電平時,系統開始跟據輸入情況計數,有乘客上車并開始行駛時,fin脈沖到來,進行行駛里程計數,這時的stop應為0,中途若停車等待,就需把stop置為1,同時fin為0,進行等待計費,當乘客下車時,直接將start置為0,系統停止工作。taxi模塊又可分為分頻(fenpin)、計量(jiliang)、kongzhi(控制)和計費(jifei)四個子模塊[3,7],taxi模塊的內部結構如圖3所示。
圖3 taxi模塊的內部結構圖
Fenpin模塊是將輸入端clk_240(240 Hz)的時鐘信號進行分頻,分別得到f_16(16 Hz),f_10(10 Hz),f_1(1 Hz)的信號,用于計量時的1.6元,1元,0.1元。
Jiliang模塊用來計時和計程,fin為汽車的里程脈沖信號,當 fin為高電平時,以記錄的f_1的脈沖個數作為行駛的公里里程數,start是汽車計量開始信號,stop為等待信號。f_1是計量驅動信號,當f_1的脈沖到來,如果fin=1,記錄f_1的個數(即行駛公里數),當行駛超過3 km,ent0輸出為1。當stop為高電平時,記錄f_1的脈沖個數,60個脈沖為1 min,當超過3 min時,ent1輸出為1。仿真波形如圖4所示。
Kongzhi模塊主要根據jiliang模塊的en1和en0的不同輸出信號選擇不同的輸出頻率供jifei模塊計費,en1=1時f=10 Hz,en0=1時f=16 Hz。
Jifei模塊實際就是一個四位十進制加法器,仿真圖形如圖5所示,在taxi模塊中,它根據不同的輸入脈沖頻率對脈沖個數進行計數。jiliang模塊每計一次數,jifei模塊就實現16次或10次脈沖計數,即實現超時時的1元/min,超里程時的1.6元/km的收費。
對整個taxi模塊進行仿真,結果如圖6所示,由圖中可知,當stop為高電平時,汽車行駛了km1km0=35 km,計費cha3cha2cha1cha0為0592,即59.2元,與8+(35-3)×1.6=59.2元一致,圖中當等待超過3 min時,價格按1元/min計費,仿真結果正確。
3.1.2 動態掃描顯示部分
此模塊包含mo8計數器、mux8_1(8選1選擇器)、di_led七段數碼顯示譯碼器3個子模塊。
mo8計數器:輸入信號clk為系統輸入的240 Hz基準時鐘,輸出a為模8的二進制碼[8]。
mux8_1模塊是根據輸入信號c[2..0]的地址碼000至111分別對應了cha3,cha2,ch1,ch0,km1,km0,min1,min0八個四位BCD碼,dp為小數點指示信號,在計費的第二位數字上帶有小數點,仿真波形如圖7所示。
di_led數碼顯示譯碼模塊,將輸入信號d[3..0]轉換為q[6..0],即g,f,e,d,c,b,a七段譯碼輸出(高電平有效)[9],3F對應為0,仿真波形圖如圖8所示。
由于采用動態掃描,主要是根據人視覺暫留現象,一般影像在人眼中保留0.1~0.5 s左右,74LS138的輸出碼依次選通8個數碼管。只要頻率夠高,依次點亮8個數碼管時,給人視覺是同時點亮[10]。
3.2 總體電路的仿真結果
通過對整個設計系統的仿真分析,結果如圖9所示,輸出依次是3F 7D 27 .5B 66 3F 3F 3F, 其中總價格為3F7D27.5B(即67.2元), 里程數為663F(即40 km),等待時間為3F3F(即0 min),8+(40-3)×1.6=67.2元,仿真結果正確。
4 結 語
通過仿真驗證表明,本文所設計的出租車計價系統能動態顯示行駛的里程、等待時間和計費數目等,符合預定的設計功能要求。但設計中對出租車里程計數精度不高,若要提高精度,需根據設計要求設置取樣里程的脈沖,在計量(jiliang)模塊的輸入頻率中要做相應的修改,當出租車計費標準發生變化時,也可以通過修改VHDL源程序達到要求,另外,還可以擴展語音播報或票據打印等附加功能,此系統的設計體現了FPGA設計的自頂向下的設計思想,基于FPGA的設計靈活性高、功耗低、集成度高,具有廣闊的市場前景。
參 考 文 獻
[1]陳偉宏.基于Proteus的多功能出租車計價器設計[J].重慶工學院學報:自然科學版,2009,23(6):83-86.
[2]潘松,黃繼業.EDA技術實用教程[M].北京:科學出版社,2002.
[3]徐志軍,徐光輝.CPLD/FPGA的開發與應用[M].北京:電子工業出版社,2002.
[4]任愛鋒,初秀琴.基于FPGA的嵌入式系統設計[M].西安:西安電子科技大學出版社,2004.
[5]王誠,吳繼華.Altera FPGA/CPLD設計(基礎篇)[M].北京:人民郵電出版社,2005.
[6]閻石.數字電子技術基礎[M].4版.北京:高等教育出版社,1998.
[7]雷伏容.VHDL電路設計[M].北京:清華大學出版社,2006.
[8]王振紅.VHDL數字電路設計與應用實踐教程[M].北京:機械工業出版社,2003.
[9]劉昌華.數字邏輯EDA設計與實踐[M].北京:國防工業出版社,2006.
[10]蔡明生.電子設計[M].北京:高等教育出版社,2004.
【關鍵詞】單片機;計費系統;霍爾傳感器
一、引言
汽車計價器是出租車行業發展的重要標志。它關系著交易雙方的利益。具有良好性能的計價器無論是對廣大汽車司機朋友還是乘客來說都是很必要的。隨著汽車行業的日漸發展,汽車計價器的功能已從剛開始的只顯示路程發展到了能夠自主計費,以及打印發票和語音提示、按時間自主變動單價等功能?,F在各大城市出租車行業都已普及自動計價器,所以計價器技術的發展已成定局。而部分小城市尚未普及,但隨著城市建設日益加快,汽車行業也將加速發展,計價器的普及也是必然的,所以汽車計價器的市場還是十分有潛力的。
二、硬件設計方案
采用傳統的模擬電路和數字電路設計的計價器,其整體電路規模較大,故障率高,難調試,功能不易實現。本次設計我們利用單片機AT89C2051芯片作為設計的核心,利用霍爾傳感器測距,實現對汽車計價統計,采用AT24C02 實現在系統掉電的時候保存單價和系統時間等信息,顯示采用6位LED數碼管,分屏顯示單價、路程、總金額以及時間。本系統具有功能強大、電路簡單、便于維護等特點??傮w設計框圖如圖2.1所示。
1.單片機
AT89C2051是美國ATMEL公司生產的低電壓、高性能CMOS 8位單片機,只有20引腳。片內含有2K字節可反復擦寫的只讀程序存儲器和128字節的隨機數據存儲器,兼容標準MCS-51指令系統,內置通用8位中央處理器和Flash存儲單元。
該系統中AT89C2051作為總控芯片,主要具有對測量結果進行運算處理、控制顯示及保證系統正常工作等功能。
2.里程計算設計
本次設計里程計算采用霍爾傳感器A44E,里程計算是通過安裝在車輪上的霍爾傳感器A44E檢測到的信號,送到單片機,經處理計算,送給顯示單元的。其原理如圖2.2所示。
我們選擇了P3.2口作為信號的輸入端,內部采用外部中斷0(這樣可以減少程序設計的麻煩),車輪每轉一圈(我們設車輪的周長是1 米),霍爾開關就檢測并輸出信號,引起單片機的中斷,對脈沖計數,當計數達到1000 次時,也就是1公里,單片機就控制將金額自動的加增加,其計算公式:
當前單價×公里數=金額。
圖2.2 傳感器測距示意圖
3.顯示單元設計
本設計具有單價、路程、金額顯示輸出,加上我們另外擴展了時鐘顯示(包含時分秒的顯示),采用LCD液晶屏顯示,在距離屏幕較遠處無法看清數據,不能滿足要求,而且在白天其對比度也不能夠滿足要求,因此我們采用6位LED數碼管顯示方式。
數據的分屏的顯示是通過按鍵S1來實現切換的,在汽車不走的時候,按下S1,可以實現數據的分屏顯示,車在行走的時候只有總金額和單價顯示屏在顯示,當到達目的地的時候,客戶要求查看總的里程的時候,就可以按下S1 切換到里程和單價顯示屏,供客戶查詢。
4.AT24C02掉電存儲單元的設計
掉電存儲單元的作用是在電源斷開的時候,存儲當前設定的單價信息。AT24C02是ATMEL 公司的2KB字節的電可擦除存儲芯片,采用兩線串行的總線和單片機通訊,電壓最低可以到2.5V,額定電流為1mA,靜態電流10Ua(5.5V),芯片內的資料可以在斷電的情況下保存40年以上,而且采用8腳的DIP封裝,使用方便。
其電路如圖2.3所示。
圖中R8、R10是上拉電阻,其作用是減少AT24C02的靜態功耗,由于AT24C02的數據線和地址線是復用的,采用串口的方式傳送數據,所以只用兩根線SCL(移位脈沖)和SDA(數據/地址)與單片機傳送數據。
每當設定一次單價,系統就自動調用存儲程序,將單價信息保存在芯片內。當系統重新上電的時候,自動調用讀存儲器程序,將存儲器內的單價等信息,讀到緩存單元中,供主程序使用。
5.按鍵設計
(1)S1按鍵的功能
在汽車不走的時候,按下S1,可以實現數據的分屏顯示,車在行走的時候只有總金額和單價顯示屏在顯示,當到達目的地的時候,客戶要求查看總的里程的時候,就可以按下S1 切換到里程和單價顯示屏,供客戶查詢。
(2)S2按鍵的功能
在按下S1按鍵之后,若接著按下S2鍵則進行單價調整(默認為調整白天單價),當接著按下S1時,則進行晚上單價調,再次按下S1可進行中途等待單價調整。當單價調整結束后,可以通過按下S2按鍵進行時間調整,默認為調整時,接著按下S1可進行調整分,分調整后再接下S1可進行秒調整。當時調整完成后,若接著按下S2則又可進行單價調整。
(3)S3按鍵的功能
在顯示金額及單價時,若按下S3鍵則顯示路程和單價,再次按下S3則可返回顯示金額及單價。
(4)S4按鍵的功能
在按下S1按鍵之后,若接著按下S4按鍵,則進行設定默認晚上單價,并啟動計價器,若沒有按下S4則可設定默認單價(白天),并啟動計價器。當設定默認晚上單價結束后,再次接下S4按鍵則可設定默認中途等待單價,并啟動計價器。當設定默認中途等待單價后,若還按一次S4,則返回系統時間的顯示。
三、軟件設計
本系統的軟件設計主要可分為主程序模塊、定時計數中斷程序、里程計數中斷服務程序、中途等待中斷服務程序、顯示子程序服務程序、鍵盤服務程序六大模塊。
主程序模塊完成對各接口芯片的初始化、汽車起價和單價的初始化、中斷向量的設計以及開中斷、循環等待等工作。
另外,在主程序模塊中還需要設置啟動/清除標志寄存器、里程寄存器和價格寄存器,并對它們進行初始化。然后,主程序將根據各標志寄存器的內容,分別完成啟動、清除、計程和計價等不同的操作。