劉昊哲,任 臣,王 曉,楊擁軍
(中國電子科技集團 第13研究所,石家莊 050051)
MEMS陀螺儀相對于傳統陀螺儀具有體積小、智能化、功耗低、成本低以及可批量生產的優勢,在汽車電子、消費電子和軌道交通等領域廣泛應用[1]。隨著MEMS陀螺儀設計的不斷優化和完善,成為微型慣性系統的核心和導航系統進一步發展的關鍵器件,正逐步取代傳統陀螺儀的地位。
MEMS陀螺儀的性能指標包括量程、零偏穩定性和速率精度等[2],其中零偏穩定性是對MEMS陀螺儀的精度起著重大影響,是MEMS陀螺儀性能優劣的重要評價標準。現有的MEMS陀螺儀產品一般為MEMS敏感結構、專用集成電路(ASIC,application specific integrated circuit)硬件邏輯處理電路、印刷電路板(PCB,printed circuit board)供電電路及通用微控制器模塊組成的三級架構。PCB板上的微控制器模塊負責對經過C/V、ADC和多級濾波器處理后的信號的補償和存儲[3],因此從ASIC芯片到PCB板的數據傳輸過程需要滿足低延遲、低噪聲、低抖動以及高速率的要求。當前主要采用的方式為串行外圍設備接口(SPI,serial peripheral interface)協議的信號傳輸,對陀螺輸出的角速度信號存在著一定的失真[4],且選擇通用的微控制器對陀螺信號進行處理和存儲難免存在微控制器數據處理能力和存儲空間大小與實際需求不匹配,無法實現陀螺儀的最優性能或產生一定的資源浪費現象。
因此,為了解決MEMS陀螺儀集成度不高、制造步驟繁瑣、產品體積偏大等問題,本文提出一種新的設計思路來解決這些問題。通過為MEMS陀螺儀設計專用的SoC,依據陀螺儀對微處理器數據處理能力、存儲模塊大小、數據傳輸速率和位數的需求對SoC的組成模塊進行定制設計[5],在提升陀螺儀的性能的同時豐富陀螺儀的應用場景。本文基于ARM的Cortex-M3內核針對應用于MEMS陀螺儀的SoC進行了集成設計,通過軟硬件協同設計的方式,將SoC芯片所需功能的實現方式劃分為軟件實現和硬件實現兩部分[6],對MEMS陀螺儀數據實時帶寬有限、體積較大、存在處理資源浪費等問題進行解決。
本文的研究對象為硅MEMS振動式陀螺,其敏感結構采用雙質量框架,選用靜電驅動、變間距電容檢測工作方式,基于體硅SOI和圓片級真空封裝工藝加工而成。MEMS陀螺儀的檢測電路原理如圖1所示,驅動環路采用四階帶通Sigma-Delta數字閉環結構、檢測通路選用開環檢測的工作方式[7]。

圖1 MEMS陀螺儀基本工作原理
圖1中,C/V單元將外界加速度導致的陀螺儀敏感單元所產生的差分電容的變化轉換成模擬電壓信號。ADC模塊采用斬波(CS)技術和相關雙采樣(CDS)技術,有效抑制了低頻噪聲和中頻段噪聲,更高精度的完成模擬量到數字量的轉換。BPF模塊為帶通濾波器,有效濾除干擾信號。AAC為自動增益控制模塊,實現驅動振幅穩定控制。DAC模塊完成對MEMS結構的驅動反饋,實現驅動閉環,使得MEMS結構保持諧振。檢測通路為開環結構,由C/V、ADC、BPF和延時相位模塊組成。φ為檢測通路的延時相位,為檢測信號,為驅動信號。LPF模塊為低通濾波器,有效濾除干擾信號。經過對驅動信號和檢測信號的相干解調并經過低通濾波后得到陀螺儀角速度輸出信號。
由于MEMS陀螺芯片的主要制作材料單晶硅對溫度較為敏感,其機械和物理參數如楊氏模量和應力受溫度影響較大,進而對陀螺的諧振頻率和系統剛度產生影響,導致陀螺產生輸出溫度漂移。另一方面,MEMS陀螺生產過程中經過了刻蝕和高溫鍵合等工藝,在結構中不可避免的產生了殘余應力;MEMS陀螺封裝過程中,由于陶瓷管殼、粘結膠和MEMS芯片之間的熱膨脹系數的不一致,同樣會產生應力,導致陀螺溫度漂移的出現[8]。綜上可知MEMS陀螺儀不可以避免的會出現溫度漂移,傳統的解決方案為在PCB板級供電電路上連接一個通用的微控制器對陀螺溫漂進行補償,同時將陀螺儀輸出數據進行存儲并打包發送到上位機,產品整體尺寸達到22 mm×20 mm,如圖2所示。

圖2 組合通用單片機的陀螺儀
然而,在PCB上進行MEMS陀螺儀數據處理需要使用SPI通信協議將ASIC上的數據傳輸到片外微控制器,這一過程需要在不斷采集新的數據的同時將數據進行串行傳輸具有一定的風險且向上位機傳輸需要再次進行串行同步傳輸,影響陀螺穩定性的同時限制了數據處理速率,直接影響MEMS陀螺儀的性能。因此本文提出設計MEMS陀螺儀專用SoC芯片推動MEMS陀螺儀的集成化和智能化,來解決傳統ASIC和單片機組合方式存在的固有問題,實現MEMS陀螺儀的智能高精度控制。
本文對應用于MEMS陀螺儀的SoC進行了設計,其中硬件電路部分的設計優勢在于對特定功能實現速度快,可以達到十倍、百倍的速度提升;降低了對處理器復雜度的要求,簡化系統設計;減少相應的軟件程序設計時間[9]。SoC設計過程考慮到MEMS陀螺儀使用過程中低功耗和高速處理復雜任務的需求,選擇Cortex-M3內核作為核心處理單元[10],SoC運行過程中需要實現對數據采集模塊所采集數據進行打包、存儲并設計軟件算法進行補償、濾波,以提高MEMS陀螺儀的數據精度,因此使用高級微控制器總線結構(AMBA,advanced microcontroller bus architecture)進行SoC的架構設計[11]。不同于通用的微控制器,集成設計的SoC中的微控制器模塊結構選用由設計需求決定,例如本設計中考慮到其主要服務于內部模塊信息的處理,因此未添加通用輸入輸出接口模塊(GPIO,general-purpose input/output),節約了芯片的面積,使得芯片結構更為合理。SoC整體架構如圖3所示,SoC系統主要由Cortex-M3微處理器、SRAM、ROM、數據采集模塊、系統時鐘模塊以及外圍通信接口組成。

圖3 SoC整體架構
為了解決傳統裝配方式對MEMS陀螺儀ASIC輸出處理不夠及時的問題,本文提出了將數據采集模塊直接作為高性能總線(AHB,advanced high-performance bus)的從機進行集成設計的SoC總線架構,通過微電容檢測和模數轉換器的組合設計,將外界慣性信息轉換為數字形式的電信號后,經過AHB總線通信輸入微處理器內核進行數字信號處理和存儲操作。不同于傳統的SPI串行數據傳輸模式,本設計中數據采集模塊直接通過AHB總線接口進行32位并行數據傳輸的模式在減小數據丟包風險的同時有效提高了數據傳輸效率。
在SoC的設計中,需要對數據采集模塊、數據存儲單元、外圍通信接口等外設進行尋址訪問,外圍設備所上傳的數據也需要暫時存放在指定的存儲單元中,所設計的軟件程序同樣需要在Cortex-M3內核的尋址空間中搭載存儲單元進行存儲[12]。根據ARM對Cortex-M3內核應用程序、數據存儲、片上外設、片外外設以及供應商定義等地址使用類型的粗略劃分,本設計在Cortex-M3處理器的4 GB尋址空間中實際使用的存儲空間地址設計如表1所示。

表1 SoC部分尋址空間使用情況
為了實現數據采集模塊的高速數據傳輸、微處理器對數據采集模塊的基本控制以及SoC系統與上位機的數據通信等要求,本研究通過IP復用技術對系統總線、存儲單元、數據采集模塊、外圍通信接口等模塊進行了設計,通過單個SoC芯片的設計替代了原有ASIC芯片和單片機的組合。本SoC系統相比于傳統的MEMS陀螺儀板級數據處理模式明顯的減少了組件數目、大幅度地縮減了數據處理單元所占用的板級空間,在滿足陀螺儀輸出信號的補償、存儲和通信需求的同時大大提升了系統的集成度。
數據采集模塊的主要由微電容檢測模塊和模數轉換器模塊組成,是MEMS智能傳感器采集外界信息的關鍵模塊。本設計選擇通過MEMS敏感結構將外界的變化轉變為微電容形式的電信號[13],是由于電容式傳感器在應對復雜的溫度、濕度以及磁場環境的不敏感性可以提高陀螺儀的基礎測量精度,降低環境因素的干擾。微電容檢測模塊對檢測電容的大小進行測量,將其轉換為等效的電壓信號,模數轉換器模塊對模擬形式的電壓信號進行采樣、量化后轉換為數字信號[14],數據采集模塊良好的溫度特性和BCD工藝兼容性可以很好地與后續數字信號處理部分的電路兼容,符合SoC設計整體要求。
在SoC系統中,數據采集模塊作為自定義外設,其設計過程首先需要在Cortex-M3內核的尋址空間中定義外設地址,本設計在Cortex-M3處理器用于片上外設的512 MB尋址空間中將0x4FFF0000~0x4FFF7FFF區域內32 kB的地址空間設置為數據采集模塊外設寄存器的地址映射區域。為了實現微處理器主機對AHB總線從機的控制,需要微處理器通過地址譯碼器對自定義外設尋址空間生成總線選擇信號,根據具體地址對該地址上的外設寄存器進行讀寫操作,進而實現對自定義外設的控制[15]。
本設計對數據采集模塊的設計需要實現數據采集模塊與處理器模塊的高速數據傳輸以及微處理器對數據采集模塊的參數控制,因此本次數據采集模塊專用接口的設計需要設計專用總線接口與數據采集模塊的頂層端口一一對應,同時將Cortex-M3核內部的嵌套中斷向量控制器(NVIC,nested vectored interrupt controller)模塊接口與外設輸出中斷信號接口相連接,使得微處理器可以對數據采集模塊的中斷請求做出響應并執行相應的中斷服務程序(ISR,interrupt service routines)。基于以上需求,整個數據采集模塊專用接口的結構如圖4所示。

圖4 數據采集模塊專用接口設計
圖4中,左半部分主要為AHB總線與主設備輸入接口部分,HADDR信號經過總線地址譯碼器選中數據采集模塊的控制寄存器,再通過AHB總線控制信號對數據采集模塊進行行為控制,如發出讀寫訪問、產生使能信號、傳遞中斷信號等。主機控制和數據傳輸過程按照AHB總線協議在片內進行,可以降低信號傳輸過程中的丟包率,微處理器對數據采集過程的控制也更為靈活。
圖4中右半部分主要為從機對AHB總線傳輸的反饋信號和輸出數據信號,HREADYOUT信號向主機反饋當前傳輸是否完成,高電平有效;HRESP信號則是判斷從機是否正常工作,當其為高電平時觸發從機中斷信號,中斷會傳遞給微處理器中的NVIC模塊進入對應中斷服務程序,微處理器將對數據采集模塊進行復位操作。數據采集模塊最終得到的數字形式MEMS陀螺儀輸出角速度信號將按照32位的數據格式通過HRDATA數據總線傳輸到微處理器模塊進行數據處理和存儲。
當MEMS陀螺儀正常工作時,微處理器模塊將不斷向數據采集模塊發送讀指令[16],即將控制信號寫入數據采集模塊對應的控制寄存器中,而陀螺儀所采集的陀螺角速度信號也將通過移位寄存器讀出到數據總線HRDATA,這一過程中的關鍵信號時序如圖5所示。

圖5 AHB總線從機數據讀取時序圖
在這一讀傳輸過程中采用了流水線的工作模式,在HWRITE信號確定了數據傳輸方向為總線從機到總線主機之后,每一個時鐘周期中在確定總線可以進行傳輸的信號HREADY高電平有效時從上一時鐘周期確定的地址中讀取一次數據[17]。每一次讀取的數據在放入處理器默認寄存器后,放入處理器專門放置數據采集模塊數據的存儲單元進行后續的信號處理和上位機傳輸工作。
SoC軟件部分的設計主要包括軟件開發環境的搭建和應用程序的開發,其優勢主要在于軟件開發成本較低,受芯片銷量影響很小,可以在其他設備上應用;軟件輔助設計工具較便宜;調試簡單,不需要考慮設計時序、功耗等問題。
本文是基于ARM公司的Cortex-M3內核進行SoC的設計,因此使用ARMCortex微控制器軟件的接口標準(CMSIS,Cortex microcontroller software interface standard)進行軟件系統環境的搭建,通過標準化的函數定義簡化軟件環境搭建步驟,提高應用程序的可移植性[18]。CMSIS的定義主要分為內核訪問層、設備外設訪問層和外設訪問函數三大部分,由于本設計硬件部分主要對MEMS陀螺儀的數據采集模塊與Cortex-M3內核進行集成設計,因此相應部分軟件環境搭建主要通過CMSIS-Core對內核的外設訪問函數進行標準化定義,對處理器內部寄存器進行地址定義并建立統一的系統時鐘,其程序如圖6所示。

圖6 標準化外設和系統時鐘初始化函數
完成軟件環境的搭建之后,根據硬件電路對數據采集模塊的設計,在相應軟件部分對外設寄存器組函數進行分配設計,實現對數據采集模塊的軟件控制和數據讀取。為了驗證SoC軟硬件協同設計的效果,測試應用程序針對MEMS陀螺儀溫度漂移的特點進行溫度補償程序的設計。
本設計將分段線性插值法的軟件算法應用到SoC上進行對MEMS陀螺儀輸出角速度信號的溫度補償,首先通過變溫法采集MEMS陀螺儀在全溫度區間(-40~85 ℃)的零偏變化量,之后將陀螺的零偏特性曲線等比例的分為若干個單調區間,計算每個區間對應的溫補參數[19]。由于同一個陀螺具有較好的溫度曲線重復性,因此可以根據區間對應溫補參數在陀螺零偏-溫度曲線的每個單調區間內分別進行線性插值補償,降低陀螺溫度漂移現象對陀螺輸出的影響。
基于MEMS陀螺儀的工作溫度分析,將溫度區間按△T平均分為n個區間,通過插值法計算各個區間端點的平均零偏變化量,在單個溫度區間內建立陀螺零位輸出和溫度相關的線性模型,可得:
Ui=Ui0+Ui1Tij
(1)
式(1)中,Ui為第i個溫度區間的陀螺零位輸出;Tij為第i個溫度區間中的第j個溫度點;Ui0和Ui1為第i個溫度區間內陀螺溫補參數。將全溫度區間采集到的MEMS陀螺儀的零偏數據通過MATLAB進行擬合,獲得n個溫度區間內的陀螺溫補參數,以表的形式嵌入到MEMS陀螺儀的軟件算法中。
不同于傳統的陀螺溫度補償模式的純硬件邏輯處理或者經過低頻數據接口到板級PCB上進行數據的轉換和處理[20],本文所設計的SoC通過軟硬件相結合的模式實現陀螺輸出角速度信號的內部溫度補償處理。通過軟件程序向數據采集模塊的控制寄存器寫入控制指令[21],將MEMS陀螺儀采集到的外界慣性信息從數據存儲寄存器發送到SoC內部存儲單元,經過分段線性插值溫度補償處理后整理成上位機所要求的數據格式后通過SPI接口實現上位機通信。
在設計電路的實現過程中,考慮到本SoC芯片中既有數字邏輯處理電路也有模擬電路,為了更好地發揮SoC芯片的綜合性能,選用0.18 μm BCD加工工藝對SoC電路進行設計并加工,通過對RTL級電路設計的邏輯綜合和物理設計,得到整個電路的版圖如圖7所示,版圖尺寸為3.885 mm×4 mm。

圖7 SoC版圖設計
將物理驗證后的二進制GDSII版圖文件交付到某芯片制造廠流片可得到所設計的SoC電路芯片,將SoC芯片與MEMS陀螺表頭進行金絲鍵合并封裝得到可測試的集成MEMS陀螺儀,相比于ASIC芯片和單片機組合的陀螺形式,有效地減小了陀螺儀的體積,豐富了陀螺儀的應用場景。為了對SoC的設計功能和性能進行驗證,選擇對陀螺儀的輸出溫度漂移誤差進行數字補償測試,通過SoC芯片對MEMS陀螺輸出信號進行溫度補償前后陀螺儀輸出的全溫零偏變化量的優化效果來驗證SoC芯片的信號處理性能。
首先對沒有燒寫溫度補償程序的陀螺靜態溫度漂移情況進行測試,將待測陀螺靜置在溫箱中,設定溫箱先緩慢降溫至低溫段(-40 ℃)后在兩個小時內勻速升溫至高溫段(85 ℃),保持高溫兩個小時后以與升溫時相同的速度降至低溫段并保持兩個小時完成一次溫度循環,這一溫度循環在測試過程中連續進行。測試的初始溫度為室溫,當陀螺溫度穩定后,從升溫過程開始對陀螺的輸出信號進行采集,獲得陀螺的輸出曲線如圖8所示。

圖8 溫補前陀螺輸出零偏曲線
根據陀螺輸出零偏曲線的起伏變化可以看出,該陀螺的零偏漂移量與外界溫度變化量大致呈現出正比態勢。為了更為直觀的表征出陀螺儀的輸出零偏漂移和外界溫度的關系,將溫度傳感器隨時間的輸出變化即實際測量溫度數據作為橫坐標,將MEMS陀螺儀全溫度區間的零偏變化量作為縱坐標,可以得到如圖9所示的陀螺零偏變化量隨溫度變化的試驗曲線。

圖9 溫補前陀螺零偏-溫度曲線
溫度補償前的陀螺零偏-溫度曲線可以近似認為是一條傾斜的直線,具有較好的線性度,因此適合進行線性擬合,當將其分為若干個相同大小的溫度區間,單個溫度區間的線性度將更為突出,溫度補償處理的效果也會更好。
測試過程中采用分段線性插值法對MEMS陀螺儀在全溫度區間的零偏溫度漂移進行分段線性擬合,根據SoC性能驗證需要及該陀螺溫補前零偏-溫度曲線良好線性度的實際情況,將溫度按照每10 ℃為一個溫度區間進行劃分,根據式(1)計算可以獲得各溫度區間的溫補參數,該陀螺儀的具體溫補參數如表2所示。
為了驗證SoC在實際工作中對MEMS陀螺儀性能的提升,將寫入溫補參數的陀螺放入溫箱中,設定溫箱固定溫度循環流程運行,采集溫度補償后的陀螺儀輸出,測試補償后陀螺的全溫度區間輸出特性。集成有SoC的MEMS陀螺儀進行溫度補償后陀螺零偏的改善效果如圖10所示。將同一陀螺在相同溫度變化情況下的測試結果進行對比可得,溫度補償前MEMS陀螺儀的全溫度區間零偏變化量為3.147°/s,溫度補償后全溫度區間零偏變化量降低到0.035°/s,SoC對MEMS陀螺儀輸出角速度信號的補償效果明顯,有效提升了陀螺儀的性能。

表2 陀螺零偏溫度補償參數

圖10 溫補后MEMS陀螺儀全溫零偏
本文針對傳統MEMS陀螺儀ASIC和單片機組合形式的數據處理模式,設計了一種應用于MEMS陀螺儀的SoC,采用0.18 μm BCD加工工藝對電路進行設計和制作,并配合自主設計的MEMS敏感結構進行測試。本SoC以ARMCortex-M3為基礎,對SoC的數據采集模塊接口進行了集成設計,將陀螺儀所采集的慣性數據直接通過AHB總線傳輸到微處理器中進行處理和存儲,實現了MEMS傳感器的小型化、智能化、集成化和高精度設計。流片后的SoC芯片測試結果顯示,MEMS陀螺儀經過SoC的分段線性插值法溫度補償處理后,全溫區溫度漂移減少了兩個量級,大幅提高了MEMS陀螺儀的溫度特性,證明了專用SoC芯片設計的可行性和有效性。本SoC對于應用于陀螺的信號濾波處理及上位機通信等方面的研究開發尚有不足,接下來對于外圍通信協議的開發以及數據采集模塊的精確控制方向進行研究,進一步地提升MEMS陀螺儀的性能。