孫倩華,孔振民,高宗,李晨陽
(北京航天長征飛行器研究所,北京100076)
孫倩華(工程師),研究方向?yàn)橛材繕?biāo)靈巧引信設(shè)計(jì)。
引 言
存儲(chǔ)測試技術(shù)是在特殊環(huán)境下記錄運(yùn)動(dòng)物體參數(shù)行之有效的方法,先將測試數(shù)據(jù)存入存儲(chǔ)器,待裝置回收后通過特定接口與上位機(jī)進(jìn)行通信,還原數(shù)據(jù)信息。在諸多領(lǐng)域的測試中,對(duì)數(shù)據(jù)采集存儲(chǔ)系統(tǒng)的實(shí)時(shí)性和功耗提出了更高的要求,隨著半導(dǎo)體技術(shù)的發(fā)展,各種技術(shù)的進(jìn)步使得高速度、低功耗的存儲(chǔ)測試系統(tǒng)能夠?qū)崿F(xiàn)。
本系統(tǒng)選擇ST 公司超低功耗的基于ARM Cortex-M3四核的處理器STM32F103C8T6作為核心控制元件,采取內(nèi)部A/D 轉(zhuǎn)換器與鐵電存儲(chǔ)器結(jié)合的方法,實(shí)現(xiàn)壓阻式加速度傳感器測試數(shù)據(jù)的采集、存儲(chǔ),并利用Lab-View 開發(fā)平臺(tái)設(shè)計(jì)上位機(jī)應(yīng)用軟件實(shí)現(xiàn)測試數(shù)據(jù)的USB回讀及處理。
存儲(chǔ)測試系統(tǒng)由電源管理模塊、調(diào)理模塊、外部晶振、微控制器、存儲(chǔ)模塊、上位機(jī)模塊以及接口電路組成,如圖1所示。
圖1 系統(tǒng)原理框圖
系統(tǒng)采用單電池電源供電,電路內(nèi)部經(jīng)過多路電源管理單元的穩(wěn)壓處理后為系統(tǒng)各個(gè)模塊供電,實(shí)現(xiàn)多分支電源網(wǎng)絡(luò)管理,以保證系統(tǒng)良好的抗干擾性能。系統(tǒng)的控制核心為STM32F103C8T6,傳感器信號(hào)經(jīng)調(diào)理模塊進(jìn)入微控制器的12位μs級(jí)的A/D 轉(zhuǎn)換器后,經(jīng)過處理和格式轉(zhuǎn)換后循環(huán)記錄在鐵電存儲(chǔ)器FM25V10內(nèi),一旦傳感器感受的加速度值達(dá)到設(shè)定閾值,則系統(tǒng)將被觸發(fā),并會(huì)自動(dòng)持續(xù)記錄一段時(shí)間,裝置回收后則利用LabView 上位機(jī)應(yīng)用軟件實(shí)現(xiàn)測試數(shù)據(jù)的USB回讀及處理。
由于傳感器測量的信號(hào)十分微弱,需要經(jīng)過適當(dāng)?shù)姆糯蟆V波等修正后才能夠進(jìn)行一系列處理。信號(hào)調(diào)理電路是存儲(chǔ)測試系統(tǒng)中非常關(guān)鍵的一個(gè)部分,它在數(shù)據(jù)采集存儲(chǔ)之前對(duì)傳感器輸出信號(hào)進(jìn)行調(diào)理,其性能的優(yōu)劣直接決定了系統(tǒng)的性能與可靠性。信號(hào)調(diào)理電路主要由4部分串聯(lián)組成:隔離放大、交流耦合、電壓跟隨、低通濾波。
2.1.1 隔離放大
在存儲(chǔ)測試系統(tǒng)中,不合適的接地是造成測量問題的普遍原因,必須對(duì)信號(hào)進(jìn)行電氣隔離以防止這些問題的發(fā)生。隔離電路能夠打破接地環(huán)路,避免產(chǎn)生高幅值共模電壓。
本設(shè)計(jì)選用通用的、雙端口的變壓器耦合隔離放大器AD202作為主放大器件。作為一種符合工業(yè)標(biāo)準(zhǔn)的隔離放大器,AD202能夠提供一整套隔離功能,包括信號(hào)隔離和電源隔離,且封裝緊湊,有利于實(shí)現(xiàn)產(chǎn)品的小型化。
圖2為隔離放大電路原理圖,R1和R2的配比可實(shí)現(xiàn)衰減功能,R6可實(shí)現(xiàn)比例的精確調(diào)節(jié),R3、R4和R5實(shí)現(xiàn)了調(diào)零功能。
圖2 隔離放大部分電路原理圖
2.1.2 交流耦合
為了消除加速度信號(hào)中直流分量的影響,實(shí)現(xiàn)交流耦合,利用電容的“隔直通交”的特性去除信號(hào)里的直流分量,而對(duì)純交流信號(hào)沒有影響。因此,本設(shè)計(jì)在隔離放大電路之后,加入了一級(jí)交流耦合。
2.1.3 電壓跟隨
傳感器信號(hào)在交流耦合之后,串聯(lián)一級(jí)電壓跟隨,可以起到緩沖、隔離的作用。電壓跟隨電路具有高輸入阻抗、低輸出阻抗的特點(diǎn),可以使后級(jí)放大電路工作更穩(wěn)定,如圖3所示。
圖3 電壓跟隨電路原理圖
2.1.4 低通濾波
由于測試環(huán)境中不可避免地存在著各種干擾和噪聲,如果傳感器信號(hào)線引入外界干擾,將造成進(jìn)入測試系統(tǒng)的信號(hào)摻雜有一定的噪聲,嚴(yán)重的甚至?xí)绊憸y試的真實(shí)性。因此,需要使用濾波器對(duì)信號(hào)進(jìn)行抗混疊濾波,以保證信號(hào)的正確性、提高系統(tǒng)信噪比。
系統(tǒng)使用的二階壓控電壓源低通濾波電路因性能穩(wěn)定、增益易調(diào)節(jié),已廣泛應(yīng)用于測試系統(tǒng)中,此系統(tǒng)也采用此型濾波電路。電路設(shè)計(jì)如圖4所示。
圖4 低通濾波部分電路原理圖
STM32F103處理器采用ST 公司獨(dú)有的兩大節(jié)能技術(shù)(130nm 專用低泄漏電流制造工藝和優(yōu)化的節(jié)能架構(gòu)),使其成為要求高性能、低成本、低功耗的嵌入式系統(tǒng)的良好選擇。該設(shè)計(jì)利用其自帶的12位μs級(jí)的A/D 轉(zhuǎn)換器、SPI通信接口和USB2.0全速接口,實(shí)現(xiàn)傳感器信號(hào)的采集、存儲(chǔ)和回讀分析。
本系統(tǒng)選用1 Mb鐵電存儲(chǔ)器FM25V10(128K×8位),每個(gè)加速度數(shù)據(jù)占用2個(gè)字節(jié),可供存儲(chǔ)65 536個(gè)數(shù)據(jù)。系統(tǒng)觸發(fā)前,存儲(chǔ)器保持循環(huán)記錄,存儲(chǔ)的內(nèi)容不斷被擦除改寫。當(dāng)記錄數(shù)據(jù)達(dá)到觸發(fā)閾值時(shí),測試系統(tǒng)觸發(fā),延時(shí)計(jì)數(shù)器開始計(jì)數(shù),數(shù)據(jù)繼續(xù)記錄至延時(shí)計(jì)數(shù)器到時(shí)。觸發(fā)點(diǎn)前后的數(shù)據(jù)長度可根據(jù)設(shè)計(jì)要求確定,計(jì)數(shù)結(jié)束后地址發(fā)生器停止工作,加速度信號(hào)得以存儲(chǔ)。記錄完畢后進(jìn)入休眠狀態(tài),等待讀數(shù)和擦除。負(fù)延時(shí)功能可以將觸發(fā)前的一段信息有效保存,從而得到完整的加速度曲線,以保證數(shù)據(jù)的完整性。
系統(tǒng)利用STM32F103自帶的USB2.0全速接口及其固件驅(qū)動(dòng)程序,實(shí)現(xiàn)從存儲(chǔ)器向PC傳送數(shù)據(jù)和設(shè)置存儲(chǔ)參數(shù)的功能。STM32F10xxxUSB 固件驅(qū)動(dòng)程序庫是ST公司專為STM32F10xxx系列ARM 微控制器提供的固件驅(qū)動(dòng)程序庫,其主要用途是利用STM32F10xxx系列微控制器中的USB宏單元來簡化應(yīng)用開發(fā)。
該部分軟件設(shè)計(jì)包括3個(gè)部分:固件驅(qū)動(dòng)程序、USB設(shè)備驅(qū)動(dòng)程序和主機(jī)應(yīng)用程序。
3.2.1 固件驅(qū)動(dòng)程序設(shè)計(jì)
固件驅(qū)動(dòng)程序(又稱單片機(jī)程序)是指固化到MCU模塊內(nèi)的軟件。固件程序采用模塊化設(shè)計(jì),主要模塊包括:數(shù)據(jù)采集存儲(chǔ)模塊和數(shù)據(jù)通信模塊兩大部分。模塊化設(shè)計(jì)的優(yōu)點(diǎn)是可靠性高、可讀性好、軟件改動(dòng)簡單。
USB設(shè)備在上電之后需要首先完成系統(tǒng)時(shí)鐘配置及片內(nèi)外設(shè)的初始化操作。設(shè)備初始化完畢后,數(shù)據(jù)回讀命令的接收、解析及數(shù)據(jù)傳輸?shù)乃胁僮骶谥袛喾?wù)程序中完成。定時(shí)器3 為節(jié)拍發(fā)生器,其中斷用于定時(shí)觸發(fā)A/D轉(zhuǎn)換器采樣與轉(zhuǎn)換。DMA 通道1產(chǎn)生中斷表明,可以將存儲(chǔ)器中的數(shù)據(jù)打包并通過USB發(fā)送。
USB中斷較為復(fù)雜,是固件驅(qū)動(dòng)程序設(shè)計(jì)的核心部分,包括枚舉的整個(gè)過程,以及除枚舉以外所有與主機(jī)的命令、數(shù)據(jù)交互過程。控制命令主要包括采樣頻率的設(shè)定、負(fù)延時(shí)時(shí)間的設(shè)定、啟動(dòng)數(shù)據(jù)回讀等。USB設(shè)備總計(jì)使用了3個(gè)端點(diǎn),分別為端點(diǎn)0、端點(diǎn)1和端點(diǎn)3。端點(diǎn)0為USB默認(rèn)的控制傳輸端點(diǎn),供設(shè)備枚舉初始化時(shí)使用;端點(diǎn)1和端點(diǎn)3均為批量傳輸端點(diǎn),端點(diǎn)1方向?yàn)檩斎?,用來接收PC 的控制指令;端點(diǎn)3的方向?yàn)檩敵?,用來向PC機(jī)發(fā)送數(shù)據(jù)包。
系統(tǒng)固件程序流程如圖5所示。
圖5 固件程序流程圖
3.2.2 USB設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)
USB設(shè)備驅(qū)動(dòng)程序介于USB硬件與數(shù)據(jù)采集系統(tǒng)應(yīng)用程序之間,為它們之間的通信提供橋梁。USB 驅(qū)動(dòng)程序使用DriverStudio中的Driver-works2.7編寫。Driver-Works提 供 了3 個(gè) 函 數(shù) 類 即KUs-bLowerDevice、KUsbInterface和KUsbPipe 類,用于實(shí)現(xiàn)USB 設(shè)備操作。KUsbLowerDevice類用于邏輯設(shè)備的編程,KUsbInterface類用于接口的編程,KUsbPipe類用于管道的編程。
本設(shè)計(jì)使用Driverworks自帶的DriverWizard生成驅(qū)動(dòng)程序框架和Read、Write函數(shù),在DeviceControl函數(shù)中添加用戶定義的設(shè)備控制程序,完成用戶自定義的功能。驅(qū)動(dòng)程序編寫完畢后,會(huì)編譯生成后綴為“.inf”和“.sys”兩個(gè)文件。.inf文件是系統(tǒng)用來查找適合硬件的驅(qū)動(dòng)程序的向?qū)募?,?dāng)Windows發(fā)現(xiàn)新的設(shè)備時(shí)(比如系統(tǒng)啟動(dòng)時(shí)、在安裝熱插拔設(shè)備時(shí)或者從控制面板安裝新設(shè)備時(shí)),就調(diào)用Windows的“添加新設(shè)備向?qū)А眻?zhí)行。這個(gè)向?qū)呙杷锌捎玫?inf文件,找到合適的驅(qū)動(dòng)程序。
3.2.3 主機(jī)應(yīng)用程序設(shè)計(jì)
應(yīng)用服務(wù)程序直接面向用戶,是控制數(shù)據(jù)存儲(chǔ)軟件的最上層,不僅提供與用戶交互的界面,而且能通過發(fā)送各種控制命令來控制存儲(chǔ)模塊的工作。在Windows中,LabView 實(shí)現(xiàn)與WDM 的通信過程是:先用CreateFile函數(shù)打開設(shè)備,然后用Devi-ceIOControl與WDM 進(jìn)行通信,包括從WDM 中讀數(shù)據(jù)和寫數(shù)據(jù)給WDM,也可以用ReadFile從WDM 中讀數(shù)據(jù)或用WriteFile 寫數(shù)據(jù)給WDM。當(dāng)應(yīng)用程序退出時(shí),用CloseHandle關(guān)閉設(shè)備。其軟件設(shè)計(jì)流程如圖6所示。
圖6 應(yīng)用程序流程圖
圖7是本測試系統(tǒng)所測得的試驗(yàn)數(shù)據(jù)波形圖,該曲線所測的是某彈丸在火炮膛內(nèi)的加速度曲線。經(jīng)過數(shù)據(jù)分析,膛內(nèi)運(yùn)行時(shí)間、膛內(nèi)運(yùn)行距離、膛內(nèi)以及炮口 72擾動(dòng)過載均與實(shí)際相符。
圖7 測試數(shù)據(jù)波形圖
經(jīng)過試驗(yàn)論證,本測試系統(tǒng)在誤差允許的范圍內(nèi)可以達(dá)到測量精度要求,從而驗(yàn)證了本測試系統(tǒng)具有較強(qiáng)的應(yīng)用性。
結(jié) 語
存儲(chǔ)測試系統(tǒng)是軟硬件緊密結(jié)合的設(shè)備,為了提高實(shí)時(shí)性并降低功耗,需要設(shè)計(jì)者盡量精簡系統(tǒng)內(nèi)核,只保留和系統(tǒng)功能緊密相關(guān)的軟硬件,利用最低的資源實(shí)現(xiàn)最適當(dāng)?shù)墓δ?。本文設(shè)計(jì)的存儲(chǔ)測試系統(tǒng),使STM32處理器的優(yōu)點(diǎn)得到了有效的發(fā)揮。對(duì)于本測試系統(tǒng),可用環(huán)氧樹脂灌封材料將電路灌封在侵徹類引信內(nèi),從而獲取引信的侵徹全程加速度數(shù)據(jù),對(duì)侵徹類引信的研制具有重要意義。
[1]路永坤.基于USB 接口的數(shù)據(jù)采集模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].自動(dòng)化儀表,2005,26(2):35-37.
[2]STMicroelectronics.UM0424 user manual STM32F10xxx USB developmentkit,2008.
[3]張文棟.存儲(chǔ)測試系統(tǒng)的設(shè)計(jì)理論及其應(yīng)用[M].北京:高等教育出版社,2002.
[4]楊樂平,李海濤,趙勇,等.LabVIEW 高級(jí)程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2003.