孫倩華,孔振民,高宗,李晨陽
(北京航天長征飛行器研究所,北京100076)
孫倩華(工程師),研究方向為硬目標靈巧引信設計。
引 言
存儲測試技術是在特殊環境下記錄運動物體參數行之有效的方法,先將測試數據存入存儲器,待裝置回收后通過特定接口與上位機進行通信,還原數據信息。在諸多領域的測試中,對數據采集存儲系統的實時性和功耗提出了更高的要求,隨著半導體技術的發展,各種技術的進步使得高速度、低功耗的存儲測試系統能夠實現。
本系統選擇ST 公司超低功耗的基于ARM Cortex-M3四核的處理器STM32F103C8T6作為核心控制元件,采取內部A/D 轉換器與鐵電存儲器結合的方法,實現壓阻式加速度傳感器測試數據的采集、存儲,并利用Lab-View 開發平臺設計上位機應用軟件實現測試數據的USB回讀及處理。
存儲測試系統由電源管理模塊、調理模塊、外部晶振、微控制器、存儲模塊、上位機模塊以及接口電路組成,如圖1所示。

圖1 系統原理框圖
系統采用單電池電源供電,電路內部經過多路電源管理單元的穩壓處理后為系統各個模塊供電,實現多分支電源網絡管理,以保證系統良好的抗干擾性能。系統的控制核心為STM32F103C8T6,傳感器信號經調理模塊進入微控制器的12位μs級的A/D 轉換器后,經過處理和格式轉換后循環記錄在鐵電存儲器FM25V10內,一旦傳感器感受的加速度值達到設定閾值,則系統將被觸發,并會自動持續記錄一段時間,裝置回收后則利用LabView 上位機應用軟件實現測試數據的USB回讀及處理。
由于傳感器測量的信號十分微弱,需要經過適當的放大、濾波等修正后才能夠進行一系列處理。信號調理電路是存儲測試系統中非常關鍵的一個部分,它在數據采集存儲之前對傳感器輸出信號進行調理,其性能的優劣直接決定了系統的性能與可靠性。信號調理電路主要由4部分串聯組成:隔離放大、交流耦合、電壓跟隨、低通濾波。
2.1.1 隔離放大
在存儲測試系統中,不合適的接地是造成測量問題的普遍原因,必須對信號進行電氣隔離以防止這些問題的發生。隔離電路能夠打破接地環路,避免產生高幅值共模電壓。
本設計選用通用的、雙端口的變壓器耦合隔離放大器AD202作為主放大器件。作為一種符合工業標準的隔離放大器,AD202能夠提供一整套隔離功能,包括信號隔離和電源隔離,且封裝緊湊,有利于實現產品的小型化。
圖2為隔離放大電路原理圖,R1和R2的配比可實現衰減功能,R6可實現比例的精確調節,R3、R4和R5實現了調零功能。

圖2 隔離放大部分電路原理圖
2.1.2 交流耦合
為了消除加速度信號中直流分量的影響,實現交流耦合,利用電容的“隔直通交”的特性去除信號里的直流分量,而對純交流信號沒有影響。因此,本設計在隔離放大電路之后,加入了一級交流耦合。
2.1.3 電壓跟隨
傳感器信號在交流耦合之后,串聯一級電壓跟隨,可以起到緩沖、隔離的作用。電壓跟隨電路具有高輸入阻抗、低輸出阻抗的特點,可以使后級放大電路工作更穩定,如圖3所示。

圖3 電壓跟隨電路原理圖
2.1.4 低通濾波
由于測試環境中不可避免地存在著各種干擾和噪聲,如果傳感器信號線引入外界干擾,將造成進入測試系統的信號摻雜有一定的噪聲,嚴重的甚至會影響測試的真實性。因此,需要使用濾波器對信號進行抗混疊濾波,以保證信號的正確性、提高系統信噪比。
系統使用的二階壓控電壓源低通濾波電路因性能穩定、增益易調節,已廣泛應用于測試系統中,此系統也采用此型濾波電路。電路設計如圖4所示。

圖4 低通濾波部分電路原理圖
STM32F103處理器采用ST 公司獨有的兩大節能技術(130nm 專用低泄漏電流制造工藝和優化的節能架構),使其成為要求高性能、低成本、低功耗的嵌入式系統的良好選擇。該設計利用其自帶的12位μs級的A/D 轉換器、SPI通信接口和USB2.0全速接口,實現傳感器信號的采集、存儲和回讀分析。
本系統選用1 Mb鐵電存儲器FM25V10(128K×8位),每個加速度數據占用2個字節,可供存儲65 536個數據。系統觸發前,存儲器保持循環記錄,存儲的內容不斷被擦除改寫。當記錄數據達到觸發閾值時,測試系統觸發,延時計數器開始計數,數據繼續記錄至延時計數器到時。觸發點前后的數據長度可根據設計要求確定,計數結束后地址發生器停止工作,加速度信號得以存儲。記錄完畢后進入休眠狀態,等待讀數和擦除。負延時功能可以將觸發前的一段信息有效保存,從而得到完整的加速度曲線,以保證數據的完整性。
系統利用STM32F103自帶的USB2.0全速接口及其固件驅動程序,實現從存儲器向PC傳送數據和設置存儲參數的功能。STM32F10xxxUSB 固件驅動程序庫是ST公司專為STM32F10xxx系列ARM 微控制器提供的固件驅動程序庫,其主要用途是利用STM32F10xxx系列微控制器中的USB宏單元來簡化應用開發。
該部分軟件設計包括3個部分:固件驅動程序、USB設備驅動程序和主機應用程序。
3.2.1 固件驅動程序設計
固件驅動程序(又稱單片機程序)是指固化到MCU模塊內的軟件。固件程序采用模塊化設計,主要模塊包括:數據采集存儲模塊和數據通信模塊兩大部分。模塊化設計的優點是可靠性高、可讀性好、軟件改動簡單。
USB設備在上電之后需要首先完成系統時鐘配置及片內外設的初始化操作。設備初始化完畢后,數據回讀命令的接收、解析及數據傳輸的所有操作均在中斷服務程序中完成。定時器3 為節拍發生器,其中斷用于定時觸發A/D轉換器采樣與轉換。DMA 通道1產生中斷表明,可以將存儲器中的數據打包并通過USB發送。
USB中斷較為復雜,是固件驅動程序設計的核心部分,包括枚舉的整個過程,以及除枚舉以外所有與主機的命令、數據交互過程??刂泼钪饕ú蓸宇l率的設定、負延時時間的設定、啟動數據回讀等。USB設備總計使用了3個端點,分別為端點0、端點1和端點3。端點0為USB默認的控制傳輸端點,供設備枚舉初始化時使用;端點1和端點3均為批量傳輸端點,端點1方向為輸入,用來接收PC 的控制指令;端點3的方向為輸出,用來向PC機發送數據包。
系統固件程序流程如圖5所示。

圖5 固件程序流程圖
3.2.2 USB設備驅動程序設計
USB設備驅動程序介于USB硬件與數據采集系統應用程序之間,為它們之間的通信提供橋梁。USB 驅動程序使用DriverStudio中的Driver-works2.7編寫。Driver-Works提 供 了3 個 函 數 類 即KUs-bLowerDevice、KUsbInterface和KUsbPipe 類,用于實現USB 設備操作。KUsbLowerDevice類用于邏輯設備的編程,KUsbInterface類用于接口的編程,KUsbPipe類用于管道的編程。
本設計使用Driverworks自帶的DriverWizard生成驅動程序框架和Read、Write函數,在DeviceControl函數中添加用戶定義的設備控制程序,完成用戶自定義的功能。驅動程序編寫完畢后,會編譯生成后綴為“.inf”和“.sys”兩個文件。.inf文件是系統用來查找適合硬件的驅動程序的向導文件,當Windows發現新的設備時(比如系統啟動時、在安裝熱插拔設備時或者從控制面板安裝新設備時),就調用Windows的“添加新設備向導”執行。這個向導掃描所有可用的.inf文件,找到合適的驅動程序。
3.2.3 主機應用程序設計
應用服務程序直接面向用戶,是控制數據存儲軟件的最上層,不僅提供與用戶交互的界面,而且能通過發送各種控制命令來控制存儲模塊的工作。在Windows中,LabView 實現與WDM 的通信過程是:先用CreateFile函數打開設備,然后用Devi-ceIOControl與WDM 進行通信,包括從WDM 中讀數據和寫數據給WDM,也可以用ReadFile從WDM 中讀數據或用WriteFile 寫數據給WDM。當應用程序退出時,用CloseHandle關閉設備。其軟件設計流程如圖6所示。

圖6 應用程序流程圖
圖7是本測試系統所測得的試驗數據波形圖,該曲線所測的是某彈丸在火炮膛內的加速度曲線。經過數據分析,膛內運行時間、膛內運行距離、膛內以及炮口 72擾動過載均與實際相符。

圖7 測試數據波形圖
經過試驗論證,本測試系統在誤差允許的范圍內可以達到測量精度要求,從而驗證了本測試系統具有較強的應用性。
結 語
存儲測試系統是軟硬件緊密結合的設備,為了提高實時性并降低功耗,需要設計者盡量精簡系統內核,只保留和系統功能緊密相關的軟硬件,利用最低的資源實現最適當的功能。本文設計的存儲測試系統,使STM32處理器的優點得到了有效的發揮。對于本測試系統,可用環氧樹脂灌封材料將電路灌封在侵徹類引信內,從而獲取引信的侵徹全程加速度數據,對侵徹類引信的研制具有重要意義。
[1]路永坤.基于USB 接口的數據采集模塊的設計與實現[J].自動化儀表,2005,26(2):35-37.
[2]STMicroelectronics.UM0424 user manual STM32F10xxx USB developmentkit,2008.
[3]張文棟.存儲測試系統的設計理論及其應用[M].北京:高等教育出版社,2002.
[4]楊樂平,李海濤,趙勇,等.LabVIEW 高級程序設計[M].北京:清華大學出版社,2003.