??? 摘 要:以C8051F020單片機(jī)為控制核心、數(shù)字羅盤HMR3000為磁北傳感器,設(shè)計(jì)了基于數(shù)字羅盤HMR3000的智能尋向系統(tǒng)。硬件部分詳述了方位信號(hào)通信電路、步進(jìn)電機(jī)驅(qū)動(dòng)電路、鍵盤電路和LCD顯示電路等;軟件部分重點(diǎn)研究了系統(tǒng)主程序、方位通信子程序、數(shù)據(jù)處理子程序和步進(jìn)電機(jī)驅(qū)動(dòng)子程序等。分析了系統(tǒng)誤差并提出了使用注意事項(xiàng)。經(jīng)過調(diào)試,該系統(tǒng)具有尋向速度可調(diào)、精度較高、方向自動(dòng)保持等優(yōu)點(diǎn)。
??? 關(guān)鍵詞:數(shù)字羅盤HMR3000;C8051F單片機(jī);方位
?
??? 方位測(cè)量標(biāo)定在大地測(cè)量、導(dǎo)航尋向領(lǐng)域中有非常重要的作用。工程實(shí)踐中常采用參考地標(biāo)法或GPS定向法來實(shí)現(xiàn),但是在某些既無地標(biāo)而又要求獨(dú)立定向的場(chǎng)合,2種方法都有不足之處。本設(shè)計(jì)采用數(shù)字羅盤標(biāo)定出正北方向,利用鍵盤輸入的方位期望值和正北方向的差值做控制信號(hào),通過控制安裝有指向設(shè)備的步進(jìn)電機(jī),可以達(dá)到獨(dú)立智能尋向定向的目標(biāo)。
1 總體方案設(shè)計(jì)
??? 系統(tǒng)原理如圖1所示,該系統(tǒng)以C8051F020 單片機(jī)為控制核心,主要由方位信號(hào)通信電路、步進(jìn)電機(jī)驅(qū)動(dòng)電路、鍵盤通信電路和LCD顯示電路等部分組成。
?
??? 尋向定向系統(tǒng)需要指向設(shè)備,即帶有方位指向功能的設(shè)備,如激光束、經(jīng)緯儀、雷達(dá)等。步進(jìn)電機(jī)轉(zhuǎn)軸軸向鉛垂向下(利用三腳架和調(diào)平設(shè)備調(diào)節(jié)),將指向設(shè)備和數(shù)字羅盤安裝在步進(jìn)電機(jī)轉(zhuǎn)軸上,這樣就能利用數(shù)字羅盤HMR3000的偏航軸來敏感水平地磁場(chǎng),同時(shí)精確標(biāo)定出數(shù)字羅盤敏感軸向和指向設(shè)備軸向的安裝夾角θA。根據(jù)安裝夾角θA和數(shù)字羅盤敏感到的方位角計(jì)算出此時(shí)指向設(shè)備軸向的方位角,通過鍵盤輸入最終需要的方位期望值。此時(shí)方位角和方位期望值之間存在差信號(hào),利用差信號(hào)閉環(huán)控制步進(jìn)電機(jī)進(jìn)動(dòng),使指向設(shè)備指向期望方位值并定向,完成尋向定向的目的。
2 硬件電路模塊介紹
2.1 方位信號(hào)通信電路
??? 系統(tǒng)利用數(shù)字羅盤作為磁北傳感器。數(shù)字羅盤也稱為電子羅盤,是利用敏感地磁北極的方法來定方位的一種傳感器。本設(shè)計(jì)采用了Honeywell公司三軸數(shù)字羅盤HMR3000,它由三軸磁阻傳感器和一個(gè)充有液體的兩軸傾斜傳感器組成,可以測(cè)量3個(gè)角度上的角度變化;能實(shí)時(shí)準(zhǔn)確輸出被測(cè)物體的俯仰角、滾動(dòng)角和偏航角;數(shù)據(jù)刷新頻率為20 Hz,航向精度為0.1°,誤差為±0.5°,工作狀態(tài)傾斜角度為±40°;野外作業(yè)適應(yīng)能力強(qiáng)。
??? 數(shù)字羅盤HMR3000按照NMEA 格式,通過RS232/485串口提供航向輸出(橫滾、俯仰、偏航)。在本方案中,利用其偏航軸敏感水平磁場(chǎng),結(jié)合單片機(jī)形成具有方位信號(hào)通信功能的電路模塊。由于HMR3000輸出的RS-232信號(hào)電平與C8051F020單片機(jī)I/O串行端口電平不匹配,故采用電平轉(zhuǎn)換芯片MAX202來完成二者之間的電平轉(zhuǎn)換,具體電路如圖2所示。
?
?
2.2步進(jìn)電機(jī)驅(qū)動(dòng)電路
??? 從系統(tǒng)精度方面考慮,步進(jìn)電機(jī)自身的步距角要盡可能少地增加系統(tǒng)誤差。鑒于HMR3000的精度為0.1°,故選用步距角為0.09°/0.18°的五相混合式電機(jī)110BYG5200,適配的電機(jī)驅(qū)動(dòng)器為HB505A。采用C8051F020單片機(jī)的P6口為控制驅(qū)動(dòng),各引線的具體功能如下:CP為步進(jìn)脈沖信號(hào)輸入端;CW/CCW為方向控制信號(hào)輸入端;F.H為步距控制控制信號(hào)輸入端;FRE為脫機(jī)控制信號(hào)輸入端;POW為電源指示輸出;TIM為相原點(diǎn)指示輸出;COM為信號(hào)公共端,驅(qū)動(dòng)電路各引線連接如圖3所示。
?
?
2.3 LCD顯示電路
??? LCD顯示電路中液晶顯示驅(qū)動(dòng)芯片采用Samsung公司的KS0713TB,為節(jié)省單片機(jī)硬件資源,設(shè)計(jì)中該顯示驅(qū)動(dòng)芯片與C8051F020之間采用I2C總線串行通信。KS0713TB工作在串行模式,其中各接口端子的功能為:接口端子DB6、DB7為串行通信端子;MI為微處理器接口選擇針腳;RESETB為復(fù)位重啟;PS為串/并行選擇;RW_WR、 E_RD同為讀寫控制;RS為片上寄存器選擇;CS1B、CS2同為片選輸入選擇。具體連接如圖4所示。
?
?
2.4 鍵盤電路
??? 鍵盤通信主要指按鍵的識(shí)別,實(shí)際應(yīng)用中常用行掃描法、線翻轉(zhuǎn)法以及利用8279鍵盤接口芯片的中斷法。其中中斷法可以節(jié)省硬件資源,提高處理速度。本設(shè)計(jì)中考慮到單片機(jī)系統(tǒng)稍微復(fù)雜,處理器單元資源較為緊張,故采用4×4鍵盤通過8279接口芯片中斷識(shí)別的方法。
3 軟件設(shè)計(jì)
??? 尋向定向系統(tǒng)的軟件流程主要由端口初始化、方位信號(hào)通信程序、數(shù)據(jù)處理程序、步進(jìn)電機(jī)驅(qū)動(dòng)程序和LCD顯示驅(qū)動(dòng)程序等構(gòu)成。軟件部分主程序流程如圖5所示。
?
?
??? 該程序?yàn)檠h(huán)程序,每一次開機(jī)后執(zhí)行一個(gè)方位值的尋向定向。一次開機(jī)運(yùn)行后,在LCD的提示下,利用鍵盤輸入方位期望值并儲(chǔ)存在指定的寄存器中維持不變,通過與方位信號(hào)通信,程序傳輸過來的角度值的實(shí)時(shí)比較來控制步進(jìn)電機(jī)進(jìn)動(dòng),使指向設(shè)備在一次開機(jī)后始終指向此期望方位。若要尋找新方位,需要重啟系統(tǒng)。
3.1 方位通信程序
??? 方位通信程序用來完成HMR3000和C8051F020的通信。HMR3000有6種可供選擇的NMEA信息標(biāo)準(zhǔn),此處采用HPR格式。HPR格式將HMR3000數(shù)字羅盤的3個(gè)重要的測(cè)量結(jié)果(俯仰、滾動(dòng)、偏航)和相應(yīng)的測(cè)量狀態(tài)結(jié)合在一起。單片機(jī)將其中的姿態(tài)字符輸出并轉(zhuǎn)化為可供系統(tǒng)處理的數(shù)值變量。由于在本方案中通過敏感水平磁場(chǎng)就可以指向出磁北,故只需要在輸出的數(shù)據(jù)中分離出偏航數(shù)據(jù),格式轉(zhuǎn)換后進(jìn)行后續(xù)處理。由于HMR3000的刷新速率為20 Hz,所以在掃描端口時(shí)要根據(jù)實(shí)際需要設(shè)定掃描端口的頻率,防止因?yàn)槌绦蜻\(yùn)行和電機(jī)進(jìn)動(dòng)時(shí)間的不匹配或環(huán)境磁場(chǎng)的變化而導(dǎo)致的步進(jìn)電機(jī)無法穩(wěn)定在允許誤差范圍之內(nèi)??紤]到在一次使用中,期望方位值在相對(duì)較長(zhǎng)時(shí)間內(nèi)比較固定,可以將掃描時(shí)間設(shè)置在秒級(jí)。方位信號(hào)處理程序流程圖如6所示。
?
3.2 數(shù)據(jù)處理程序
??? 該程序用來處理方位數(shù)據(jù)之間的數(shù)量關(guān)系,是軟件部分的重點(diǎn)。其中“方位輸出值”指HMR3000的輸出,以磁北為起始零值,順時(shí)針增加;“方位值”以正北為起始零值,順時(shí)針增加。參照?qǐng)D7,數(shù)據(jù)處理原理如下:
??? 磁偏角(磁北和正北的夾角):θ
??? 安裝角(數(shù)字羅盤偏航軸和安裝設(shè)備之間的夾角):θA
??? 數(shù)字羅盤方位輸出值:θC
??? 指向設(shè)備的方位值:θZ=θC+θA+θ
??? 期望方位值(鍵盤輸入):θK
??? 動(dòng)態(tài)差角:θD=θK-θZ
??? 期望方位值與指向設(shè)備的方位值允許誤差限:γ
??? 根據(jù)方案設(shè)計(jì)可以得到:
??? 用θD角度值的正負(fù)控制步進(jìn)電機(jī)進(jìn)動(dòng),使得θD不斷減小。到精度允許的范圍γ即θD<γ時(shí),完成尋向并標(biāo)定。各角度之間關(guān)系如圖7所示。
?
?
3.3步進(jìn)電機(jī)驅(qū)動(dòng)程序
??? 根據(jù)方案設(shè)計(jì),步進(jìn)電機(jī)驅(qū)動(dòng)程序具有根據(jù)動(dòng)態(tài)差角θD的正負(fù)控制步進(jìn)電機(jī)正反向進(jìn)動(dòng)的功能,并能根據(jù)不同場(chǎng)合對(duì)尋向時(shí)間的要求進(jìn)行程序調(diào)整。設(shè)計(jì)用脈沖量序列驅(qū)動(dòng)電機(jī)正轉(zhuǎn)或反轉(zhuǎn),通過對(duì)等待時(shí)間的調(diào)整實(shí)現(xiàn)變速的功能,如圖8所示。
?
?
??? 驅(qū)動(dòng)電機(jī)的判向環(huán)節(jié)是需要重點(diǎn)考慮的部分。由于在程序中代表角度值的變量定義為無符號(hào)數(shù),在具體的判斷時(shí)無法根據(jù)角度值的正負(fù)來判斷電機(jī)是正轉(zhuǎn)或反轉(zhuǎn)。但是在實(shí)際情況中又確實(shí)存在θD<0的情況,故本系統(tǒng)此處采用如下的處理算法:首先將期望方位值θK先加上360°后再與指向設(shè)備方位值θZ做差,然后將此差值在程序中對(duì)360°取余數(shù),最后利用此余數(shù)同180°進(jìn)行比較。當(dāng)余數(shù)大于180°時(shí)正轉(zhuǎn),小于180°時(shí)反轉(zhuǎn),達(dá)到根據(jù)不同需要控制電機(jī)轉(zhuǎn)向的目的。讀者可以選擇不同情況下的角度值驗(yàn)證該算法。
4 系統(tǒng)誤差分析
??? 在此方案中,尋向精度是一個(gè)重要的指標(biāo)。誤差的來源主要有以下幾個(gè)方面:
??? (1)HMR3000的誤差
??? 由于HMR3000是通過敏感地磁感線來工作的,所以外界環(huán)境對(duì)它的影響會(huì)比較明顯。在附近有鐵磁性礦體、大型工程車輛等可以產(chǎn)生影響地磁場(chǎng)分布的干擾磁場(chǎng)的物質(zhì)存在的情況下,HMR3000的精度會(huì)受到影響。雖然HMR3000自身有標(biāo)校程序,在干擾磁場(chǎng)小于指定閾值范圍值時(shí)可以通過內(nèi)置程序自動(dòng)補(bǔ)償?shù)姆椒ǘ鴾p小這種影響,但是在磁場(chǎng)較大時(shí)這種誤差補(bǔ)償?shù)木仁菬o法保證的。
??? HMR3000本身的誤差為0.5°,這也是誤差的重要來源;
??? (2)步進(jìn)電機(jī)的步距角
??? 步進(jìn)電機(jī)的步距角是步進(jìn)電機(jī)的固有參數(shù),在一定程度上影響著系統(tǒng)誤差。為提高系統(tǒng)精度,本方案采用步距角為0.09°的電機(jī),一定程度上減小了系統(tǒng)誤差;
??? (3)其他誤差
??? 磁偏角θ的誤差、安裝角θA的檢定誤差和誤差限γ也是系統(tǒng)誤差的來源。
??? 因此,在使用此系統(tǒng)的過程中為獲得較高的測(cè)量精度,需要注意以下幾方面:(1)視環(huán)境使用,避免在干擾磁場(chǎng)的強(qiáng)度超過閾值的環(huán)境中使用;(2)根據(jù)實(shí)際精度需要選用合適的步進(jìn)電機(jī);(3)在設(shè)備定型時(shí),精確測(cè)量出安裝角θA;(4)選用較小的誤差限γ。采用以上措施,可以適當(dāng)?shù)販p小系統(tǒng)誤差。
??? 本方案設(shè)計(jì)的系統(tǒng)操作簡(jiǎn)單,實(shí)時(shí)性好,可根據(jù)用戶需要獨(dú)立智能尋向定向。系統(tǒng)方案的自身情況決定了系統(tǒng)最終尋向精度。在滿足精度要求的情況下可以在航海浮標(biāo)定位、雷達(dá)天線伺服控制、大地測(cè)量和自動(dòng)控制等需要尋向定向的領(lǐng)域發(fā)揮一定的作用。
參考文獻(xiàn)
[1]??Silicon Laboratories Inc. C8051F020 datasheet.2003.
[2]? 張培仁,孫力.基于C語(yǔ)言C8051F系列微控制器原理與應(yīng)用[M].北京:清華大學(xué)出版社,2007.
[3]? 求是科技.單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航[M].北京:人民郵電出版社,2008.
[4]? Honwell Company. HMR3000 datasheet.2002.
[5]? Philips Semiconductors. PCF8575 datasheet.1997.