王建政,林克賓
(91049 部隊 ,山東 青島 266700)
目前,慣性系統(tǒng)以其高精度、長航時、自主性等優(yōu)勢,在航空航天、海洋探測、軍事裝備等方面有廣泛應(yīng)用,由于慣性導(dǎo)航系統(tǒng)的造價高昂、其標(biāo)準(zhǔn)的工作要求較高,需要專業(yè)的高精尖設(shè)備輔助。因此,研究一種通用型,能夠迅速模擬各種姿態(tài)的慣性姿態(tài)模擬系統(tǒng),就變得非常有必要了。
論文提供一種基于嵌入式系統(tǒng)的便攜式、智能化慣性姿態(tài)模擬系統(tǒng),該系統(tǒng)采用多處理器架構(gòu),采用MEMS[6]慣性測量組件,采用高精度驅(qū)動算法,使系統(tǒng)完成高精度驅(qū)動、低誤差測量,并加入北斗導(dǎo)航模塊,可以完成快速標(biāo)定和對準(zhǔn)。
系統(tǒng)的組成框圖如圖1所示:
圖1 系統(tǒng)總體架構(gòu)Fig 1 System architecture
三軸姿態(tài)傳感器主要用于采集載體的方位、偏航和橫滾信息,并將采集到的數(shù)字信息輸送至三軸姿態(tài)采集板,采集板完成對姿態(tài)信息的數(shù)字轉(zhuǎn)換、數(shù)據(jù)傳輸?shù)裙δ?,將轉(zhuǎn)換后的結(jié)果送至核心控制板,完成對數(shù)據(jù)的進(jìn)一步加工解算;核心控制板是系統(tǒng)的核心控制板,主要完成數(shù)據(jù)采集、驅(qū)動信號生成、系統(tǒng)通信、命令解析和上位機(jī)通信等功能,由于核心控制板的任務(wù)量較大,采用分布式多處理器架構(gòu),各處理器相互配合,共同完成核心控制板的各項功能。
2.1.1 三軸姿態(tài)傳感器
三軸姿態(tài)傳感器采用MEMS(Micro-Electro-Mechanical System,即微機(jī)電系統(tǒng),指尺寸在幾毫米乃至更小的高科技裝置)系統(tǒng)。并采用北斗定位系統(tǒng)輔助定位,目前,系統(tǒng)根據(jù)標(biāo)定的任務(wù)精度,采用的是ADI(亞德諾半導(dǎo)體)公司的ADIS16488慣性測量組件[5],該組件是一款完整的慣性系統(tǒng),內(nèi)置一個三軸陀螺儀、一個三軸加速度計、一個三軸磁力計和一個壓力傳感器。每個慣性傳感器都實現(xiàn)了業(yè)界領(lǐng)先的技術(shù)與信號調(diào)理技術(shù)的完美結(jié)合,可提供優(yōu)化的動態(tài)性能。工廠校準(zhǔn)針對各傳感器的靈敏度、偏置、對準(zhǔn)和線性加速度(陀螺偏置)進(jìn)行校準(zhǔn)。因此,各傳感器均有其自己的動態(tài)補(bǔ)償公式,可提供精確的傳感器測量。其組成如圖2所示:
圖2 ADIS16488系統(tǒng)框圖Fig 2 Block diagram of ADIS16488 system
ADIS16488是一款自治傳感器系統(tǒng),當(dāng)存在有效電源時,它會自動啟動。完成初始化過程后,它開始采樣、處理以及將校準(zhǔn)的傳感器數(shù)據(jù)載入輸出寄存器,通過SPI端口可訪問該數(shù)據(jù)。SPI端口通常連接到嵌入式處理器的兼容端口,連接圖參見圖3。
四個SPI信號支持同步串行數(shù)據(jù)傳輸。復(fù)位線連接到VDD,正常工作期間斷開。在工廠默認(rèn)配置下,DIO2引腳提供數(shù)據(jù)就緒信號;當(dāng)輸出數(shù)據(jù)寄存器中有新數(shù)據(jù)可用時,該引腳變?yōu)楦唠娖健?/p>
圖3 ADIS16488接線圖Fig 3 ADIS6488 wiring diagram
這里需要注意的是ADIS16488需要3.3V穩(wěn)定直流電源供電,因此,如果用于采集數(shù)據(jù)的上位機(jī)不滿足條件時,需要進(jìn)行電源轉(zhuǎn)換。
ADIS16488對外采用SPI數(shù)字接口對外通信,采用全雙工工作模式,具有傳輸速度快、當(dāng)進(jìn)行數(shù)據(jù)采集時,ADIS16488作為從機(jī),進(jìn)行通信,ADIS16488由于內(nèi)部采用了DSP處理器,轉(zhuǎn)換效率非常高,可以達(dá)到2.46ksps,完全可以滿足系統(tǒng)對傳感器采集的需要,其中,ADIS16488的工作模式及配置如表1所示:
表1 ADIS16488的配置Tab 1 The configuration of ADIS16488
2.1.2 三軸姿態(tài)采集板
ADIS16488的封裝接口如圖4所示:
圖4 ADIS16488引腳封裝Fig 4 ADIS16488 pin package
為了使ADIS16488的接口進(jìn)行匹配,需要使用數(shù)據(jù)采集板,用于匹配接口和電平信息,同時方便進(jìn)行安裝,接口采集板采用ADI公司配套采集板,如圖5所示:
圖5 數(shù)據(jù)采集卡pcb板圖Fig 5 PCB board diagram of a data acquisition card
在該采集板卡基礎(chǔ)上,增加了電源自動適配裝置,采用HT7133芯片,可以適配4V-15V的直流電源,進(jìn)行穩(wěn)定供電,為ADIS16488提供干凈持續(xù)的3.3V直流電,并為SPI通信提供穩(wěn)定的電平和驅(qū)動。
2.1.3 核心控制板
核心控制板是系統(tǒng)的控制核心,主要完成與三軸姿態(tài)傳感器的的數(shù)據(jù)采集與控制,數(shù)據(jù)加工與使用、與計算機(jī)系統(tǒng)通信、驅(qū)動三軸姿態(tài)平臺等功能,由于核心控制板中的數(shù)據(jù)量大,功能多,單一的處理器很難完成如此艱巨的任務(wù),因此,采用多處理器架構(gòu),劃分各個功能模塊,使各功能模塊與相應(yīng)MCU進(jìn)行功能映射,其中,MCU與各個功能模塊之間的映射關(guān)系如圖6所示:
圖6 多處理器模塊劃分功能映射圖Fig 6 Multiprocessor module partition function mapping
由圖6可以看出,處理器1(MCU1)主要負(fù)責(zé)與三軸姿態(tài)傳感器進(jìn)行數(shù)據(jù)通信和數(shù)據(jù)解碼,并將處理結(jié)果反饋給處理器2(MCU2),處理器2為多處理器架構(gòu)中的核心控制模塊,通過CAN總線完成與上位機(jī)的通信,對上位機(jī)的命令進(jìn)行解析、執(zhí)行,通過USART(異步串行通信)接口與處理器1和處理器3進(jìn)行通信,完成相應(yīng)的數(shù)據(jù)采集、平臺驅(qū)動等功能,處理器3與姿態(tài)驅(qū)動平臺進(jìn)行通信,主要完成步進(jìn)電機(jī)驅(qū)動、PWM(脈沖寬度調(diào)制)控制、速度調(diào)制等功能,用于執(zhí)行完成對載體的姿態(tài)控制。
處理器主要采用MCU(微處理器),采用意法半導(dǎo)體的STM32F103ZET6[3-4],如圖7所示:
圖7 STM32F103ZET6引腳圖Fig 7 STM32F103ZET6 pin diagram
該微處理器為COTEX-M3 32位的RISC(精簡指令集)內(nèi)核,工作頻率為72MHz,內(nèi)置高速存儲器(高達(dá)512K字節(jié)的閃存和64K字節(jié)的SRAM),豐富的增強(qiáng)I/O端口和聯(lián)接到兩條APB總線的外設(shè)。所有型號的器件都包含3個12位的ADC、4個通用16位定時器和2個PWM定時器,還包含標(biāo)準(zhǔn)和先進(jìn)的通信接口:多達(dá)2個I2C接口、3個SPI接口、2個I2S接口、1個SDIO接口、5個USART接口、一個USB接口和一個CAN接口,供電電壓2.0V至3.6V,滿足一系列的省電模式保證低功耗應(yīng)用的要求。
該處理器由于具有豐富的可以完成與ADIS16488的直接通信。同時,可以利用PWM定時器,產(chǎn)生PWM波,用于完成與姿態(tài)驅(qū)動平臺之間的通信和速度調(diào)節(jié)。
2.1.4 三軸姿態(tài)驅(qū)動平臺及平臺驅(qū)動板
三軸姿態(tài)驅(qū)動平臺主要完成載體姿態(tài)的驅(qū)動變化,基于經(jīng)費原因,在某型手動三軸姿態(tài)平臺基礎(chǔ)上,對其進(jìn)行了自動化改裝,加裝了步進(jìn)電機(jī),并設(shè)計了相應(yīng)的驅(qū)動控制板,利用PWM調(diào)制控制,可以實現(xiàn)平臺的自動高精度姿態(tài)控制和快速調(diào)制。
三軸姿態(tài)驅(qū)動平臺如圖8所示:
圖8 三軸轉(zhuǎn)動平臺Fig 8 The three axis rotating platform
該平臺可以完成Z軸360度,XY軸正負(fù)20度范圍內(nèi)的手動調(diào)制,因此,通過加裝步進(jìn)電機(jī)及其對應(yīng)的驅(qū)動板,完成自動化升級改造。
步進(jìn)電機(jī)驅(qū)動芯片采用東芝公司的THB7128芯片,該芯片可以驅(qū)動57步進(jìn)電機(jī),最高耐壓40伏,可以進(jìn)行最多128細(xì)分,最大驅(qū)動電流為3A,該芯片在3d打印機(jī)、雕刻機(jī)等高精度工業(yè)設(shè)備中廣泛應(yīng)用。其不僅點擊驅(qū)動板如圖9所示:
圖9 步進(jìn)電機(jī)驅(qū)動板Fig 9 Stepping motor drive board
該驅(qū)動板一共三塊,主要完成步進(jìn)電機(jī)的精度調(diào)制和速度控制,采用PWM控制,最大輸出電流為3A。
(1)重要系統(tǒng)軟件介紹:
系統(tǒng)姿態(tài)解算主要采用四元數(shù)算法,這里不再贅述,主要介紹ADIS16488的驅(qū)動及PWM的調(diào)制。
①ADIS16488的數(shù)據(jù)采集
三軸姿態(tài)傳感器主要完成三軸姿態(tài)的數(shù)據(jù)采集,其中,加載驅(qū)動[1,2]及初始化的代碼如下:
static struct spi_board_info board_spi_board_info[]__initdata = {
#if defined(CONFIG_adis16488)
|| defined(CONFIG_adis16480_MODULE)
{
.modalias = "adis16488",
.max_speed_hz = 2000000, /* max spi clock (SCK) speed in HZ */
.bus_num = 0,
.chip_select = 1, /* CS, change it for your board */
.platform_data = NULL, /* No spi_driver specific config */
.mode = SPI_MODE_3,
.irq = IRQ_PF5,
},
#endif
};
剩下的是初始化和采集數(shù)據(jù)代碼等由于比較常規(guī),這里不再贅述,可以參考其數(shù)據(jù)手冊實現(xiàn)。
②PWM調(diào)制模塊實現(xiàn)
STM32里面集成了PWM模塊,因此,通過配置其占空比、輸出引腳就可以達(dá)到生成PWM波形的目的,可以利用定時器,使PWM波形按照預(yù)設(shè)的時間和時長進(jìn)行輸出。主要代碼如下:
void PWM_cfg()
{
TIM_OCInitTypeDef TimOCInitStructure;
//設(shè)置缺省值
TIM_OCStructInit(&TimOCInitStructure);
//PWM模式1輸出
TimOCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
//設(shè)置占空比,占空比=(CCRx/ARR)*100%或(TIM_Pulse/TIM_Period)*100%
TimOCInitStructure.TIM_Pulse = dutyfactor * 7200 /100;
//TIM輸出比較極性高
TimOCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
//使能輸出狀態(tài) TimOCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
//TIM3的CH2輸出
TIM_OC2Init(TIM3, &TimOCInitStructure);
//設(shè)置TIM3的PWM輸出為使能
TIM_CtrlPWMOutputs(TIM3,ENABLE);
}
論文介紹了一種基于STM32的小型化、便攜式慣性姿態(tài)模擬系統(tǒng),該系統(tǒng)具有體積小、響應(yīng)速度快等優(yōu)點,在載體快速對正、載體狀態(tài)模擬等方面有較高的應(yīng)用價值,后續(xù)將進(jìn)一步對系統(tǒng)進(jìn)一步優(yōu)化,增加沖擊力等方面功能,有助于提高裝備測量的高精度、低成本和智能化。