新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于TI MSPM0G3507多功能GPS測速儀系統開發設計

        基于TI MSPM0G3507多功能GPS測速儀系統開發設計

        作者:樊曉杰 時間:2025-03-17 來源:EEPW 收藏

        1   項目背景及構想

        本文引用地址:http://www.104case.com/article/202503/468220.htm

        應用無處不在,比如汽車導航應用,應急救災,各種app 的LBS(基于位置的服務),給我們生活帶來各種便利。可以說,沒有,我們寸步難行,尤其是目前很火的自動駕駛。結合自己工作主要也是和車聯網V2X 相關,但是對 的了解也只百度百科的認識程度,一直想做一個小東西,來進一步了解GPS 模塊的相關特點。另外在有時候騎共享單車時候,總會聽到有語音提示,想到如果自己實現的話,可以采用什么樣的方案呢?

        所以就有了這個項目的構想,即要結合GPS,又要有語音模塊,主要結合這兩方面來構想產品的功能。

        主要解決的問題是:通過解析GPS 數據,獲取速度,及低成本的語音提示功能的實現。

        項目的亮點:TI 芯片低成本的語音提示功能的實現。

        2   實現的主要功能

        這個項目利用GPS 模塊開發一款多功能,主要實現以下功能:

        (1)按鍵切換室內模式和戶外模式

        (2)戶外模式使用GPS 同步時間

        (3)使用GPS 模塊輸出的經緯度等信息計算速度

        (4)使用地磁傳感器通過LCD顯示電子羅盤方向角

        (5)室內模式實現時鐘和定時器功能

        (6)使用喇叭播放自定義報警音

        3   系統架構圖和流程圖

        image.png

        流程圖:

        1742211141807604.png

        4   硬件選型

        MCU

        LP-G3507 LaunchPad? 開發套件是基于G3507 的易用型評估模塊(EVM),具有128 KB閃存、32 KB SRAM、2 個12 位4 Msps ADC、DAC、3 個COMP、3 個運算放大器、CAN-FD、MATHACL 的80MHz Arm M0 + MCU。

        該板包含三個按鈕、兩個LED(其中一個是RGBLED)以及模擬溫度傳感器和光傳感器,還有一個外部緩沖器,用于顯示4 MSPS 時的高速ADC 性能。

        1742211215860294.png

        特性

        外部環境光傳感器

        RGB 顯示PWM 控制

        用于顯示4 MHz 高速ADC 的外部緩沖器

        外部溫度傳感器

        一個詞形容:就是精美!

        GPS 模塊

        GPS 北斗雙模導航定位模塊ATGM336HATGM336H-5N 系列模塊是9.7×10.1 尺寸的高性能BDS/GNSS 全星座定位導航模塊系列的總稱,該系列模塊都是基于中科微第四代采用完全自主知識產權的低功耗GNSS SOC 芯片一AT6558,支持多種衛星導航系統,包括中國的BDS(北斗衛星導航系統),美國的GPS,俄羅斯的GLONASS,歐盟的GALILEO, 日本的QZSS 以及衛星增強系統SBAS(WAAS, EGNOS,GAGANMSAS)。ATGM336H 是一款真正意義的六合一多模衛星導航模塊,包含32 個跟蹤通道可以同時接收六個衛星導航系統的GNSS 信號,并且實現聯合定位、導航與授時。具有高靈敏度、低功耗、低成本等優勢,適用于車載定位與導航和手持或可穿藏設備,可以直接替換U-bloxMAX 系列模塊。

        LCD

        矽創電子Sitronix TFT(Thin Film Transistor)即薄膜場效應晶體管屬于有源矩陣液晶顯示器中的一種。TFT 液晶顯示屏的特點是亮度好、對比度高、層次感強、顏色鮮艷,但也存在著比較耗電和成本較高的不足SPI 接口。

        image.png

        地磁傳感器

        HMC5883L 是一款高集成的弱磁傳感器芯片,帶有能使羅盤精度控制在 1° ~ 2°的模數轉換器。其靈敏度較高,開發難度不高。

        image.png

        喇叭

        1742211307839074.png

        5   硬件資源占用及引腳分配

        1742211356483223.png

        6   整體硬件連接圖

        1742211399675382.png

        7   軟件模塊開發

        LCD模塊

        ST7735S LCD模塊使用的是SPI驅動,主要通過選擇命令引腳還是數據引腳,來進行控制電以后初始化進行屏幕相關的配置,顯示字符數字就是在指定的位置進行填充來實現。

        1742211450723535.png

        軟件配置:

        1742211476853353.png

        軟件處理

        最核心的就是畫點,這里為什么寫入是16 位的數據?涉及到顏色的編碼,像素。RGB 565 16 bit/Pixel 。主要注意的地方:時序。可以通過邏輯分析儀查看發送的數據的時序。

        image.png

        LCD實測效果:

        image.png

        GPS模塊

        主要功能:

        MCU主通過串口中斷接收GPS 模塊發過來的NMEA協議數據,進行解析,獲取經緯度及速度數據,時間數據。波特率為9600。

        NMEA協議簡介

        NMEA協議是為了在不同的GPS(全球定位系統)導航設備中建立統一的BTCM(海事無線電技術委員會)標準,由美國國家海洋電子協會(NMEA-The National Marine Electronics Associa-tion)制定的一套通訊協議。GPS接收機根據NMEA-0183 協議的標準規范,將位置、速度等信息通過串口傳送到PC 機、PDA等設備。

        NMEA-0183協議是GPS接收機應當遵守的標準協議,也是目前GPS 接收機上使用最廣泛的協議,大多數常見的GPS接收機、GPS數據處理軟件、導航軟件都遵守或者至少兼容這個協議。

        NMEA-0183協議定義的語句非常多,但是常用的或者說兼容性最廣的語句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL 等。

        Global Positioning System Fix Data(GGA):GPS 定位信息

        GPS DOP and Active Satellites(GSA):當前衛星信息

        GPS Satellites in View(GSV):可見衛星信息

        Recommended Minimum Specific GPS/TRANSITData(RMC):推薦定位信息

        下面給出這些常用NMEA-0183 語句的字段定義解釋。

        1742211846446836.png

        數據格式如下:

        $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 時間,格式hhmmss.ssss,代表時分秒. 毫秒

        field 2:狀態A:代表定位成功 V:代表定位失敗

        field 3:緯度ddmm.mmmmmm 度格式(如果前導位數不足,則用0填充)

        field 4:緯度N(北緯) S(南緯)

        field 5:經度dddmm.mmmmmm 度格式(如果前導位數不足,則用0填充)

        field 6:經度E(東經) W(西經)

        field 7:速度(也為1.852 km / h)

        field 8:方位角,度(二維方向,等效于二維羅盤)

        field 9:UTC 日期DDMMYY 天月年

        field 10:磁偏角(000 -180)度,如果前導位數不足,則用0 填充)

        field 11:磁偏角方向E = 東 W = 西

        field 12: 模式,A = 自動,D = 差分,E = 估計,

        AND = 無效數據(3.0 協議內容)

        fi eld 13:校驗和

        UART軟件配置

        1742211925238347.png

        軟件處理

        1742211949557883.png

        主要是在中斷中處理識別關鍵字符, 然后進行字符串,解析處理。

        GPS實測效果

        image.png

        地磁模塊

        地磁傳感器HMC5883L通過I2C接口訪問,初始化通過配置寄存器,然后讀取X Y Z,三個坐標軸,進行后續的換算顯示。

        1742212022826330.png

        I2C時序

        1742212229109275.jpg

        1742212251171122.png

        軟件配置:

        1742212287503484.png

        注:配置速率100 KHz

        軟件處理:

        1742212327221217.png

        注:主要是讀6個寄存器數據,而提供的api非常簡單易用

        地磁傳感器實測效果

        image.png

        語音模塊

        一般地,用蜂鳴器滴滴兩聲就達到效果,這里我們要實現自定義語音播放,所以用到DAC 模塊。

        原理是:將準備的wav 語音數據,使用GoldWave語音剪輯軟件將數據盡量壓縮成單聲道采樣率8 K,8 bit 數據,這樣可以保證1 s 音頻數據占用8 K 存儲空間,以節省空間。

        關于播放,直接使用DAC,按8 K 的頻率讀取數據放到DAC 輸出就可以。

        image.png

        軟件配置

        1742212606394815.png

        注:使能DMA,設置分辨率為8 位,采樣率為8 kSPS軟件處理

        這里其實首先需要將WAV 格式的音頻數據,提取出來生成const 的數組,這樣就會存儲在fl ash,不占用ram 空間。這部分處理,采用python 做個小工具,方便后續可以直接方便使用。

        image.png

        image.png

        1742212667381634.png

        直接使用DMA設置源數據地址,及目的地址DAC輸出。非常簡單實現自定義音頻數據播放

        8   總結

        1.TI 芯片如何幫助我快速完成這個項目?

        其實項目的功能總體并不復雜,遇到的第一個困難主要就是常用外設驅動的再熟悉,項目主要就是一些常用外設的使用,由于TI 的資料例子文檔很豐富,上手非常的快,方便快速驗證功能,而不是花費時間在熟悉芯片寄存器等芯片問題上。沒有讓芯片成為項目的一個卡點一個問題點,一句話,就是沒有在芯片上踩坑,節省了時間。

        尤其是syscfg 驅動配置工具的使用,就是一個神器,只要配置好相關功能,就再也不發愁驅動的編寫和測試,極大方便應用程序的開發。

        還有一個困難就是語音模塊實現方案,原來只是有個思考,但具體實現一直不成功,喇叭一直沒有聲音,在這里,幫助最大的是TI 文檔中心里面的一篇:《基于 的醫用警報設計》,參考這個然后實現了低成本語音模塊。

        2.對新手建議

        新手入門TI M0 芯片最快的方式還是跑官方提供的例子,使用配套IDE,Code ComposerStudio 熟悉配置,申請使用官方的評估版來快速入門外設驅動。

        還有就是加入官方的微信群有問題及時和網友交流,會有TI 的FAE 及熱心網友出謀劃策,方便問題的解決。

        (本文來源于《EEPW》



        關鍵詞: 202503 MSPM0 GPS 測速儀

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 酒泉市| 祁东县| 抚松县| 蓝山县| 邹城市| 芜湖县| 余庆县| 黎城县| 定襄县| 保靖县| 梁河县| 房山区| 哈尔滨市| 新密市| 淮阳县| 大余县| 宁阳县| 曲阜市| 阿鲁科尔沁旗| 泾阳县| 新郑市| 扬中市| 伊通| 萨迦县| 韶山市| 龙井市| 两当县| 泌阳县| 邮箱| 永顺县| 临夏县| 肥西县| 金阳县| 出国| 上饶市| 沅陵县| 水城县| 比如县| 镇原县| 贵德县| 西安市|