STM32的瞬態運動參數存儲測試系統設計

2021-01-09 電子產品世界

摘要:在瞬態運動參數測試中,對存儲測試系統的實時性和功耗提出了更高的要求。提出了一種基於STM32的嵌入式存儲測試系統的設計方案,介紹了該系統關鍵部分的軟硬體設計,主要包括模擬信號調理、數據採集存儲和USB數據回讀。該系統具有實時性好、體積小、功耗低的特點,適合於惡劣環境下加速度信號的採集存儲。試驗結果表明,該系統工作穩定,實現了設計目標。

本文引用地址:http://www.eepw.com.cn/article/201610/307239.htm

關鍵詞:存儲測試技術;信號調理;STM32;USB;LabView

引言

存儲測試技術是在特殊環境下記錄運動物體參數行之有效的方法,先將測試數據存入存儲器,待裝置回收後通過特定接口與上位機進行通信,還原數據信息。在諸多領域的測試中,對數據採集存儲系統的實時性和功耗提出了更高的要求,隨著半導體技術的發展,各種技術的進步使得高速度、低功耗的存儲測試系統能夠實現。

本系統選擇ST公司超低功耗的基於ARM Cortex—M3四核的處理器STM32F103C8T6作為核心控制元件,採取內部A/D轉換器與鐵電存儲器結合的方法,實現壓阻式加速度傳感器測試數據的採集、存儲,並利用LabView開發平臺設計上位機應用軟體實現測試數據的USB回讀及處理。

1 系統原理

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

系統採用單電池電源供電,電路內部經過多路電源管理單元的穩壓處理後為系統各個模塊供電,實現多分支電源網絡管理,以保證系統良好的抗幹擾性能。系統的控制核心為STM32F103C8T6,傳感器信號經調理模塊進入微控制器的12位μs級的A/D轉換器後,經過處理和格式轉換後循環記錄在鐵電存儲器 FM25V10內,一旦傳感器感受的加速度值達到設定閾值,則系統將被觸發,並會自動持續記錄一段時間,裝置回收後則利用LabVieW上位機應用軟體實現測試數據的USB回讀及處理。

2 系統主要部分的硬體設計

2.1 信號調理

由於傳感器測量的信號十分微弱,需要經過適當的放大、濾波等修正後才能夠進行一系列處理。信號調理電路是存儲測試系統中非常關鍵的一個部分,它在數據採集存儲之前對傳感器輸出信號進行調理,其性能的優劣直接決定了系統的性能與可靠性。信號調理電路主要由4部分串聯組成:隔離放大、交流耦合、電壓跟隨、低通濾波。

2.1.1 隔離放大

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

本設計選用通用的、雙埠的變壓器耦合隔離放大器AD202作為主放大器件。作為一種符合工業標準的隔離放大器,AD202能夠提供一整套隔離功能,包括信號隔離和電源隔離,且封裝緊湊,有利於實現產品的小型化。

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

2.1.2 交流耦合

為了消除加速度信號中直流分量的影響,實現交流耦合,利用電容的「隔直通交」的特性去除信號裡的直流分量,而對純交流信號沒有影響。因此,本設計在隔離放大電路之後,加入了一級交流耦合。

2.1.3 電壓跟隨

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

2.1.4 低通濾波

由於測試環境中不可避免地存在著各種幹擾和噪聲,如果傳感器信號線引入外界幹擾,將造成進入測試系統的信號摻雜有一定的噪聲,嚴重的甚至會影響測試的真實性。因此,需要使用濾波器對信號進行抗混疊濾波,以保證信號的正確性、提高系統信噪比。

系統使用的二階壓控電壓源低通濾波電路因性能穩定、增益易調節,已廣泛應用於測試系統中,此系統也採用此型濾波電路。電路設計如圖4所示。

2.2 微控制器接口

STM32F103處理器採用ST公司獨有的兩大節能技術(130 nm專用低洩漏電流製造工藝和優化的節能架構),使其成為要求高性能、低成本、低功耗的嵌入式系統的良好選擇。該設計利用其自帶的12位μs級的A/D轉換器、SPI通信接口和USB2.0全速接口,實現傳感器信號的採集、存儲和回讀分析。

3 系統關鍵部分的軟體設計

3.1 負延時數據存儲

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

3.2 與上位機LabVieW的USB通信

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

該部分軟體設計包括3個部分:固件驅動程序、USB設備驅動程序和主機應用程式。

3.2.1 固件驅動程序設計

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

USB設備在上電之後需要首先完成系統時鐘配置及片內外設的初始化操作。設備初始化完畢後,數據回讀命令的接收、解析及數據傳輸的所有操作均在中斷服務程序中完成。定時器3為節拍發生器,其中斷用於定時觸發A/D轉換器採樣與轉換。DMA通道1產生中斷表明,可以將存儲器中的數據打包並通過USB發送。

USB中斷較為複雜,是固件驅動程序設計的核心部分,包括枚舉的整個過程,以及除枚舉以外所有與主機的命令、數據交互過程。控制命令主要包括採樣頻率的設定、負延時時間的設定、啟動數據回讀等。USB設備總計使用了3個端點,分別為端點0、端點1和端點3。端點0為USB默認的控制傳輸端點,供設備枚舉初始化時使用;端點1和端點3均為批量傳輸端點,端點1方向為輸入,用來接收PC的控制指令;端點3的方向為輸出,用來向PC機發送數據包。

系統固件程序流程如圖5所示。

3.2.2 USB設備驅動程序設計

USB設備驅動程序介於USB硬體與數據採集系統應用程式之間,為它們之間的通信提供橋梁。USB驅動程序使用DriverStudio 中的Driver-works2.7編寫。Drivei—Works提供了3個函數類即KUs-bLowerDevice、KUs—bInterface 和KUsbPipe類,用於實現USB設備操作。KUsbLowerDevice類用於邏輯設備的編程,KUsbInterface類用於接口的編程,KUsbP ipe類用於管道的編程。

本設計使用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。當應用程式退出時,用 CloseHartdle關閉設備。其軟體設計流程如圖6所示。

4 試驗數據與驗證

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

經過試驗論證,本測試系統在誤差允許的範圍內可以達到測量精度要求,從而驗證了本測試系統具有較強的應用性。

結語

存儲測試系統是軟硬體緊密結合的設備,為了提高實時性並降低功耗,需要設計者儘量精簡系統內核,只保留和系統功能緊密相關的軟硬體,利用最低的資源實現最適當的功能。本文設計的存儲測試系統,使STM32處理器的優點得到了有效的發揮。對於本測試系統,可用環氧樹脂灌封材料將電路灌封在侵徹類引信內,從而獲取引信的侵徹全程加速度數據,對侵徹類引信的研製具有重要意義。

STM32單片機中文官網STM32單片機官方開發工具STM32單片機參考設計

相關焦點

  • 病房呼叫系統的軟體設計_單片機病房呼叫系統的設計 - CSDN
    不會stm32,那你還不好意思來應聘硬體工程師? stm32的學習資料多是零零散散的,電路城先將stm32資料做了一個整合,也將於STM32單片機的精彩設計實例做了一個匯總,適合新手迅速上手,也適合高手做創作。
  • stm32晶片被鎖,使用jlink就能輕輕鬆鬆解鎖
    如果一不小心將stm32開發板的晶片給鎖了,那原因可能是忽略了一個比較低級的問題,就是將stm32中的一些不能獨立使用的IO口給了高電平,stm32中有很多口是不能獨立使用的,如圖(以stm32103rct6  正點原子的mini板為例):(N:表示不能獨立使用,Y:表示能獨立使用)
  • stm32的USART如何發送字符、字符串
    推薦閱讀 STM32項目(三)——通用LIN控制器 需求:LIN馬達控制器:AFS(DHL+AFL)——彎道輔助照明系統DHL:上極限,下極限,零位,馬達老化循環;AFL:左極限,右極限,零位,馬達老化循環;所有參數可配置:上極限,下極限,零位,左極限,右極限,馬達循環上極限
  • 基於計算機技術實現熱阻測試系統的設計
    打開APP 基於計算機技術實現熱阻測試系統的設計 何紹木,何紀法,周 發表於 2020-12-08 10:40:43 利用電晶體ΔVbe參數與熱阻在一定條件下滿足某種數學關係式,通過測量電晶體ΔVbe參數間接地測試熱阻參數,具有測量效率高、成本低、對器件無損傷等優點,但是電晶體熱特性具有複雜、敏感及不穩定的特點。要達到實用需要的測量精度有較大的難度,目前,國外已研製出原理性的熱阻測試系統。國內市場迫切需要性價比較高的電晶體測試篩選設備。
  • 【stm32mp157教程之linux系統移植】課時10:TF-A移植
    【stm32mp157教程之linux系統移植】課時10:TF-A移植 2020-
  • 基於STM32的2μm高功率雷射醫療儀的系統電路和原理圖
    同時隨著YY0505-2012醫用電氣電磁兼容標準於2014年的執行,設計符合YY0505-2012標準的醫用設備已迫在眉睫。因此,本文採用模塊化設計,設計了一種基於STM32的2μm光纖雷射器醫療儀控制系統,將水冷單元的參數監控、電源模塊的抗幹擾設計、輸出功率的校準等集成於一體。測試結果表明,系統可靠穩定,操作方便。 1.
  • 【stm32mp157教程之linux系統移植】課時9:Uboot移植3
    【stm32mp157教程之linux系統移植】課時9:Uboot移植3 2020
  • 【stm32mp157教程之linux系統移植】課時1:虛擬機環境安裝
    【stm32mp157教程之linux系統移植】課時1:虛擬機環境安裝 2020-
  • 詳解STM32 ISP設置及使用說明
    而筆者在設計stm32的程序時,遇到spi3的nss等管腳與JTAG的管腳共用衝突,所以為了解決該問題,使得spi3能正常使用,通過庫函數GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);關閉了JTAG功能,這樣spi3能正常使用了,但結果導致無法通過JTAG燒錄程序了!因為,通過ISP串口燒錄程序的課題就浮出水面啦!
  • 如何設計在stm32中的復位電路?
    如何設計在stm32中的復位電路? 胡薇 發表於 2018-08-10 11:33:20 說到復位,我們都不會陌生,系統基本都有一個復位按鍵。
  • stm32屬於arm嗎_arm和stm32的區別
    ARM設計了大量高性價比、耗能低的RISC處理器、相關技術及軟體。在智能機、平板電腦、嵌入控制、多媒體數字等處理器領域擁有主導地位。   在此ARM指的是ARM處理器。ARM處理器是英國Acorn有限公司設計的低功耗成本的第一款RISC微處理器。全稱為Acorn RISC Machine。
  • 華中科技大學周理兵團隊特稿:同步電機瞬態參數的靜止測量新方法
    主要圍繞大型與特種電機的理論分析、設計與控制技術等方面開展研究和相關教學工作。團隊承擔了國家科技重大專項、國家重點研發計劃、國家自然科學基金等縱向項目,並與東方電機、中石油、中石化、國家電網、中航工業等多家企業長期開展科研合作。周理兵,工學博士,教授、博士生導師。
  • 【stm32mp157教程之linux系統移植】課時5:Linux設備樹基礎1
    【stm32mp157教程之linux系統移植】課時5:Linux設備樹基礎1 2020
  • STM32串口接收數據保存到數組——遇到問題及解決方法
    遇到問題:PC端發送給stm32的字符串數據,只有最後一個字節被保存在數組的首地址,其他數據都丟失,而且數組中只有首地址有數據。比如我用PC給stm32發送abcd,返回到PC串口助手的數據只有d,查看數組發現裡面數據[d,0,0,0,0,0,0,0,0........]。
  • 【stm32mp157教程之linux系統移植】課時2:A7環境安裝和程序燒寫
    【stm32mp157教程之linux系統移植】課時2:A7環境安裝和程序燒寫 2020
  • 電能質量監測系統的設計實現和車載應用詳解
    車載系統異常或故障原因主要涉及非線性負載、電容器投切、大功率負載運行和起停、設備因素等。對於電能質量的測量,主要涉及表徵電能及其特徵的主要參數,包括電壓、電流、頻率、功率、諧波、電壓波動、三相不平衡等。 1系統設計 結合實際應用需求,設計了一種由嵌入式電能質量檢測設備和數據處理模塊組成的電能質量監測系統。
  • ucosii在stm32上的移植詳解1
    雖然我們移植的目標晶片是stm32,但作業系統的移植基本是針對Cortex-M3內核(以下簡稱CM3)而言的,所以我們只需了解CM3內核就好了。stm32晶片就是CM3內核加上各種各樣的外設。 怎麼才能了解CM3呢?
  • 詳解基於Labwindows/CVI的測試系統資料庫設計
    資料庫實際上就是存儲數據的「倉庫」。但數據不是存放在容器或空間中,而是存放在計算機的外存儲器上(如磁碟),並且是有組織的存放。數據的管理和利用通常是通過計算機的數據管理軟體——資料庫管理系統來完成的。
  • stm32與FPGA通信代碼實現方案spi
    ,馬達老化循環;所有參數可配置:上極限,下極限,零位,左極限,右極限,馬達循環上極限,馬達循環下極限,馬達循環次數,馬達循環等待時間;保存至少30款產品的配置,配置界面需要有添加,讀取,查找,刪除功能。
  • 13個基於STM32的經典項目設計實例,全套資料~
    今天總結了幾篇電路城上關於STM32 的製作,不能說每篇都是經典,但都是在其他地方找不到的,很有學習參考意義的設計實例。尤其對於新手,是一個學習stm32單片機的“活生生”的範例。