劉昊哲,任 臣,王 曉,楊擁軍
(中國電子科技集團 第13研究所,石家莊 050051)
MEMS陀螺儀相對于傳統(tǒng)陀螺儀具有體積小、智能化、功耗低、成本低以及可批量生產(chǎn)的優(yōu)勢,在汽車電子、消費電子和軌道交通等領域廣泛應用[1]。隨著MEMS陀螺儀設計的不斷優(yōu)化和完善,成為微型慣性系統(tǒng)的核心和導航系統(tǒng)進一步發(fā)展的關鍵器件,正逐步取代傳統(tǒng)陀螺儀的地位。
MEMS陀螺儀的性能指標包括量程、零偏穩(wěn)定性和速率精度等[2],其中零偏穩(wěn)定性是對MEMS陀螺儀的精度起著重大影響,是MEMS陀螺儀性能優(yōu)劣的重要評價標準?,F(xiàn)有的MEMS陀螺儀產(chǎn)品一般為MEMS敏感結構、專用集成電路(ASIC,application specific integrated circuit)硬件邏輯處理電路、印刷電路板(PCB,printed circuit board)供電電路及通用微控制器模塊組成的三級架構。PCB板上的微控制器模塊負責對經(jīng)過C/V、ADC和多級濾波器處理后的信號的補償和存儲[3],因此從ASIC芯片到PCB板的數(shù)據(jù)傳輸過程需要滿足低延遲、低噪聲、低抖動以及高速率的要求。當前主要采用的方式為串行外圍設備接口(SPI,serial peripheral interface)協(xié)議的信號傳輸,對陀螺輸出的角速度信號存在著一定的失真[4],且選擇通用的微控制器對陀螺信號進行處理和存儲難免存在微控制器數(shù)據(jù)處理能力和存儲空間大小與實際需求不匹配,無法實現(xiàn)陀螺儀的最優(yōu)性能或產(chǎn)生一定的資源浪費現(xiàn)象。
因此,為了解決MEMS陀螺儀集成度不高、制造步驟繁瑣、產(chǎn)品體積偏大等問題,本文提出一種新的設計思路來解決這些問題。通過為MEMS陀螺儀設計專用的SoC,依據(jù)陀螺儀對微處理器數(shù)據(jù)處理能力、存儲模塊大小、數(shù)據(jù)傳輸速率和位數(shù)的需求對SoC的組成模塊進行定制設計[5],在提升陀螺儀的性能的同時豐富陀螺儀的應用場景。本文基于ARM的Cortex-M3內(nèi)核針對應用于MEMS陀螺儀的SoC進行了集成設計,通過軟硬件協(xié)同設計的方式,將SoC芯片所需功能的實現(xiàn)方式劃分為軟件實現(xiàn)和硬件實現(xiàn)兩部分[6],對MEMS陀螺儀數(shù)據(jù)實時帶寬有限、體積較大、存在處理資源浪費等問題進行解決。
本文的研究對象為硅MEMS振動式陀螺,其敏感結構采用雙質(zhì)量框架,選用靜電驅(qū)動、變間距電容檢測工作方式,基于體硅SOI和圓片級真空封裝工藝加工而成。MEMS陀螺儀的檢測電路原理如圖1所示,驅(qū)動環(huán)路采用四階帶通Sigma-Delta數(shù)字閉環(huán)結構、檢測通路選用開環(huán)檢測的工作方式[7]。
圖1 MEMS陀螺儀基本工作原理
圖1中,C/V單元將外界加速度導致的陀螺儀敏感單元所產(chǎn)生的差分電容的變化轉換成模擬電壓信號。ADC模塊采用斬波(CS)技術和相關雙采樣(CDS)技術,有效抑制了低頻噪聲和中頻段噪聲,更高精度的完成模擬量到數(shù)字量的轉換。BPF模塊為帶通濾波器,有效濾除干擾信號。AAC為自動增益控制模塊,實現(xiàn)驅(qū)動振幅穩(wěn)定控制。DAC模塊完成對MEMS結構的驅(qū)動反饋,實現(xiàn)驅(qū)動閉環(huán),使得MEMS結構保持諧振。檢測通路為開環(huán)結構,由C/V、ADC、BPF和延時相位模塊組成。φ為檢測通路的延時相位,為檢測信號,為驅(qū)動信號。LPF模塊為低通濾波器,有效濾除干擾信號。經(jīng)過對驅(qū)動信號和檢測信號的相干解調(diào)并經(jīng)過低通濾波后得到陀螺儀角速度輸出信號。
由于MEMS陀螺芯片的主要制作材料單晶硅對溫度較為敏感,其機械和物理參數(shù)如楊氏模量和應力受溫度影響較大,進而對陀螺的諧振頻率和系統(tǒng)剛度產(chǎn)生影響,導致陀螺產(chǎn)生輸出溫度漂移。另一方面,MEMS陀螺生產(chǎn)過程中經(jīng)過了刻蝕和高溫鍵合等工藝,在結構中不可避免的產(chǎn)生了殘余應力;MEMS陀螺封裝過程中,由于陶瓷管殼、粘結膠和MEMS芯片之間的熱膨脹系數(shù)的不一致,同樣會產(chǎn)生應力,導致陀螺溫度漂移的出現(xiàn)[8]。綜上可知MEMS陀螺儀不可以避免的會出現(xiàn)溫度漂移,傳統(tǒng)的解決方案為在PCB板級供電電路上連接一個通用的微控制器對陀螺溫漂進行補償,同時將陀螺儀輸出數(shù)據(jù)進行存儲并打包發(fā)送到上位機,產(chǎn)品整體尺寸達到22 mm×20 mm,如圖2所示。
圖2 組合通用單片機的陀螺儀
然而,在PCB上進行MEMS陀螺儀數(shù)據(jù)處理需要使用SPI通信協(xié)議將ASIC上的數(shù)據(jù)傳輸?shù)狡馕⒖刂破?,這一過程需要在不斷采集新的數(shù)據(jù)的同時將數(shù)據(jù)進行串行傳輸具有一定的風險且向上位機傳輸需要再次進行串行同步傳輸,影響陀螺穩(wěn)定性的同時限制了數(shù)據(jù)處理速率,直接影響MEMS陀螺儀的性能。因此本文提出設計MEMS陀螺儀專用SoC芯片推動MEMS陀螺儀的集成化和智能化,來解決傳統(tǒng)ASIC和單片機組合方式存在的固有問題,實現(xiàn)MEMS陀螺儀的智能高精度控制。
本文對應用于MEMS陀螺儀的SoC進行了設計,其中硬件電路部分的設計優(yōu)勢在于對特定功能實現(xiàn)速度快,可以達到十倍、百倍的速度提升;降低了對處理器復雜度的要求,簡化系統(tǒng)設計;減少相應的軟件程序設計時間[9]。SoC設計過程考慮到MEMS陀螺儀使用過程中低功耗和高速處理復雜任務的需求,選擇Cortex-M3內(nèi)核作為核心處理單元[10],SoC運行過程中需要實現(xiàn)對數(shù)據(jù)采集模塊所采集數(shù)據(jù)進行打包、存儲并設計軟件算法進行補償、濾波,以提高MEMS陀螺儀的數(shù)據(jù)精度,因此使用高級微控制器總線結構(AMBA,advanced microcontroller bus architecture)進行SoC的架構設計[11]。不同于通用的微控制器,集成設計的SoC中的微控制器模塊結構選用由設計需求決定,例如本設計中考慮到其主要服務于內(nèi)部模塊信息的處理,因此未添加通用輸入輸出接口模塊(GPIO,general-purpose input/output),節(jié)約了芯片的面積,使得芯片結構更為合理。SoC整體架構如圖3所示,SoC系統(tǒng)主要由Cortex-M3微處理器、SRAM、ROM、數(shù)據(jù)采集模塊、系統(tǒng)時鐘模塊以及外圍通信接口組成。
圖3 SoC整體架構
為了解決傳統(tǒng)裝配方式對MEMS陀螺儀ASIC輸出處理不夠及時的問題,本文提出了將數(shù)據(jù)采集模塊直接作為高性能總線(AHB,advanced high-performance bus)的從機進行集成設計的SoC總線架構,通過微電容檢測和模數(shù)轉換器的組合設計,將外界慣性信息轉換為數(shù)字形式的電信號后,經(jīng)過AHB總線通信輸入微處理器內(nèi)核進行數(shù)字信號處理和存儲操作。不同于傳統(tǒng)的SPI串行數(shù)據(jù)傳輸模式,本設計中數(shù)據(jù)采集模塊直接通過AHB總線接口進行32位并行數(shù)據(jù)傳輸?shù)哪J皆跍p小數(shù)據(jù)丟包風險的同時有效提高了數(shù)據(jù)傳輸效率。
在SoC的設計中,需要對數(shù)據(jù)采集模塊、數(shù)據(jù)存儲單元、外圍通信接口等外設進行尋址訪問,外圍設備所上傳的數(shù)據(jù)也需要暫時存放在指定的存儲單元中,所設計的軟件程序同樣需要在Cortex-M3內(nèi)核的尋址空間中搭載存儲單元進行存儲[12]。根據(jù)ARM對Cortex-M3內(nèi)核應用程序、數(shù)據(jù)存儲、片上外設、片外外設以及供應商定義等地址使用類型的粗略劃分,本設計在Cortex-M3處理器的4 GB尋址空間中實際使用的存儲空間地址設計如表1所示。
表1 SoC部分尋址空間使用情況
為了實現(xiàn)數(shù)據(jù)采集模塊的高速數(shù)據(jù)傳輸、微處理器對數(shù)據(jù)采集模塊的基本控制以及SoC系統(tǒng)與上位機的數(shù)據(jù)通信等要求,本研究通過IP復用技術對系統(tǒng)總線、存儲單元、數(shù)據(jù)采集模塊、外圍通信接口等模塊進行了設計,通過單個SoC芯片的設計替代了原有ASIC芯片和單片機的組合。本SoC系統(tǒng)相比于傳統(tǒng)的MEMS陀螺儀板級數(shù)據(jù)處理模式明顯的減少了組件數(shù)目、大幅度地縮減了數(shù)據(jù)處理單元所占用的板級空間,在滿足陀螺儀輸出信號的補償、存儲和通信需求的同時大大提升了系統(tǒng)的集成度。
數(shù)據(jù)采集模塊的主要由微電容檢測模塊和模數(shù)轉換器模塊組成,是MEMS智能傳感器采集外界信息的關鍵模塊。本設計選擇通過MEMS敏感結構將外界的變化轉變?yōu)槲㈦娙菪问降碾娦盘朳13],是由于電容式傳感器在應對復雜的溫度、濕度以及磁場環(huán)境的不敏感性可以提高陀螺儀的基礎測量精度,降低環(huán)境因素的干擾。微電容檢測模塊對檢測電容的大小進行測量,將其轉換為等效的電壓信號,模數(shù)轉換器模塊對模擬形式的電壓信號進行采樣、量化后轉換為數(shù)字信號[14],數(shù)據(jù)采集模塊良好的溫度特性和BCD工藝兼容性可以很好地與后續(xù)數(shù)字信號處理部分的電路兼容,符合SoC設計整體要求。
在SoC系統(tǒng)中,數(shù)據(jù)采集模塊作為自定義外設,其設計過程首先需要在Cortex-M3內(nèi)核的尋址空間中定義外設地址,本設計在Cortex-M3處理器用于片上外設的512 MB尋址空間中將0x4FFF0000~0x4FFF7FFF區(qū)域內(nèi)32 kB的地址空間設置為數(shù)據(jù)采集模塊外設寄存器的地址映射區(qū)域。為了實現(xiàn)微處理器主機對AHB總線從機的控制,需要微處理器通過地址譯碼器對自定義外設尋址空間生成總線選擇信號,根據(jù)具體地址對該地址上的外設寄存器進行讀寫操作,進而實現(xiàn)對自定義外設的控制[15]。
本設計對數(shù)據(jù)采集模塊的設計需要實現(xiàn)數(shù)據(jù)采集模塊與處理器模塊的高速數(shù)據(jù)傳輸以及微處理器對數(shù)據(jù)采集模塊的參數(shù)控制,因此本次數(shù)據(jù)采集模塊專用接口的設計需要設計專用總線接口與數(shù)據(jù)采集模塊的頂層端口一一對應,同時將Cortex-M3核內(nèi)部的嵌套中斷向量控制器(NVIC,nested vectored interrupt controller)模塊接口與外設輸出中斷信號接口相連接,使得微處理器可以對數(shù)據(jù)采集模塊的中斷請求做出響應并執(zhí)行相應的中斷服務程序(ISR,interrupt service routines)?;谝陨闲枨?,整個數(shù)據(jù)采集模塊專用接口的結構如圖4所示。
圖4 數(shù)據(jù)采集模塊專用接口設計
圖4中,左半部分主要為AHB總線與主設備輸入接口部分,HADDR信號經(jīng)過總線地址譯碼器選中數(shù)據(jù)采集模塊的控制寄存器,再通過AHB總線控制信號對數(shù)據(jù)采集模塊進行行為控制,如發(fā)出讀寫訪問、產(chǎn)生使能信號、傳遞中斷信號等。主機控制和數(shù)據(jù)傳輸過程按照AHB總線協(xié)議在片內(nèi)進行,可以降低信號傳輸過程中的丟包率,微處理器對數(shù)據(jù)采集過程的控制也更為靈活。
圖4中右半部分主要為從機對AHB總線傳輸?shù)姆答佇盘柡洼敵鰯?shù)據(jù)信號,HREADYOUT信號向主機反饋當前傳輸是否完成,高電平有效;HRESP信號則是判斷從機是否正常工作,當其為高電平時觸發(fā)從機中斷信號,中斷會傳遞給微處理器中的NVIC模塊進入對應中斷服務程序,微處理器將對數(shù)據(jù)采集模塊進行復位操作。數(shù)據(jù)采集模塊最終得到的數(shù)字形式MEMS陀螺儀輸出角速度信號將按照32位的數(shù)據(jù)格式通過HRDATA數(shù)據(jù)總線傳輸?shù)轿⑻幚砥髂K進行數(shù)據(jù)處理和存儲。
當MEMS陀螺儀正常工作時,微處理器模塊將不斷向數(shù)據(jù)采集模塊發(fā)送讀指令[16],即將控制信號寫入數(shù)據(jù)采集模塊對應的控制寄存器中,而陀螺儀所采集的陀螺角速度信號也將通過移位寄存器讀出到數(shù)據(jù)總線HRDATA,這一過程中的關鍵信號時序如圖5所示。
圖5 AHB總線從機數(shù)據(jù)讀取時序圖
在這一讀傳輸過程中采用了流水線的工作模式,在HWRITE信號確定了數(shù)據(jù)傳輸方向為總線從機到總線主機之后,每一個時鐘周期中在確定總線可以進行傳輸?shù)男盘朒READY高電平有效時從上一時鐘周期確定的地址中讀取一次數(shù)據(jù)[17]。每一次讀取的數(shù)據(jù)在放入處理器默認寄存器后,放入處理器專門放置數(shù)據(jù)采集模塊數(shù)據(jù)的存儲單元進行后續(xù)的信號處理和上位機傳輸工作。
SoC軟件部分的設計主要包括軟件開發(fā)環(huán)境的搭建和應用程序的開發(fā),其優(yōu)勢主要在于軟件開發(fā)成本較低,受芯片銷量影響很小,可以在其他設備上應用;軟件輔助設計工具較便宜;調(diào)試簡單,不需要考慮設計時序、功耗等問題。
本文是基于ARM公司的Cortex-M3內(nèi)核進行SoC的設計,因此使用ARMCortex微控制器軟件的接口標準(CMSIS,Cortex microcontroller software interface standard)進行軟件系統(tǒng)環(huán)境的搭建,通過標準化的函數(shù)定義簡化軟件環(huán)境搭建步驟,提高應用程序的可移植性[18]。CMSIS的定義主要分為內(nèi)核訪問層、設備外設訪問層和外設訪問函數(shù)三大部分,由于本設計硬件部分主要對MEMS陀螺儀的數(shù)據(jù)采集模塊與Cortex-M3內(nèi)核進行集成設計,因此相應部分軟件環(huán)境搭建主要通過CMSIS-Core對內(nèi)核的外設訪問函數(shù)進行標準化定義,對處理器內(nèi)部寄存器進行地址定義并建立統(tǒng)一的系統(tǒng)時鐘,其程序如圖6所示。
圖6 標準化外設和系統(tǒng)時鐘初始化函數(shù)
完成軟件環(huán)境的搭建之后,根據(jù)硬件電路對數(shù)據(jù)采集模塊的設計,在相應軟件部分對外設寄存器組函數(shù)進行分配設計,實現(xiàn)對數(shù)據(jù)采集模塊的軟件控制和數(shù)據(jù)讀取。為了驗證SoC軟硬件協(xié)同設計的效果,測試應用程序針對MEMS陀螺儀溫度漂移的特點進行溫度補償程序的設計。
本設計將分段線性插值法的軟件算法應用到SoC上進行對MEMS陀螺儀輸出角速度信號的溫度補償,首先通過變溫法采集MEMS陀螺儀在全溫度區(qū)間(-40~85 ℃)的零偏變化量,之后將陀螺的零偏特性曲線等比例的分為若干個單調(diào)區(qū)間,計算每個區(qū)間對應的溫補參數(shù)[19]。由于同一個陀螺具有較好的溫度曲線重復性,因此可以根據(jù)區(qū)間對應溫補參數(shù)在陀螺零偏-溫度曲線的每個單調(diào)區(qū)間內(nèi)分別進行線性插值補償,降低陀螺溫度漂移現(xiàn)象對陀螺輸出的影響。
基于MEMS陀螺儀的工作溫度分析,將溫度區(qū)間按△T平均分為n個區(qū)間,通過插值法計算各個區(qū)間端點的平均零偏變化量,在單個溫度區(qū)間內(nèi)建立陀螺零位輸出和溫度相關的線性模型,可得:
Ui=Ui0+Ui1Tij
(1)
式(1)中,Ui為第i個溫度區(qū)間的陀螺零位輸出;Tij為第i個溫度區(qū)間中的第j個溫度點;Ui0和Ui1為第i個溫度區(qū)間內(nèi)陀螺溫補參數(shù)。將全溫度區(qū)間采集到的MEMS陀螺儀的零偏數(shù)據(jù)通過MATLAB進行擬合,獲得n個溫度區(qū)間內(nèi)的陀螺溫補參數(shù),以表的形式嵌入到MEMS陀螺儀的軟件算法中。
不同于傳統(tǒng)的陀螺溫度補償模式的純硬件邏輯處理或者經(jīng)過低頻數(shù)據(jù)接口到板級PCB上進行數(shù)據(jù)的轉換和處理[20],本文所設計的SoC通過軟硬件相結合的模式實現(xiàn)陀螺輸出角速度信號的內(nèi)部溫度補償處理。通過軟件程序向數(shù)據(jù)采集模塊的控制寄存器寫入控制指令[21],將MEMS陀螺儀采集到的外界慣性信息從數(shù)據(jù)存儲寄存器發(fā)送到SoC內(nèi)部存儲單元,經(jīng)過分段線性插值溫度補償處理后整理成上位機所要求的數(shù)據(jù)格式后通過SPI接口實現(xiàn)上位機通信。
在設計電路的實現(xiàn)過程中,考慮到本SoC芯片中既有數(shù)字邏輯處理電路也有模擬電路,為了更好地發(fā)揮SoC芯片的綜合性能,選用0.18 μm BCD加工工藝對SoC電路進行設計并加工,通過對RTL級電路設計的邏輯綜合和物理設計,得到整個電路的版圖如圖7所示,版圖尺寸為3.885 mm×4 mm。
圖7 SoC版圖設計
將物理驗證后的二進制GDSII版圖文件交付到某芯片制造廠流片可得到所設計的SoC電路芯片,將SoC芯片與MEMS陀螺表頭進行金絲鍵合并封裝得到可測試的集成MEMS陀螺儀,相比于ASIC芯片和單片機組合的陀螺形式,有效地減小了陀螺儀的體積,豐富了陀螺儀的應用場景。為了對SoC的設計功能和性能進行驗證,選擇對陀螺儀的輸出溫度漂移誤差進行數(shù)字補償測試,通過SoC芯片對MEMS陀螺輸出信號進行溫度補償前后陀螺儀輸出的全溫零偏變化量的優(yōu)化效果來驗證SoC芯片的信號處理性能。
首先對沒有燒寫溫度補償程序的陀螺靜態(tài)溫度漂移情況進行測試,將待測陀螺靜置在溫箱中,設定溫箱先緩慢降溫至低溫段(-40 ℃)后在兩個小時內(nèi)勻速升溫至高溫段(85 ℃),保持高溫兩個小時后以與升溫時相同的速度降至低溫段并保持兩個小時完成一次溫度循環(huán),這一溫度循環(huán)在測試過程中連續(xù)進行。測試的初始溫度為室溫,當陀螺溫度穩(wěn)定后,從升溫過程開始對陀螺的輸出信號進行采集,獲得陀螺的輸出曲線如圖8所示。
圖8 溫補前陀螺輸出零偏曲線
根據(jù)陀螺輸出零偏曲線的起伏變化可以看出,該陀螺的零偏漂移量與外界溫度變化量大致呈現(xiàn)出正比態(tài)勢。為了更為直觀的表征出陀螺儀的輸出零偏漂移和外界溫度的關系,將溫度傳感器隨時間的輸出變化即實際測量溫度數(shù)據(jù)作為橫坐標,將MEMS陀螺儀全溫度區(qū)間的零偏變化量作為縱坐標,可以得到如圖9所示的陀螺零偏變化量隨溫度變化的試驗曲線。
圖9 溫補前陀螺零偏-溫度曲線
溫度補償前的陀螺零偏-溫度曲線可以近似認為是一條傾斜的直線,具有較好的線性度,因此適合進行線性擬合,當將其分為若干個相同大小的溫度區(qū)間,單個溫度區(qū)間的線性度將更為突出,溫度補償處理的效果也會更好。
測試過程中采用分段線性插值法對MEMS陀螺儀在全溫度區(qū)間的零偏溫度漂移進行分段線性擬合,根據(jù)SoC性能驗證需要及該陀螺溫補前零偏-溫度曲線良好線性度的實際情況,將溫度按照每10 ℃為一個溫度區(qū)間進行劃分,根據(jù)式(1)計算可以獲得各溫度區(qū)間的溫補參數(shù),該陀螺儀的具體溫補參數(shù)如表2所示。
為了驗證SoC在實際工作中對MEMS陀螺儀性能的提升,將寫入溫補參數(shù)的陀螺放入溫箱中,設定溫箱固定溫度循環(huán)流程運行,采集溫度補償后的陀螺儀輸出,測試補償后陀螺的全溫度區(qū)間輸出特性。集成有SoC的MEMS陀螺儀進行溫度補償后陀螺零偏的改善效果如圖10所示。將同一陀螺在相同溫度變化情況下的測試結果進行對比可得,溫度補償前MEMS陀螺儀的全溫度區(qū)間零偏變化量為3.147°/s,溫度補償后全溫度區(qū)間零偏變化量降低到0.035°/s,SoC對MEMS陀螺儀輸出角速度信號的補償效果明顯,有效提升了陀螺儀的性能。
表2 陀螺零偏溫度補償參數(shù)
圖10 溫補后MEMS陀螺儀全溫零偏
本文針對傳統(tǒng)MEMS陀螺儀ASIC和單片機組合形式的數(shù)據(jù)處理模式,設計了一種應用于MEMS陀螺儀的SoC,采用0.18 μm BCD加工工藝對電路進行設計和制作,并配合自主設計的MEMS敏感結構進行測試。本SoC以ARMCortex-M3為基礎,對SoC的數(shù)據(jù)采集模塊接口進行了集成設計,將陀螺儀所采集的慣性數(shù)據(jù)直接通過AHB總線傳輸?shù)轿⑻幚砥髦羞M行處理和存儲,實現(xiàn)了MEMS傳感器的小型化、智能化、集成化和高精度設計。流片后的SoC芯片測試結果顯示,MEMS陀螺儀經(jīng)過SoC的分段線性插值法溫度補償處理后,全溫區(qū)溫度漂移減少了兩個量級,大幅提高了MEMS陀螺儀的溫度特性,證明了專用SoC芯片設計的可行性和有效性。本SoC對于應用于陀螺的信號濾波處理及上位機通信等方面的研究開發(fā)尚有不足,接下來對于外圍通信協(xié)議的開發(fā)以及數(shù)據(jù)采集模塊的精確控制方向進行研究,進一步地提升MEMS陀螺儀的性能。