基于TI MSPM0G3507多功能GPS測速儀系統開(kāi)發(fā)設計
1 項目背景及構想
本文引用地址:http://dyxdggzs.com/article/202503/468220.htmGPS應用無(wú)處不在,比如汽車(chē)導航應用,應急救災,各種app 的LBS(基于位置的服務(wù)),給我們生活帶來(lái)各種便利??梢哉f(shuō),沒(méi)有GPS,我們寸步難行,尤其是目前很火的自動(dòng)駕駛。結合自己工作主要也是和車(chē)聯(lián)網(wǎng)V2X 相關(guān),但是對GPS 的了解也只百度百科的認識程度,一直想做一個(gè)小東西,來(lái)進(jìn)一步了解GPS 模塊的相關(guān)特點(diǎn)。另外在有時(shí)候騎共享單車(chē)時(shí)候,總會(huì )聽(tīng)到有語(yǔ)音提示,想到如果自己實(shí)現的話(huà),可以采用什么樣的方案呢?
所以就有了這個(gè)項目的構想,即要結合GPS,又要有語(yǔ)音模塊,主要結合這兩方面來(lái)構想產(chǎn)品的功能。
主要解決的問(wèn)題是:通過(guò)解析GPS 數據,獲取速度,及低成本的語(yǔ)音提示功能的實(shí)現。
項目的亮點(diǎn):TI 芯片低成本的語(yǔ)音提示功能的實(shí)現。
2 實(shí)現的主要功能
這個(gè)項目利用GPS 模塊開(kāi)發(fā)一款多功能測速儀,主要實(shí)現以下功能:
(1)按鍵切換室內模式和戶(hù)外模式
(2)戶(hù)外模式使用GPS 同步時(shí)間
(3)使用GPS 模塊輸出的經(jīng)緯度等信息計算速度
(4)使用地磁傳感器通過(guò)LCD顯示電子羅盤(pán)方向角
(5)室內模式實(shí)現時(shí)鐘和定時(shí)器功能
(6)使用喇叭播放自定義報警音
3 系統架構圖和流程圖
流程圖:
4 硬件選型
MCU
LP-MSPM0G3507 LaunchPad? 開(kāi)發(fā)套件是基于MSPM0G3507 的易用型評估模塊(EVM),具有128 KB閃存、32 KB SRAM、2 個(gè)12 位4 Msps ADC、DAC、3 個(gè)COMP、3 個(gè)運算放大器、CAN-FD、MATHACL 的80MHz Arm M0 + MCU。
該板包含三個(gè)按鈕、兩個(gè)LED(其中一個(gè)是RGBLED)以及模擬溫度傳感器和光傳感器,還有一個(gè)外部緩沖器,用于顯示4 MSPS 時(shí)的高速ADC 性能。
特性
外部環(huán)境光傳感器
RGB 顯示PWM 控制
用于顯示4 MHz 高速ADC 的外部緩沖器
外部溫度傳感器
一個(gè)詞形容:就是精美!
GPS 模塊
GPS 北斗雙模導航定位模塊ATGM336HATGM336H-5N 系列模塊是9.7×10.1 尺寸的高性能BDS/GNSS 全星座定位導航模塊系列的總稱(chēng),該系列模塊都是基于中科微第四代采用完全自主知識產(chǎn)權的低功耗GNSS SOC 芯片一AT6558,支持多種衛星導航系統,包括中國的BDS(北斗衛星導航系統),美國的GPS,俄羅斯的GLONASS,歐盟的GALILEO, 日本的QZSS 以及衛星增強系統SBAS(WAAS, EGNOS,GAGANMSAS)。ATGM336H 是一款真正意義的六合一多模衛星導航模塊,包含32 個(gè)跟蹤通道可以同時(shí)接收六個(gè)衛星導航系統的GNSS 信號,并且實(shí)現聯(lián)合定位、導航與授時(shí)。具有高靈敏度、低功耗、低成本等優(yōu)勢,適用于車(chē)載定位與導航和手持或可穿藏設備,可以直接替換U-bloxMAX 系列模塊。
LCD
矽創(chuàng )電子Sitronix TFT(Thin Film Transistor)即薄膜場(chǎng)效應晶體管屬于有源矩陣液晶顯示器中的一種。TFT 液晶顯示屏的特點(diǎn)是亮度好、對比度高、層次感強、顏色鮮艷,但也存在著(zhù)比較耗電和成本較高的不足SPI 接口。
地磁傳感器
HMC5883L 是一款高集成的弱磁傳感器芯片,帶有能使羅盤(pán)精度控制在 1° ~ 2°的模數轉換器。其靈敏度較高,開(kāi)發(fā)難度不高。
喇叭
5 硬件資源占用及引腳分配
6 整體硬件連接圖
7 軟件模塊開(kāi)發(fā)
LCD模塊
ST7735S LCD模塊使用的是SPI驅動(dòng),主要通過(guò)選擇命令引腳還是數據引腳,來(lái)進(jìn)行控制電以后初始化進(jìn)行屏幕相關(guān)的配置,顯示字符數字就是在指定的位置進(jìn)行填充來(lái)實(shí)現。
軟件配置:
軟件處理
最核心的就是畫(huà)點(diǎn),這里為什么寫(xiě)入是16 位的數據?涉及到顏色的編碼,像素。RGB 565 16 bit/Pixel 。主要注意的地方:時(shí)序??梢酝ㄟ^(guò)邏輯分析儀查看發(fā)送的數據的時(shí)序。
LCD實(shí)測效果:
GPS模塊
主要功能:
MCU主通過(guò)串口中斷接收GPS 模塊發(fā)過(guò)來(lái)的NMEA協(xié)議數據,進(jìn)行解析,獲取經(jīng)緯度及速度數據,時(shí)間數據。波特率為9600。
NMEA協(xié)議簡(jiǎn)介
NMEA協(xié)議是為了在不同的GPS(全球定位系統)導航設備中建立統一的BTCM(海事無(wú)線(xiàn)電技術(shù)委員會(huì ))標準,由美國國家海洋電子協(xié)會(huì )(NMEA-The National Marine Electronics Associa-tion)制定的一套通訊協(xié)議。GPS接收機根據NMEA-0183 協(xié)議的標準規范,將位置、速度等信息通過(guò)串口傳送到PC 機、PDA等設備。
NMEA-0183協(xié)議是GPS接收機應當遵守的標準協(xié)議,也是目前GPS 接收機上使用最廣泛的協(xié)議,大多數常見(jiàn)的GPS接收機、GPS數據處理軟件、導航軟件都遵守或者至少兼容這個(gè)協(xié)議。
NMEA-0183協(xié)議定義的語(yǔ)句非常多,但是常用的或者說(shuō)兼容性最廣的語(yǔ)句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL 等。
Global Positioning System Fix Data(GGA):GPS 定位信息
GPS DOP and Active Satellites(GSA):當前衛星信息
GPS Satellites in View(GSV):可見(jiàn)衛星信息
Recommended Minimum Specific GPS/TRANSITData(RMC):推薦定位信息
下面給出這些常用NMEA-0183 語(yǔ)句的字段定義解釋。
數據格式如下:
$GPRMC,014600.00,A,2237.496474,N,11356.089515,
E,0.0,225.5,310518,2.3,W,A*23
field 0:$GPRMC,格式ID,表示該格式為建議的最低特定GPS/TRANSIT 數據(RMC)推薦最低定位信息
field 1:UTC 時(shí)間,格式hhmmss.ssss,代表時(shí)分秒. 毫秒
field 2:狀態(tài)A:代表定位成功 V:代表定位失敗
field 3:緯度ddmm.mmmmmm 度格式(如果前導位數不足,則用0填充)
field 4:緯度N(北緯) S(南緯)
field 5:經(jīng)度dddmm.mmmmmm 度格式(如果前導位數不足,則用0填充)
field 6:經(jīng)度E(東經(jīng)) W(西經(jīng))
field 7:速度(也為1.852 km / h)
field 8:方位角,度(二維方向,等效于二維羅盤(pán))
field 9:UTC 日期DDMMYY 天月年
field 10:磁偏角(000 -180)度,如果前導位數不足,則用0 填充)
field 11:磁偏角方向E = 東 W = 西
field 12: 模式,A = 自動(dòng),D = 差分,E = 估計,
AND = 無(wú)效數據(3.0 協(xié)議內容)
fi eld 13:校驗和
UART軟件配置
軟件處理
主要是在中斷中處理識別關(guān)鍵字符, 然后進(jìn)行字符串,解析處理。
GPS實(shí)測效果
地磁模塊
地磁傳感器HMC5883L通過(guò)I2C接口訪(fǎng)問(wèn),初始化通過(guò)配置寄存器,然后讀取X Y Z,三個(gè)坐標軸,進(jìn)行后續的換算顯示。
I2C時(shí)序
軟件配置:
注:配置速率100 KHz
軟件處理:
注:主要是讀6個(gè)寄存器數據,而提供的api非常簡(jiǎn)單易用
地磁傳感器實(shí)測效果
語(yǔ)音模塊
一般地,用蜂鳴器滴滴兩聲就達到效果,這里我們要實(shí)現自定義語(yǔ)音播放,所以用到DAC 模塊。
原理是:將準備的wav 語(yǔ)音數據,使用GoldWave語(yǔ)音剪輯軟件將數據盡量壓縮成單聲道采樣率8 K,8 bit 數據,這樣可以保證1 s 音頻數據占用8 K 存儲空間,以節省空間。
關(guān)于播放,直接使用DAC,按8 K 的頻率讀取數據放到DAC 輸出就可以。
軟件配置
注:使能DMA,設置分辨率為8 位,采樣率為8 kSPS軟件處理
這里其實(shí)首先需要將WAV 格式的音頻數據,提取出來(lái)生成const 的數組,這樣就會(huì )存儲在fl ash,不占用ram 空間。這部分處理,采用python 做個(gè)小工具,方便后續可以直接方便使用。
直接使用DMA設置源數據地址,及目的地址DAC輸出。非常簡(jiǎn)單實(shí)現自定義音頻數據播放
8 總結
1.TI 芯片如何幫助我快速完成這個(gè)項目?
其實(shí)項目的功能總體并不復雜,遇到的第一個(gè)困難主要就是常用外設驅動(dòng)的再熟悉,項目主要就是一些常用外設的使用,由于TI 的資料例子文檔很豐富,上手非常的快,方便快速驗證功能,而不是花費時(shí)間在熟悉芯片寄存器等芯片問(wèn)題上。沒(méi)有讓芯片成為項目的一個(gè)卡點(diǎn)一個(gè)問(wèn)題點(diǎn),一句話(huà),就是沒(méi)有在芯片上踩坑,節省了時(shí)間。
尤其是syscfg 驅動(dòng)配置工具的使用,就是一個(gè)神器,只要配置好相關(guān)功能,就再也不發(fā)愁驅動(dòng)的編寫(xiě)和測試,極大方便應用程序的開(kāi)發(fā)。
還有一個(gè)困難就是語(yǔ)音模塊實(shí)現方案,原來(lái)只是有個(gè)思考,但具體實(shí)現一直不成功,喇叭一直沒(méi)有聲音,在這里,幫助最大的是TI 文檔中心里面的一篇:《基于MSPM0 的醫用警報設計》,參考這個(gè)然后實(shí)現了低成本語(yǔ)音模塊。
2.對新手建議
新手入門(mén)TI M0 芯片最快的方式還是跑官方提供的例子,使用配套IDE,Code ComposerStudio 熟悉配置,申請使用官方的評估版來(lái)快速入門(mén)外設驅動(dòng)。
還有就是加入官方的微信群有問(wèn)題及時(shí)和網(wǎng)友交流,會(huì )有TI 的FAE 及熱心網(wǎng)友出謀劃策,方便問(wèn)題的解決。
(本文來(lái)源于《EEPW》202503)
評論