新型出租車計價器軟件功能分析與實現
3.2 誤時價誤差
用單片機內部定時器測兩個霍爾脈沖間的時間間隔,系統誤差是1μs。假設最大誤時計時60 min,車速按最快的200 km/h估計,兩脈沖間隔時間為33.9 ms,即每測33.9 ms有1μs的誤差。誤時計時最大系統誤差等于(60×60×1 000/33.9)×1μs=0.1 s。因為誤時價每10 s加1次,即計時誤差小于1個計價單位。
4 統計功能的設計
4.1 總價計算
總的費用由里程價、誤時價和附加費三部分組成。在出租車停止載客后,計價器會計算總體費用,并從AT24C256中讀取當天營業額,加上當次的費用后存回到AT24C256中。
4.2 誤差分析
計程價每100 m加1次,誤時價每10 s加一次,單價用2B(4位)壓縮型BCD碼表示,最高位“元”,精度為10-3元。計價誤差由計程誤差、誤時誤差、每次計價誤差三分部分構成。如果計程誤差小于1個計價單位,誤時誤差小于1個計價單位,可以忽略不計。每次計價誤差包括計程單價誤差和誤時單價誤差。其中若無計程單價誤差,則誤時單價按每分鐘計無,每10 s計,除6盡則無,若除不盡最大計時60 min,每10s計一次,誤差為10-3,則因誤時單價誤差累積的最大計價總誤差為:(60×60/10)×10-3=0.36元。
4.3 統計功能的實現
AT24C256存儲芯片有32 KB的存儲容量(0000~7FFF)。1日的統計信息按最大99 999.999元考慮,最多需要4 B的存儲空間,分別存儲萬位、千位、百位十位、個位角位以及分厘。則1年的統計信息需要365×4=1 460 B。1片256可供存儲幾年的統計信息,如果需要還可以擴展多片AT24C256。根據表1已知,統計信息從0200H開始存放。
在載客變空車以后,要將當次營業額加到當天的營業額中,即需要讀取AT24C256中相應地址中的數據,加上當次營業額后,再存回AT24 C256中。也就是必須給每天分配一個絕對的地址,需要設計一個日期轉換256地址的子程序。因為出租車都需要年檢,故按1年的需求設計。
理論上1個月最多31天,用公式:
(月-1)×31×4+(日-1)×4+ADDRESS_AT3 (1)
即可,但是單片機中計算乘法是比較麻煩的,如果按32天計算及用公式:
(月-1)×32×4+(日-1)×4+ADDRESS_AT3 (2)
雖然浪費了一些存儲空間,但是乘以128和乘4的運算的確可以通過簡單的移位指令實現,大大減小了單片機的運算量。日期轉256地址的計算如子程序DATE_TO_ATA所示。


這樣1年的信息需要32×4×12=1 536 B,轉換為16進制數為600H。則第一年占用的存儲空間為0200~07FFH,如果要存儲第二年的信息,則設計一個變量ADDRESS_AT4,統計信息從0800H開始存放,其余以此類推。
4.4 統計功能的意義
和參數傳遞一樣的道理,設計了計價器可以與PC機通信的話,不管是按串口通信方式還是無線通信方式,都可以供出租車管理部門采集到詳實、準確的營運數據,這些數據經過PC機處理后能夠詳細地做出日報表、月報表、運作分析表等,比較直觀的反映出租車的營運情況,便于管理部門全面掌握第一手資料,及時針對所出現的情況做出準確的判斷和決策,從而實現微機化、科學化管理。
5 結語
本文詳細的闡述了在出租車計價器中計程、計時的原理,并做了誤差分析。該設計巧妙,合理地利用存儲芯片AT24C256,不但使計價器具有附加費功能,容易改變計價參數,還能存儲營運信息,為管理部門制定相關政策,提供一手依據。根據本文方法設計的計價器誤差小,軟件設計靈活性高。本文引用地址:http://www.104case.com/article/172674.htm
評論