新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STM32的瞬態(tài)運動參數(shù)存儲測試系統(tǒng)設(shè)計

STM32的瞬態(tài)運動參數(shù)存儲測試系統(tǒng)設(shè)計

作者: 時間:2016-10-15 來源:網(wǎng)絡(luò) 收藏

摘要:在瞬態(tài)運動參數(shù)測試中,對存儲測試系統(tǒng)的實時性和功耗提出了更高的要求。提出了一種基于的嵌入式存儲測試系統(tǒng)的設(shè)計方案,介紹了該系統(tǒng)關(guān)鍵部分的軟硬件設(shè)計,主要包括模擬、數(shù)據(jù)采集存儲和數(shù)據(jù)回讀。該系統(tǒng)具有實時性好、體積小、功耗低的特點,適合于惡劣環(huán)境下加速度信號的采集存儲。試驗結(jié)果表明,該系統(tǒng)工作穩(wěn)定,實現(xiàn)了設(shè)計目標(biāo)。

本文引用地址:http://butianyuan.cn/article/201610/307239.htm

關(guān)鍵詞:;;;;

引言

是在特殊環(huán)境下記錄運動物體參數(shù)行之有效的方法,先將測試數(shù)據(jù)存入存儲器,待裝置回收后通過特定接口與上位機進行通信,還原數(shù)據(jù)信息。在諸多領(lǐng)域的測試中,對數(shù)據(jù)采集存儲系統(tǒng)的實時性和功耗提出了更高的要求,隨著半導(dǎo)體技術(shù)的發(fā)展,各種技術(shù)的進步使得高速度、低功耗的存儲測試系統(tǒng)能夠?qū)崿F(xiàn)。

本系統(tǒng)選擇ST公司超低功耗的基于ARM Cortex—M3四核的處理器F103C8T6作為核心控制元件,采取內(nèi)部A/D轉(zhuǎn)換器與鐵電存儲器結(jié)合的方法,實現(xiàn)壓阻式加速度傳感器測試數(shù)據(jù)的采集、存儲,并利用開發(fā)平臺設(shè)計上位機應(yīng)用軟件實現(xiàn)測試數(shù)據(jù)的回讀及處理。

1 系統(tǒng)原理

存儲測試系統(tǒng)由電源管理模塊、調(diào)理模塊、外部晶振、微控制器、存儲模塊、上位機模塊以及接口電路組成,如圖1所示。

a.jpg

系統(tǒng)采用單電池電源供電,電路內(nèi)部經(jīng)過多路電源管理單元的穩(wěn)壓處理后為系統(tǒng)各個模塊供電,實現(xiàn)多分支電源網(wǎng)絡(luò)管理,以保證系統(tǒng)良好的抗干擾性能。系統(tǒng)的控制核心為STM32F103C8T6,傳感器信號經(jīng)調(diào)理模塊進入微控制器的12位μs級的A/D轉(zhuǎn)換器后,經(jīng)過處理和格式轉(zhuǎn)換后循環(huán)記錄在鐵電存儲器 FM25V10內(nèi),一旦傳感器感受的加速度值達到設(shè)定閾值,則系統(tǒng)將被觸發(fā),并會自動持續(xù)記錄一段時間,裝置回收后則利用LabVieW上位機應(yīng)用軟件實現(xiàn)測試數(shù)據(jù)的USB回讀及處理。

2 系統(tǒng)主要部分的硬件設(shè)計

2.1

由于傳感器測量的信號十分微弱,需要經(jīng)過適當(dāng)?shù)姆糯?、濾波等修正后才能夠進行一系列處理。信號調(diào)理電路是存儲測試系統(tǒng)中非常關(guān)鍵的一個部分,它在數(shù)據(jù)采集存儲之前對傳感器輸出信號進行調(diào)理,其性能的優(yōu)劣直接決定了系統(tǒng)的性能與可靠性。信號調(diào)理電路主要由4部分串聯(lián)組成:隔離放大、交流耦合、電壓跟隨、低通濾波。

2.1.1 隔離放大

在存儲測試系統(tǒng)中,不合適的接地是造成測量問題的普遍原因,必須對信號進行電氣隔離以防止這些問題的發(fā)生。隔離電路能夠打破接地環(huán)路,避免產(chǎn)生高幅值共模電壓。

本設(shè)計選用通用的、雙端口的變壓器耦合隔離放大器AD202作為主放大器件。作為一種符合工業(yè)標(biāo)準(zhǔn)的隔離放大器,AD202能夠提供一整套隔離功能,包括信號隔離和電源隔離,且封裝緊湊,有利于實現(xiàn)產(chǎn)品的小型化。

圖2為隔離放大電路原理圖,R1和R2的配比可實現(xiàn)衰減功能,R6可實現(xiàn)比例的精確調(diào)節(jié),R3、R4和R5實現(xiàn)了調(diào)零功能。

b.jpg

2.1.2 交流耦合

為了消除加速度信號中直流分量的影響,實現(xiàn)交流耦合,利用電容的“隔直通交”的特性去除信號里的直流分量,而對純交流信號沒有影響。因此,本設(shè)計在隔離放大電路之后,加入了一級交流耦合。

2.1.3 電壓跟隨

傳感器信號在交流耦合之后,串聯(lián)一級電壓跟隨,可以起到緩沖、隔離的作用。電壓跟隨電路具有高輸入阻抗、低輸出阻抗的特點,可以使后級放大電路工作更穩(wěn)定,如圖3所示。

c.jpg

2.1.4 低通濾波

由于測試環(huán)境中不可避免地存在著各種干擾和噪聲,如果傳感器信號線引入外界干擾,將造成進入測試系統(tǒng)的信號摻雜有一定的噪聲,嚴重的甚至?xí)绊憸y試的真實性。因此,需要使用濾波器對信號進行抗混疊濾波,以保證信號的正確性、提高系統(tǒng)信噪比。

系統(tǒng)使用的二階壓控電壓源低通濾波電路因性能穩(wěn)定、增益易調(diào)節(jié),已廣泛應(yīng)用于測試系統(tǒng)中,此系統(tǒng)也采用此型濾波電路。電路設(shè)計如圖4所示。

d.jpg

2.2 微控制器接口

STM32F103處理器采用ST公司獨有的兩大節(jié)能技術(shù)(130 nm專用低泄漏電流制造工藝和優(yōu)化的節(jié)能架構(gòu)),使其成為要求高性能、低成本、低功耗的嵌入式系統(tǒng)的良好選擇。該設(shè)計利用其自帶的12位μs級的A/D轉(zhuǎn)換器、SPI通信接口和USB2.0全速接口,實現(xiàn)傳感器信號的采集、存儲和回讀分析。

3 系統(tǒng)關(guān)鍵部分的軟件設(shè)計

3.1 負延時數(shù)據(jù)存儲

本系統(tǒng)選用1 Mb鐵電存儲器FM25V10(128K×8位),每個加速度數(shù)據(jù)占用2個字節(jié),可供存儲65536個數(shù)據(jù)。系統(tǒng)觸發(fā)前,存儲器保持循環(huán)記錄,存儲的內(nèi)容不斷被擦除改寫。當(dāng)記錄數(shù)據(jù)達到觸發(fā)閾值時,測試系統(tǒng)觸發(fā),延時計數(shù)器開始計數(shù),數(shù)據(jù)繼續(xù)記錄至延時計數(shù)器到時。觸發(fā)點前后的數(shù)據(jù)長度可根據(jù)設(shè)計要求確定,計數(shù)結(jié)束后地址發(fā)生器停止工作,加速度信號得以存儲。記錄完畢后進入休眠狀態(tài),等待讀數(shù)和擦除。負延時功能可以將觸發(fā)前的一段信息有效保存,從而得到完整的加速度曲線,以保證數(shù)據(jù)的完整性。

3.2 與上位機LabVieW的USB通信

系統(tǒng)利用STM32F103自帶的USB2.0全速接口及其固件驅(qū)動程序,實現(xiàn)從存儲器向PC傳送數(shù)據(jù)和設(shè)置存儲參數(shù)的功能。STM32F10xxxUSB固件驅(qū)動程序庫是ST公司專為STM32F 10xxx系列ARM微控制器提供的固件驅(qū)動程序庫,其主要用途是利用STM32F10xxx系列微控制器中的USB宏單元來簡化應(yīng)用開發(fā)。

該部分軟件設(shè)計包括3個部分:固件驅(qū)動程序、USB設(shè)備驅(qū)動程序和主機應(yīng)用程序。

3.2.1 固件驅(qū)動程序設(shè)計

固件驅(qū)動程序(又稱單片機程序)是指固化到MCU模塊內(nèi)的軟件。固件程序采用模塊化設(shè)計,主要模塊包括:數(shù)據(jù)采集存儲模塊和數(shù)據(jù)通信模塊兩大部分。模塊化設(shè)計的優(yōu)點是可靠性高、可讀性好、軟件改動簡單。

USB設(shè)備在上電之后需要首先完成系統(tǒng)時鐘配置及片內(nèi)外設(shè)的初始化操作。設(shè)備初始化完畢后,數(shù)據(jù)回讀命令的接收、解析及數(shù)據(jù)傳輸?shù)乃胁僮骶谥袛喾?wù)程序中完成。定時器3為節(jié)拍發(fā)生器,其中斷用于定時觸發(fā)A/D轉(zhuǎn)換器采樣與轉(zhuǎn)換。DMA通道1產(chǎn)生中斷表明,可以將存儲器中的數(shù)據(jù)打包并通過USB發(fā)送。

USB中斷較為復(fù)雜,是固件驅(qū)動程序設(shè)計的核心部分,包括枚舉的整個過程,以及除枚舉以外所有與主機的命令、數(shù)據(jù)交互過程??刂泼钪饕ú蓸宇l率的設(shè)定、負延時時間的設(shè)定、啟動數(shù)據(jù)回讀等。USB設(shè)備總計使用了3個端點,分別為端點0、端點1和端點3。端點0為USB默認的控制傳輸端點,供設(shè)備枚舉初始化時使用;端點1和端點3均為批量傳輸端點,端點1方向為輸入,用來接收PC的控制指令;端點3的方向為輸出,用來向PC機發(fā)送數(shù)據(jù)包。

系統(tǒng)固件程序流程如圖5所示。

e.jpg

3.2.2 USB設(shè)備驅(qū)動程序設(shè)計

USB設(shè)備驅(qū)動程序介于USB硬件與數(shù)據(jù)采集系統(tǒng)應(yīng)用程序之間,為它們之間的通信提供橋梁。USB驅(qū)動程序使用DriverStudio 中的Driver-works2.7編寫。Drivei—Works提供了3個函數(shù)類即KUs-bLowerDevice、KUs—bInterface 和KUsbPipe類,用于實現(xiàn)USB設(shè)備操作。KUsbLowerDevice類用于邏輯設(shè)備的編程,KUsbInterface類用于接口的編程,KUsbP ipe類用于管道的編程。

本設(shè)計使用Driverworks自帶的DriverWizard生成驅(qū)動程序框架和Read、write函數(shù),在DeviceControl函數(shù)中添加用戶定義的設(shè)備控制程序,完成用戶自定義的功能。驅(qū)動程序編寫完畢后,會編譯生成后綴為“.inf”和“.sys'’兩個文件。.inf文件是系統(tǒng)用來查找適合硬件的驅(qū)動程序的向?qū)募?,?dāng)Windows發(fā)現(xiàn)新的設(shè)備時(比如系統(tǒng)啟動時、在安裝熱插拔設(shè)備時或者從控制面板安裝新設(shè)備時),就調(diào)用 Windows的“添加新設(shè)備向?qū)?rdquo;執(zhí)行。這個向?qū)呙杷锌捎玫?inf文件,找到合適的驅(qū)動程序。

3.2.3 主機應(yīng)用程序設(shè)計

應(yīng)用服務(wù)程序直接面向用戶,是控制數(shù)據(jù)存儲軟件的最上層,不僅提供與用戶交互的界面,而且能通過發(fā)送各種控制命令來控制存儲模塊的工作。在Windows 中,實現(xiàn)與WDM的通信過程是:先用CreateFile函數(shù)打開設(shè)備,然后用Devi—ceIOControl與WDM進行通信,包括從 WDM中讀數(shù)據(jù)和寫數(shù)據(jù)給WDM,也可以用ReadFile從WDM中讀數(shù)據(jù)或用WriteFile寫數(shù)據(jù)給WDM。當(dāng)應(yīng)用程序退出時,用 CloseHartdle關(guān)閉設(shè)備。其軟件設(shè)計流程如圖6所示。

f.jpg

4 試驗數(shù)據(jù)與驗證

圖7是本測試系統(tǒng)所測得的試驗數(shù)據(jù)波形圖,該曲線所測的是某彈丸在火炮膛內(nèi)的加速度曲線。經(jīng)過數(shù)據(jù)分析,膛內(nèi)運行時間、膛內(nèi)運行距離、膛內(nèi)以及炮口擾動過載均與實際相符。

g.jpg

經(jīng)過試驗論證,本測試系統(tǒng)在誤差允許的范圍內(nèi)可以達到測量精度要求,從而驗證了本測試系統(tǒng)具有較強的應(yīng)用性。

結(jié)語

存儲測試系統(tǒng)是軟硬件緊密結(jié)合的設(shè)備,為了提高實時性并降低功耗,需要設(shè)計者盡量精簡系統(tǒng)內(nèi)核,只保留和系統(tǒng)功能緊密相關(guān)的軟硬件,利用最低的資源實現(xiàn)最適當(dāng)?shù)墓δ?。本文設(shè)計的存儲測試系統(tǒng),使STM32處理器的優(yōu)點得到了有效的發(fā)揮。對于本測試系統(tǒng),可用環(huán)氧樹脂灌封材料將電路灌封在侵徹類引信內(nèi),從而獲取引信的侵徹全程加速度數(shù)據(jù),對侵徹類引信的研制具有重要意義。

  • STM32單片機中文官網(wǎng)
  • STM32單片機官方開發(fā)工具
  • STM32單片機參考設(shè)計


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉