基于飛思卡爾Cortex-M0微控制器的計步器設(shè)計畢業(yè)設(shè)計說明書.doc_第1頁
基于飛思卡爾Cortex-M0微控制器的計步器設(shè)計畢業(yè)設(shè)計說明書.doc_第2頁
基于飛思卡爾Cortex-M0微控制器的計步器設(shè)計畢業(yè)設(shè)計說明書.doc_第3頁
基于飛思卡爾Cortex-M0微控制器的計步器設(shè)計畢業(yè)設(shè)計說明書.doc_第4頁
基于飛思卡爾Cortex-M0微控制器的計步器設(shè)計畢業(yè)設(shè)計說明書.doc_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

2013屆畢業(yè)生畢業(yè)設(shè)計說明書題 目: 基于飛思卡爾Cortex-M0+微控制器的 計步器設(shè)計 學院名稱: 電氣工程學院 班 級: 自動 F0903 學生姓名: 姬小三 學 號: 200948280303 指導教師: 孫麗君 教師職稱: 教 授 2013年 05月 27日目 次1 概述11.1 背景與意義11.2 國內(nèi)外發(fā)展現(xiàn)狀11.3 課題介紹22 課題方案論證32.1 總體設(shè)計框圖32.2 功能描述32.3 微控制器的選擇42.4 傳感器的選擇62.5 顯示器的選擇72.6 輸入設(shè)備的選擇82.7 存儲器的選擇102.8 電源的選擇102.9 關(guān)鍵指標102.10 可行性分析113 系統(tǒng)硬件設(shè)計153.1 硬件整體設(shè)計153.2 各模塊設(shè)計與分析163.3 小結(jié)224 系統(tǒng)軟件設(shè)計244.1 軟件整體設(shè)計244.2 各模塊設(shè)計與分析254.3 小結(jié)345 系統(tǒng)測試365.1 濾波性能測試365.2 計步器準確度測試375.3 功耗測試385.4 小結(jié)38總 結(jié)39致 謝40參 考 文 獻41附錄A 計步器原理圖圖紙42附錄B 計步器部分程序4456 1 概述1.1 背景與意義隨著生活水平的提高,人們越來越注重自己的身體健康。與此同時,科學技術(shù)的迅猛發(fā)展也催生了“可穿戴健康跟蹤設(shè)備”的問世。研究如何通過“便攜式健康跟蹤器”改善人們的健康狀況,將對人類的未來產(chǎn)生深遠的影響。計步器作為一款可穿戴健康跟蹤設(shè)備,可以記錄人的行走步數(shù),反饋給用戶準確的運動數(shù)據(jù),幫助佩戴者量化鍛煉強度、制定合理的健身方案,提醒佩戴者適當調(diào)節(jié)運動量,激勵佩戴者堅持鍛煉。計步器起源于奶牛養(yǎng)殖業(yè),后經(jīng)外觀和測量精度的改善,逐漸推廣到醫(yī)療器械上面,并向個人保健養(yǎng)生方面延伸,曾一度引發(fā)了人們的鍛煉熱潮。隨著人口老齡化時代的到來,計步器等相關(guān)產(chǎn)品的需求量持續(xù)增加,市場持續(xù)擴大。由此可見,計步器仍具有巨大的商業(yè)前景和研究價值。1.2 國內(nèi)外發(fā)展現(xiàn)狀早期的計步器設(shè)計采用機械一維振動傳感器,利用機械球的來回運動來控制觸點的通斷,從而實現(xiàn)人體運動的檢測,但是這種傳感器的固有缺點是精度不高,靈敏度不可調(diào)。近年來,隨著三軸加速度傳感器的出現(xiàn),計步器得到了迅速地發(fā)展,其精確度也越來越高。三軸加速度傳感器能夠檢測人運動時X、Y、Z軸三個方向的加速度分量,靈敏度較高。同時三軸加速度傳感器的超低功耗和高集成度也使得計步器更加輕便。目前,市面上計步器的基本功能有時間顯示、跑表功能、步數(shù)檢測、距離計算、能量消耗計算及個性化步幅設(shè)計。此外還有FM收音機、行走時間、鬧鐘提醒功能、步距設(shè)置、10000步提示、速度顯示、能量消耗計算、心率檢測、數(shù)據(jù)瀏覽等特色功能。市場上,國外知名品牌主要有:acumen(安康盟)、casio(卡西歐)、歐姆龍品牌等,而國產(chǎn)知名品牌有Green Forest/綠森林(武漢產(chǎn))多功能計步器和康都牌計步器(廣東產(chǎn)),價格在168-398元不等。整體上,計步器正朝著功能多元化、體積小型化、壽命長、精度高,價格低等方面發(fā)展。1.3 課題介紹本課題的設(shè)計要求為:所設(shè)計的計步器須使用壽命長、檢測精度高、系統(tǒng)功耗低、人機界面操作友好,能滿足用戶的日常需求。本課題設(shè)計的計步器的基本功能是計步,除此之外,還有行走距離換算、能量消耗計算、提醒是否滿足日常運動需求等增值功能,并通過USB將采集的數(shù)據(jù)傳送到上位機。拓展功能為對溫度、濕度、氣壓等環(huán)境變量的檢測。整個系統(tǒng)的設(shè)計理念為高精度,低功耗。本課題選用了功耗極低、處理數(shù)據(jù)能力較強的基于Cortex-M0+內(nèi)核的32位微控制器MKL25Z作為主控芯片。計步傳感器采用三軸加速度傳感器MMA8451Q,分辨率更高、反應速度更快、功耗更低。同時,在低功耗的基礎(chǔ)上,為了改善用戶界面,在輸出設(shè)備中,我們選用了一塊8448分辨率的液晶屏作為顯示器;在輸入設(shè)備中,我們采用MKL25Z內(nèi)置的TSI模塊設(shè)計了5個電容觸摸按鍵作為輸入按鍵。2 課題方案論證2.1 總體設(shè)計框圖系統(tǒng)總體設(shè)計框圖如圖2.1所示。圖2.1 系統(tǒng)總體設(shè)計框圖2.2 功能描述本設(shè)計利用三軸加速度傳感器獲取佩戴者運動時身體在三個軸的加速度分量,通過濾波算法和計步算法分析獲取步數(shù),配合佩戴者的身高、體重、步距等信息,換算得到行走距離和消耗的能量,并將相關(guān)信息顯示在液晶屏上。利用本設(shè)計的電容觸摸按鍵可快捷地控制屏幕顯示相應信息。溫濕度傳感器采集到環(huán)境的溫濕度參數(shù)后也可將環(huán)境的溫濕度變化顯示在液晶屏上。當佩戴者的特征信息和運動數(shù)據(jù)確定后,通過電容觸摸按鍵的相關(guān)操作將其儲存到微控制器的內(nèi)部Flash中,保證信息在系統(tǒng)掉電后不丟失。用戶也可以通過USB數(shù)據(jù)線將計步器連接至電腦終端,將記錄的信息上傳至上位機顯示。此外,在開發(fā)調(diào)試階段,為實現(xiàn)對計步器的遠程監(jiān)控,本設(shè)計又另外增加了無線模塊,將佩戴者X、Y、Z三個方向的加速度分量實時傳送至上位機顯示,可視化效果明顯。為配合上述功能,本設(shè)計運用C#語言編寫了一個計步器專用的上位機軟件。2.3 微控制器的選擇2.3.1 方案一:采用8位微控制器8位微控制器的典型代表是8051微控制器。8051微控制器是一款入門級微控制器,它內(nèi)核簡易,應用廣泛,資料齊全,非常適合入門學習。同時它的價格低廉,是一款適用于追求低成本,不追求實時性的電子產(chǎn)品。在我國很長一段時間內(nèi),8051微控制器占據(jù)了小型家電市場,其中的原因正是超低的成本。2.3.2 方案二:采用16位微控制器MSP430微控制器是一款以低功耗聞名的16位微控制器,有許多低功耗的工作模式,采用了精簡指令集(RISC)結(jié)構(gòu),具有豐富的尋址方式,高效率的查表處理指令。這些特點都保證了用它可以編寫出高效率的源程序。2.3.3 方案三:采用32位微控制器Cortex-M0+內(nèi)核基于ARMv6架構(gòu),支持Thumb/Thumb-2子集ISA,單核心,采用低成本的90nmLP工藝制造,核心面積僅0.04mm2,每MHz單位頻率消耗的電流、功耗分別有9A、11W,是現(xiàn)今其它8/16位微控制器的大約三分之一,而性能上又比它們高出很多。飛思卡爾的Kinetis L系列微控制器基于ARM Cortex-M0+內(nèi)核,是目前市場上能效極高的32位微控制器,每微安數(shù)據(jù)吞吐量居業(yè)內(nèi)領(lǐng)先水平;超低功耗模式多種靈活的功率模式,適合不同的應用情形,可最大限度延長電池壽命;多種技術(shù)優(yōu)化功耗,包括90nm薄膜存儲(TFS)技術(shù)、時鐘和電源門控技術(shù),以及帶有位處理引擎、外圍交叉橋和零等待閃存控制器的高效平臺等;深度睡眠模式下,可在不喚醒內(nèi)核的情況下進行智能決策并處理數(shù)據(jù)。2.3.4 方案對比為選擇一款最適合本課題的微控制器,我們列出了上述三種方案的微控制器特性對比表,如表2.1和表2.2所示。表2.1 微控制器特性對比表1類型8位微控制器16位微控制器32位微控制器代表系列8051系列微控制器MSP430系列微控制器ARM公司的Cortex系列微控制器屬于ARMv7指令集構(gòu)架,其中有:“A”系列;“R”系列;“M”系列。Cortex-A系列Cortex-R系列Cortex-M系列設(shè)計方向面向?qū)崟r性要求不高的場合面向低功耗應用面向尖端的基于虛擬內(nèi)存的操作系統(tǒng)和用戶應用面向?qū)崟r應用和實時系統(tǒng)面向微控制器應用的成本敏感型解決方案應用廣泛應用于工業(yè)測控系統(tǒng)之中廣泛應用于手持式產(chǎn)品,遠程抄表等低功耗系統(tǒng)中應用于超低成本的智能手機、數(shù)字電視、機頂盒、打印機和服務(wù)器應用于汽車制動系統(tǒng)、大容量存儲控制器應用于混合信號設(shè)備、智能傳感器、汽車電子和氣囊電壓5V1.83.6V1.83.6V1.83.6V1.713.6V表2.2 微控制器特性對比表2芯片類型80C51MSP430Cortex-M0+Cortex-M3Cortex-M4位數(shù)8位16位32位32位32位主頻(最大)24M25M48M72M204M最小工作電流20mA165A/MHz9A/MHz175A/MHz90A/MHz價格(元)2.512.011.020.037.0通過兩表的對比可知,8051微控制器的片上資源少、功耗高,因此它很難充當復雜系統(tǒng)的微控制器,而只適用于低性能的產(chǎn)品開發(fā)。MSP430系列的微控制器比8051系列微控制器的功耗低很多,但是處理速度不及Cortex-M0+微控制器,而且Cortex-M0+微控制器的功耗更低一些,價格上也有一定優(yōu)勢。此外,我們也參考了目前市面上比較熱門的微控制器,如Cortex-M3和Cortex-M4系列微控制器,考慮到它們功耗稍和成本稍高、內(nèi)部資源無TSI,暫不采用。綜上所述,本設(shè)計選擇基于Cortex-M0+內(nèi)核的Kinetis L系列MCU,具體型號選擇MKL25Z128VLK4。2.4 傳感器的選擇2.4.1 計步傳感器的選擇一共有三種方案,第一種是選擇機械式振動傳感器,第二種是選擇加速度傳感器,第三種選擇壓力傳感器。此外還有GPS定位等方案,在此不再考慮。機械式振動傳感器內(nèi)部有一個平衡錘,當傳感器振動時,平衡被破壞,如此會造成上下觸點的通斷。佩戴者在跑步過程中,身體起伏重心高低產(chǎn)生變化,計步器內(nèi)部的振動傳感器就會將這一變化轉(zhuǎn)換為數(shù)字量送至控制單元,從而獲得佩戴者的運動信息。機械式振動傳感器原理簡單、精度和成本低,適用于振幅較大的場合。三軸加速度傳感器分為壓阻式,壓電式和電容式。加速度的變化能夠改變電阻、電壓或者電容的變化,從而獲得空間位置三個垂直方向的加速度分量。佩戴者在跑步過程中,身體上下起伏,計步器內(nèi)部的微控制器讀取三軸加速度傳感器的三組模擬量,通過計步算法分析,獲取運動信息。三軸加速度傳感器具有精度高、反應速度快、通訊協(xié)議簡單可靠等特點,廣泛使用于汽車、數(shù)碼產(chǎn)品、航天設(shè)備等領(lǐng)域。壓力傳感器是將壓力的變化轉(zhuǎn)化為電壓的變化。利用這一特性,可將壓力傳感器內(nèi)置在鞋的底部,當用戶在行進過程中,壓力傳感器受到的壓力不同(抬腳時腳對鞋無壓力,放腳時腳對鞋有持續(xù)壓力),這樣,計步器的主控單元讀取壓力值,經(jīng)過計步算法即可判斷運動狀態(tài)。為選擇一款最適合本課題的計步傳感器,表2.3列出了三種傳感器的特性對比表。表2.3 計步傳感器特性對比表類型機械式振動傳感器加速度傳感器壓力傳感器工作電流5mA30A-工作精度0.1g0.002g-價格(元)1.0元5.0元-目前內(nèi)置于鞋底的壓力傳感器屬于柔性傳感器。在2008年北京奧運會上曾將它用于檢測運動員的蹬地力、蹬地時間、足底接觸形狀、運動速度、離心力等信息,以便指導運動員取得更好的成績。這種傳感器價格昂貴,設(shè)計難度較大,不適合本設(shè)計。機械設(shè)振動傳感器應用于早期的計步器,測量精度低,誤判、漏判嚴重,不符合本課題高精度的設(shè)計原則。隨著加速度傳感器的工藝逐漸成熟,測量精度也逐漸提高,功耗已達到微安級別,隨著市場的大量使用,價格也降了下來,非常符合本課題的設(shè)計理念。表2.4列出了不同型號的三軸加速度傳感器的特性。表2.4 加速度傳感器特性對比表加速度計代表型號LSM303DLHMPU-6050MMA8451QADXL345BCCZ工作電流0.83mA500A50A150A精度0.0003g0.0003g0.002g0.008g價格(元)40.0元50.0元5.0元3.0元結(jié)合價格、功耗和精度等多方面考慮,本課題選擇飛思卡爾公司的三軸加速度傳感器MMA8451Q作為計步傳感器。2.4.2 溫濕度傳感器的選擇在本課題中,采集環(huán)境的溫濕度變化為擴展要求,故對溫濕度傳感器的要求并不高。同時,為簡化硬件電路和軟件設(shè)計,應選擇數(shù)字式的溫濕度傳感器模塊。最終本課題選擇目前市面上常用的溫濕度傳感器模塊DHT11,它采用的是單總線協(xié)議。2.5 顯示器的選擇一共有兩種方案,第一種是選擇數(shù)碼管,第二種是選擇LCD(如筆段式、TFTLCD等)。方案對比如表2.5所示。表2.5 顯示屏對比表類型LED(如數(shù)碼管)LCD正常工作電流mA級別A級別,400A左右(LCD5110)接口電路若需要多個數(shù)碼管時,電路較復雜,顯示信息少支持多種協(xié)議,與MCU的通訊接口簡單體積大小價格(元)數(shù)碼管0.3(元)/段可低至10元通過對比可以看出,數(shù)碼管的體積大,當使用多個數(shù)碼管靜態(tài)顯示時,需增加鎖存電路,不適合作為小型攜帶設(shè)備的顯示部分;同時數(shù)碼管每段所需要的電流也比較大,不適合作為低功耗產(chǎn)品的設(shè)計。液晶屏機身薄,節(jié)省空間,省電,發(fā)熱量小,畫面柔和不傷眼,滿足本項目設(shè)計的性能需求和低功耗的設(shè)計理念。TFT液晶屏的顯示效果很好,但是功耗稍高。最后折中選擇了一款功耗較低的液晶屏,具體型號為諾基亞LCD5110(單色,分辨率為8448)。2.6 輸入設(shè)備的選擇2.6.1 方案一,機械式按鍵機械式按鍵使用最為普遍,型號繁多,價格低廉。缺點是有一定的使用壽命,易損壞,手感較差。2.6.2 方案二:電容觸摸按鍵根據(jù)采用觸摸傳感器類型的不同,觸摸輸入方式可以分為電阻式、電波式、光學式、電感式、電容式和電磁式等幾種類型。電容式觸摸輸入方式憑借其工藝成本低、觸摸檢測方便、硬件免維護、按鍵精度高、靈敏度可調(diào)、外觀時尚等特點,成為觸摸輸入方式的主要選擇。TSI模塊(Touch Sensing Interface)是飛思卡爾公司為簡化硬件設(shè)計人員開發(fā)過程而嵌入到Kinetis架構(gòu)的電容觸控驅(qū)動模塊,結(jié)構(gòu)簡單,使用簡單的驅(qū)動接口連接到一定面積的覆銅區(qū)即可。(TSI)模塊具有高靈敏度和強魯棒性的特點,提供了較強的觸摸檢測的能力,它最高支持和帶有16個電容性觸摸輸入引腳,TSI模塊擁有可編程模塊和相應的結(jié)果寄存器。2.6.3 方案對比方案對比如表2.6所示。表2.6 按鍵對比表按鍵類型機械式按鍵電容觸摸式按鍵工作電流1mA10A價格(元)0.010(僅需引出一塊覆銅即可)與觸摸鍵盤相比,機械按鍵易老化,壽命短,而且工作電流比觸摸按鍵的高很多,在成本上,他們相差不大,但是從整體性能上考慮,觸摸式按鍵更加符合本項目的性能設(shè)計需求。綜上所述,本課題選擇電容觸摸式按鍵作為本項目的輸入輸入設(shè)備。2.6.4 TSI觸摸感應原理根據(jù)電子學知識可知,未接地的電極與地之間存在電容。而人體可以當做一個接地面(虛地),當手指接近電極板時,等效的增大了電極與地之間的有效面積,使電極板電容增大(如圖2.2)。TSI模塊的內(nèi)部機制能實現(xiàn)對電極電容值的檢測,并且可以設(shè)定觸發(fā)事件的閾值。當檢測到電容值大于設(shè)定閾值時,TSI觸發(fā)標志位將被置位,并可激活發(fā)出中斷請求,從而實現(xiàn)對觸摸感應事件的響應。圖2.2 電容檢測電路TSI模塊測量電容的簡易電路圖如圖2.2所示。可以看出,兩個電流源對外接電極進行充放電,在電極板上產(chǎn)生三角波信號,此電壓的峰峰值可以通過配置TSI模塊中的寄存器來配置,電極上的三角波信號的頻率隨電極電容的變化而變化,當電極電容增大時,三角波信號的頻率減小,周期變大。TSI模塊以一個內(nèi)部振蕩器產(chǎn)生的時鐘信號為信號參考節(jié)拍,對電極的周期進行計數(shù),當三角波周期增大時,則對應的計數(shù)值也會增大,如圖2.3所示,紅色為掃描結(jié)果存放在TSI的數(shù)值寄存器中,可通過程序訪問。TSI模塊將每次取得的計數(shù)值與存放在閾值寄存器中的預設(shè)閾值進行比較,若超出設(shè)定閾值范圍,則會導致TSI掃描計數(shù)器超出標志位,此時,若使能TSI溢出中斷,則進入TSI中斷服務(wù)程序響應事件。圖2.3 參考時鐘對信號頻率進行計數(shù)2.7 存儲器的選擇一共有兩種方案。方案一、選用外擴SPI-Flash;方案二、選用內(nèi)部Flash。對比如表2.7所示。表2.7 存儲器對比表類型外部Flash內(nèi)部Flash功耗2mA不增加功耗讀寫速度(根據(jù)主控主頻)12M24M本課題的主控芯片擁有128KB的Flash,對于本項目的軟件設(shè)計來說是有剩余的,所以可以從128KB存儲空間中分配4KB空間作為系統(tǒng)的存儲器,這樣不但降低了系統(tǒng)的功耗,而且還節(jié)約了成本,在讀寫速度上也比外擴的存儲器要快。綜上所述,本設(shè)計不再外擴Flash存儲器空間,將運動數(shù)據(jù)直接存儲在微控制器內(nèi)部Flash中。2.8 電源的選擇一共有三種方案,第一種是選擇干電池,第二種是選擇紐扣電池,第三種是選擇聚合物鋰電池。如表2.8所示。表2.8 電池對比表類型型號容量電壓體積價格(元)干電池555電池1000mAH1.5V大0.4紐扣電池CR2032210mAH3.0V小1.2聚合物鋰電池072030450mAH3.7V4.2V中8計步器本來就是小型便攜型的設(shè)備,電池太大會影響到整體的美觀。為減小計步器尺寸,電池體積越小越好,不再考慮普通的干電池。為增加計步器的續(xù)航能力,應采用大容量的可充電電池。通過對比,最終選擇聚合物鋰電池作為本設(shè)計的電源。為此在設(shè)計硬件電路時須增加充電電路。2.9 關(guān)鍵指標 精準記錄行走步數(shù),實現(xiàn)靈敏度可調(diào); 降低計步器的功耗,要求整機電流在1-2mA范圍內(nèi); 完成電容觸摸按鍵的設(shè)計,通過點觸、滑動等操作,有效控制顯示界面; 記錄用戶特征、運動步數(shù)等信息,保證掉電不丟失; 通過USB與上位機通信,將用戶的運動參數(shù)上傳至上位機顯示。2.10 可行性分析2.10.1 低功耗的可行性分析本設(shè)計采用基于Cortex-M0+內(nèi)核的微控制器KL25Z128VLK4。另外,本設(shè)計采用LCD顯示屏,功耗低,正常工作電流在A級別,符合我們設(shè)計的要求。采用的三軸數(shù)字加速度傳感器的正常工作電流也在30A左右。電容觸摸按鍵靈敏度高,且正常工作電流在10A左右。各模塊具體電流如表2.9。表2.9 模塊電流功能模塊Cortex-M0+控制器LCD顯示屏三軸加速度傳感器TSI觸摸按鍵電流9A/MHZ200-300A30A10A綜上,本設(shè)計可以實現(xiàn)整機電流在1-2mA的低功耗計步器。2.10.2 TSI觸摸按鍵的可行性分析圖2.4為TSI模塊示意圖,該圖反映了模塊各部分的連接關(guān)系。TSI模塊擁有從低功耗中喚醒CPU的能力。具有可配置的TSI中斷,當結(jié)尾掃描、TSI計數(shù)寄存器超過閾值寄存器的值和VDD/VSS的短暫停留等事件發(fā)生時都會觸發(fā)中斷。另外,它還擁有補充溫度補償、電壓變化補償?shù)墓δ?,支持在低電壓模式下不使用外部晶振等功能。對于高靈敏的可編程電平極性振蕩器和TSI索引振蕩器,具有極小的掃描時間。它為觸摸鍵盤、旋轉(zhuǎn)式機器、滑塊等提供了一種穩(wěn)定有力的措施。該TSI模塊被集成在KL25Z芯片上,寫出該觸摸按鍵的驅(qū)動即可實現(xiàn)用觸摸感應技術(shù)實現(xiàn)控制,所以,使用TSI觸摸按鍵來實現(xiàn)輸入控制可行。圖2.4 TSI模塊示意圖2.10.3 靈敏度可控的可行性分析飛思卡爾公司的MMA8451Q是14位/8位精度可選的智能低功耗三軸加速度傳感器,工作電壓為1.95V-3.6V,動態(tài)可選擇滿刻度為2g/4g/8g,輸出數(shù)據(jù)速率(ODR)的范圍為1.56Hz到800Hz,噪聲為99g/Hz,利用I2C總線進行通信,在實時方向檢測(如3D定位反饋)和實時行為分析上具有很大的優(yōu)勢。MMA8451Q提供了一系列特殊的感測功能:動態(tài)和靜態(tài)感測功能可以檢測有無運動的發(fā)生以及在任何軸上的加速度是否超過用戶設(shè)置的水平;點擊感測功能可以檢測單擊和雙擊動作。這些功能都可以映射到中斷信號輸出的引腳上。MMA8451Q擁有一個集成的32級FIFO,可用于儲存數(shù)據(jù),利用此特性可以將主機處理負荷降至最低,從而降低系統(tǒng)總功耗。圖2.5 不同姿態(tài)下的X、Y、Z重力輸出顯而易見,無論用戶如何攜帶計步器,至少有一個軸具有相對較大的周期性加速度變化。因此只要做好峰值檢測和設(shè)定好加速度閾值即可判斷目標是否在跑動,圖2.5是MMA8451Q在不同姿X、Y、Z重力輸出。綜上,可以實現(xiàn)靈敏度可控。2.10.4 上位機通信的可行性分析本次設(shè)計使用的飛思卡爾自由開發(fā)平臺FRDM-KL25Z支持USB功能,通過將微控制器的USB虛擬成串口,與上位機進行數(shù)據(jù)通信。在USB標準子類中,有一類稱之為CDC類,可以實現(xiàn)虛擬串口通信。CDC類由兩個接口子類組成,這兩個接口子類稱為接口通信類(Communication Interface Class)和數(shù)據(jù)接口類(Data Interface Class)。它們占有不同數(shù)量和類型的終端點,如圖2.6所示。通信接口類需要一個控制終端點和一個可選的中斷型終端點,數(shù)據(jù)接口子類需要一個方向為輸入(IN)的周期性型終端點和一個方向為輸出(OUT)的周期性型終端點。其中控制終端點主要用于USB設(shè)備的枚舉和虛擬串口的波特率和數(shù)據(jù)類型(數(shù)據(jù)位數(shù)、停止位和起始位)設(shè)置的通信。輸出方向的非同步終端點用于主機向從設(shè)備發(fā)送數(shù)據(jù),相當于傳統(tǒng)物理串口中的TXD線(從微控制器的角度看),輸入方向的非同步終端點用于從設(shè)備向主機發(fā)送數(shù)據(jù),相當于傳統(tǒng)物理串口中的RXD線。這樣即可保證與上位機的正常通信。圖2.6 CDC分類3 系統(tǒng)硬件設(shè)計3.1 硬件整體設(shè)計為盡可能的降低功耗,可只引出使用到的一些端口,未使用的資源一律不引出。對于功耗高的模塊,可通過一個IO口控制P溝道MOS管的通斷,從而控制對模塊的供電。為方便調(diào)試程序,增加了無線模塊,故需要預留SPI接口。表3.1列出了計步器最小系統(tǒng)所使用的硬件資源。表3.1 最小系統(tǒng)資源使用表功能分類引腳名引腳序號功能描述電源VDD7,38,60電源VSS8,39,59地VREGIN12USB模塊的參考電壓(5V)復位nRST42復位引腳。拉低可使芯片復位時鐘EXTAL0,XTAL040,41時鐘輸入輸出引腳RTCRTC_CLKIN56時鐘輸入引腳,可實現(xiàn)日歷,時間功能下載接口SWD_CLK26JTAG時鐘SWD_IO29JTAG數(shù)據(jù)輸入、輸出為了實現(xiàn)遠程監(jiān)控計步器的工作狀態(tài),確保計步器正常工作,同時為了直觀的快捷的觀測傳感器數(shù)據(jù),本設(shè)計增加了NRF24L01模塊和UART接口作為系統(tǒng)的調(diào)試接口。表3.2列出了系統(tǒng)調(diào)試工具所占用的資源。表3.2 系統(tǒng)調(diào)試資源使用表功能分類引腳名引腳序號功能描述串口UART0_RX,TX79,80用于UART收發(fā)數(shù)據(jù),用于調(diào)試程序無線模塊接口SPI0_PCS0,SCK,MOSI,MISO61,62,63,64硬件SPIPTD376復用為外部中斷功能PTC1067控制無線模塊的工作模式PTD275控制對無線模塊的供電表3.3列出了系統(tǒng)所有外設(shè)所使用的微控制器的引腳。表3.3 外設(shè)資源使用表功能分類引腳名引腳序號功能描述三軸加速度傳感器I2C0_SCL,SDA24,25硬件I2CPTA2,PTA128,27復用為中斷引腳喚醒LLWU_P1477復用為喚醒引腳液晶屏接口PTB1,PTB2,PTB3,PTB8,PTB9,44,45,46,47,48模擬串行總線協(xié)議PTB1049控制對液晶屏的供電PTB1150控制液晶屏的背光電容觸摸按鍵TSI0_CH0,10,11,13,1543,52,53,55,57五個觸摸按鍵功能分別為:切換、進入、退出、溫濕度傳感器接口PTD578模擬單總線協(xié)議PTE01控制對溫濕度傳感器的供電USB通訊USB_DP,USB_DM9,10USB的差分信號線確定了所使用的微控制器的引腳資源后,我們就可以著手設(shè)計硬件電路。3.2 各模塊設(shè)計與分析3.2.1 最小系統(tǒng)電路最小系統(tǒng)電路由以下幾部分組成:電源電路,SW下載電路,復位電路,系統(tǒng)時鐘電路,RTC時鐘電路和濾波電路。本設(shè)計采用聚合物鋰電池供電,故需要低壓差穩(wěn)壓器件。MIC5203是一種低壓差穩(wěn)壓器(LDO),最低壓差可達到0.2V,完全滿足本設(shè)計要求,同時我們又設(shè)計了簡易的充電電路,可通過USB方便地為鋰電池充電。電路如圖3.1所示。圖3.1 電源電路復位引腳低電平可導致該MCU復位。電阻R4的作用是防止復位按鍵按下時,電容放電電流過大。電路如圖3.2所示。由于飛思卡爾的這一款芯片支持SW下載方式,故預留了下載接口,電路如圖3.3所示。多組VSS/VDD可保證內(nèi)部信號完整性,故芯片電源引腳的濾波電容要盡量靠近其引腳,電源線中的電流應先通過濾波電容,再通過芯片引腳,如此有利于抑制高頻噪音,電路如圖3.4所示。圖3.2 系統(tǒng)復位電路圖3.3 下載接口電路圖圖3.4 芯片電源濾波電路無源晶振是有兩個引腳的無極性元件,需借助時鐘電路(即晶振諧振器)才能產(chǎn)生震蕩信號,自身無法振蕩起來。有源晶振一般有四個引腳,它是一個完整的振蕩器,其中除了石英晶體外,還有晶體管和阻容元件。本設(shè)計系統(tǒng)時鐘電路采用無源晶振,電路如圖3.5所示。RTC時鐘電路采用有源晶振電路,電路如圖3.6所示。圖3.5 系統(tǒng)時鐘電路圖3.6 RTC時鐘電路3.2.2 電容觸摸按鍵電路電容式觸摸按鍵的硬件電路僅將TSI引腳連接到一定面積的覆銅區(qū)即可。在PCB制作過程中,應注意以下幾點:(1) 應盡量使觸摸按鍵到MCU觸摸引腳的走線盡量短和細(建議710 mil),以保證信號的穩(wěn)定性。如圖3.7為理想的布線方式和不理想的布線方式。圖3.7 TSI理想走線與不理想走線(2) 走線間的間距盡量保持兩倍以上距離,最小不能小于7mil,如果空間允許盡量大。(3) 同一條線盡量不使用過孔,若要使用不要超過兩個以上,避免干擾源增加。(4) 觸摸按鍵走線盡量遠離其他元件和走線,尤其是遠離信號線(如IIC,SPI,高頻通信線),因為信號線會產(chǎn)生一個變化的磁場,變化的磁場產(chǎn)生電流,若觸摸按鍵走線與信號線相鄰,那么就會影響觸摸按鍵的充放電,從而影響觸摸按鍵的性能,在沒有辦法避免的情況下,讓兩條線垂直布線,而不能走平行線。如圖3.8和圖3.9分別為傳感線與通訊線在同層與不同層的分布示范。圖3.8 傳感線與通訊線在同層的分布圖3.9 傳感線與通訊線在不同層的分布(5) 不推薦將傳感器的走線放在任何電源層上。充滿在傳感器下面的地層或電源層會增加對地的寄生電容,并降低靈敏度。當將地層放在傳感器下面時,地層必須使用十字交叉形以保證銅的覆蓋率小于40%,并置于最遠的一層,以降低對地的寄生電容,同時保證較好的屏蔽效果。本次設(shè)計在按鍵背面采用網(wǎng)格鋪地。按鍵與地層之間的間隔設(shè)定,若間隔太大,觸摸按鍵的基本電容值越小,RC震蕩的頻率越大,靈敏度也越高,地對電場的約束越小,干擾越大。若間隔太小,基本電容值越大,靈敏度越低,且電場對地的約束太大,一般建議在0.5mm2.0mm,若PCB允許,則建議在1mm以上的間隔。本次PCB設(shè)計中按鍵與地層之間的距離在0.6mm左右。(6) 關(guān)于按鍵形狀設(shè)計。任何形狀的按鍵均可用于電容感應式觸摸中,如圖3.10所示。不同的形狀不會影響感應的性能,僅與板子的美觀程度有關(guān)。本次設(shè)計采用圓形按鍵和鋸齒條狀按鍵。圖3.10 各種觸摸按鍵形狀按鍵的尺寸大小與其靈敏度息息相關(guān),若按鍵太小,觸摸電容較低,導致靈敏度降低。若按鍵太大則不會顯著提高觸摸電容。只有當按鍵面積增大至與觸摸物(手指)相當時,觸摸電容才能達到最大值,推薦按鍵大小8mm15mm。單個按鍵之間的距離推薦大于2.5mm,以避免相鄰按鍵的影響。對于滑動條來說,各個按鍵之間的距離最好保持在0.31.0mm的范圍。滑動條與周圍地層的間距最好與按鍵相同,那么兩者之間的邊緣電容可降至足夠低,從而對感應的影響非常小?;瑒訔l設(shè)計如所示。圖3.11 滑動條根據(jù)以上分析,本項目設(shè)計了如圖3.12和圖3.13所示的電容觸摸按鍵的PCB設(shè)計。本次觸摸按鍵設(shè)計考慮到了傳感線走線,避免了與通訊線相鄰且平行的情況,考慮了地層與觸摸按鍵之間的關(guān)系,使寄生電容對觸摸按鍵的影響降到最低值,還考慮了按鍵形狀,使人手觸摸后的效果達到最大化,整個設(shè)計最終取得了靈敏度高、功耗低等效果。圖3.12 TSI設(shè)計(頂層)圖3.13 TSI設(shè)計(底層)3.2.3 液晶顯示接口電路LCD5110是一塊集成了低功耗CMOS LCD控制驅(qū)動器的液晶屏,分辨率為8448,采用串行接口與主處理器進行通信,接口信號線數(shù)量大幅度減少,包括電源和地在內(nèi)的信號線僅有8條。支持多種串行通信協(xié)議(如AVR 單片機的SPI、MCS51 的串口模式0等),傳輸速率高達4Mbps,可全速寫入顯示數(shù)據(jù),無等待時間。模塊的體積很小,采用3.3V低電壓供電,正常顯示時的工作電流在200A 以下,傳輸速度快,是LCD12864的40倍,是LCD的20倍。表3.4列出了LCD5110引腳的功能。表3.4 LCD5110引腳功能表引腳SDINSCLKD/CSCERES功能串行數(shù)據(jù)線串行時鐘線模式選擇芯片使能復位實時時鐘模塊本設(shè)計采用P溝道MOS管控制對液晶的供電,采用N溝道MOS管控制液晶的背光。如此可根據(jù)實際需要控制液晶的工作狀態(tài),從而達到降低功耗的目的。接口電路如圖3.14所示。圖3.14 液晶LCD5110接口電路 3.2.4 傳感器接口電路本設(shè)計舍棄了市面上廣泛使用的振動傳感器,優(yōu)先選擇功耗極低,分辨率較高的三軸加速度傳感器,具體型號為MMA8451Q。傳感器外圍電路非常簡單,如圖3.15所示。其中I2C數(shù)據(jù)線需要有上拉電阻拉高,SA0引腳用來選擇傳感器的節(jié)點地址。圖3.15 MMA8451Q電路如圖3.16所示,為本系統(tǒng)的溫濕度傳感器DHT11的接口,DHT11傳感器采用的是單總線的傳輸方式,由主機發(fā)起讀信息指令,通過單總線完成信號傳輸,這種傳感器的缺點是傳輸速度慢,耗時長,功耗高,所以在硬件設(shè)計的時候,增加了MOS管控制溫濕度傳感器的工作狀態(tài),達到控制功耗的效果。圖3.16 DHT11接口3.2.5 通訊接口電路為了在設(shè)計計步算法時,為獲取步伐的真實數(shù)據(jù),我們增加了無線模塊作為輔助調(diào)試手段,這樣可以加快調(diào)試進度。同時我們設(shè)計了用一個P溝道MOS管來控制對它的供電,以避免正常工作狀態(tài)下不必要的功率消耗。如圖3.17所示。圖3.17 無線模塊接口電路USB接口電路如圖3.18,USB是差分信號傳輸。這種傳輸方式可以增強USB數(shù)據(jù)傳輸?shù)目垢蓴_能力。為實現(xiàn)阻抗匹配,在數(shù)據(jù)線上各串聯(lián)一個33的電阻,防止差分信號在高速傳輸過程中,由于阻抗不匹配,造成信號反射。圖3.18 USB接口電路3.3 小結(jié)硬件設(shè)計不是一蹴而就的,需要反復驗證方案的可行性,同時要充分考慮到所需的硬件資源。由于傳感器為QFN封裝,腐蝕板達不到它的精度要求。我們的PCB是發(fā)給PCB廠商做的,一共做了兩次。第一次一味追求緊湊、小巧,導致TSI觸摸按鍵太小,干擾也很大。此外,芯片封裝偏小,非常不利于手工焊接。由于對芯片資源了解的不夠清晰,還有個別引腳連接錯誤,最后被迫跳了幾根線。還有絲印層偏小、覆銅間距偏小、RTC晶振選型錯誤等等問題,如圖3.19和圖3.20所示?!俺砸粔q長一智”,第二個版本完美地解決了上述問題,使得我對這一款MCU的硬件資源了解地更加透徹,同時自己的PCB制作能力也得到了很大地提升。如圖3.21和圖3.22所示。圖3.19 計步器V1.00 正面圖3.20 計步器V1.00 背面圖3.21 計步器V2.00 正面圖3.22 計步器V2.00 背面4 系統(tǒng)軟件設(shè)計4.1 軟件整體設(shè)計4.1.1 設(shè)計思路本次設(shè)計主要有6個功能,即計步算法的實現(xiàn),F(xiàn)lash存儲運動數(shù)據(jù),USB與上位機的通信,溫濕度傳感器的實現(xiàn),TSI電容觸摸按鍵的實現(xiàn),及人機界面的設(shè)計。首先上電之后,主界面顯示當前時間和溫濕度。之后設(shè)置個人參數(shù),輸入性別、步長、體重。隨后切換界面,進入計步狀態(tài),加速度計正常工作,實時顯示當前步數(shù)、距離和消耗的熱量。計步完成后,可以將信息存儲起來,下次上電之后可以調(diào)出該信息,計步器可記錄七天的運動信息。將計步器與上位機通過USB數(shù)據(jù)線連接后,可以通過上位機發(fā)送指令獲取計步信息,使其在上位機顯示出來。在沒有按鍵按下一段時間內(nèi)系統(tǒng)關(guān)屏以降低功耗,在加速度計不工作時且沒有其他操作,系統(tǒng)經(jīng)過一段時間自動進入低功耗模式。本項目軟件部分采用模塊化設(shè)計的思想,把系統(tǒng)分為七個模塊,然后每個模塊對外留出接口,方便其他模塊與其通信,每個模塊之間無不干擾,相對獨立。4.1.2 設(shè)計流程圖圖4.1為主程序流程圖。首先初始化系統(tǒng)時鐘、RTC時鐘,配置液晶屏的初始界面,以及加速度傳感器、溫濕度傳感器、USB、Flash和個人信息配置等初始化工作,并取得電容觸摸按鍵無遮擋狀態(tài)下的電容值。然后進入任務(wù)循環(huán),根據(jù)當前的按鍵操作調(diào)用相應的功能函數(shù),如若在主界面,則正常顯示日期、時間,環(huán)境的溫濕度;要開始運動,則使加速度傳感器處于激活狀態(tài),并開始計步;若要存儲運動信息,則調(diào)用Flash讀寫函數(shù)。最后若一段時間沒有使用計步器,則系統(tǒng)進入低功耗狀態(tài),傳感器暫停工作,并切斷液晶屏的電源。此時,可通過滑動方式解除低功耗模式,使得計步器正常工作。圖4.1 計步器主程序流程圖4.2 各模塊設(shè)計與分析4.2.1 采集傳感器數(shù)據(jù)的程序設(shè)計4.2.2 數(shù)據(jù)緩沖區(qū)的程序設(shè)計要實現(xiàn)計步算法,必須將三軸加速度傳感器三個軸的歷史數(shù)據(jù)存儲在一個數(shù)據(jù)緩沖區(qū)中。這樣在當新的數(shù)據(jù)到來時,會舍掉最后面的數(shù)據(jù)。同時這個數(shù)據(jù)緩沖區(qū)始終更新當前的數(shù)據(jù)特征,如最大值,最小值,基值,上限閾值,下線閾值等。如程序清單4.1所示。程序清單4.1 計步器的數(shù)據(jù)緩沖區(qū)typedef INT16SDATATYPE;#define DATASIZE50typedef struct _DATA DATATYPE DataDATASIZE; DATATYPE Max; DATATYPE MaxMark; DATATYPE Min; DATATYPE MinMark; DATATYPE Base; DATATYPE UpLimit; DATATYPE DownLimit;_DATA;typedef struct _SensorData _DATA X; _DATA Y; _DATA Z;SensorData;4.2.3 數(shù)據(jù)隊列的程序設(shè)計為了得到時間上均勻地數(shù)據(jù),同時也為了減少系統(tǒng)開銷,設(shè)置三軸加速度計的數(shù)據(jù)速率為100Hz,且每當準備好一個數(shù)據(jù),就會產(chǎn)生一個中斷,告知MCU讀取數(shù)據(jù),即每10ms觸發(fā)一次外部中斷。在中斷服務(wù)程序中,需要讀取數(shù)據(jù),并保存。為了增強系統(tǒng)的可靠性,可單獨開辟一個隊列用于暫時保存數(shù)據(jù)。如程序清單4.2所示。程序清單4.2 計步器隊列接口#define QUEUEMAXSIZE 30typedef struct _QueueType INT8U Array6;QueueType; typedef struct _CirQueue QueueType ArrayQUEUEMAXSIZE; unsigned char Head; unsigned char Count;CirQueue;void QueueSetNull(CirQueue *pQueue);unsigned char QueueGetLengh(CirQueue *pQueue);QueueType QueueGetHead(CirQueue *pQueue);unsigned char QueuePush(CirQueue *pQueue, QueueType x);unsigned char QueuePop(CirQueue *pQueue, QueueType *x);unsigned char QueueIsFull(CirQueue *pQueue);unsigned char QueueIsEmpty(CirQueue *pQueue);4.2.4 獲取數(shù)據(jù)的程序設(shè)計每當數(shù)據(jù)準備好,觸發(fā)外部中斷,在中斷服務(wù)程序中僅需要將數(shù)據(jù)“入隊”;在主函數(shù)中反復查詢隊列是否為空。若不為空,說明還有未來得及處理的數(shù)據(jù)堆積在隊列中,則進行“出隊”操作;若為空,則什么也不做。如程序清單4.3和程序清單4.4所示。程序清單4.3 計步器外部中斷服務(wù)程序void PORTA_IRQHandler(void)/* 數(shù)據(jù)準備好,觸發(fā)中斷*/ INT8U ucData6 = 0; if(MMA8451Q_ReadReg(MMA845x_INT_SOURCE) & 0x01) ucData0 = MMA8451Q_ReadReg(0x01);/* 讀X軸高位數(shù)據(jù)*/ ucData1 = MMA8451Q_ReadReg(0x02);/* 讀X軸地位數(shù)據(jù)*/ ucData2 = MMA8451Q_ReadReg(0x03);/* 讀Y軸高位數(shù)據(jù)*/ ucData3 = MMA8451Q_ReadReg(0x04);/* 讀Y軸地位數(shù)據(jù)*/ ucData4 = MMA8451Q_ReadReg(0x05);/* 讀Z軸高位數(shù)據(jù)*/ ucData5 = MMA8451Q_ReadReg(0x06);/* 讀Z軸地位數(shù)據(jù)*/ QueuePush(&MMA8451QRecQ, *(QueueType*)ucData);/* 進行“入隊操作”*/ PORTA_ISFR = 0xFFFFFFFF;/* 清中斷標志位*/程序清單4.4 計步器主函數(shù)while循環(huán)while(1) if(!QueueIsEmpty(&MMA8451QRecQ) /* 判斷隊列是否為空*/ QueuePop(&MMA8451QRecQ, &Rec);/* 不為空,則“出隊”*/ /* 若為空,則什么也不做*/4.2.5 濾波算法的程序設(shè)計本設(shè)計采樣各類人群在行走和跑步過程中的運動數(shù)據(jù),通過上位機顯示波形,并模擬濾波算法,分析得到最適合本設(shè)計的濾波算法是滑動平均值濾波算法,采樣點為10個,具體效果見第五章內(nèi)容。程序清單4.5給出了核心程序。程序清單4.5 計步器濾波算法部分程序for (i = 0; i SaveTime.Count - 10; i+) temp = 0; for (j = i; j = GMeter.X.Max) GMeter.X.Max = GMeter.X.Datam; GMeter.X.MaxMark = m;if(GMeter.X.Datam GMeter.X.UpLimit) & StepFlag = 0) StepFlag = 1;if(GMeter.X.Datam GMeter.X.DownLimit) & StepFlag = 1) StepFlag =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論