欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 基于GPS的車輛行駛信息記錄系統(tǒng)的設計(SD卡存儲GPS信息)l論文 [打印本頁]

作者: 周翔9966    時間: 2017-5-19 22:47
標題: 基于GPS的車輛行駛信息記錄系統(tǒng)的設計(SD卡存儲GPS信息)l論文
隨著汽車擁有量的逐年增加,道路擁擠和交通事故頻頻發(fā)生,這不僅給人們出行帶來極大不便,而且還涉及到能源浪費、環(huán)境污染、人民生命安全等多方面問題。如何加強對車輛的管理,規(guī)范駕駛員的駕駛行為,減少交通事故的發(fā)生,營造一個和諧、通暢的行車環(huán)境己成為交通運輸和安全管理部門面臨的一個重要問題。
      本課題的主要內容是:利用GPS接收機、微控制器、存儲設備等設計了一個具有定位功能的車輛行駛信息記錄系統(tǒng)。車輛行駛信息記錄系統(tǒng)主要由1片MSP430F149型號的單片機組成的控制電路、GPS接收模塊組成的信息接收電路、SD卡讀寫模塊電路組成。GPS接收模塊接收GPS實時數(shù)據(jù),經過MSP430單片機解析,提取出所需要的時間以及經緯度信息通過串口發(fā)送到SD卡存儲起來。SD卡在寫入數(shù)據(jù)時會創(chuàng)建可命名的txt文件,將收到的數(shù)據(jù)存儲在所命名的文件中。
經過多次的系統(tǒng)調試和實驗,所設計的系統(tǒng)可正常工作,可實現(xiàn)對車輛實時位置信息的記錄,從而監(jiān)控車輛的行駛信息。

目錄
第1章 緒論... 1
1.1  課題研究的目的和意義... 1
1.2  課題的主要研究內容... 2
1.3  論文的組織結構... 2
第2章 系統(tǒng)分析與設計方案... 3
2.1  GPS系統(tǒng)及其工作原理... 3
2.1.1  GPS基礎... 3
2.1.2  GPS定位原理... 3
2.1.3  GPS數(shù)據(jù)... 4
2.2  系統(tǒng)總體設計... 7
第3章 系統(tǒng)硬件設計... 9
3.1  系統(tǒng)硬件總體設計概述... 9
3.2  系統(tǒng)電路模塊設計... 9
3.2.1  MSP430F149單片機簡介... 10
3.2.2  MSP430F149單片機最小系統(tǒng)... 14
3.2.3  GPS定位信息接收電路... 16
3.2.4  SD卡讀寫電路... 20
3.2.5  電源模塊電路... 21
3.3  整體硬件電路... 22
第4章 系統(tǒng)軟件設計... 24
4.1  系統(tǒng)軟件總體設計概述... 24
4.2  系統(tǒng)各部分程序... 24
4.2.1  主程序... 24
4.2.2  SD卡讀寫模塊程序... 25
4.2.3  GPS數(shù)據(jù)處理模塊程序... 30
第5章 系統(tǒng)調試與結果分析... 33
5.1  概述... 33
5.2  IAR軟件簡介... 33
5.3  軟件調試方法及步驟... 34
5.3.1  系統(tǒng)在IAR軟件的調試... 34
5.3.2  程序下載電路的調試... 35
5.4  整體調試... 36
5.5  調試結果與分析... 37
第6章 經濟與社會效益分析... 40
6.1 經濟效益分析... 40
6.2 社會效益分析... 40
結論... 41
致謝... 42
參考文獻... 43
附錄Ⅰ 電路原理圖... 45
附錄Ⅱ 部分程序清單... 46




第1章緒論1.1  課題研究的目的和意義
隨著汽車擁有量的逐年增加,道路擁擠和交通事故頻頻發(fā)生,這不僅給人們出行帶來極大不便,而且還涉及到能源浪費、環(huán)境污染、人民生命安全等多方面問題。如何加強對車輛的管理,規(guī)范駕駛員的駕駛行為,減少交通事故的發(fā)生,營造一個和諧、通暢的行車環(huán)境己成為交通運輸和安全管理部門面臨的一個重要問題。
而GPS衛(wèi)星導航全球定位系統(tǒng)自問世以來,在導航、定位領域發(fā)展勢頭迅猛,引起世界各界人士的關注。具備高精度、全天候、全球覆蓋、高效率、多功能、操作簡便等特點。廣泛應用于地面車輛跟蹤和城市智能交通管理方面。隨著人們對運輸載體的監(jiān)控、跟蹤以及智能化管理要求的提高,GPS在中國已經進入爆發(fā)性發(fā)展階段,蘊藏著巨大的發(fā)展空間。
GPS系統(tǒng)包括三大部分:空間部分——GPS衛(wèi)星星座;地面控制部分——地面監(jiān)控系統(tǒng);用戶設備部分——GPS信號接收機。GPS系統(tǒng)通過使用來自多個衛(wèi)星的信號來確定地面或近地面任何位置的移動接收機的位置。我國的衛(wèi)星定位技術綜合了GPS衛(wèi)星導航全球定位,GSM全球數(shù)字蜂窩移動通信,GIS地理信息,計算機網絡技術全方位的技術應用。利用GPS衛(wèi)星信號接收機,跟蹤這些衛(wèi)星的運行,對所接收到的GPS信號進行變換、放大和處理,測量傳播時間,解譯導航電文。接收機24h不間斷地接收衛(wèi)星發(fā)送的數(shù)據(jù)參數(shù),算出接收的三維位置、三維方向以及運動速度和時間信息。
本課題就是這種背景下提出的利用GPS的定位導航功能,實現(xiàn)對車輛位置信息的記錄,并將車輛的位置信息存儲下來,以供后續(xù)調查。通過對車輛的位置信息的記錄,可以加強車輛的管理,優(yōu)化車輛的行駛路徑,減少交通事故的發(fā)生。
本課題是一個非常有創(chuàng)新的課題,同時具有非常高的實用價值。對本課題的設計很好的煅煉了自己的能力。讓我對GPS的工作原理有了更深的認識。同時,在實現(xiàn)這個設計的過程也很好地煅煉了自己的動手能力和獨立思考能力。完成一個這樣有實用價值的作品,對我以后步入社會后的工作也很有幫助。
1.2 課題的主要研究內容
本次畢業(yè)設計的任務是基于GPS的車輛行駛信息記錄系統(tǒng)的設計,主要是通過GPS接收模塊接受的信息通過串口傳輸?shù)組SP430單片機,由單片機進行數(shù)據(jù)信息的解析與提取,將提取的有效信息儲存到SD卡中。
主要研究內容:
1、硬件電路的設計制作,將GPS接收模塊、SD存儲卡、單片機、電源模塊集成到一個系統(tǒng)板中;
2、用單片機解析GPS定位數(shù)據(jù)(因為GPS數(shù)據(jù)是十分豐富的,要提取里邊有用的);
3、將單片機處理以后的定位數(shù)據(jù)存儲到SD存儲卡。
本課題重點是實現(xiàn)單片機對SD卡的讀寫,存儲車輛位置信息。
1.3  論文的組織結構
本文共分為6個章節(jié),以設計順序為主線對系統(tǒng)進行了詳細介紹。第1章主要介紹了該課題研究的目的、意義、題目要求以及論文的組織結構,本章為設計工作的準備階段。第2章對系統(tǒng)進行了分析,提供了系統(tǒng)的設計方案。第3章介紹了該系統(tǒng)的硬件電路設計原理,詳細介紹了系統(tǒng)各個組成電路模塊。第4章主要是對軟件設計的研究,首先說明了程序設計思路,然后畫出了程序流程圖,并對各程序流程圖作了簡要說明。第5章主要是系統(tǒng)實驗結果與分析。第6章對該課題的經濟和社會效益進行了簡要分析。本文還包括結論、致謝、參考文獻、附錄部分。
2章 系統(tǒng)分析與設計方案
方案設計是系統(tǒng)完成的關鍵,其設計的合理性直接決定了整個系統(tǒng)的結構和功能。
本系統(tǒng)完成了對GPS接收信息的提取,并將其存儲到SD卡中。下面對GPS系統(tǒng)及其工作原理和本系統(tǒng)的設計做一下具體說明。
2.1  GPS系統(tǒng)及其工作原理
2.1.1  GPS基礎
GPS主系統(tǒng)是由美國發(fā)射的衛(wèi)星系統(tǒng),由27顆衛(wèi)星組成,其中24個正常使用,3個備用,27顆衛(wèi)星不間斷的發(fā)送地理位置海拔高度和時間信號,由地面的接收機接受再做處理,一般的接收機可以接收5至12個衛(wèi)星信號。全球定位系統(tǒng)分為三部分:太空衛(wèi)星部分:24顆繞極轉動的衛(wèi)星分成六個軌道,在20200公里的高空運動,轉動一周約12小時,每個衛(wèi)星都不停的發(fā)射載有衛(wèi)星軌道數(shù)據(jù)及時間的無線電波以供地球上的各種接收機接收。地面管制部分:在地面設置的地面管制站主要任務是追蹤控制衛(wèi)星運轉,修正維護每個衛(wèi)星能保持運轉的個性參數(shù),確保接收信息的可靠性。終端設備:追蹤GPS衛(wèi)星并隨時計算出接收機所在位置的坐標,移動速度及時間。GPS接收機及一般分為:無線藍牙GPS,USB接口GPS。
2.1.2  GPS定位原理
GPS系統(tǒng)的基本定位原理是:每顆GPS衛(wèi)星時刻發(fā)布其位置和時間數(shù)據(jù)信號,用戶接收機可以測量每顆衛(wèi)星信號到接收機的時間延遲,根據(jù)信號輸出的速度可以計算出接收機到不同衛(wèi)星的距離。同時收集至少4顆衛(wèi)星的數(shù)據(jù)時,就可以算出三維坐標、速度和時間,經由I/O口輸出串行數(shù)據(jù)。
2.1.3  GPS數(shù)據(jù)
GPS模塊協(xié)議支持NMEA-0183協(xié)議,NMEA-0183協(xié)議是NationalMarinc Elcctronics Association所指定的標準規(guī)格,這一標準還包含傳輸資料的格式以及傳輸資料的通信協(xié)議。一組正常的GPS協(xié)議語句包含GPS固定數(shù)據(jù)輸出語句($GPGGA),建議使用推薦定位信息($GPRMC),地面速度信息($GPVTG)語句。
1.當前衛(wèi)星信息$GPGGA
$GPGGA,101443.00,4155.48410,N,12323.86670,E,1,05,11.28,89.7,M,7.8,M,,*6B;其標準格式為$GPGGA,(1),(2),(3),(4),(5),(6),(7),(8),(9),M(10),M,(11),(12),*hh(CR)(LF)
各部分對應的含義為:
(1):標準定位時間:##時##分##秒;
(2):緯度(格式ddmm.mmmm即##度##.####分);
(3):N/S南或北表示緯度即北緯37度54.9756分;
(4);經度(格式ddmm.mmmm即##度##.####分);
(5):E/W 東或西表示經度即東經109度28.4278分;
(6):質量因子(0=沒有定位,1=實時GPS,2=差分GPS);
(7):可以應用衛(wèi)星個數(shù)(0--8);
(8):水平精度因子(1.0--99.9)水平精度因子=1.0;
(9):天線高程天線高程20.6米;
(10):大地橢球面相對海平面的高度(-999.9---9999.9,單位:米);
(11):差分GPS數(shù)據(jù)年齡,實時GPS時無;
(12):差分某準站號(0000---1023),實時GPS時無;
     *:語句結束標識符;
Hh:為從$開始到*之間的所有ASCII碼的異或校驗和;
(CR):回車;
(LF):換行。
2.推薦定位信息數(shù)據(jù)格式$GPRMC
$GPRMC,101443.00,A,4155.48410,N,12323.86670,E,0.049,255.81,160411,,,A*6A,其標準格式為:$GPRMC(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11)*hh
(1):標準定為時間格式hhmmss.sss;
(2):定位狀態(tài):A=數(shù)據(jù)可用,V=數(shù)據(jù)不能被用;
(3):緯度:格式ddmm.mmmm;
(4):緯度區(qū)分:北半球=N,南半球=S;
(5):經度:格式ddmm.mmmm;
(6):經度區(qū)分:東半球=E,西半球=W;
(7):相對位移的速度0.0至1851.8knots;
(8):相對位移的方向:000.0至359.9度,實際值;
(9):日期:格式ddmmyy;
(10):磁極變量:0度到180度;
(11):磁偏角方向,E(東)或W(西);
(12):模式指示(A=自主定位,D=差分,E=估算,N=數(shù)據(jù)無效)。
3.地面速度信息$GPVTG
$GPVTG,255.81,T,,M,0.049,N,0.090,K,A*32,其標準格式為:
$GPVTG,(1),(2),(3),(4),(5),(6),(7),(8),(9)*hh
(1):運動角度,000---359前導位數(shù)不足補0;
(2):T=真北參照系;
(3):運動角度,000---359前導位不足補0;
(4):M=磁北參照系;
(5):水平運動速度0.00前導位不足補0;
(6):N=節(jié),Knots;
(7):水平運動速度0.00前導位不足補0;
(8):K=公里/時;
(9):模式指示(A=自主定位,D=差分,E=估算,N=數(shù)據(jù)無效)。
4.含經緯度的地理位置$GPGLL
$GPGLL,3723.2475,N,12158.3416,W,161229.487,A*2C,其標準格式為:
$GPGLL,(1),(2),(3),(4),(5),(6)*hh
(1):緯度37度23.2475分;
(2):N/S,北半球或南半球;
(3):經度121度58.3416分;
(4):E/W,東半球或西半球;
(5):標準定為時間:格式,時時分分秒秒;
(6):狀態(tài),A=數(shù)據(jù)可用,V=數(shù)據(jù)不可用。
5.當前衛(wèi)星信息$GPGSA
$GPGSA  A,3,07,02,26,27,09,04,15,,,,1.8,1.0,1.5*33,其標準格式為:$GPGSA,(1),(2),(3),(3),,,,,(3),(3),(3),(4),(5),(6),(7)
(1):模式:M = 手動, A = 自動;
(2):定位型式1 = 未定位, 2 = 二維定位, 3 = 三維定位;
(3):PRN 數(shù)字:01 至32 表天空使用中的衛(wèi)星編號,最多可接收12顆衛(wèi)星信息;
(4):PDOP位置精度因子(0.5~99.9);
(5):HDOP水平精度因子(0.5~99.9);
(6):VDOP垂直精度因子(0.5~99.9);
(7):Checksum.(檢查位)。
2.2  系統(tǒng)總體設計
首先是GPS數(shù)據(jù)接收模塊進行數(shù)據(jù)的接收,然后將接收數(shù)據(jù)傳給單片機進行數(shù)據(jù)的加工處理從中選取有用數(shù)據(jù),存儲到SD卡中。
系統(tǒng)整體設計框架圖如圖2.1所示:
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image002.jpg
圖2.1  系統(tǒng)整體設計框架圖
此次設計的系統(tǒng)主要包括GPS接收模塊、MSP430單片機、SD卡讀寫模塊、串行通信接口等幾部分,各部分設計及主要功能介紹如下:
GPS接收模塊:
GPS接收機的功能是能夠捕獲到按一定衛(wèi)星高度截止角所選擇的待測衛(wèi)星的信號,并跟蹤這些衛(wèi)星的運行,對接收到的GPS信號進行變換、放大和處理,可以實現(xiàn)對天線視界內衛(wèi)星的跟蹤、鎖定和測量。在獲取了衛(wèi)星的位置信息和測算出衛(wèi)星信號傳輸時間之后,就可算出輸出定位、導航和其他數(shù)據(jù)。
GPS接收機由核心處理器、GPS接收裝置和液晶顯示設備組成。本研究采用的GPS接收機是RCB-4H,具有接收GPS信號、處理信號、輸出定位信息等功能。
單片機:
單片機是此系統(tǒng)的核心部分,通過對外圍各個接口的數(shù)據(jù)信號的提取及處理,來控制整個系統(tǒng)的工作。本課題采用MSP430F149單片機提取GPS接收的數(shù)據(jù)信息,并對數(shù)據(jù)信息進行處理。
SD卡讀寫模塊:
SD卡讀寫模塊內置文件系統(tǒng)、可直接進行文件讀寫的SD卡模塊,適用于單片機系統(tǒng)實現(xiàn)大容量存儲方案。單片機使用模塊,可直接進行目錄遍歷、目錄創(chuàng)建、目錄刪除、文件創(chuàng)建、文件刪除、文件修改、卡格式化等標準文件系統(tǒng)操作,無需了解SD卡內部存儲結構及文件系統(tǒng)實現(xiàn)細節(jié)。SD卡通過SD卡讀寫模塊存儲經過單片機處理過的有效信息。

3章 系統(tǒng)硬件設計3.1  系統(tǒng)硬件總體設計概述
系統(tǒng)的硬件電路部分設計是本課題的非常重要和關鍵的一部分,這部分的設計情況將影響到系統(tǒng)功能的實現(xiàn)。本章著重介紹硬件部分電路的設計原理,各部分電路的組成以及外圍電路器件的功能等等。
系統(tǒng)硬件框圖如圖3.1所示:
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image004.jpg
圖3.1 系統(tǒng)硬件框圖
3.2  系統(tǒng)電路模塊設計
對應于系統(tǒng)所要實現(xiàn)的功能,本系統(tǒng)的硬件設計主要由四部分組成。這四部分分別為GPS定位信息接收電路,SD卡讀寫電路,電源電路與STC89C52RC接口電路和程序下載電路。

3.2.1  MSP430F149單片機簡介
單片機是系統(tǒng)的核心部分,通過對外圍各個接口的數(shù)據(jù)信號的提取及處理,來控制整個系統(tǒng)的工作。本課題采用的是MSP430F149單片機。
單片機芯片配以必要的外部器件,一般包括電源供入及電源開關、復位電路、晶振、輸入輸出電路等就能構成最小系統(tǒng)。
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image006.jpgMSP430功能框圖如圖3.2所示:












圖3.2 MSP430功能框圖
MSP430F149芯片是美國TI公司推出的超低功耗微處理器,有60KB+256字節(jié)FLASH,2KBRAM,包括基本時鐘模塊、看門狗定時器、帶3個捕獲/比較寄存器和PWM輸出的16位定時器、帶7個捕獲/比較寄存器和PWM輸出的16位定時器、2個具有中斷功能的8位并行端口、4個8位并行端口、模擬比較器、12位A/D轉換器、2個串行通信接口等模塊。MSP430F149芯片具有如下特點:
(1)功耗低:電壓2.2V、時鐘頻率1MHz時,活動模式為200μA;關閉模式時僅為0.1A,且具有5種節(jié)能工作方式;
(2)高效16位RISC-CPU,27條指令,8MHz時鐘頻率時,指令周期時間為125ns,絕大多數(shù)指令在一個時鐘周期完成;32kHz時鐘頻率時,16位MSP430單片機的執(zhí)行速度高于典型的8位單片機20MHz時鐘頻率時的執(zhí)行速度;
(3)低電壓供電、寬工作電壓范圍:1.8~3.6V;
(4)靈活的時鐘系統(tǒng):兩個外部時鐘和一個內部時鐘;
(5)低時鐘頻率可實現(xiàn)高速通信;
(6)具有串行在線編程能力;
(7)強大的中斷功能;
(8)喚醒時間短,從低功耗模式下喚醒僅需6μs;
(9)ESD保護,抗干擾力強;
(10)運行環(huán)境溫度范圍為-40~+85℃,適合于工業(yè)環(huán)境。
MSP430系列單片機的所有外圍模塊的控制都是通過特殊寄存器來實現(xiàn)的,故其程序的編寫相對簡單。編程開發(fā)時通過專用的編程器,可以選擇匯編或C語言編程,IAR公司為MSP430系列的單片機開發(fā)了專用的C430語言,可以通過WORKBENCH和C-SPY直接編譯調試,使用靈活簡單。
單片機引腳圖如圖3.3所示:
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image008.jpg
圖3.3  MSP430引腳圖
58腳RST/NMI 為430單片機的復位引腳(低電平有效)。
1腳DVCC、63腳DVSS 為數(shù)字電源接口。
64腳AVCC、62腳AVSS 為模擬電源接口。注意:MSP430系列單片機的供電電壓為1.8V~3.6V。
32腳UTXD0、33腳URXD0 的第二功能為MSP430F149單片機兩路串口通訊接口中的第一路。
34腳UTXD1、35腳URXD1 的第二功能為MSP430F149單片機兩路串口通訊接口中的第二路。
29腳SIMO0,30腳SOMI0,31腳UCLK0 的第二功能為MSP430F149單片機兩路SPI通訊接口中的第一路。
45腳SIMO1,46腳SOMI1,47腳UCLK1 的第二功能為MSP430F149單片機兩路SPI通訊接口中的第二路。
48腳的第二功能為MSP430F149單片機MCLK(主系統(tǒng)時鐘)的輸出端。
49腳的第二功能為MSP430F149單片機 SCLK(子系統(tǒng)時鐘)的輸出端
50腳的第二功能為MSP430F149單片機 ACLK(輔系統(tǒng)時鐘)的輸出端。
52腳、53腳為外部高頻時鐘晶振輸入端(程序中說明一般用XT2CLK或HF XTAL表示)。
8腳、9腳為外部低頻時鐘晶振輸入端(程序中說明一般用LFXTICLK表示)。
59腳TA0,60腳TA1,61腳TA2,2腳A3,3腳A4,4腳A5,5腳A6,6腳A7 的第二功能為8路的內部12位ADC模擬電壓輸入端口。
54腳TDO/TDI,55腳TDI/TCLK,56腳TMS,57腳TCK  為JTAG接口(同時擁有仿真器和編程器的功能),用于下載程序并實現(xiàn)硬件在線仿真。
I/O口的操作:
P1~P6的公有寄存器位為PXSEL,PXDIR,PXOUT,PXIN。其中P1,P2相對于P3,P4 ,P5,P6還多出了3個寄存器PXIE,PXIES,PXIFG,這三個寄存器是用于設置開啟P1,P2的外部觸發(fā)中斷使用的(其中X可以為1,2,3,4,5,6)。
以下各寄存器功能介紹(以P3.4為例):
P3SEL用于功能選擇,當其置0選擇的是普通I/O口功能,置1選擇的是第二功能;
比如32腳UTXD0對應P3.4,33腳URXD0對應P3.4。
P3SEL&= ~BIT4;// 該程序是將P3.4置0,此時該引腳只具有普通I/O口功能;
P3SEL|=  BIT4;//  該程序是將P3.4置1,此時該引腳將具有異步串口通信功能。
P3DIR是用于設置I/O口輸出方向的。
P3DIR&= ~BIT4; //該程序是將I/O口的方向設置為輸入(一般用于讀取數(shù)據(jù)時);
P3DIR|=  BIT4; //該程序是將I/O口的方向設置為輸出。
P3OUT是用于設置I/O口輸出高低電平的。
P3OUT&= ~BIT4; ///該程序是使該I/O口輸出高電平;
P3OUT|=  BIT4; ///該程序是使該I/O口輸出低電平。
P3IN是用于讀取外部輸入到該引腳,使用該寄存器前必須將P3DIR置0。
3.2.2 MSP430F149單片機最小系統(tǒng)
最小系統(tǒng)是由保證處理器可靠工作所必須的基本電路組成的,主要包括電源電路、時鐘電路和復位電路。
1.時鐘電路
時鐘電路用于產生單片機工作時所需要的時鐘信號。單片機各功能部件的操作都是以時鐘頻率為基準,有條不紊地周期性地工作。因此,時鐘頻率直接影響單片機的運行速度,時鐘電路的質量也直接影響單片機系統(tǒng)的穩(wěn)定性。
MSP430系列單片機時鐘模塊包括數(shù)控振蕩器(DCO)、高速晶體振蕩器和低速晶體振蕩器等3個時鐘源。這是為了解決系統(tǒng)的快速處理數(shù)據(jù)要求和低功耗要求的矛盾,通過設計多個時鐘源或為時鐘設計各種不同工作模式,才能解決某些外圍部件實時應用的時鐘要求,如低頻通信、LCD顯示、定時器、計數(shù)器等。數(shù)字控制振蕩器DCO已經集成在MSP430內部,在系統(tǒng)中只需設計高速晶體振蕩器和低速晶體振蕩器兩部分電路。
低速晶體振蕩器(LFXTl)滿足了低功耗及使用32.768kHz晶振的要求。LFXTl振蕩器默認工作在低頻模式,即32.768kHz,也可以通過外接450kHz~8MHz的高速晶體振蕩器或陶瓷諧振器工作在高頻模式,在本電路中我們使用低頻模式。
高速晶體振蕩器(HFXT2)也稱為第二振蕩器XT2,它為MSP430F149工作在高頻模式時提供時鐘,XT2最高可達8MHz。在系統(tǒng)中XT2采用8MHz的晶體,XT2外接2個30pF的電容經過XT2IN和XT2OUT連接到MCU。
晶振電路如圖3.4所示:
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image010.jpg   file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image012.jpg
圖3.4  晶振電路
2.復位電路
在單片機每次初始加電時,首先投入工作的功能部件是復位電路。復位電路把單片機鎖定在復位狀態(tài)上并且維持一個延時,以便給予電源電壓從上升到穩(wěn)定的一個等待時間。在電源電壓穩(wěn)定之后,再插入一個延時,給予時鐘振蕩器從起振到穩(wěn)定的一個等待時間。
從上MSP430系統(tǒng)復位電路功能模塊圖中可以看到了兩個復位信號,一個是上電復位信號POR(PowerOn Reset)和上電清除信號PUC(Power Up Clear)。POR信號是器件的復位信號,此信號只有在以下的事件發(fā)生時才會產生:
    器件上電時:RST/NMI引腳配置為復位模式,當RST/NMI引腳產生低電平時。
    當POR信號產生時,必然會產生PUC信號;而PUC信號的產生時不會產生POR信號。會引起產生PUC信號的事件:
   POR信號發(fā)生時;啟動看門狗時,看門狗定時器計滿時;向看門狗寫入錯誤的安全參數(shù)值時;向片內FLASH寫入錯誤的安全參數(shù)值時。
當POR信號或PUC信號發(fā)生時引起器件復位后,器件的初始化狀態(tài)為:
   RST/NMI引腳配置為復位模式、I/O引腳為輸入模式、狀態(tài)寄存器SR復位、看門狗激活進入工作模式、程序計數(shù)器(PC)裝入復位向量地址0xFFFE,微處理器從此地址開發(fā)始執(zhí)行。
由于MSP430F149單片機是低電平復位,在復位鍵未按下時,由于電容對直流電的阻隔作用,復位端口REST為高電平,因此單片機不執(zhí)行復位功能;當按下復位鍵S2時,電容C3通過S2放電,此時REST為低電平,單片機進入復位狀態(tài),當釋放S2時,電源通過電阻R8給電容再次充電,復位端口的點位由低電平緩慢的上升的高電平,在未達到單片機規(guī)定的閾值之前,單片機均認為是低電平,保持復位狀態(tài)當充電完成后,復位端口為高電平,復位結束。其中二極管D3的加入是保證REST端的電壓限定在一定范圍內不會太高。
復位電路如圖3.5所示:
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image014.jpg
圖3.5  復位電路
最小系統(tǒng)可以直接作為核心部件應用與工程和科研中,具有良好的通用性和可擴展性。在最小系統(tǒng)的基礎上,可以很方便地進行二次開發(fā)和功能擴展,能夠縮短開發(fā)周期,降低開發(fā)成本。本文實現(xiàn)了最小系統(tǒng)的基本功能,介紹了各模塊的硬件電路。該最小系統(tǒng)可以經過適當修改可應用于電子設計、計算機教學與科研、工業(yè)控制等領域。
3.2.3  GPS定位信息接收電路
在進行硬件設計時,應根據(jù)系統(tǒng)的需要來選擇適合的硬件。
在本系統(tǒng)的設計中,GPS接收機是最基本的組成部分,由它來接收衛(wèi)星信號,并且產生定位信息。下面分別介紹GPS接收機的分類、選擇與各種特性。
    1.GPS接收機的分類
     GPS接收機可以根據(jù)用途、工作原理、接收頻率等進行不同的分類。按接收機的用途進行分類可分為導航型接收機,測地型接收機,授時型接收機等;按接收機的載波頻率進行分類可分為單頻接收機,雙頻接收機;由于GPS接收機的定位原理多樣,應用范圍廣泛,所以分類方法也多種多樣,需要根據(jù)實際應用來選擇適當?shù)慕邮諜C。
    2.GPS定位模塊的選擇
     由于本項目開發(fā)的是基于GPS OEM接收機自主完好性監(jiān)測系統(tǒng)的研究,所以應選擇導航型的GPS模塊。目前,有很多廠商都能提供GPS OEM板產品,如SiRF、Conexant、Sychip、GARMIN等公司。其中北京三信通導技術有限公司是最著名、深受用戶信賴的專業(yè)GPS廠家,在GPS的定位、導航領域一直走在最前列,在提供各種類型的GPS成品的同時,還提供一系列最經典的GPS OEM板產品。此公司生產的GPS OEM產品的優(yōu)良的性能既能夠滿足靈敏度需求,也能夠滿足動態(tài)需求,所以本項目選擇RCB-4H作為GPS定位模塊。它為12 通道的GPS接收機,也就是同時可以跟蹤多達12顆GPS 衛(wèi)星,從而能夠快速的定位。GPS 接收機功耗非常小,數(shù)據(jù)更新率為4HZ,即為每秒4次。
    3.RCB-4H簡介
GPS-OEM板采用單一5V供電,內置保護電池,RS232、TTL兩種電平自動輸出NMEA0183格式(ASCII字符型)語句。GPS接收板主要由變頻器、信號通道、存儲器、中央處理器和輸入輸出接口構成。它接收天線獲取的衛(wèi)星信號,經過變頻、放大、濾波、相關、混頻等一系列處理,可以實現(xiàn)對天線視界內衛(wèi)星的跟蹤、鎖定和測量。在獲取了衛(wèi)星的位置信息和測算出衛(wèi)星信號傳輸時間之后,就可算出輸出定位、導航和其他數(shù)據(jù)。
4.RCB-4H的輸出格式
RCB-4H是一種超低功耗的GPS接收板.接收機輸出數(shù)據(jù)通常使用的格式是美國國家海洋電子協(xié)會指定的NMEA0183通信標準格式,其輸出數(shù)據(jù)代碼為ASCII碼字符,內容包含了緯度、精度、高度、速度、日期、時間、航向以及衛(wèi)星狀況等信息。輸出數(shù)據(jù)為多種格式,如GPGRS、GPGGA、GPGSA等。GPS通信波特率為4800~19200,1個起始位,8個數(shù)據(jù)位,1個停止位,無奇偶校驗位。
GPS接收機的實物圖如圖3.6所示:
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image016.jpg
圖3.6  GPS接收機實物圖
GPS接收機引腳圖如圖3.7所示:
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image018.jpg
圖3.7  GPS接收機管腳配置圖
各引腳功能如表3.1所示。


表3.1 GPS引腳功能介紹
1
V-ANT
輸入
天線偏置電壓
11
TXD1
輸出
串口1
2
Vcc
輸入
供應電壓
12
RXD1
輸入
串口1
3
V-BAT
輸入
備用電源電壓
13
GND


4
Vcc
輸入
供應電壓
14
TXD2
輸出
串口2
5
RESET-N
輸入
復位
15
RXD2
輸入
串口2
6
Reserved




16
GND


7
Reserved




17
GND


8
Reserved




18
GND


9
Reserved




19
TIMEPULSE
輸出
時間脈沖
10
GND


20
GND


5.GPS信息接收電路
由于我們所采用的RCB-4H信號接收模塊輸出信號為RS-232電平,而MSP430單片機串口所使用的電平為TTL電平,所以為了能使單片機正常的與RCB-4H信號接收模塊進行通訊,故需要對電平進行相互轉換,所以我使用了MAX-232轉換芯片。其電路設計圖如圖3.8所示。
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image020.jpg
圖3.8  GPS信息接收電路
3.2.4  SD卡讀寫電路
SD卡讀寫模塊SDV600是一款整合了SD卡規(guī)范和FAT文件格式規(guī)范的模塊,只要通過本模塊規(guī)定的通訊協(xié)議就可以把數(shù)據(jù)存儲在SD卡中的文件中。由于SD卡規(guī)范和FAT規(guī)范是非常復雜,如果在項目中要單獨來寫這兩個規(guī)范的非常費時和費力,而且非常占用系統(tǒng)資源;現(xiàn)在的便攜儀采集的數(shù)據(jù)種類越來越多,數(shù)據(jù)量越來越大,而其大部分要求在計算機上備份數(shù)據(jù)或者后期用計算機處理數(shù)據(jù);而SD 卡以其容量大,速度快,接口簡單,加之配套的讀卡器便宜而發(fā)展迅速;這些主觀和客觀的因素促使項目中迫切要求使用SD 卡加FAT文件系統(tǒng)來存儲數(shù)據(jù),也促使本模塊的誕生。
本模塊支持FAT32文件格式,理論支持8G以下SD卡。通過命令提供給主機有如下功能:
(1)文件的創(chuàng)建(注:文件名只支持8.3 文件格式:8.3文件格式文件名不支持中文,文件名長度為最大8個字符);
(2)文件的打開(8.3 文件名格式);
(3)文件的連續(xù)寫入和文件的給定起始地址寫入;
(4)文件的連續(xù)讀取和文件的給定起始地址讀;
(5)當前打開文件的保存;
(6)當前文件的關閉;
(7)文件指針的設置;
(8)當前打開文件信息的讀取,包括文件的大小和當前文件指針值;
(9)獲取系統(tǒng)的狀態(tài)(有無SD卡,是否為FAT32文件格式,系統(tǒng)是否繁忙);
(10)通過模塊上的撥碼開關設置串口波特率(2400,9600,19200,57600,115200)。
SD卡讀寫模塊連接電路如圖3.9所示:
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image022.jpg
圖3.9  SD卡讀寫模塊電路
本模塊工作穩(wěn)定,不挑卡,不死機,串口 UART操作(直接接任何帶串口單片機),指令少,還可以順序存。
3.2.5  電源模塊電路
由于整個系統(tǒng)采用5V和3.3V供電,又考慮到硬件系統(tǒng)要求電源具有穩(wěn)壓功能和波紋小等特點,另外也考慮到硬件系統(tǒng)的低功耗等特點,因此該硬件系統(tǒng)的電源先用LM7805穩(wěn)壓為5V給外圍模塊電路供電,再用SPX1117芯片穩(wěn)壓得到3.3V電壓,給CPU和3.3V設備供電。
電源電路如圖3.10所示:
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image024.jpg
圖3.10  電源電路
3.3  整體硬件電路
本系統(tǒng)的硬件電路主要包括GPS接收模塊、MSP430F149單片機和SD卡讀寫模塊組成。
整體硬件電路實物圖如圖3.11所示:
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image026.gif
圖3.11  整體硬件電路實物圖








4章 系統(tǒng)軟件設計4.1  系統(tǒng)軟件總體設計概述
本次課題是基于GPS的車輛行駛信息記錄系統(tǒng)的設計,主要實現(xiàn)GPS數(shù)據(jù)接收、GPS數(shù)據(jù)信息處理以及GPS有效數(shù)據(jù)信息存儲等功能,而這些功能通過使用IAR Embedded Workbench集成調試軟件編寫程序來實現(xiàn)。由于硬件電路設計包含主控電路、GPS信息接收電路、SD卡存儲電路組成,因此本次程序設計主要包含3個部分:主程序、SD卡讀寫模塊程序和GPS數(shù)據(jù)處理模塊電路程序。
4.2  系統(tǒng)各部分程序4.2.1  主程序
設計系統(tǒng)時,一般會設計系統(tǒng)的主程序。主程序主要用于調用各個子程序,不僅如此,還標明調用子程序所要滿足的條件。本系統(tǒng)的主程序流程圖如圖4.1 所示。
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image028.gif
圖4.1  系統(tǒng)主程序流程圖
4.2.2  SD卡讀寫模塊程序
SDV600 是內含處理器,整合FAT 協(xié)議,操作起來和芯片一樣,它工作狀態(tài)也是有忙有閑,所以在執(zhí)行操作時需要檢查模塊的busy 標志引腳,客戶處理器完全可以去做別的事,必要時判斷busy 進行下一步操作。
對于FAT協(xié)議來講,文件數(shù)越多造成得尋址和判斷(判斷文件重命名)時間越來越長,使建立文件命令執(zhí)行時間增長,所以在使用命令時一定要判斷模塊的BUSY腳,如果處于BUSY狀態(tài)發(fā)送的后續(xù)命令就會被模塊丟棄,直到不為BUSY狀態(tài)時,后續(xù)命令才可被模塊執(zhí)行。
例如:按照狀態(tài)命令(01)+創(chuàng)建命令(02)+打開命令(06)+寫入數(shù)據(jù)命令(05)+保存命令(04)+關閉命令(08)這樣的命令而不判斷BUSY,當創(chuàng)建到大概800 多個文件時,創(chuàng)建命令時間變長,使得后續(xù)打開命令(06)丟失,而寫入數(shù)據(jù)命令(05)+保存命令(04)因沒有打開文件(打開命令丟棄沒有執(zhí)行),而執(zhí)行失敗,這樣會出現(xiàn)創(chuàng)建好文件后,沒有寫入數(shù)據(jù)的現(xiàn)象,如果判斷BUSY就能解決此問題。
類似問題還有保存命令,關閉命令。
SD卡讀寫模塊在工作時可實現(xiàn)創(chuàng)建文件、打開文件、寫入數(shù)據(jù)、保存文件和關閉文件的操作,在實現(xiàn)不同操作時對應有不同的命令格式:
    1.創(chuàng)建文件命令 0x02
創(chuàng)建文件命令提供給主機創(chuàng)建文件的功能。參數(shù)為N字節(jié)8.3 文件格式的文件名(字符串格式,即文件名以0 結尾),即8 字節(jié)的基本文件名(模塊不支持漢字編碼,字母不區(qū)分大小寫),3 字節(jié)擴展名。命令格式如下:
0x55  0xaa  0x02  個數(shù)(2 字節(jié),低字節(jié)在前) 8.3文件格式名  校驗和
應答的數(shù)據(jù)為1 個字節(jié)的狀態(tài)信息,各位分別代表不同的狀態(tài):
Bit 0,SD 卡不存在狀態(tài),1 表示SD 卡不存在;
Bit 1,SD 卡寫保護狀態(tài),1 表示SD 卡寫保護;
Bit 2,文件打開狀態(tài),1 表示當前有文件打開,創(chuàng)建失敗;
Bit 3,F(xiàn)AT16 根目錄滿,1 表示根目錄滿,F(xiàn)AT16 根目錄只能創(chuàng)建32 個文件或文件夾;
Bit 4,文件名格式,1 表示當前目錄下有同名文件或者文件名格式不是8.3格式;
Bit 5,文件系統(tǒng)類型,1 表示不為FAT32 文件系統(tǒng);
Bit 6,系統(tǒng)忙狀態(tài),1 表示系統(tǒng)正處在忙狀態(tài);
Bit 7,校驗和狀態(tài),1 表示發(fā)送命令的校驗和不正確。
注:接收到應答,其中8 位任何一位不為0,表示命令執(zhí)行失敗。
例如要在SD卡中建立文件12345678.txt,發(fā)送的命令數(shù)據(jù)為:
例:55 AA02 0D 00 31 32 33 34 35 36 37 38 2E 74 78 74 00 41 創(chuàng)建 12345678.txt文件。
2.打開文件命令 0x06
該命令為主機提供打開文件的功能。參數(shù)為N 字節(jié)8.3文件格式的文件名(字符串格式,即文件名以0 結尾),即8 字節(jié)的基本文件名(模塊不支持漢字編碼,字母不區(qū)分大小寫),3 字節(jié)擴展名。命令格式如下,其中個數(shù)占2字節(jié),低字節(jié)先發(fā)送:
0x55  0xaa  0x06  個數(shù)(2 字節(jié),低字節(jié)在前) 8.3文件格式名  校驗和
應答的數(shù)據(jù)為1 個字節(jié)的狀態(tài)信息,各位分別代表不同的狀態(tài):
Bit 0,SD 卡不存在狀態(tài),1 表示SD 卡不存在;
Bit 1,文件打開狀態(tài),1 表示當前有文件打開,打開失敗,先關閉文件在調用該命令;
Bit 2,文件名狀態(tài),1 表示文件名不是標準的8.3 文件格式;
Bit 3,文件存在狀態(tài),1 表示無該文件;
Bit 4,無定義;
Bit 5,文件系統(tǒng)類型,1 表示不為FAT文件系統(tǒng);
Bit 6,系統(tǒng)忙狀態(tài),1 表示系統(tǒng)正處在忙狀態(tài);
Bit 7,校驗和狀態(tài),1 表示發(fā)送命令的校驗和不正確。
注:接收到應答,根據(jù)第8 位判斷命令執(zhí)行狀態(tài),如果失敗,原因參考前幾位標識。
例:55 AA06 0D 00 31 32 33 34 35 36 37 38 2E 74 78 74 00 45 打開 12345678.txt文件。
3.寫入文件命令 0x05
該命令為主機提供向已打開文件中寫入數(shù)據(jù)的功能。每寫一個數(shù)據(jù)文件指針自動加1,當數(shù)據(jù)寫完,
文件指針指向最后一個數(shù)據(jù)地址加1 的位置。命令格式如下,其中個數(shù)占2 字節(jié),低字節(jié)先發(fā)送,起始地址占4 字節(jié),低字節(jié)先發(fā)送:
0x55 0xaa 0x05 個數(shù)(2 字節(jié)) 起始地址(4個字節(jié)) 有效數(shù)據(jù)  校驗和
應答的數(shù)據(jù)為1 個字節(jié)的狀態(tài)信息,各位分別代表不同的狀態(tài):
Bit 0,SD 卡不存在狀態(tài),1 表示SD 卡不存在;
Bit 1,SD 卡寫保護狀態(tài),1 表示SD 卡寫保護;
Bit 2,文件打開狀態(tài),1 表示無文件打開;
Bit 3,磁盤狀態(tài),1表示磁盤空間滿,寫入失敗;
Bit 4,參數(shù)個數(shù)狀態(tài),1 表示參數(shù)個數(shù)小于4個字節(jié);
Bit 5,文件系統(tǒng)類型,1 表示不為FAT文件系統(tǒng);
Bit 6,系統(tǒng)忙狀態(tài),1 表示系統(tǒng)正處在忙狀態(tài);
Bit 7,校驗和狀態(tài),1 表示發(fā)送命令的校驗和不正確。
注:接收到應答,其中8 位任何一位不為0,表示命令執(zhí)行失敗,原因參考位標識。
例:55 AA05 0D 00 00 00 00 00 31 32 33 34 35 36 37 38 39 EF 向打開的文件寫入123456789數(shù)據(jù)。
如果要連續(xù)寫入文件,只要把寫命令中的地址信息置最大值,0xffffffff就可以了。有效數(shù)據(jù)≤200個字節(jié),個數(shù)2個字節(jié)是備用將來擴展。
4.保存文件命令 0x04
該命令為主機提供保存當前打開文件的功能,為了防止頻繁寫SD 卡,每次送入模塊的數(shù)據(jù)先是保存在模塊的512 字節(jié)的扇區(qū)緩沖中,所以為了防止數(shù)據(jù)丟失,完成所有數(shù)據(jù)的傳輸后,要發(fā)送保存文件命令來保存文件。命令格式如下:
0x55  0xaa  0x04  0x00 0x00  0x04
應答的數(shù)據(jù)為1 個字節(jié)的狀態(tài)信息,各位分別代表不同的狀態(tài):
Bit 0,SD 卡不存在狀態(tài),1 表示SD 卡不存在;
Bit 1,SD 卡寫保護狀態(tài),1 表示SD 卡寫保護;
Bit 2,文件打開狀態(tài),1 表示無文件打開;
Bit 3,無定義;
Bit 4,文件系統(tǒng)類型,1 表示不為FAT32 文件系統(tǒng);
Bit 5,系統(tǒng)忙狀態(tài),1 表示系統(tǒng)正處在忙狀態(tài);
Bit 6,校驗和狀態(tài),1 表示發(fā)送命令的校驗和不正確。
注:接收到應答,其中8 位任何一位不為0,表示命令執(zhí)行失敗,原因參考位標識。
記得文件要保存數(shù)據(jù)才可以完全寫入sd卡中,文件信息(大。┑炔趴梢愿。
例:55 AA04 00 00 04 保存文件。
5.關閉文件命令 0x08
該命令為主機提供關閉當前打開的文件的功能。在創(chuàng)建文件、創(chuàng)建文件夾、打開文件之前要求關閉當
前打開的文件,才可以執(zhí)行這些命令,否則返回失敗。命令格式如下:
0x55  0xaa  0x08  0x00 0x00  0x08
應答的數(shù)據(jù)為1 個字節(jié)的狀態(tài)信息,各位分別代表不同的狀態(tài):
Bit 0,SD 卡不存在狀態(tài),1 表示SD 卡不存在;
Bit 1,無定義;
Bit 2,無定義;
Bit 3,無定義;
Bit 4,文件系統(tǒng)類型,1 表示不為FAT文件系統(tǒng);
Bit 5,系統(tǒng)忙狀態(tài),1 表示系統(tǒng)正處在忙狀態(tài);
Bit 6,校驗和狀態(tài),1 表示發(fā)送命令的校驗和不正確。
注:接收到應答,其中8 位任何一位不為0,表示命令執(zhí)行失敗,原因參考位標識。
SD卡讀寫模塊程序流程圖如圖4.2所示:
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image030.gif
圖4.2  SD卡讀寫模塊程序流程圖
4.2.3  GPS數(shù)據(jù)處理模塊程序
GPS接收機只要處于工作狀態(tài)就會源源不斷地把接收并計算出的GPS導航定位信息通過串口傳送到計算機中。GPS定位信息的接收只負責從串口接收數(shù)據(jù)并將其放置于緩存,在沒有進一步處理之前緩沖中是一長串ASCII碼字節(jié)流,這些信息在沒有經過分類提取之前是無法加以利用的。因此,必須通過程序將各個字段的信息從緩存字節(jié)流中提取出來。因此,必須通過程序將各個字段的信息從接收到的字節(jié)流中提取出來,將其轉換成實際意義的,可供高層決策使用的定位信息數(shù)據(jù)。同其他通訊協(xié)議類似,對GPS信息進行提取必須首先明確其幀結構。數(shù)據(jù)幀主要由幀頭、幀尾和幀內數(shù)據(jù)組成。對于不同的數(shù)據(jù)幀,其幀頭是不同的,主要有“$GPGGA”、“$GPGSA”、“$GPGSV”以及“$GPRMC”等。這些幀頭標識了后續(xù)幀內數(shù)據(jù)的組成和結構特點。各幀均已回車符<CR>和換行符<LF>作為幀尾,標識一幀的結束。
對數(shù)據(jù)幀處理,是先對幀頭進行判斷,然后只對感興趣的幀進行數(shù)據(jù)的提取處理。由于幀內各數(shù)據(jù)段被逗號分割,因此在處理接收數(shù)據(jù)時一般是首先通過搜尋ASCII碼“$”來判斷是否是幀頭,接著對幀頭的類別進行識別,然后再根據(jù)識別出來的幀類型作出相應的提取和存儲。
本課題采用的是“$GPRMC”語句,內含所需要的時間、經度、緯度及日期等信息。
GPS數(shù)據(jù)處理模塊程序流程圖如圖4.3所示:
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image032.gif
圖4.3  GPS數(shù)據(jù)處理模塊程序流程圖


5章 系統(tǒng)調試與結果分析5.1  概述
IAR系統(tǒng)嵌入式 Workbench是一種用于開發(fā)應用各種不同的目標處理器的靈活的集成環(huán)境。它提供一個方便的窗口界面用于迅速的開發(fā)和調試嵌入式。Workbench支持多種不同的目標處理器,用戶用不同的目標處理器開發(fā)的工程(Projects)可以在工程的基礎上逐個規(guī)定目標工程。
軟件調試主要是檢查程序編寫的語法錯誤,即能否正確編譯、單步運行時邏輯上是否正確;然后要把程序下載單片機內,看能否實現(xiàn)系統(tǒng)預期的功能,這一部分是最為關鍵的環(huán)節(jié)。
硬件調試主要是檢查電路連接是否有誤,根據(jù)電路圖逐個檢查各個引腳是否連接準確。硬件調試的目的是把系統(tǒng)的各個部分有機的組合起來,成為一個整體。
5.2  IAR軟件簡介
IAR Embedded Workbench 是瑞典 IAR Systems 公司為 微處理器開發(fā)的一個集成開發(fā)環(huán)境,支持ARM,AVR,MSP430等芯片內核平臺。
IAR EWARM 中包含一個全軟件的模擬程序(simulator)。用戶不需要任何硬件支持就可以模擬各種ARM 內核、外部設備甚至中斷的軟件運行環(huán)境。從中可以了解和評估IAR EWARM 的功能和使用方法。
  IAR EWARM 的主要特點如下:
  1、高度優(yōu)化的IAR ARM C/C++ Compiler;
  2、IAR ARM Assembler;
  3、一個通用的IAR XLINK Linker;
  4、IAR XAR 和XLIB 建庫程序和IAR DLIB C/C++運行庫;
  5、功能強大的編輯器;
  6、項目管理器;
  7、命令行實用程序;
  8、IAR C-SPY 調試器(先進的高級語言調試器)。
5.3  軟件調試方法及步驟5.3.1  系統(tǒng)在IAR軟件的調試
使用該軟件進行開發(fā)的過程為,啟動軟件后先建立工程文件,命名并保存到指定的文件夾中。在工程文件中建立新的Workspace,命名并保存到指定的文件夾中。在Workspace中創(chuàng)建新文件命名并保存到指定的文件夾中。緊接著需向項目文件中增加程序文件內容,可以是新建的程序文件也可以是已經創(chuàng)建好的文件。在Option中選擇單片機芯片型號(如選擇芯片MSP430F149)和需要的相關生成文件(如生成可下載到芯片中的.txt文件)。之后即可編譯連接工程文件了,編譯、連接時,如果程序出錯,則編譯不成功,并在下面的信息窗口給出相應的出錯提示,以進行修改,修改后再編譯、連接,這個過程可能會重復多次。如果沒有錯誤,則編譯、連接成功,并且信息窗口給出提示信息。
IAR軟件編譯成功后結果如圖5.1所示:

file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image034.jpg
圖5.1  編譯成功結果圖
5.3.2  程序下載電路的調試
在程序編譯成功后,在相關的文件目錄中可以找到生成的需要下載到芯片中的.txt格式文件。具體步驟如下:
(1)檢查電路連接;
(2)打開SF_BSL430.exe程序下載軟件;
(3)設置串口;
(4)裝載生成的.txt文件;
(5)執(zhí)行。



程序下載過程界面如圖5.2所示:
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image036.jpg
圖5.2  程序下載過程界面圖
5.4  整體調試
在程序下載成功后,將單片機與計算機通過串口線相連,準備系統(tǒng)的整體調試。
串行通信接口模塊主要完成的功能是單片機與計算機之間的數(shù)據(jù)傳送。本系統(tǒng)的設計采用的是MAX-232通信協(xié)議。在進行串行通信接口模塊的調試時使用的是串口調試助手軟件。該軟件使用起來方便、快捷。不需要通過鍵盤和顯示模塊來調試,只需要將GPS OEM接收板用串口線與計算機相連就可以進行調試。開始進行調試的時候,我們先要設置一下串口通訊的參數(shù),波特率選擇9600b/s,檢驗位None(無),數(shù)據(jù)值選8,停止位選擇1;

串口參數(shù)設置如圖5.3所示:
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image038.jpg
圖5.3  串口參數(shù)設置
在串口調試助手窗口發(fā)送區(qū)發(fā)送數(shù)據(jù):
$GPRMC,101443.00,A,4155.48410,N,12323.86670,E,0.049,255.81,160411,選擇自動發(fā)送按鈕,即可將數(shù)據(jù)存儲到SD卡中,在數(shù)據(jù)接收區(qū)可以查看到存儲的數(shù)據(jù)。
5.5  調試結果與分析
給系統(tǒng)上電之后通過串口調試助手發(fā)送數(shù)據(jù),硬件整體效果如圖5.4所示:
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image040.jpg
圖5.4  上電時電路
斷開電源后取出SD卡插入到計算機中打開,可以看到創(chuàng)建的11112222.txt文件。得到界面如圖5.5所示:
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image042.jpg
圖5.5  創(chuàng)建的.txt文件

打開文件11112222.txt,文件中的數(shù)據(jù)即為接收到的解析后的GPS數(shù)據(jù)信息,如圖5.6所示:
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image044.jpg
圖5.6  存儲的數(shù)據(jù)
以上即為本設計的調試結果,基本上實現(xiàn)了設計的預期要求。但從最后存儲的數(shù)據(jù)可以看到系統(tǒng)在存儲數(shù)據(jù)時有數(shù)據(jù)缺失,造成此現(xiàn)象的可能原因有:
(1)  解析信號時解析不完整;
(2)  在存儲過程中造成數(shù)據(jù)丟失。





6章 經濟與社會效益分析6.1 經濟效益分析
本文介紹的是基于GPS接收模塊的車輛行駛信息記錄系統(tǒng)的設計,不僅能夠從GPS導航系統(tǒng)獲得時間、定位信息,而且本系統(tǒng)在設計之初就進行了成本的預算,這不僅為生產商考慮了經濟收益,也為使用者考慮了性價比問題。整個系統(tǒng)的主要器件都比較常見,價格比較合理,尤其存儲部分采用的SD卡讀寫模塊在能夠很好的完成顯示的前提下,更具有成本較低的優(yōu)勢。采用低成本元件實現(xiàn)高性能的系統(tǒng),可以滿足生產者和使用者的需求。
總之,整個系統(tǒng)具有硬件電路簡單、成本低廉、編程方便、性能穩(wěn)定的特點,具有一定的使用價值。
6.2 社會效益分析
隨著汽車擁有量的逐年增加,道路擁擠和交通事故頻頻發(fā)生,這不僅給人們出行帶來極大不便,而且還涉及到能源浪費、環(huán)境污染、人民生命安全等多方面問題。如何加強對車輛的管理,規(guī)范駕駛員的駕駛行為,減少交通事故的發(fā)生,營造一個和諧、通暢的行車環(huán)境己成為交通運輸和安全管理部門面臨的一個重要問題
而GPS衛(wèi)星導航全球定位系統(tǒng)自問世以來,在導航、定位領域發(fā)展勢頭迅猛,引起世界各界人士的關注。具備高精度、全天候、全球覆蓋、高效率、多功能、操作簡便等特點。廣泛應用于地面車輛跟蹤和城市智能交通管理方面。隨著人們對運輸載體的監(jiān)控、跟蹤以及智能化管理要求的提高,GPS在中國已經進入爆發(fā)性發(fā)展階段,蘊藏著巨大的發(fā)展空間。
所以基于GPS的車輛行駛信息記錄系統(tǒng)的設計有著很大的經濟、社會效益。


    論
基于GPS的車輛行駛信息記錄系統(tǒng)的設計本次到此,就暫告一段落了。雖然系統(tǒng)還不是很完善,比如在存儲數(shù)據(jù)時有丟失數(shù)據(jù)的問題,但調試結果基本完成了任務書所要求的各項功能和技術指標。
通過本次設計研究,本文所做的工作及研究結果如下所示:
1 介紹了GPS系統(tǒng)以及GPS接收機的工作原理;
2 提供了以MSP430單片機為核心處理器、SD卡讀寫模塊為主要部件的系統(tǒng)硬件電路設計;
3 提供了系統(tǒng)的軟件設計;
4 完成了系統(tǒng)的調試。
通過半年的畢業(yè)設計,過程雖然辛苦,但收獲頗豐。在完成畢業(yè)設計的過程中,學到了許多課堂上老師們沒有教授過知識。這些知識不是從書本上就能學到的,是自己在實際設計和操作中不斷的總結得出,對日后的工作具有很大的用處。從一開始的查閱資料、理論分析、電路設計,再到后來的調試和硬件測試過程,這一切要求將所學過的理論知識和實踐結合起來,加強了的理論分析能力和實踐動手能力。
原理圖設計、軟硬件調試的過程,要求我擁有細心和耐心。有時候系統(tǒng)存在一些小問題,但就是這些小問題而導致系統(tǒng)無法達到設計的目的甚至所有的設計毀于一旦,而這些小問題往往可能就是在原理圖設計時一條導線連接錯誤;在程序設計時,一條語句編寫錯誤而引起的。所以設計系統(tǒng)的過程要求我們應該擁有很大的耐心去不斷的調試和改正。
善于自學、認真學習、耐心體會、細心總結,這些優(yōu)點不僅僅可以用于學習這門學科中,還能使我們在畢業(yè)后的工作生活獲益匪淺。這半年的畢業(yè)設計時間,讓我學到很多,也成長了很多,相信在電子設計這條道路上,我會越走越遠。

    謝
歲月如梭,回首四年的大學生活,百感交集。所有的經歷,無論成敗喜憂,都會成為我面對未來生活的財富儲備。
在此,謹向所有老師四年來的諄諄教誨,致以最誠摯的謝意!
李玉峰院長在大學伊始,耐心指導,將我領進了電子學的大門。李軒副教授激情洋溢的授課,將精彩豐呈的電子學世界展現(xiàn)給我。高建平教授慈祥親切、于春和副教授風趣幽默,兩位老師讓我更全面地了解電子學的歷史和現(xiàn)狀。張述杰教授獨特的視野,讓我明白做人要有自己的特點。
石建民老師的和藹可親,在電子實訓過程中對我們的支持與關注;曲樂樂老師對課堂的投入、對學生的關注;孫琦老師親切又不失嚴謹;江秀紅老師課堂的輕松氛圍;常立東老師的嚴謹執(zhí)教……這一切,都將是我人生路上,學習的榜樣!
畢業(yè)設計從最初選題到開題答辯,直至后期硬件調試過程中,得到了指導老師王爾申副教授的鼎力支持與指導,在此致以誠摯的謝意!對實驗室徐嵩等各位老師的支持與幫助,致以誠摯的謝意!向杜剛剛、寧剛剛、劉通等同學的熱情幫助,致以誠摯的謝意!
充實的過程,讓我在各方面得到鍛煉,獲得成長。能夠走到今天,離不開老師同學們的幫助、親人朋友們的支持!感激之心拳拳,然而文字單薄,僅能承載萬一!




參考文獻
[1] 張毅剛,劉杰. 單片機原理及應用[M].哈爾濱工業(yè)大學出版社. 2004 : 219-226
[2] 周荷琴,吳秀清.微型計算機原理與接口技術[M].中國科學技術大學出版社.2008
[3] 劉建清. 從零開始學單片機技術[M].國防工業(yè)出版社. 2006 : 249-257
[4] 楊恢先,黃輝先 .單片機原理及應用[M]. 人民郵電出版社. 2006: 146-149
[5] 張鑫. 單片機原理及應用[M].電子工業(yè)出版社. 2005 : 14-22
[6] 何宏. 單片機原理與接口技術[M].國防工業(yè)出版社. 2006 : 256-262
[7] 潘永雄. 新編單片機原理與應用[M].電子科技大學出版社.2003: 54-63
[8] 雷思孝. 單片機系統(tǒng)設計及工程應用[M].西安電子科技大學出版社.2005:156-168
[9] 龍威山. 單片機應用入門[M].北京大學出版社.2008: 16-28
[10] 張桂紅. 單片機原理與應用[M].福建科學技術出版社.2007:150-157
[11] 張守信編著.GPS技術與應用[M].北京:國防工業(yè)出版社,2004.
[12] 王爾申.GPS接收機及其應用的關鍵技術研究[D].大連海事大學博士論文,2009.
[13] 王愛兵.GPS測時的接收機自主完好性監(jiān)測算法[D].解放軍信息工程大學碩士生論文,2007.
[14] 張怡群. GPS在精準農業(yè)應用中定位精度的實驗研究[C]. 中國農業(yè)工程學會學術年論文集,2005.
[15] 徐進. GPS接收機的單片機通訊接口[J]. 電子器件,2006.
[16] GPS接收機的應用于研究[N].科技創(chuàng)新導報,2009.
[17] 王密.車載GPS導航系統(tǒng)中GPS定位與道路匹配方法研究[N].武漢測繪科技大學學報,2000.
[18] 陳曦紅.GSU-14 GPS接收板與單片機的接口及信息提取的程序設計[N].福建農業(yè)大學學報,2000.
[19] 郭瑞.導航系統(tǒng)接收機自主完好性監(jiān)測研究[D]. 鄭州:信息工程大學,2006.
[20] 王爾申,張淑芳,胡青.  基于 MCMC 粒子濾波的 GPS 接收機自主完好性監(jiān)測算法研究[J].  儀器儀表學報, 2009, 30(10):2208-2212.
[21] 秦龍.MSP430單片機應用系統(tǒng)開發(fā)典型實例[M].中國電力出版社,2005.
[22] 趙建,謝楷等.MSP430系列十六位超低功耗單片機教程[M].西安電子科技大學測控工程與儀器系,2006年5月.
[23]  Jimmy.GPS ReceiverModule GP62030-PCT[J].GP62030-ACI Datasheet.2005.
[24]  GARMINcorporation.GPS25LP Serics Technical Specification,2004.
[25]  Abel JS.Uniqueness on GPS Soiunons,2005.
[26]  IgorNikiforov.Statistical analysis of different RAIM schemes of ION GPS,2002.


附錄Ⅰ 電路原理圖
file:///C:\Users\ZX\AppData\OICE_15_974FA576_32C1D314_319\msohtmlclip1\01\clip_image046.gif
附錄Ⅱ 程序清單
#include<msp430x14x.h>
#include"stdio.h"
#include"string.h"
#include"usart1.h"
#define SYS0x01
#define Cre0x02
#defineOpen 0x06
#define Wri0x05
#define Sav0x04
#defineBUSY_SD (P4IN&BIT1)== BIT1
voidSYS_R();//讀取系統(tǒng)狀態(tài)
voidsave_file();//保存文件
//向SD卡發(fā)送數(shù)據(jù)
voidSto_SD_cmd(unsigned char command/*命令字*/,unsigned int number/*數(shù)據(jù)長度*/,unsignedchar *date/*待發(fā)送數(shù)據(jù)*/);
voidSto_SD_data(unsigned char command/*命令字*/,unsigned int number/*數(shù)據(jù)長度*/,unsignedlong int addr/*4個字節(jié)的地址*/,unsignedchar *date/*待發(fā)送數(shù)據(jù)*/);
voidSetup_uart1();
ucharFileName[]={"11112222.txt"}; //要建立的文件名
constuchar SYS_state[6]={0x55,0xAA,0x01,0x00,0x00,0x01};//獲取系統(tǒng)狀態(tài)
constuchar  Cre_files[19]={0x55,0xAA,0x02,0x0D,0x00,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x2E,0x74,0x78,0x74,0x00,0x41};
constuchar Open_files[19]={0x55,0xAA,0x06,0x0D,0x00,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x2E,0x74,0x78,0x74,0x00,0x45};
constuchar  Wri_file[19]={0x55,0xAA,0x05,0x0D,0x00,0x00,0x00,0x00,0x00,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0xef,};
constuchar Sav_files[6]={0x55,0xAA,0x04,0x00,0x00,0x04};
uchar  Temp_data[50]={0};
ucharDATE_SEND[] = {"09-08-07 25 55 878"};
voiddelay(unsigned long int j)
{
  unsigned long int i ;
  for(i=0;i<j;i++);
}
//*************************************************************************
//                    系統(tǒng)時鐘初始化
//*************************************************************************
/*voidClock_Init()
{
  uchar i;
  BCSCTL1&=~XT2OFF;                 //打開XT振蕩器
  BCSCTL2|=SELM1+SELS;              //MCLK為8MHZ,SMCLK為8MHZ
  do{
    IFG1&=~OFIFG;                   //清除震蕩標志
    for(i=0;i<100;i++)
    _NOP();                      //延時等待
  }
  while((IFG1&OFIFG)!=0);           //如果標志為1,則繼續(xù)循環(huán)等待
  IFG1&=~OFIFG;
}*/
voidmain(void)
{
  //Clock_Init();
  uint num=0;
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  P4DIR &=~ BIT1;
  P4SEL &=~ BIT1+BIT0;
  P4DIR |= BIT0;   
  P4OUT |= BIT0;
  P2SEL = 0x00;     //P2普通I/O
  P2DIR = 0xFF;     //P2輸出
  delay(32768); //預熱1S
  delay(32768); //預熱1S
  delay(32768); //預熱1S
  //Setup_uart0();
  UART0_Init();
  Setup_uart1();
  _EINT();
  while(1)
  {
  //①獲取系統(tǒng)狀態(tài)       ⑥⑦⑧⑨
//----------------------------------------------------------------------------
  SYS_R();//讀取系統(tǒng)狀態(tài)
  while(BUSY_SD);
  //②創(chuàng)建文件
//----------------------------------------------------------------------------
  //memcpy(Temp_data,Cre_files,19);
  //uart_0(19,Temp_data);
  Sto_SD_cmd(Cre,12,FileName);
  //while(BUSY_SD);
  //delay(8000);
  //③打開文件
//----------------------------------------------------------------------------
  //memcpy(Temp_data,Open_files,19);
  //uart_0(19,Temp_data);
  Sto_SD_cmd(Open,12,FileName);
  //while(BUSY_SD);
  //④寫入文件
    //----------------------------------------------------------------------------
    //memcpy(Temp_data,Wri_file,19);
    //uart_0(19,Temp_data);
   for(num=0;num<10;num++)
   {
    P2OUT=0x00;
    end_rec=1;
    while(end_rec);
    delay(32768);
    Sto_SD_data(Wri,67,0xffffffff,Gps_Data);
    //while(BUSY_SD);
    while(BUSY_SD);
    P2OUT=0xFF;
    delay(32768);
   }
  //delay(8000);
  //⑤保存文件
//----------------------------------------------------------------------------
  save_file();//保存文件
  while(BUSY_SD);
  for (;;)
  {
    delay(65535);
    P1OUT ^= BIT0;
  }
  }
}
voidSetup_uart1()
{
  P3SEL |= 0xf0;                            // P3.6,7 = USART1TXD/RXD
  ME2 |= UTXE1 + URXE1;                     // Enable USART1 TXD/RXD
  UCTL1 |= CHAR;                            // 8-bit character
  UTCTL1 |= SSEL0;                          // UCLK = ACLK
  UBR01 = 0x03;                             // 32k/9600 - 3.41
  UBR11 = 0x00;                             //
  UMCTL1 = 0x4A;                            // Modulation
  //U1BR1=0x03;                //輔助軟件計算波特率
  //U1BR0=0x41;              
  //U1MCTL=0x00;               //波特率9600bps
  UCTL1 &= ~SWRST;                          // Initialize USARTstate machine
  //IE2 |= URXIE1;                            // Enable USART1 RXinterrupt
}
voiduart_1(int wei,unsigned char *date)
{
   int i=0;
   while(i<wei)
   {
      while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
      TXBUF1 = date[ i];
      //delay(100);
      i++;
   }
}
#pragmavector=UART1RX_VECTOR
__interruptvoid usart1_rx (void)
{
  //while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
  //P2OUT = RXBUF1;                          // RXBUF1 to TXBUF1
}

//向SD卡發(fā)送命令
voidSto_SD_cmd(unsigned char command/*命令字*/,unsigned int number/*數(shù)據(jù)長度*/,unsignedchar *date/*待發(fā)送數(shù)據(jù)*/)
{
  unsigned int i=0;
  unsigned char CRC=0;
  //發(fā)送報文頭 55 aa
  while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
  TXBUF1 = 0x55;
  while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
  TXBUF1 = 0xaa;
  //發(fā)送命令字
  while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
  TXBUF1 = command;
  CRC += command;
  //發(fā)送數(shù)據(jù)長度
  while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
  TXBUF1 = number%256;
  CRC += (number%256);
  while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
  TXBUF1 = number/256;
  CRC += (number/256);
  i=0;
  //發(fā)送數(shù)據(jù)--串口0
  while(i<number)
  {
     while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
     TXBUF1 = date[ i];
     CRC += date[ i];
     delay(150);
     i++;
  }
  //發(fā)送校驗和
  while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
  TXBUF1 = CRC;
}
//向SD卡發(fā)送數(shù)據(jù)
voidSto_SD_data(unsigned char command/*命令字*/,unsigned int number/*數(shù)據(jù)長度*/,unsignedlong int addr/*4個字節(jié)的地址*/,unsignedchar *date/*待發(fā)送數(shù)據(jù)*/)
{
  unsigned int i=0;
  unsigned char CRC=0;
  //發(fā)送報文頭 55 aa
  while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
  TXBUF1 = 0x55;
  while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
  TXBUF1 = 0xaa;
  //發(fā)送命令字
  while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
  TXBUF1 = command;
  CRC += command;
  //發(fā)送數(shù)據(jù)長度
  while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
  TXBUF1 = number%256;
  CRC += (number%256);
  while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
  TXBUF1 = number/256;
  CRC += (number/256);
  //發(fā)送地址
  while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
  TXBUF1 = addr%256;
  CRC += (addr%256);
  while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
  TXBUF1 = (addr/256)%256;
  CRC += (addr/256)%256;
  while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
  TXBUF1 = ((addr/256)/256)%256;
  CRC += ((addr/256)/256)%256;
  while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
  TXBUF1 = ((addr/256)/256)/256;
  CRC += ((addr/256)/256)/256;
  i=0;
  //發(fā)送數(shù)據(jù)--串口0
  while(i<number-4)
  {
     while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
     TXBUF1 = date[ i];
     CRC += date[ i];
     delay(100);
     i++;
  }
  //發(fā)送校驗和
  while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
  TXBUF1 = CRC;
}
voidSYS_R()//讀取系統(tǒng)狀態(tài)
{
  memcpy(Temp_data,SYS_state,6);
  uart_1(6,Temp_data);
}
voidsave_file()//保存文件
{
  memcpy(Temp_data,Sav_files,6);
  uart_1(6,Temp_data);
}

作者: 1113634577    時間: 2018-7-14 17:29
很好的論文設計資料,不過就是穩(wěn)壓采用7805的功耗大,不實用。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1