HT46RU24設(shè)計(jì)的出租車計(jì)價(jià)器方案
掃描二維碼
隨時(shí)隨地手機(jī)看文章
總體結(jié)構(gòu)如圖一所示。硬件上主要由HT46RU24單片機(jī),霍爾傳感器,空載開關(guān),鍵盤電路,數(shù)據(jù)存儲(chǔ)電路,時(shí)鐘電路,顯示電路,蜂鳴器,IC卡電路以及串口電路組成。
1.1 HT46RU24單片機(jī)。
HT46RU24單片機(jī)是HOLTEK公司研制的一種低功耗,高性能的8位單片機(jī)。它的ROM為8k*16、RAM為384 bytes,最多有40個(gè)雙向IO口。除此之外它還具有8通道12位分辨率的A/D轉(zhuǎn)換,A/D轉(zhuǎn)換可用來監(jiān)測外部模擬信號,如偵測電池電壓、電流、溫度、濕度、壓力、明暗度等。提供兩種模式的PWM輸出可應(yīng)用于控溫、調(diào)速、定電壓、定電流等。可控的PFD輸出用于發(fā)聲,或是紅外線傳輸?shù)妮d波信號。
HT46RU24的UART屬于全雙工異步通信,可由軟件設(shè)定波特率,并具有自動(dòng)檢錯(cuò)功能,利用UART與其它系統(tǒng)做數(shù)據(jù)傳輸時(shí),可減少軟件的負(fù)擔(dān),提高整個(gè)系統(tǒng)的使用效率。
HT46RU24單片機(jī)具有高的抗噪聲特性、WDT及LVR的功能用以加強(qiáng)MCU的穩(wěn)定性。
HALT和喚醒功能可降低功耗。HT46RU24單片機(jī)還可當(dāng)I2C從機(jī)使用。管腳圖如圖二所示。
1.2 霍爾傳感器
將安裝在車輛變速箱輸出端齒輪的霍爾傳感器接到單片機(jī)外部中斷接口上,車輪每轉(zhuǎn)動(dòng)一圈,霍爾傳感器將產(chǎn)生一個(gè)下降沿脈沖,觸發(fā)外部中斷。
1.3 鍵盤電路
為了節(jié)省IO口,設(shè)計(jì)一個(gè)2*4的矩陣鍵盤,在程序設(shè)計(jì)中每一個(gè)按鍵所代表的功能如表一所示。
圖二 HT46RU24管腳圖
表一 按鍵功能
1.4 空載開關(guān)電路(如圖三)
設(shè)計(jì)一個(gè)空載開關(guān),開關(guān)閉合時(shí)讀到低電平“0”,打開時(shí)讀到高電平“1”,通過兩次讀取開關(guān)的數(shù)值,判斷出租車所處的不同狀態(tài),如表二所示,兩次讀到“0”說明出租車處于空車狀態(tài),兩次都讀到“1”說明出租車處于載客狀態(tài),第一次讀到“0”第二次讀到“1”出租車從空車變到載客,第一次讀到“1”第二次讀到“0”出租車從載客變到空車。
圖三 開關(guān)電路
表二 開關(guān)狀態(tài)判斷
1.5 數(shù)據(jù)存儲(chǔ)器和時(shí)鐘電路
擴(kuò)展I2C總線的AT24C256存儲(chǔ)統(tǒng)計(jì)信息, PCF8563做時(shí)鐘輸出,這兩種芯片可共用IO口以節(jié)省IO口的使用。AT24C256存儲(chǔ)芯片有256K的存儲(chǔ)容量,分頁存儲(chǔ),每頁有64個(gè)字節(jié)的容量。PCF8563芯片有一個(gè)可編程的時(shí)鐘輸出,一個(gè)中斷輸出和掉電檢測器電路。
1.6 顯示電路和蜂鳴器電路
使用可顯示漢字及圖形的液晶SMG12864來顯示里程價(jià),誤時(shí)價(jià),附加費(fèi),統(tǒng)計(jì)信息等等。這款液晶內(nèi)置國標(biāo)GB2312碼簡體中文字庫(16x16點(diǎn)陣)、128個(gè)字符(8x16點(diǎn)陣)及64x256點(diǎn)陣顯示RAM(GDRAM)。與單片機(jī)的連接有8-位并行及串行兩種連接方式。在本設(shè)計(jì)中采用并行通訊方式,電路圖如圖四所示,在軟件編程時(shí)要置位PA0。
蜂鳴器單元設(shè)計(jì)目的是在于進(jìn)行一些特殊操作時(shí),能夠發(fā)出不同的提示音。
圖四 液晶顯示電路
1.7 IC卡電路(如圖五)
計(jì)價(jià)器具有IC卡付費(fèi)功能,所采用的IC卡是SLE4442卡,它是德國西門子公司設(shè)計(jì)的一種邏輯加密卡。SLE4442卡具有3KB的存儲(chǔ)容量和完全獨(dú)立的可編程加密代碼存儲(chǔ)器(PSC),是國內(nèi)目前應(yīng)用較廣的一種IC卡。
圖五 IC卡電路
1.8 串口電路(如圖六)。
設(shè)計(jì)串口電路來完成計(jì)價(jià)器與PC機(jī)通信。計(jì)價(jià)器傳送統(tǒng)計(jì)信息到PC機(jī),接收并儲(chǔ)存從PC機(jī)傳送過來的基本信息,包括車輪直徑,校正時(shí)鐘,起步價(jià)、里程價(jià)、回空價(jià)、等待價(jià)等計(jì)費(fèi)參數(shù)。在PC機(jī)上可以采用VB、VC等設(shè)計(jì)串口通信界面,通過串口電路管理者能夠采集詳實(shí)、準(zhǔn)確的營運(yùn)數(shù)據(jù),這些數(shù)據(jù)經(jīng)過PC機(jī)處理后能夠詳細(xì)的做出日報(bào)表、月報(bào)表、運(yùn)作分析表等,比較直觀的反映出租車的營運(yùn)情況,便于管理部門全面掌握第一手資料,及時(shí)針對所出現(xiàn)的情況做出準(zhǔn)確的判斷和決策,從而實(shí)現(xiàn)微機(jī)化、科學(xué)化管理。
圖六 串口電路
2.軟件結(jié)構(gòu)
在主程序中,最主要是根據(jù)開關(guān)狀態(tài)做不同的處理。狀態(tài)0:保持空車;狀態(tài)1:保持載客;狀態(tài)2:空車變載客;狀態(tài)3:載客變空車。主程序流程如圖七所示。
圖七主程序流程
2.1 保持空車
空車部分主要是做顯示、PC機(jī)通信以及IC卡消費(fèi)。通過設(shè)置程序?qū)崿F(xiàn)按不同的按鍵完成不同的功能。例如按下“0”鍵,液晶屏?xí)@示當(dāng)日的統(tǒng)計(jì)信息,再按下“2”鍵會(huì)顯示前一日的統(tǒng)計(jì)信息,按下“4”鍵顯示后一日的統(tǒng)計(jì)信息,具體要完成的功能如表一所示。
2.2 空車變載客
這部分要完成禁止串口中斷和啟動(dòng)計(jì)價(jià)。啟動(dòng)計(jì)價(jià)是為載客部分要完成的計(jì)價(jià)、計(jì)時(shí)程序做一些初始化的工作。例如要讀出計(jì)價(jià)參數(shù),給計(jì)程、計(jì)時(shí)、總誤時(shí)單元清0,判斷是否是夜班,啟動(dòng)定時(shí)器等。
2.3 保持載客
載客部分,主要是處理誤時(shí)價(jià)和里程價(jià),要用到50MS定時(shí)器中斷和外部中斷,需要定義計(jì)時(shí)單元來存儲(chǔ)兩個(gè)外部中斷之間的時(shí)間,定義累計(jì)誤時(shí)單元存儲(chǔ)累計(jì)等待時(shí)間。50MS中斷到來時(shí)置位F_50MS,在載客部分會(huì)調(diào)用50MS中斷處理程序,流程如圖八所示,該程序主要對計(jì)時(shí)單元進(jìn)行處理,如果計(jì)時(shí)單元大于10S,調(diào)用誤時(shí)價(jià)子程序ADD_PT。
通過霍爾傳感器,車輪每轉(zhuǎn)動(dòng)一圈,會(huì)觸發(fā)外部中斷,在中斷子程序里首先要關(guān)定時(shí)器,存T0計(jì)數(shù)值,給定時(shí)器重新置50MS計(jì)數(shù)初值后置位F_int0并開定時(shí)器。在載客部分也會(huì)調(diào)用外部中斷處理子程序,流程如圖九所示,當(dāng)檢測到車速低于特定值時(shí),需要計(jì)算誤時(shí)價(jià),將計(jì)時(shí)單元加入累計(jì)誤時(shí)單元中,其中ADD_PS是里程價(jià)子程序。
2.3.1 誤時(shí)價(jià)。
誤時(shí)價(jià)程序主要是判斷累計(jì)等待時(shí)間是否超過規(guī)定的等待時(shí)間(Twait),超過以后,每過10S增加一次10S誤時(shí)價(jià),流程圖如圖九所示,其中F_wait表示起價(jià)等待時(shí)間到標(biāo)志。
2.3.2 里程價(jià)
里程價(jià)子程序關(guān)鍵是判斷計(jì)程單元S的大小,判斷是起步價(jià),還是3KM-8KM的短途價(jià)或是8KM以上的長途價(jià)。
2.4 載客變空車
這部分要完成停止計(jì)價(jià)、存統(tǒng)計(jì)信息、允許串口中斷的操作,關(guān)鍵是存儲(chǔ)統(tǒng)計(jì)信息。每月最多有31天,每天需要4個(gè)字節(jié)的容量,這樣一個(gè)月的信息至少需要124個(gè)字節(jié)。因?yàn)椴捎玫拇鎯?chǔ)芯片AT24C256是分頁存儲(chǔ),每頁有64個(gè)字節(jié)的容量,如果給每個(gè)月的信息分配128個(gè)字節(jié),這樣通過計(jì)算公式: (月-1)×32×4+(日-1)×4+ADDRESS_AT3 ( ADDRESS_AT3表示在AT24C256里分配給統(tǒng)計(jì)信息的起始地址) 很容易存儲(chǔ)和查看每日統(tǒng)計(jì)信息,所以我們給每個(gè)月的信息分配2頁128個(gè)字節(jié)的容量。
3.結(jié)論
本文詳細(xì)的闡述了用HT46RU24單片機(jī)實(shí)現(xiàn)出租車計(jì)價(jià)器的軟硬件原理。程序設(shè)計(jì)清晰、有條理,維護(hù)性強(qiáng),整個(gè)電路完整、緊湊,成本低,且具有操作簡單,管理方便,安全可靠、功能強(qiáng)的優(yōu)點(diǎn)。計(jì)價(jià)器的核心HT46RU24單片機(jī),軟件編程靈活、自由度大、功能強(qiáng),功耗低,性價(jià)比高,技術(shù)成熟。