基于STM32的電子羅盤設(shè)計
掃描二維碼
隨時隨地手機(jī)看文章
引 言
GPS在導(dǎo)航定位、測速方面具有廣泛的應(yīng)用,但在高樓密集的城區(qū)和偏遠(yuǎn)地帶,GPS信號受到阻擋,信號精度降低, 因而GPS設(shè)備不能很好的將信號回饋到衛(wèi)星[1]。針對這一問題,可以采用電子羅盤和 GPS組成導(dǎo)航定向,電子羅盤可以對 GPS進(jìn)行有效的補(bǔ)償[2]。同時,隨著科技的發(fā)展,電子羅盤也可以安裝在汽車或者輪船上,當(dāng)駛?cè)氲叫盘栞^差的地方時,數(shù)字電子羅盤可以起到很大的作用。
本文以 HMC5883三軸數(shù)字羅盤傳感器為基礎(chǔ), 以STM32F103RET6單片機(jī)為微處理器,設(shè)計了一款數(shù)字電子羅盤。它功耗低,體積小,便于攜帶,而且精度高,在 GPS信號差的地方,可以起到一定的導(dǎo)航作用。
1 系統(tǒng)框圖
磁阻傳感器HMC5883 測量地球磁場矢量信息,加速度傳感器MPU6050 采集重力加速度分量,然后經(jīng)過AD 轉(zhuǎn)換器模擬量轉(zhuǎn)換為數(shù)字量,采用STM32F103RET6 單片機(jī)來完成傳感器數(shù)據(jù)采集,并進(jìn)行傳感器數(shù)據(jù)處理和誤差校正,最終得到位置信息并通過LCD 顯示結(jié)果。系統(tǒng)框圖如圖1 所示。
2 硬件電路設(shè)計
2.1 電源升壓電路
電源是電子羅盤系統(tǒng)正常工作的基礎(chǔ),電源的好壞直接影響電路工作的穩(wěn)定性,STM32F103RET6 單片機(jī)的工作電壓 都是 3.3 V,而電子羅盤系統(tǒng)使用1.2 V 鋰電池供電。本系統(tǒng)采 用 NCP1400ASN30T1G 升壓芯片,把 1.2 V 電壓提升到 3.3 V, 供給系統(tǒng)各部分作為電源。電源電路如圖 2 所示。

2.2 HMC5883 磁阻傳感器電路設(shè)計
HMC5883 磁阻傳感器接口電路如圖 3 所示。圖 3 中HMC5883 為數(shù)字接口雙軸磁阻傳感器,該傳感器內(nèi)置ASIC 放大器,12 位 A/D 轉(zhuǎn)換器,I2C 總線輸出[3]。R 、R為上拉電阻, DRDY 為數(shù)據(jù)準(zhǔn)備好中斷控制口,接控制器中斷輸入口。電容C1、C2 加上傳感器片上 ASIC 電路中的H- 電橋驅(qū)動電路可以產(chǎn)生電流脈沖,使片上的置位 / 復(fù)位電流帶產(chǎn)生磁場給傳感器去磁和極性翻轉(zhuǎn)[4]。
2.3 加速度傳感器接口電路
圖 4 所示的加速度傳感器采用MPU6050,該加速度傳感器采用三軸陀螺儀技術(shù),具有體積小、重量輕、結(jié)構(gòu)簡單、可靠性好等諸多優(yōu)勢 [5]。該加速度傳感器模塊以 MPU6050 為核心芯片,其對陀螺儀和加速度計使用了三個 16位的ADC 模數(shù)轉(zhuǎn)換,將采集到的模擬量轉(zhuǎn)化為單片機(jī)可使用的數(shù)字量 [6]。模塊引出 8個引腳,除了 VCC和 GND之外,其余 6個引腳與單片機(jī) I/0口進(jìn)行連接。其中,SCL為I2C時鐘引腳,SDA 為I2C數(shù)據(jù)引腳。
2.4 單片機(jī)最小系統(tǒng)電路圖
主控電路采用 STM32F103RET6 單片機(jī),其最小系統(tǒng)原 理圖如圖 5 所示。圖中所示的 STM32F103RET6 單片機(jī)具有 較強(qiáng)的抗干擾能力,適合本系統(tǒng)設(shè)計 [7]。晶振為 8 MHz 的無 源晶振經(jīng)單片機(jī)倍頻后作為 72 MHz 的系統(tǒng)時鐘,單片機(jī)為低 電平復(fù)位,但當(dāng)復(fù)位引腳為低電平后,單片機(jī)不會馬上復(fù)位, 還需要持續(xù)一段時間,故電容 C13 作為緩沖,從而維持一段時 間的低電平 [8]。BOOT0 為啟動模式選擇引腳,當(dāng)為低電平時 為用戶閃存啟動模式,當(dāng)為高電平時為系統(tǒng)內(nèi)存啟動模式,本 電路默認(rèn)設(shè)置為閃存啟動模式,當(dāng)需要設(shè)置為系統(tǒng)內(nèi)存啟動 模式時可通過按鍵 Dow1 控制。

2.5 信號調(diào)理電路和 AD 轉(zhuǎn)換模塊
信號調(diào)理電路由AD7705 芯片控制,AD7705 串行接口可配置為三線接口[9]。增益值、信號極性及更新速率的選擇可用串行輸入口由軟件來配置。該器件還包括自校準(zhǔn)和系統(tǒng)校準(zhǔn)選項,以消除器件本身或系統(tǒng)的增益和偏移誤差,且耗電極低 [10]。
3 系統(tǒng)軟件設(shè)計
該系統(tǒng)采用模塊化編寫,便于調(diào)試,程序開始后,先讀取預(yù)置數(shù),系統(tǒng)各模塊再初始化,選擇是否為測量模式,如果是,然后讀取各項數(shù)據(jù) ;如果不是,則需要校準(zhǔn),校準(zhǔn)時先讀取磁場數(shù)據(jù),然后計算偏移量,判斷是否存在偏移量, 如果有,則需要存入單片機(jī)中;若沒有,則直接進(jìn)入系統(tǒng)初始化。系統(tǒng)具體流程如圖 6 所示。
4 結(jié) 語
電子羅盤系統(tǒng) 采用數(shù)字磁阻傳感 器、雙軸加速度傳 感器,處理器采用 STM32F103RET6 單片機(jī),具有電路 結(jié)構(gòu)簡單、集成度 高、抗干擾能力強(qiáng) 等優(yōu)點(diǎn)。正常工作 時耗電非常低,同 時硬件成本低、功 耗小,適合用于便 攜導(dǎo)航,也可用于 其他需要測量傾角 和方位角的場合。