唐彬,楊會玲
(1.昆山市工業(yè)技術(shù)研究院,江蘇蘇州215347;2.蘇州科技學(xué)院光電信息技術(shù)研究所,江蘇蘇州215011)
基于STM32的車載定位記錄系統(tǒng)設(shè)計
唐彬1,楊會玲2
(1.昆山市工業(yè)技術(shù)研究院,江蘇蘇州215347;2.蘇州科技學(xué)院光電信息技術(shù)研究所,江蘇蘇州215011)
通過對北斗/GPS雙模、SD卡數(shù)據(jù)存儲、TFT-LCD液晶顯示等技術(shù)的研究,提出一種基于微控芯片STM32車載定位記錄的研究方案。除了給出系統(tǒng)各個模塊的硬件設(shè)計方案之外,還介紹了軟件的流程圖設(shè)計,從而實(shí)現(xiàn)對北斗/GPS雙模數(shù)據(jù)的提取、顯示及存儲。實(shí)驗(yàn)表明:系統(tǒng)的每個模塊在上電后都可以進(jìn)行正常的工作,可廣泛的運(yùn)用于汽車安全領(lǐng)域。
STM32;北斗/GPS;SD卡;車載定位
作為使用數(shù)量最多、范圍最廣泛的現(xiàn)代化交通工具,汽車的出現(xiàn)使得國家的經(jīng)濟(jì)得到了迅猛的發(fā)展,人們的生活質(zhì)量也得到了快速的提高??墒瞧嚁?shù)量的猛增除了導(dǎo)致交通的擁擠之外更多的是交通事故的頻繁發(fā)生,而大多數(shù)交通事故因?yàn)樾旭傆涗浀葐栴}造成責(zé)任的無法確定,因此急需一種記錄機(jī)動車行駛定位的智能裝置[1-2]。作為正在組建并可局部運(yùn)行的全球定位系統(tǒng),北斗的出現(xiàn)為車載定位領(lǐng)域注入了新的活力。正是源于眾多技術(shù)的發(fā)展,本文設(shè)計了一套基于北斗/GPS雙模技術(shù)的車載定位記錄系統(tǒng),在精確定位車輛行駛位置及速度的同時將數(shù)據(jù)進(jìn)行存儲與顯示,對駕駛員起到一定的約束與監(jiān)督作用。
作為意法公司研發(fā)的一款處理能力強(qiáng)、運(yùn)行速度快、功耗低的單片機(jī),STM32F103VCT6集成了ARM先進(jìn)架構(gòu)的Cortex-M3內(nèi)核,擁有80個可用的IO管腳,12個通道的DMA控制器以及定時計數(shù)等外設(shè)功能,被廣泛的運(yùn)用于汽車定位、無線采集、手持終端等領(lǐng)域。文中所設(shè)計的車載定位記錄系統(tǒng)是通過衛(wèi)星接收機(jī)來獲取含有定位信息的碼流,通過單片機(jī)處理后將數(shù)據(jù)通過外圍電路進(jìn)行存儲與顯示,從而達(dá)到行駛記錄的要求[3]。整個系統(tǒng)主要由北斗/GPS雙模部分、液晶顯示部分及數(shù)據(jù)存儲部分組成,設(shè)計框圖如圖1所示。
圖1 系統(tǒng)整體框圖設(shè)計
1.1 北斗/GPS雙模授時系統(tǒng)硬件設(shè)計
UM220-III可自動提供時間,首次定位只有32 s,追蹤的靈敏度和訊號的獲取高達(dá)-160 dBm,即使在微弱訊號的情況下也能進(jìn)行工作。芯片還具有鎖定狀態(tài)功能,當(dāng)外部電源忽然斷掉時,如果此時VBAT引腳外接一個鈕扣電池,衛(wèi)星的當(dāng)前狀態(tài)就會被保存,下一次上電時即可快速鎖定,縮短了查找時間。芯片的秒脈沖精度小于20 ns,數(shù)據(jù)傳輸則采用波特率為9 600 bps的串行傳輸方式,接口電路原理圖設(shè)計如圖2所示[4]。
圖2 UM220-III接口電路原理圖
RF_IN是有源天線接收端口需接3.3 V電壓,電感L1、電容C17及C23都是為了防止干擾而起電源濾波作用。PPS是秒脈沖管腳,為系統(tǒng)提供標(biāo)準(zhǔn)的秒脈沖,串聯(lián)于端口的電阻R7用來限制環(huán)路電流。TXD1為發(fā)送管腳,輸出RMC碼流便于單片機(jī)接收。
1.2 SD卡硬件電路設(shè)計
SD卡也稱安全數(shù)字內(nèi)存卡,是一種安全、大容量、高性能的音/視頻存儲卡,通常具有SPI和SDIO兩種通信協(xié)議以供選擇。由于STM32F103帶有SDIO外設(shè)接口,所以采用SD卡的專用SDIO協(xié)議,與SPI相比,SDIO利用4根數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,具有更高的傳輸速率。在SDIO協(xié)議中,數(shù)據(jù)和命令信號分別傳輸于不同的信號線,這使得在一個系統(tǒng)中可以連接多個SD卡作從機(jī)使用,并且這些從機(jī)之間共用時鐘源與電源線,SD卡內(nèi)部結(jié)構(gòu)如圖3所示。結(jié)構(gòu)包括卡接口控制器(Card Interface Controller)、接口驅(qū)動、內(nèi)部寄存器組和Flash陣列,其中卡接口控制器負(fù)責(zé)控制整個SD卡工作,主要功能是用于解析指令和返回響應(yīng)。接口驅(qū)動主要用于提供SD卡和其他設(shè)備之間相連的硬件驅(qū)動,內(nèi)部寄存器用于存儲SD卡的基本信息[5]。
SD卡和MCU的連接非常簡單,其中6根信號線與STM32的SDIO口相連,外加1根電源線和1根地線。為了減少本設(shè)計軟件的開發(fā)難度,不使用SD卡的片選信號,需要注意的是信號線需要外加一個上拉電阻來確保低電平數(shù)據(jù)有效,硬件原理圖設(shè)計如圖4所示。
圖3 SD卡內(nèi)部功能結(jié)構(gòu)圖
圖4 SD卡的接口電路原理圖
1.3 TFT-LCD顯示電路設(shè)計
TFT-LCD是一款內(nèi)含薄膜晶體管的液晶顯示器,與無源的TN-LCD不同的是,其在屏幕的所有像素上都配備了一個晶體管,可以抑制非選通產(chǎn)生的串?dāng)_,從而大大的提升圖像的質(zhì)量[6]。本設(shè)計采用的顯示屏為同豐光華電子研發(fā)的分辨率為320×240的S95417-AAA,16位真彩顯示,利用ILI9320作為驅(qū)動,具有結(jié)構(gòu)緊湊、操作方便、價格便宜等優(yōu)點(diǎn),電路設(shè)計如圖5所示。
圖5 TFT-LCD模塊接口原理圖
由圖5可見,顯示模塊與外部連接的方式采用16位的并口,由于顯示的數(shù)據(jù)量較大且8位數(shù)據(jù)方式比16位慢一倍。對于管腳的信號線,片選信號CS與STM32的PC9相連,讀寫端口分別與PC6、PC7相連,16位的雙向數(shù)據(jù)線與PB[15∶0]相連,復(fù)位信號RST直接與STM32的復(fù)位端口相連,至于命令/數(shù)據(jù)標(biāo)志RS則與PC8相連。
在系統(tǒng)的軟件設(shè)計中,主要分為系統(tǒng)初始化、北斗/GPS雙模信號的接收與解析、車載定位信息的顯示及存儲四個部分,總體軟件框圖如圖6所示。系統(tǒng)上電后,先初始化內(nèi)部變量、端口配置、時鐘及模塊的功能函數(shù),然后利用串口中斷接收并處理雙模信號的碼流,將定位及時間等信息提取出來,最后再對庫函數(shù)的進(jìn)行調(diào)用從而將數(shù)據(jù)進(jìn)行顯示與存儲。
圖6 系統(tǒng)軟件框圖設(shè)計
2.1 北斗/GPS雙模信號處理模塊
雙模接收機(jī)所產(chǎn)生的$GPRMC和$GNRMC碼流是符合美國國家航海電子協(xié)會NMEA 0813標(biāo)準(zhǔn)的碼流,與其他形式的碼流相比,RMC碼流是包含北斗與GPS信息數(shù)據(jù)量最小的碼流,以$GXRMC開始,碼流中的status代表當(dāng)前GPS/BD衛(wèi)星信號狀態(tài),hhmmss和ddmmyy則分別表示當(dāng)前的時分秒和日月年,設(shè)計所需的信息是碼流中的UTC時間、當(dāng)前衛(wèi)星的定位狀態(tài)以及經(jīng)緯度。
$GPRMC/$GNRMC碼流都是采用標(biāo)準(zhǔn)的ASCII碼形式,因此在程序設(shè)計中不僅要提取出時間信息,還得將對應(yīng)的時間信息變換成BCD碼,圖7為碼流的接收流程圖,通過對$、G、P、R、M、C和“,”幾個起始信號的判斷來提取出后續(xù)的信息。
2.2 數(shù)據(jù)存儲及顯示模塊
系統(tǒng)上電時即對SD卡進(jìn)行初始化處理,成功后便對扇區(qū)0進(jìn)行讀寫操作,故對于數(shù)據(jù)存儲最重要的便是初始化操作。SD存儲卡在未上電前處于Inactive狀態(tài),一旦上電便進(jìn)入Idle狀態(tài),但通常情況下會傳遞指令CMD0進(jìn)行存儲卡的復(fù)位操作,這樣SD卡便不會接收任何數(shù)據(jù)。此時控制器需要傳遞一個查詢指令A(yù)CMD41來檢測OCR寄存器的最高位,由于從上電到進(jìn)入復(fù)位狀態(tài)這一期間SD卡至少需要74個時鐘周期,所以控制器需要通過ACMD41命令來循環(huán)查詢上電狀態(tài),直到OCR寄存器的最高位變成“1”表示上電完成,控制器從而停止發(fā)送ACMD41命令,SD卡進(jìn)入就緒(Ready)狀態(tài)。此時主機(jī)傳遞一個CMD2指令請求SD卡返回CID寄存器的值,一旦成功便進(jìn)入識別(Identification)狀態(tài),表明此時SD卡已在STM32主機(jī)中待命,最后STM32再傳遞CMD3來請求SD卡返回一個新的相對地址(RCA),從而完成對SD的初始操作,具體的流程框圖如圖8所示。
而對于LCD的顯示,在進(jìn)行系統(tǒng)的初始化過后主要就是在中斷函數(shù)中通過庫函數(shù)的調(diào)用進(jìn)行數(shù)據(jù)的顯示,具體設(shè)計如圖8所示。
圖7 碼流的接收流程圖
圖8 SD卡初始化框圖(a)和LCD顯示框圖(b)
2.3 實(shí)驗(yàn)結(jié)果測試
軟硬件設(shè)計完成后,將編寫的代碼燒入STM32,所得到的液晶顯示如圖9所示,當(dāng)前接收的數(shù)據(jù)是GPS數(shù)據(jù),所顯示的有當(dāng)前的時間信息和經(jīng)緯度信息,并且這些數(shù)據(jù)都已經(jīng)存儲到了SD卡中。
圖9 數(shù)據(jù)顯示
文中介紹了一種利用STM32作為微控制器進(jìn)行車載定位記錄系統(tǒng)研究的設(shè)計方法,在對系統(tǒng)每個模塊的原理仔細(xì)研究后進(jìn)行硬件的電路設(shè)計與軟件的程序編寫,并最終完成整個系統(tǒng)的設(shè)計,通過調(diào)試基本達(dá)到了數(shù)據(jù)采集、實(shí)時存儲及顯示的設(shè)計要求。隨著我國汽車工業(yè)的迅速發(fā)展,車載定位記錄儀也必將被廣泛運(yùn)用。
[1]翟羽佳.多功能汽車行駛記錄儀的設(shè)計與實(shí)現(xiàn)[D].湖南湘潭:湖南科技大學(xué),2012.
[2]徐揚(yáng),張保平,沈慶宏.汽車行駛記錄儀無線數(shù)據(jù)監(jiān)測系統(tǒng)設(shè)計[J].電子測量技術(shù),2012,35(12):112-115.
[3]曲麗娜.基于STM32的嵌入式GPRS網(wǎng)絡(luò)遠(yuǎn)程數(shù)據(jù)采集控制系統(tǒng)設(shè)計[J].煤炭技術(shù),2013,32(8):199-201.
[4]楊玉婷.GPS/北斗授時系統(tǒng)軟件的設(shè)計與實(shí)現(xiàn)[D].重慶:重慶大學(xué),2013.
[5]顏秋男,胡毅.STM32F103VB的SD卡在應(yīng)用編程設(shè)計[J].單片機(jī)與嵌入式系統(tǒng),2013,12(2):29-31.
[6]劉軍.例說STM32[M].北京:北京航空航天大學(xué)出版社,2011.
Design of vehicle location and recording system based on STM32
TANG Bin1,YANG Huiling2
(1.Kunshan Industrial Technology Research Institute,Suzhou 215347,China;2.Opto-Electronic Information Technology Institute,SUST,Suzhou 215011,China)
Through the research on technologies such as BD/GPS dual-mode,data storage of the SD card and TFT-LCD liquid crystal display,this paper puts forward a research program of vehicle location and recording system design based on STM32.In addition to the hardware circuit design of each module of the system,the paper also describes the flow chart design of the software,which realizes the extraction,display and data storage of BD/GPS dual-mode.The experiment shows that each part of the system can work normally after powering up, and the system can be widely used in the field of vehicle safety.
STM32;BD/GPS dual-mode;SD card;vehicle location
TN962
B
1672-0679(2015)01-0077-04
(責(zé)任編輯:盧文君)
2014-07-14
唐彬(1989-),男,江蘇鹽城人,碩士,從事智能信息處理的研究。