當前位置:首頁 > 嵌入式 > 嵌入式硬件
[導讀]自行車行車記錄儀是集計算機技術(shù)、電子技術(shù)為一體的機電一體化高科技產(chǎn)品,具有精確度高,使用方便等優(yōu)點。本項目將從行車記錄儀的功能,硬件電路設(shè)計,軟件設(shè)計,各項功能實現(xiàn)原理等方面來論述這一系統(tǒng)。

【摘要】自行車行車記錄儀是集計算機技術(shù)、電子技術(shù)為一體的機電一體化高科技產(chǎn)品,具有精確度高,使用方便等優(yōu)點。本項目將從行車記錄儀的功能,硬件電路設(shè)計,軟件設(shè)計,各項功能實現(xiàn)原理等方面來論述這一系統(tǒng)。

自行車行車記錄儀包括主控板,打印機驅(qū)動板,霍爾傳感器,12864液晶顯示器,EPSON微型打點打印機這五部分。該記錄儀能記錄實時的行車速度,行車總里程,單次行車里程,以及歷史最高行車速度,具備外部環(huán)境溫度顯示,總里程設(shè)置,行車信息打印等功能,是面向自行車愛好者的一個高精度,功能強大的行車記錄儀。

功能上,在設(shè)計行車記錄儀時,以Atmega64單片機為核心,AT24LC64 EEPROM,DS1302,12864液晶顯示器,霍爾傳感器等構(gòu)成外圍電路,行車記錄儀的核心部件是霍爾傳感器,在下面講述原理的時候會進行詳細的描述。顯示部分由12864液晶來完成,該液晶控制簡單,顯示區(qū)域大,低功耗,適合電池供電,可以通過設(shè)計菜單,從而來實現(xiàn)記錄儀強大的功能。打印部分由EPSON M-150II微型打點打印機來完成,用戶可以通過打印機記錄行車的統(tǒng)計信息,以及最近一次的行車信息,各種里程信息以及時速,時間等信息,用戶可以通過保管打印的信息,對自己的行車生涯進行統(tǒng)計。

系統(tǒng)軟件設(shè)計包含用戶UI界面,以及各個外圍電路的驅(qū)動兩大部分。使用的編譯器是AVR官方推薦的ICCAVR,其中外圍的驅(qū)動部分主要包括: DS1302時鐘芯片驅(qū)動;DS18B20溫度傳感器驅(qū)動;24LC64 EEPROM驅(qū)動;EPSON M-150II微型打點打印機驅(qū)動;12864液晶驅(qū)動

硬件電路制作使用Protel DXP設(shè)計制做PCB板。分主控板和打印機驅(qū)動板焊接調(diào)試,進行性能和功能測試。

本系統(tǒng)硬件部分結(jié)構(gòu)簡單,軟件部分使用自己設(shè)計UI界面,使用方便,中文顯示,可操作性強,具有比較好的市場前景。

1. 引言

自行車行車記錄儀(以下簡稱碼表)在國內(nèi)外已經(jīng)有了廣泛的應(yīng)用,但是不管是國外的還是國產(chǎn)的碼表都存在著很多缺點。

首先,對于國產(chǎn)碼表來說,缺點主要有:

安裝相當麻煩,根據(jù)使用者評價,一般安裝需要半小時以上,而國外的進口碼表則只要5分鐘即可安裝完畢,所以在設(shè)計該碼表時需要在這方面進行改進。

即時速度顯示混亂,其實這是計算精度不夠造成,速度高于25M/S以后(特別是30M/S以后)當前速度就開始有波動,速度越快波動越大,這個問題還導致最高速度不可信,所以在設(shè)計時選擇的CPU必須是具有較高計算速度,且實時性能較好的,這里選用了AVR的MEGA64高性能8位單片機,此單片機資源豐富,最高速度可以達到16MIPS/S。

里程和速度的清零功能未能真正實現(xiàn),它不能像國外的SIGMA那樣清除指定的數(shù)據(jù),而是全部清零重置,連總里程和時鐘都清零了,所以這個設(shè)計也是非常的失敗的,需要改進。

時鐘不準,根據(jù)大部分使用者的反應(yīng),一個月快了差不多半小時。

某些國產(chǎn)表的輪徑設(shè)置最小只能適應(yīng)20*2.0cm的輪胎,也就是說折疊車基本用不上,這點也是需要改進的。

最后一點對于普通用戶來說都是比較反感的,說明書以及液晶上的顯示都是全英文的,而且液晶顯示簡單,說明書也只是一個小紙片而已,對自行車碼表沒點了解、沒有點鉆研精神還不一定能搞清里面的功能和用法。

再次,對于外國的碼表來說,觀點主要有以下:

除了以上的第六個缺點以外,其它缺點基本都是不存在的,但是一個比較致命的要害是價格高,一般的消費群體買不起。就拿比較出名的德國品牌sigma,最便宜的到70多,但是功能實在單一。而功能強大,性能又好的則貴至好幾百元,上千元不等,型號很多,價格范圍波動也很大。

最后,總結(jié)出不管是國內(nèi)還是國外碼表,都存在以下缺點:

顯示都是英文,對于一般的用戶使用比較的不方便,而且安裝較麻煩,初始化設(shè)置十分的繁瑣。

功能單一,一般便宜的碼表,往往只具備速度的記錄,行車總里程,行車總時間的記錄等等,并且通過液晶查看,不能有效的統(tǒng)一歷史數(shù)據(jù),或者只能查閱近幾天的歷史數(shù)據(jù)。

實現(xiàn)該系統(tǒng)所需要的知識如下:

單片機C語言編程;IIC,單總線等串行總線編程;模塊化程序設(shè)計;霍爾傳感器原理及實現(xiàn)方法;液晶顯示編程;打印機實現(xiàn)原理;protel畫原理圖以及畫PCB等。

核心元件,單片機,這里選擇ATMEL公司的8位中高端單片機Atmega64,選擇它的理由主要有以下幾點:

在存儲方面,使用的是ATMEL公司的AT24LC64 EEPROM存儲器,該存儲器走的是IIC(ATMEL公司開發(fā)的兩線串行總線)總線模式,雖然可以用一般的單片機模擬IIC總線,但是為了提高效率則必須選擇具有IIC總線接口的單片機,這個一般的51單片機已經(jīng)不能滿足,所以需考慮其它單片機。

打印機模塊,有下面的打印機實現(xiàn)原理(圖4.5)可知,我們必須選擇具有雙邊沿觸發(fā)的單片機,有這個功能的單片機ATMEL的AVR系列的中高端單片機能滿足,比如Atmega64及以上的單片機都具有這一功能。

霍爾傳感器,霍爾傳感器測速必須具有兩個內(nèi)置外設(shè),一個是外部下降沿中斷,一個是內(nèi)部定時器,Atmega64也能很好的滿足。

內(nèi)存空間要求:在做用戶界面以及制作貪吃蛇等游戲時都必須開很大的緩存,所以必須具備一定的內(nèi)存容量,初步估計需要2K內(nèi)存以上,而Atmega64擁有4K內(nèi)存,能夠完全滿足。

更重要的是,這款單片機價格便宜,只要20余元便能購置一片,所以選擇這個單片機時比較合適的。

下面將從硬件系統(tǒng),軟件系統(tǒng),各個模塊的實現(xiàn)原理,軟硬件調(diào)試這幾個方面來詳細的講述這一個系統(tǒng)。

2. 系統(tǒng)框架

2.1 系統(tǒng)框架結(jié)構(gòu)圖

系統(tǒng)框架結(jié)構(gòu)圖如圖2.1所示

圖2.1 系統(tǒng)框架圖

2.1.2 主控板

如上圖2.1所示,主控板為系統(tǒng)核心,主要包含單片機ATmega64(ATEML公司8位中高端單片機)以及,各個模塊接口。

2.1.3 打印機

如上圖2.1所示,打印機模塊需要一個驅(qū)動板以及一個打印機模塊,打印機為EPSON公司的M-150II微型打點打印機,一行可以打96個點。

2.1.4 存儲模塊

如上圖2.1所示,存儲模塊用的是ATMEL公司的AT24LC64 EEPROM(電可擦除編寫存儲器)存儲器,大小一共是8千字節(jié)。

2.1.5 溫度傳感器

如上圖2.1所示,溫度傳感器用的達拉斯公司的DS18B20單總線數(shù)字溫度傳感器,支持多個掛同一條總線,且測試溫度較準。

2.1.6 霍爾傳感器

如上圖2.1所示,霍爾傳感器使用的是A3144先行霍爾元件,在下面的第三章,硬件設(shè)計中將看到對霍爾傳感器的改良。

2.1.7 液晶顯示器

如上圖2.1所示,液晶顯示器使用的STN7920控制器的12864液晶顯示器,該液晶寬128個點,高64個點,故名12864,并且自帶中文字庫,可顯示區(qū)域大。

2.2 解決的主要內(nèi)容

如何利用好強大的MEGA64單片機資源而不浪費,以及充分理解該單片機相關(guān)的控制單元內(nèi)在的物理邏輯,由此才能深入的理解單片機的運行以及啟動過程,并發(fā)現(xiàn)問題時能得到及時解決。

行車記錄儀的硬件設(shè)計— 記錄儀總共涉及到溫度,時間,電源,液晶,打印機等多個模塊組成,在設(shè)計硬件時需要充分考慮到各種干擾,美觀度等因素。

多層菜單設(shè)計— 多層菜單是一個比較復雜的邏輯,如果設(shè)計不好會導致整個工程的混亂,使代碼變得難于理解,甚至不能繼續(xù)接下去的工作,所以多層菜單設(shè)計需要一個較好的算法來實現(xiàn)它。

各種總線協(xié)議驅(qū)動— 單片機內(nèi)置IIC,SPI等總線協(xié)議,在溫度獲取,flash存儲中等都需要用到這些總線,所以這些總線協(xié)議的驅(qū)動也是比較關(guān)鍵的。

打印機驅(qū)動電路— 在本設(shè)計中,用到了EPSON的M-150II打印機,其工作電流大,需要專門的硬件驅(qū)動電路,在設(shè)計這一塊電路時,必須做好和主控板(記錄儀)的接口,以方便用戶進行數(shù)據(jù)導出和統(tǒng)計。

2.3 實現(xiàn)的主要功能

顯示實時速度和平均速度

顯示總里程和單次行車里程

顯示時間和溫度

節(jié)電保護

行車信息存儲

用戶菜單UI界面

時間修改

輪徑設(shè)置,里程設(shè)置,等一些參數(shù)的設(shè)置

打印行車記錄統(tǒng)計信息

貪吃蛇小游戲

3. 硬件系統(tǒng)設(shè)計

3.1 主控板

主控板主要包括:CPU,Atmega64;時鐘芯片,DS1302;存儲芯片,24LC64;JTAG在線仿真接口;中斷獨立按鍵模塊;LED調(diào)試電路;12864液晶顯示接口;DS18B20溫度傳感器接口;霍爾傳感器接口;打印機驅(qū)動板接口。

對單片機的選擇主要有以下要求:

在存儲方面,使用的是ATMEL公司的AT24LC64 EEPROM存儲器,該小存儲器走的是IIC總線模式,雖然可以用一般的單片機模擬IIC總線,但是為了提高效率則必須選擇具有IIC總線接口的單片機,這個一般的51單片機已經(jīng)不能滿足,所以需考慮其它單片機。

時鐘模塊,用的是達拉斯的DS1302芯片,只需普通的端口操作就能完成。

打印機模塊,有下面的打印機實現(xiàn)原理可知,我們必須選擇具有雙邊沿觸發(fā)的單片機,有這個功能的單片機ATMEL的AVR系列的中高端單片機能滿足,比如Atmega64及以上的單片機都具有這一功能。

霍爾傳感器,霍爾傳感器測速必須具有兩個內(nèi)置外設(shè),一個是外部下降沿中斷,一個是內(nèi)部定時器。

內(nèi)存空間要求:在做用戶界面以及制作貪吃蛇等游戲時都必須開很大的緩存,所以必須具備一定的內(nèi)存容量,初步估計需要2K內(nèi)存以上。

由以上幾點分析,這里我選擇了ATMEL公司的AVR系列單片機Atmega64,該款單片機價格便宜,功能強大,能滿足上面幾點的全部要求。

結(jié)論:最終選擇的單片機為ATMEL公司的Atmega64八位高性能單片機。

主控系統(tǒng)的核心如圖3.1所示。

圖3.1 核心板最小系統(tǒng)

3.2 霍爾傳感器

霍爾傳感器是實現(xiàn)行車記錄儀最核心的部件,記錄儀的核心記錄參數(shù)(車速),便是由霍爾傳感器實現(xiàn)的,所以在制作霍爾傳感器時必須嚴格把關(guān)。

3.2.1霍爾傳感器工作原理

霍爾傳感器,顧名思義,利用的是霍爾效應(yīng)。

霍爾效應(yīng)的本質(zhì)是:固體材料中的載流子在外加磁場中運動時,因為受到洛侖茲力的作用而使軌跡發(fā)生偏移,并在材料兩側(cè)產(chǎn)生電荷積累,形成垂直于電流方向的電場,最終使載流子受到的洛侖茲力與電場斥力相平衡,從而在兩側(cè)建立起一個穩(wěn)定的電勢差即霍爾電壓。正交電場和電流強度與磁場強度的乘積之比就是霍爾系數(shù)。平行電場和電流強度之比就是電阻率。大量的研究揭示:參加材料導電過程的不僅有帶負電的電子,還有帶正電的空穴。

本記錄儀中使用的霍爾元件A3144E正是利用這一效應(yīng)而產(chǎn)生的。其實物結(jié)構(gòu)圖如圖3.2所示

圖3.2 霍爾元件結(jié)構(gòu)圖

霍爾元件工作原理:實物結(jié)構(gòu)圖如上圖3.2所示,3腳為信號腳,1腳和2腳分別接電源和地。在沒有經(jīng)過磁場時,輸出為高電平,當磁場漸漸變強時,則輸出的電平會漸漸變低,當磁場周期性的出現(xiàn)時,在輸出腳便會出現(xiàn)一個正弦波電壓,霍爾元件信號輸出如圖3.3所示

圖3.3 霍爾元件信號輸出

3.2.2 霍爾傳感器改良

如上圖3.3所示在周期性磁場的作用下,霍爾元件,A3144E輸出的是一個周期性的正弦波,而單片機能識別的只是1或0的高低電平,如果把這個信號直接接單片機則有很多缺點:

單片機無法識別該信號除了高電平和低電平時的電平

霍爾元件靈敏度低,只有在磁鐵靠的很近的時候才有反應(yīng)

針對以上缺點,需要對霍爾傳感器進行改良,目的為了提高靈敏度和改善輸出波形,改良的電路圖如圖3.4所示

圖3.4 改良的霍爾傳感器

工作原理:改良的霍爾傳感器如上圖3.4所示,在沒有磁場的情況下,3144輸出高電平,則運算放大器輸出低電平,當經(jīng)過磁場時,3144輸出電平漸漸變低,當電平低于放大器負極時則放大器輸出低電平,從而通過單片機采集這個低電平信號。

由以上工作原理可知,可以通過調(diào)節(jié)滑動變阻器R3,從而來調(diào)節(jié)觸發(fā)電平。并且通過點亮燈LED1來指示信號的輸出。

改良后的霍爾傳感器信號輸出波形如圖3.5所示

圖3.5 霍爾傳感器輸出信號

霍爾傳感器信號輸出如上圖3.5可知,經(jīng)過改良后的霍爾傳感器能輸出一個單片機能識別的方波,并且可以通過調(diào)節(jié)滑動變阻器R3來調(diào)節(jié)傳感器的觸發(fā)電平,同時通過指示燈LED1來指示信號的輸出,最主要達到了增強信號的可處理性的目的。

3.3 打印機

打印機在打印的時候需要大電流提供,而單片機的IO管腳最多只能提供20mA的電流,所以打印機在打印之前需要有額外的驅(qū)動電路來提供打印需要的電流。打印機實物接口如下圖3.6所示

圖3.6 打印機實物接口

其中的信號接口如圖3.7所示

圖 3.7 打印機信號接口

打印機電機驅(qū)動如下圖 3.8所示,打印機主要信號包括,電機驅(qū)動信號:Motor(+),4個打印針驅(qū)動信號:(6,7,8,9)。

電機驅(qū)動電路如下圖3.8所示

圖3.8 打印機電機驅(qū)動

打印機電機驅(qū)動如上圖3.8所示,信號由AVR_PRINT_ON腳輸入,高電平驅(qū)動,當產(chǎn)生高電平時,通過三極管Q1驅(qū)動打印機打印。

打印針的驅(qū)動如下圖3.9所示

圖3.9 打印針驅(qū)動

AVR_PRINT_A為信號輸入腳,低電平驅(qū)動,當該腳為低電平時,通過三極管Q3和Q4驅(qū)動打印針PRINT_A打印。

3.4 其它外圍電路

除了以上涉及核心電路外,其它比如時間顯示,數(shù)據(jù)存儲,溫度顯示等,都分別需要不同的硬件模塊提供支持。

3.4.1 時鐘模塊

這里時鐘采用了達拉斯的DS1302時鐘芯片,時鐘模塊電路圖如圖3.10所示

圖3.10 DS1302時鐘模塊

該模塊采用串行工作模式,通過SCLK(Signal Clock,信號時鐘), I/O(Input And Output,輸入輸出信號),RST(Reset 復位信號)三線控制芯片工作。

3.4.2 數(shù)據(jù)儲存模塊

數(shù)據(jù)存儲采用了ATMEL公司的24LC64 EEPROM(可編程電可擦除存儲芯片),模塊電路圖如圖3.11所示

圖3.11 EEPROM存儲電路

該模塊采用的是標準的I2C總線模式,操作簡單方便,總?cè)萘繛?4Kbit,8K字節(jié),對于存儲記錄儀的參數(shù)是綽綽有余。

3.4.3 溫度傳感模塊

溫度傳感器采用的是達拉斯的DS18B20,單總線模式,溫度傳感器模塊電路圖如圖3.12所示

圖 3.12 溫度傳感器模塊

溫度傳感器模塊如上圖3.1所示,DS18B20采用的是單總線模式,該數(shù)字溫度傳感器最大的的特點是,只需一個IO管腳便可以控制其工作,并且該傳感器傳感溫度精確,最小可以精確到0.0625℃。

3.4.4 獨立按鍵模塊

獨立按鍵模塊是提供用戶來控制和使用UI界面,原理圖如下圖3.13所示

圖3.13 獨立按鍵電路

獨立按鍵電路如上圖3.13所示,每個按鍵按下時都會產(chǎn)生一個中斷,在設(shè)計嵌入式軟件時可以通過在按鍵中斷內(nèi)判斷按鍵值,并且可以通過定時器去除抖動,這種軟件設(shè)計可以避免軟件延時去抖,從而提高了整套軟件的運行效率。

4. 軟件系統(tǒng)設(shè)計

本套軟件主要實現(xiàn)自行車行車記錄的智能控制,其實現(xiàn)的功能主要有以下幾點:

顯示平均行車速度,實時行車速度,時間和溫度

記錄行車速度、行車總里程、單次行車里程

記錄總行車時間,單次行車時間

輪胎圓周設(shè)定,總里程初值設(shè)定

自動關(guān)機,節(jié)電保護

行車統(tǒng)計信息打印

貪吃蛇小游戲

時間顯示和時間設(shè)置

4.1 軟件總體框架

軟件總體流程圖如下圖4.1所示

圖4.1 嵌入式軟件整體流程圖

4.2 軟件說明

該嵌入式軟件設(shè)計的思想主要是模塊化的程序設(shè)計思想,其中需要驅(qū)動的模塊主要有以下幾點:

DS1302時鐘模塊驅(qū)動

DS18B20數(shù)字溫度傳感器模塊驅(qū)動

24LC64 EEPROM存儲模塊驅(qū)動

12864液晶顯示模塊驅(qū)動

霍爾傳感器計速模塊驅(qū)動

EPSON M-150II微型打點打印機驅(qū)動

軟件主要包含三層結(jié)構(gòu),分別為應(yīng)用層,封裝層以及驅(qū)動層。其軟件層次結(jié)構(gòu)如下圖4.2所示

圖 4.2 嵌入式軟件層次結(jié)構(gòu)

這種軟件設(shè)計的好處是便于移植,當更換某一芯片時,只需要改變相應(yīng)芯片的驅(qū)動層,而不用修改封裝和應(yīng)用層,便可以使軟件繼續(xù)正常運轉(zhuǎn)。

而如果更換單片機這一核心元件,也只需更改所有的驅(qū)動層便可以把軟件移植到其它單片機平臺,在編寫涉及到硬件的代碼時,可以盡量使用宏定義或者編寫多層結(jié)構(gòu),使底層硬件操作的代碼達到最少,從而方便移植。

4.3 各個模塊實現(xiàn)原理

4.3.1 處理器模塊

首先在選擇CPU(Central Processing Unit,計算機中央處理器)之前,必須先分析完成這個作品所選的CPU必須具備的功能,如果CPU選的功能太過簡單就不能達到預期的效果,很多東西不能實現(xiàn),而如果選擇很先進的CPU或者32位的高級單片機,首先第一個是不能充分利用這個單片機,第二是在成本上也會大幅上升,所以在選擇單片機時必須對所需要的功能進行合理的分析。

分析情況:

在顯示方面使用的是12864液晶的帶字庫液晶,該液晶操作簡單,只需普通的IO端口操作便可以解決控制,所以它對單片機沒有特殊的要求。

在存儲方面,使用的是ATMEL公司的AT24LC64 EEPROM存儲器,該存儲器走的是IIC(ATMEL公司開發(fā)的兩線串行總線)總線模式,雖然可以用一般的單片機模擬IIC總線,但是為了提高效率則必須選擇具有IIC總線接口的單片機,這個一般的51單片機已經(jīng)不能滿足,所以需考慮其它單片機。

時鐘模塊,用的是達拉斯的DS1302芯片,只需普通的端口操作就能完成。

打印機模塊,有下面的打印機實現(xiàn)原理(圖4.5)可知,我們必須選擇具有雙邊沿觸發(fā)的單片機,有這個功能的單片機ATMEL的AVR系列的中高端單片機能滿足,比如Atmega64及以上的單片機都具有這一功能。

霍爾傳感器,霍爾傳感器測速必須具有兩個內(nèi)置外設(shè),一個是外部下降沿中斷,一個是內(nèi)部定時器。

內(nèi)存空間要求:在做用戶界面以及制作貪吃蛇等游戲時都必須開很大的緩存,所以必須具備一定的內(nèi)存容量,初步估計需要2K內(nèi)存以上。

由以上6點分析,這里我選擇了ATMEL公司的AVR系列單片機Atmega64,該款單片機價格便宜,功能強大,能滿足上面7點的全部要求。其資源如下:

工作于16M時性能高達16MIPS,速度快

64K flash程序代碼空間

4K 的內(nèi)部SRAM,足夠滿足UI界面以及其他的緩存

內(nèi)置IIC和SPI總線接口

8路外部中斷,有4路能實現(xiàn)雙邊沿中斷

3路定時急速器(2路8位,1路16位)

兩個串行USART口

53個普通IO端口(大部分復用)

由以上八點可以看出,該款單片機完全能夠滿足這個產(chǎn)品需要的功能,并且Atmega64為基于RSIC結(jié)構(gòu)的8位低功耗CMOS微處理器,降低功耗,是做行車記錄儀的首選單片機。

結(jié)論:最終選擇的單片機為ATMEL公司的Atmega64八位高性能單片機。

4.3.2 用戶UI界面原理

在這個嵌入式軟件中,最關(guān)鍵也是最富有挑戰(zhàn)的便是用戶界面,即菜單系統(tǒng),如果只是用簡單的switch,case語句,那在三層菜單的基礎(chǔ)上,那將會是一個非常龐大的代碼,并且可讀性差,維護十分困難,當需要增加或則刪減菜單時都是一件非常痛苦的事情。

通過各種資料的搜索與整理,并且通過自己的改良,用了一種基于節(jié)點編號的方法實現(xiàn)了這個菜單系統(tǒng)。

首先、菜單是有層次的,并且每一層菜單都有不同的不同的條數(shù),比如第一層菜單有四條,第一層菜單第一條的子菜單都3條,而第一層菜單第二條的子菜單有2條。

加入以個十百來標識菜單所在的層次,以每一位的大小來標識當前菜單再當前層次的條數(shù),則可以推斷出每條菜單都有一個唯一的ID,我們稱之為節(jié)點。

基于節(jié)點編號的菜單系統(tǒng)的結(jié)構(gòu)如下圖4.3所示

圖4.3 基于節(jié)點編號的菜單系統(tǒng)結(jié)構(gòu)

結(jié)構(gòu)分析:菜單系統(tǒng)結(jié)構(gòu)圖如上圖4.3所示,可見很明顯,菜單為3層菜單結(jié)構(gòu),第一層總共有兩條菜單,其編號分別是1和2,在例如在第三層中節(jié)點編號為133的菜單,由該節(jié)點知,該條菜單再當前層次的第三條,并且位于上層菜單的第三條,位于上上層菜單(即一級菜單)的第一條。其它菜單的結(jié)構(gòu)和這個一樣。

由以上分析可知,菜單的結(jié)構(gòu)很明顯的構(gòu)成了一個標準的二叉樹,并且其父子節(jié)點有很明顯的算術(shù)關(guān)系,其關(guān)系如下。

父節(jié)點 = 當前節(jié)點%10;(%操作為求余操作)

子節(jié)點 = 當前節(jié)點*10 + 1;

如果沒有父節(jié)點或者子節(jié)點,則分別把這兩個節(jié)點設(shè)置成空節(jié)點。

有了這個方法,要實現(xiàn)一個菜單系統(tǒng)便是一個很簡單的事情了,這套菜單系統(tǒng)還能實現(xiàn)翻頁等復雜操作,并且增加或刪除節(jié)點十分方便I,只需修改相應(yīng)節(jié)點的編號就可以實現(xiàn)。

菜單與實時顯示界面的分離:在這套菜單系統(tǒng)中,用戶可以通過按返回鍵激活菜單或者通過返回鍵返回實時界面,其實現(xiàn)原理也非常簡單,只需設(shè)置一個標志位來標識是否激活菜單,從而達到實時界面與菜單的分離。

4.3.3 測速實現(xiàn)原理

測速的核心部件是霍爾元件,利用霍爾元件,再進行一些改良,如上硬件設(shè)計中提到的圖3.4所示。從而使傳感器在周期性的磁場作用下產(chǎn)生一個固定周期的方波。

那么,如何利用輸出的一個方波來實現(xiàn)測速的目的呢?這里利用了單片機的兩個內(nèi)置外設(shè):

外部IO中斷

8位定時器T2

當出現(xiàn)方波的下降沿時,單片機可以利用外部中斷采集到這個下降沿,并跳轉(zhuǎn)到中斷服務(wù)入口,在中斷服務(wù)中可以通過打開定時器來實現(xiàn)記錄每個方波或者一定方波個數(shù)n的時間t。

這里假設(shè)輪胎的圓周長是len厘米。則由以上數(shù)據(jù)可知如下公式。

速度 V = n*len/t (cm/s),其中l(wèi)en的單位為厘米,t的單位為秒。

4.3.4 微型打印機原理

在這里使用的打印機是EPSON公司的M-150II微型打點打印機,其總共包含4個打印針,每個打印針分別可以打印24個點,其在打印紙上的分布點如下圖4.4所示

圖4.4 打印機點在打印紙上的分布

由以上硬件設(shè)計中的圖3.7所示知,控制打印機運轉(zhuǎn)的主要有4種信號:

復位控制信號Reset Decetor

時序控制信號 Timing Decteor

電機運轉(zhuǎn)控制信號 Motor

四個打印針控制信號 Print Solenoid

打印機點在打印紙上的分布如上圖4.4所示,當打印機從左往右運動時,分別產(chǎn)生96個Timing Dector信號,單片機以這個信號為基準進行打點控制,每一個信號分別控制一個點,總共96個信號對應(yīng)96個點,打打印完一行后,打印機需通過點擊回到起始原點,當回到原點時,打印機通過Reset Decotor信號輸出低電平開始新的一行的打印。

而打印機在打印的時候,每個打印針電路上的瞬間電流都是很大的,所以必須要通過驅(qū)動電路實現(xiàn),其驅(qū)動電路已經(jīng)在上面硬件電路設(shè)計中的打印機模塊講明了。

Timing Dector信號如下圖4.5所示

圖4.5 打印機Timing Dector信號

如上圖4.5所示,打印機輸出的為正弦波信號,通過驅(qū)動電路把信號轉(zhuǎn)換成方波,此時的波形頻率為需要的波形頻率的1/2,這里可以通過兩種方法進行改良:一種是硬件進行分頻,另一種是利用單片機的雙邊沿促發(fā)功能。

第一種方法比較麻煩,需要拖入較大硬件,而第二種方法只要所選的單片機具有雙邊沿促發(fā)功能便可以很好的解決問題。

而這里選用的Atmega64總共有8個外部中斷,分別是INT0~INT7,慶幸的是,其中有4個具有雙邊沿促發(fā)功能,分別是INT4~INT7,這里選用的是INT6。

5. 軟硬件系統(tǒng)調(diào)試

5.1 硬件調(diào)試

在完成硬件PCB的加工之后,首先第一步便是進行硬件焊接以及調(diào)試,在調(diào)試過程中碰到過許多問題,并且經(jīng)過分析和實踐意義解決,接下去分析在硬件調(diào)試過程中碰到的各類問題與解決方法。

遇到的問題:

主控板電源,電流不夠,當初設(shè)計的時候主要是為了降壓在主控板的電源之后加了一個二極管來限制電壓,結(jié)果是焊接了一個IN4148的小電流二極管,導致液晶很暗,并且不能調(diào)處液晶對比度,電源模塊的電路圖如圖5.1所示

圖5.1 主控板電源模塊

解決方法是,使用大電流的二極管,SS26,很好的解決了這一問題。

霍爾傳感器,感應(yīng)靈敏度太低,在設(shè)計電路的時候以為霍爾元件在周期性磁場的作用下能直接輸出單片機能接收的方波,但是實際測試并非如此,單用霍爾元件直接接單片機,靈敏度很低,要固定也不方便,原設(shè)計圖霍爾傳感器接口如圖5.2所示

圖5.2 霍爾元件接口

解決方法是,使用運算放大器對信號進行放大,并使用滑動變阻器來調(diào)節(jié)靈敏度,使之變成一個靈敏度可調(diào)的并輸出方波的可調(diào)霍爾傳感器,改良的電路如上硬件設(shè)計中的圖3.4所示。

打印機子控板,布線太細,打印機的打印針在打印的瞬間,以及打印機的點擊在運轉(zhuǎn)的時候都是需要提供大電流的,能達到幾百mA,瞬間甚至幾個安培,而在布線的時候,打印針的地方只用了2.54mm的細線,在實際使用的時候只能打印16x16的大字,當打印壓縮的字體時便變成很模糊的字,主要原因是打印針電流小,力度不夠。

解決方法:手動焊接萬用板來達到打印的效果,在使用萬用板的時候也出現(xiàn)部分不能打印的結(jié)果,結(jié)果只是三極管壞掉,也得到了很好的解決。

5.2 軟件調(diào)試

在上面的硬件調(diào)試完畢之后,其實已經(jīng)完成了一些基本的驅(qū)動,打印機驅(qū)動,液晶驅(qū)動,霍爾元件驅(qū)動都已經(jīng)完成,在軟件上的主要難題主要有:

DS18B20時序---作為單總線溫度傳感器,DS18B20是達拉斯的單總線結(jié)構(gòu)數(shù)字溫度傳感器,由于其是單總線結(jié)構(gòu),所以在時序的控制上要求非常嚴格,在做這個驅(qū)動時碰到過許多問題,主要是時序很難控制,最后通過JTAG硬件仿真調(diào)試,解決了這一難題。

用戶UI界面,以前從來沒坐過多級的菜單,并且菜單層次多,條數(shù)多,如果用簡單的switch,case語句來實現(xiàn)的話,那將會是一個非常龐大的代碼,不僅編寫困難,而且不易維護,增減麻煩。所以為了做好這一塊,在網(wǎng)上搜索了大量的資料,最后使用的是基于節(jié)點編號的方法,并進行了一些改良,這種方法的結(jié)構(gòu)圖如上圖軟件設(shè)計中的圖4.3所示

6. 欲求目標

6.1 要求達到的目標

要實現(xiàn)的功能主要如下:

顯示實時速度和平均速度

顯示總里程和單次行車里程

顯示時間和溫度

節(jié)電保護

行車信息存儲

用戶菜單UI界面

時間修改

輪徑設(shè)置,里程設(shè)置,等一些參數(shù)的設(shè)置

打印行車記錄統(tǒng)計信息

貪吃蛇小游戲

6.2 產(chǎn)品優(yōu)缺點

優(yōu)點:該產(chǎn)品的最大優(yōu)點是顯示實時速度和里程精確,誤差小,并且可調(diào)節(jié)度大,能適應(yīng)輪胎圓周10—250cm的自行車,使用用戶UI界面,并且顯示的全是淺顯易懂的中文,顯示更加人性化和方便,傳感器靈敏度高,并且還具有打印功能,便于用戶管理行車信息。

缺點:本產(chǎn)品的最大缺點是成本高,打印機以及液晶都是比較昂貴的,這點需要改進。另一個缺點便是沒有包裝,只是達到了實驗級的產(chǎn)品,沒有達到產(chǎn)品級別,這點在量產(chǎn)產(chǎn)品之后可以進行改良。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉