庫(kù)來(lái)酉,莫繼豪,王文濤,張盼盼,周 妍
(河南科技大學(xué)信息工程學(xué)院,河南 洛陽(yáng) 471023)
隨著科技水平的不斷進(jìn)步,人們經(jīng)濟(jì)水平的不斷提高,乘車(chē)出行已經(jīng)成為一項(xiàng)必不可少出行方式。近年來(lái),社會(huì)生活節(jié)奏日益加快,出租車(chē)行業(yè)順應(yīng)了發(fā)展潮流,成為大部分人出行的首要選擇。為了使交易能更快更好的進(jìn)行,對(duì)一個(gè)高精度計(jì)價(jià)器的需求也更加強(qiáng)烈。單片機(jī)具有體積小、功能強(qiáng)、可靠性高、價(jià)格低廉等一系列優(yōu)點(diǎn),本次設(shè)計(jì)的出租車(chē)智能計(jì)價(jià)器,以STM32C8T6為核心,通過(guò)軟硬件設(shè)計(jì)相結(jié)合,能夠在顯示屏上顯示出里程、單價(jià)以及消費(fèi)總金額,實(shí)現(xiàn)計(jì)價(jià)功能。
系統(tǒng)設(shè)計(jì)也稱(chēng)為概要設(shè)計(jì)或總體設(shè)計(jì),這個(gè)階段要完成的任務(wù):根據(jù)系統(tǒng)需要實(shí)現(xiàn)的功能,確定如何實(shí)現(xiàn)這些功能的硬件和軟件結(jié)構(gòu),特別是軟件和硬件功能的劃分,即哪些功能由硬件完成,哪些功能由軟件完成,以求滿(mǎn)足系統(tǒng)對(duì)功能、性能、成本、功耗的要求[1]。
圖1以框圖的形式介紹了此出租車(chē)計(jì)價(jià)系統(tǒng),以電機(jī)轉(zhuǎn)動(dòng)模擬出租車(chē)車(chē)輪的轉(zhuǎn)動(dòng),由測(cè)速傳感器測(cè)量行駛速度,結(jié)合時(shí)間算出里程及價(jià)格,由串口顯示驅(qū)動(dòng)把需要顯示的信息顯示在LCD屏上。
在完成系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)之后,還需要對(duì)硬件和軟件進(jìn)行分析設(shè)計(jì)。硬件上核心器件的選擇在很大程度上會(huì)影響到軟件方案的選擇。在整個(gè)項(xiàng)目中,軟件的工作量往往會(huì)超過(guò)硬件,從保證開(kāi)發(fā)進(jìn)度、降低開(kāi)發(fā)成本的角度考慮,良好的軟件支持至關(guān)重要[2]。圖2分別從硬件和軟件兩個(gè)方面介紹了此出租車(chē)計(jì)價(jià)器系統(tǒng)的結(jié)構(gòu)。
圖1 出租車(chē)計(jì)價(jià)系統(tǒng)結(jié)構(gòu)框圖
圖2 硬件和軟件架構(gòu)
構(gòu)件設(shè)計(jì)也稱(chēng)為詳細(xì)設(shè)計(jì),依然包括硬件設(shè)計(jì)和軟件設(shè)計(jì),注重的是功能的具體實(shí)現(xiàn)。硬件部分主要是實(shí)際電路的設(shè)計(jì)、各個(gè)模塊的連接接口以及電路圖,軟件部分主要是程序功能的實(shí)現(xiàn)。
硬件設(shè)計(jì)主要包括主控模塊、按鍵接口電路、LCD接口電路、電機(jī)驅(qū)動(dòng)、以及數(shù)據(jù)采集模塊的設(shè)計(jì)。
2.1.1 主控模塊
嵌入式系統(tǒng)本身是不能獨(dú)立工作的,必須給它供電,加上時(shí)鐘電路,提供復(fù)位信號(hào),內(nèi)置存儲(chǔ)器或外部擴(kuò)展存儲(chǔ)器,芯片才能工作,如圖3所示。STM32F103系列是增強(qiáng)型的32位基于ARM核心的微控制器[3]。本次設(shè)計(jì)的主控采用微控制器是STM32F103C8T6,內(nèi)部集成了包括MCU、電源穩(wěn)壓電路、電源濾波電路、BOOT選擇、指示燈電路、JLINK接口電路、晶振電路、復(fù)位電路、擴(kuò)展接口電路和USB接口電路等多個(gè)硬件電路[4]。這些豐富的外設(shè),使微控制器能適應(yīng)于多種應(yīng)用場(chǎng)合,也使操作更加方便簡(jiǎn)單,符合計(jì)價(jià)器計(jì)算精確、快捷的需求。
圖3 最小硬件系統(tǒng)組成
2.1.2 按鍵模塊
按鍵模塊就是把按鍵的電路整合起來(lái),只需要連接對(duì)應(yīng)的功能口并且通過(guò)軟件進(jìn)行處理就可以使用了。本次設(shè)計(jì)使用的是4*4的矩陣按鍵,用單片機(jī)低四位IO口驅(qū)動(dòng)4行,高四位IO口驅(qū)動(dòng)4列,根據(jù)設(shè)計(jì)的功能,選擇了所需的幾個(gè)按鍵進(jìn)行操作。
S1鍵:開(kāi)始鍵。當(dāng)顧客開(kāi)始乘坐出租時(shí),司機(jī)師傅按下此鍵,開(kāi)始對(duì)這次行駛計(jì)費(fèi)。
S2鍵:結(jié)束鍵。當(dāng)乘坐出租的顧客到達(dá)目的地時(shí),司機(jī)師傅按下此鍵停止對(duì)這次行駛的計(jì)費(fèi)。
2.1.3 LCD顯示模塊
LCD內(nèi)部主要由LCD顯示屏、控制器、驅(qū)動(dòng)器和偏壓產(chǎn)生電路構(gòu)成,接口電路原理圖如圖4所示。當(dāng)接通電源后,就可以看到被點(diǎn)亮的二極管,證明顯示屏正在準(zhǔn)備工作中。數(shù)據(jù)端的8位分別由P1和I/O端口和它進(jìn)行連接,P05和P06端口來(lái)控制三個(gè)控制端口,P1端口與8位雙向的數(shù)據(jù)線7到14連接,通過(guò)這樣的設(shè)置來(lái)達(dá)到單片機(jī)和液晶的通信的實(shí)現(xiàn)。
圖4 LCD接口電路
2.1.4 電機(jī)驅(qū)動(dòng)
本系統(tǒng)采用TB6612FNG電機(jī)驅(qū)動(dòng)模塊,該模塊相對(duì)于傳統(tǒng)的L298N效率上提高很多,體積上也大幅度減小。TB6612可以驅(qū)動(dòng)兩個(gè)電機(jī),STBY口接單片機(jī)的IO口,清零電機(jī)全部停止,置1通過(guò)AIN1、AIN2、BIN1、BIN2來(lái)控制正反轉(zhuǎn)。在設(shè)計(jì)時(shí),將電機(jī)與傳感器模塊相連接,通過(guò)電機(jī)轉(zhuǎn)動(dòng)模擬出租車(chē)行駛,把行駛信息傳送到傳感器中。
2.1.5 數(shù)據(jù)采集
本次設(shè)計(jì)使用的傳感器是基于IRT9606的測(cè)速傳感器模塊,在電機(jī)轉(zhuǎn)動(dòng)時(shí)向MCU發(fā)送計(jì)數(shù)脈沖,以達(dá)到測(cè)速的目的。此傳感器的核心是槽型光耦傳感器,來(lái)檢測(cè)槽中是否有遮擋,槽中無(wú)遮擋時(shí),接收管導(dǎo)通,DO輸出低電平,有遮擋時(shí),DO輸出高電平。工作電壓3.3V到5V,使用寬電壓LM393比較器,通過(guò)DO與單片機(jī)I/O的連接,檢測(cè)傳感器被遮擋的次數(shù),檢測(cè)電機(jī)的轉(zhuǎn)速。
圖5 軟件設(shè)計(jì)流程圖
圖5為軟件設(shè)計(jì)流程圖,按下按鍵s1時(shí),系統(tǒng)開(kāi)始工作,通過(guò)測(cè)速傳感器采集數(shù)據(jù),經(jīng)過(guò)一系列數(shù)據(jù)的處理以及顯示驅(qū)動(dòng)程序,顯示在LCD屏幕上,按下s2,停止計(jì)費(fèi),清除內(nèi)存,為下一次工作做準(zhǔn)備。
本系統(tǒng)用電機(jī)的轉(zhuǎn)動(dòng)模擬出租車(chē)行駛,用測(cè)速傳感器向單片機(jī)傳送的脈沖個(gè)數(shù)計(jì)算路程,根據(jù)主控器的程序指令計(jì)算消費(fèi)金額,最終把所需信息在LCD上顯示出來(lái),使交易更加透明、快捷、準(zhǔn)確。本次設(shè)計(jì)的智能計(jì)價(jià)器在準(zhǔn)確度和可靠性方面都有了很大提高,相比于之前的計(jì)價(jià)器更有利于雙方利益,符合時(shí)代發(fā)展的需求,為生活帶來(lái)了便利。