當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 基于STM32的MIT-BIH心電數(shù)據(jù)D/A回放設(shè)計(jì),對(duì)整體設(shè)計(jì)方案、硬件組成、軟件設(shè)計(jì)等進(jìn)行了介紹。通過(guò)讀取心電數(shù)據(jù)將其進(jìn)行D/A轉(zhuǎn)換,輸出波形與原始波形進(jìn)行比較,較好地實(shí)現(xiàn)了回放功能。由此可見(jiàn),該系

基于STM32MIT-BIH心電數(shù)據(jù)DA回放設(shè)計(jì),對(duì)整體設(shè)計(jì)方案、硬件組成、軟件設(shè)計(jì)等進(jìn)行了介紹。通過(guò)讀取心電數(shù)據(jù)將其進(jìn)行D/A轉(zhuǎn)換,輸出波形與原始波形進(jìn)行比較,較好地實(shí)現(xiàn)了回放功能。由此可見(jiàn),該系統(tǒng)的性能指標(biāo)達(dá)到了設(shè)計(jì)要求。能很好地實(shí)現(xiàn)心電數(shù)據(jù)回放,為一系列心電算法的仿真實(shí)踐及實(shí)時(shí)心電監(jiān)護(hù)儀的研制打好了基礎(chǔ)。

心電信號(hào)是人類最早開(kāi)展研究并應(yīng)用于臨床醫(yī)學(xué)的生物電信號(hào)之一,通過(guò)對(duì)心電信號(hào)的分析處理能有效地預(yù)測(cè)心臟疾病。如何利用心電數(shù)據(jù)開(kāi)發(fā)研究相關(guān)的醫(yī)療設(shè)備是對(duì)科研人員至關(guān)重要。心電數(shù)據(jù)的回放就是將原有的存儲(chǔ)的MIT-BIH心電數(shù)據(jù),根據(jù)其存儲(chǔ)的格式,利用設(shè)計(jì)的系統(tǒng)通過(guò)D/A轉(zhuǎn)換最終從終端回放出模擬信號(hào)。本文介紹基于ARM Cortex-M3內(nèi)核的STM32微控制器作為主控嵌入式芯片的心電信號(hào)數(shù)據(jù)回放的設(shè)計(jì)方法。

1 工作原理和硬件設(shè)計(jì)

上位機(jī)應(yīng)用程序讀取心電數(shù)據(jù)庫(kù)中一文件,利用設(shè)備驅(qū)動(dòng)程序與D/A回放模塊設(shè)備進(jìn)行通信。通過(guò)USB總線不斷向硬件設(shè)備發(fā)送數(shù)據(jù),設(shè)備接收到的原始數(shù)據(jù),利用DMA傳輸方式,連續(xù)、不丟失地傳送到DAC模塊中,在定時(shí)器的觸發(fā)下,DAC模塊完成數(shù)據(jù)的D/A轉(zhuǎn)換,最后在終端設(shè)備即示波器上回放出模擬信號(hào)。

D/A回放硬件結(jié)構(gòu)框圖如圖1所示。

1.1 STM32F103XX微處理器簡(jiǎn)介

系統(tǒng)硬件采用意法半導(dǎo)體公司開(kāi)發(fā)的基于Cortex-M3內(nèi)核的新型32位微控制器STM32F103RE作為主控芯片,工作頻率高達(dá)72 MHz,內(nèi)部集成了RAM、全速USB 2.0設(shè)備接口模塊和雙通道的12位高精度D/A轉(zhuǎn)換模塊等豐富的外設(shè)。在結(jié)合了高性能、低功耗和低電壓的同時(shí),保持了高度的集成性能和簡(jiǎn)易的開(kāi)發(fā)特性。應(yīng)用開(kāi)發(fā)時(shí),只需連接少量的外圍電路即可使電路結(jié)構(gòu)簡(jiǎn)單緊湊。

1.2 D/A轉(zhuǎn)換模塊

D/A轉(zhuǎn)換模塊(DAC)是12位數(shù)字輸入,電壓輸出的D/A轉(zhuǎn)換器。DAC可以配置成8位或12位模式,也可以與DMA控制器配合使用。DAC有2個(gè)輸出通道,每個(gè)通道都有單獨(dú)的轉(zhuǎn)換器,可以工作在雙DAC模式下,DAC集成了2個(gè)輸出緩存,可以用來(lái)減少輸出阻抗,無(wú)需外部運(yùn)放,即可直接驅(qū)動(dòng)外部負(fù)載。DAC轉(zhuǎn)換可以選擇外部事件觸發(fā)(定時(shí)器計(jì)數(shù)器,外部中斷線)和軟件觸發(fā)。

使能DAC通道后,STM32F103XX相應(yīng)的GPIO管腳(PA4或PA5)會(huì)自動(dòng)與DAC的模擬輸出相聯(lián)系。為避免寄生干擾和額外功耗,管腳PA4和PA5配置成模擬輸入(AIN),如圖2所示。


1.3 USB全速設(shè)備接口

USB外設(shè)接口實(shí)現(xiàn)了USB 2.0全速總線和APB1總線間的接口,為PC主機(jī)和微控制器所實(shí)現(xiàn)的功能之間提供了符合USB規(guī)范的通信連接。PC主機(jī)和微控制器之間通過(guò)共享USB端點(diǎn)緩沖區(qū)來(lái)實(shí)現(xiàn)數(shù)據(jù)的傳輸。

STM32芯片內(nèi)部集成了USB外設(shè),大大減輕了USB電路的設(shè)計(jì)負(fù)擔(dān),只需設(shè)計(jì)USB接口電路,就可以實(shí)現(xiàn)STM32芯片的電路板的USB通信設(shè)計(jì)。D/A回放系統(tǒng)選用的USB硬件接口電路如圖3所示:USB上拉電壓接在D+線上,所以本設(shè)計(jì)USB實(shí)現(xiàn)全速通信,PC機(jī)為USB接口供電。USB+連接在GPIO管腳PA11,USB-連接在GPIO管腳PA12,如圖2所示:

2 固件程序設(shè)計(jì)

固件程序是運(yùn)行于USB設(shè)備中的程序代碼,用于輔助硬件完成USB的功能。該系統(tǒng)固件程序選用的是STM提供的The USB-FS-DevICe Libra ry固件程序庫(kù)。主要完成如下功能:一是處理USB標(biāo)準(zhǔn)請(qǐng)求和用戶自定義請(qǐng)求;二是根據(jù)USB規(guī)范設(shè)置設(shè)備的各種描述符;三是初始化系統(tǒng)得各級(jí)中斷和內(nèi)部端點(diǎn)的配置。在Keil編譯環(huán)境下,利用現(xiàn)成固件程序框架函數(shù),根據(jù)設(shè)備需求在STM提供的固件程序的框架中添加相應(yīng)的程序代碼,完成本回放系統(tǒng)的功能目的。

2.1 STM32F103xxUSB固件程序庫(kù)簡(jiǎn)介

STM32F103xxUSB固件程序庫(kù)是意法半導(dǎo)體公司專為STM32F103XX系列ARM微處理器提供的固件程序庫(kù),主要分為內(nèi)核層和應(yīng)用接口層,結(jié)構(gòu)框圖如圖4所示。

內(nèi)核層:該層管理使用USB IP硬件與USB標(biāo)準(zhǔn)協(xié)議兩者間的直接通信。USB庫(kù)內(nèi)核遵從USB 2.0標(biāo)準(zhǔn)并和標(biāo)準(zhǔn)的STM32F103XX固件庫(kù)分離。

應(yīng)用程序接口層:該層為用戶提供了內(nèi)核和最終應(yīng)用程序之間的完整接口。應(yīng)用接口層和最終應(yīng)用與固件庫(kù)通信來(lái)管理應(yīng)用的硬件需求。

2.2 固件程序的設(shè)計(jì)

在本系統(tǒng)的開(kāi)發(fā)中,沒(méi)有對(duì)內(nèi)核層進(jìn)行深入研究和修改,僅對(duì)應(yīng)用接口層進(jìn)行完成設(shè)備功能需要的設(shè)計(jì)。應(yīng)用層的開(kāi)發(fā)主要包括:系統(tǒng)初始化,主要開(kāi)啟系統(tǒng)和所用外設(shè)的時(shí)鐘;USB時(shí)鐘配置,設(shè)置并使能USB時(shí)鐘,為48 MHz;USB初始化主要是完成USB設(shè)備的枚舉;定時(shí)器模塊配置、DAC和DMA模塊配置主要是完成所用外設(shè)的初始化;最后配置好標(biāo)志位后等待上位機(jī)發(fā)送數(shù)據(jù)。所有代碼都是用庫(kù)函數(shù)來(lái)完成的,主程序流程圖如圖5所示。

插入U(xiǎn)SB設(shè)備時(shí),主機(jī)輪回查詢各個(gè)USB端口,檢測(cè)到D+和D-之間有電壓差,會(huì)識(shí)別出有USB設(shè)備的插入,然后對(duì)設(shè)備進(jìn)行枚舉。在設(shè)計(jì)的D/A回放系統(tǒng)中,枚舉過(guò)程的實(shí)現(xiàn)主要是對(duì)USB設(shè)備的設(shè)備描述符、配置描述符、端口描述符和端點(diǎn)描述符的配置來(lái)實(shí)現(xiàn)的。USB設(shè)備枚舉的過(guò)程就是通過(guò)讀取各個(gè)描述符來(lái)獲取USB設(shè)備的信息,然后將它配置為其中的一種功能。


D/A回放系統(tǒng)模塊設(shè)計(jì)中,共使用了3個(gè)端點(diǎn),分別為端點(diǎn)0,2和3。端點(diǎn)0為USB設(shè)備默認(rèn)的控制端點(diǎn),采用了控制傳輸方式,主要完成設(shè)備的枚舉。端點(diǎn)2、3均為批量傳輸端點(diǎn),數(shù)據(jù)傳輸采用的是批量傳輸方式,分別接收上位機(jī)發(fā)送來(lái)的心電信號(hào)數(shù)據(jù)和呼吸信號(hào)數(shù)據(jù)。定時(shí)器是一節(jié)拍發(fā)生器,作為DAC的外部事件觸發(fā)源。定時(shí)時(shí)鐘的預(yù)裝載值和時(shí)鐘分頻系數(shù)由原數(shù)字信號(hào)的抽樣頻率來(lái)決定。在D/A回放系統(tǒng)中,使用了兩個(gè)通用定時(shí)器3,4,分別作為心電信號(hào)和呼吸信號(hào)數(shù)據(jù)DA數(shù)模轉(zhuǎn)換的觸發(fā)源。DAC的配置為12位數(shù)據(jù)右對(duì)齊輸入,電壓輸出的雙通道模式。其中,通道1完成心電信號(hào)數(shù)據(jù)的D/A,通道2完成呼吸信號(hào)數(shù)據(jù)的D/A,選擇定時(shí)器作為外部事件觸發(fā)源,在一個(gè)定時(shí)周期內(nèi)完成一次數(shù)據(jù)的DA實(shí)現(xiàn)。DMA模塊主要是完成數(shù)據(jù)的轉(zhuǎn)移,USB模塊接收端點(diǎn)中斷接受的數(shù)據(jù),利用DMA方式從端點(diǎn)緩存中送入DAC的DAC_DHRyyD寄存器中,經(jīng)過(guò)相應(yīng)的移位后,寫(xiě)入的數(shù)據(jù)被轉(zhuǎn)存到DHR1和DHR2寄存器中,隨后通過(guò)定時(shí)器的外部事件觸發(fā)傳輸?shù)紻ORx寄存器中,在經(jīng)過(guò)時(shí)間tsetting后,輸出即有效。在數(shù)據(jù)傳輸過(guò)程中,采用了雙緩沖機(jī)制,在RAM中開(kāi)辟了2個(gè)緩存buffer,USB模塊接收數(shù)據(jù)放在一個(gè)buffer中,DMA傳輸即DAC階段,處理的數(shù)據(jù)是另一個(gè)buffer中的數(shù)據(jù),這樣,使接收數(shù)據(jù)和處理數(shù)據(jù)并行進(jìn)行,保證了轉(zhuǎn)換后波形的連續(xù)不間斷性。雙緩沖的實(shí)現(xiàn)大致如下(以心電信號(hào)數(shù)據(jù)為例):初始化空閑buffer位為buffer1,DMA源初始化配置為buffer1。端點(diǎn)2接收一數(shù)據(jù)包放入buffer1中,判斷是否為第一次接收數(shù)據(jù),如果是第一次接收,改變空閑buffer位為buffer2,并允許下一數(shù)據(jù)包的接收;如果不是第一次,中斷直接返回。繼續(xù)接收第二個(gè)數(shù)據(jù)包,放入buffer2中,判斷是否第一次DMA傳輸,如果是,改變空閑buffer位為buffer1,開(kāi)啟DMA傳輸,并使能定時(shí)器;如果不是,中斷返回。當(dāng)DMA傳輸完成進(jìn)入中斷時(shí),首先判斷空閑buffer位,再重新配置DMA,包括DMA源和傳輸數(shù)目的改變,最后改變空閑buffer位,并允許端點(diǎn)的繼續(xù)接收。心電信號(hào)數(shù)據(jù)接收處理流程圖如圖6所示。對(duì)于呼吸信號(hào)數(shù)據(jù),做同樣的處理。

3 設(shè)備驅(qū)動(dòng)和應(yīng)用程序的設(shè)計(jì)

本系統(tǒng)的USB驅(qū)動(dòng)程序采用WDM模型,選用的開(kāi)發(fā)工具是WindowsXP DDK(Build 2600),Driver Studio 3.2和VC 6.0。驅(qū)動(dòng)程序開(kāi)發(fā)平臺(tái)搭建成功后,根據(jù)實(shí)際需要,用DriverWorks自帶的DriverWizard生成驅(qū)動(dòng)程序框架和Read,Write函數(shù),在DevICeIoControl函數(shù)中添加設(shè)備控制程序,完成自定義的功能。

上位機(jī)應(yīng)用程序是采用VC 6.0創(chuàng)建的一個(gè)基于MFC的多文檔界面應(yīng)用程序,主要分為數(shù)據(jù)管理模塊,回放模塊等基本模塊。Win32應(yīng)用程序與設(shè)備驅(qū)動(dòng)程序之間的通信是通過(guò)接口(API)函數(shù)來(lái)實(shí)現(xiàn)的,應(yīng)用程序不需要為了和USB設(shè)備通信去了解復(fù)雜的USB協(xié)議,把USB接口當(dāng)做文件來(lái)操作,從而輕而易舉的實(shí)現(xiàn)USB接口通信。

4 系統(tǒng)回放結(jié)果分析

按照固件程序的設(shè)計(jì)寫(xiě)入U(xiǎn)SB設(shè)備,插入主機(jī)并加載相應(yīng)的驅(qū)動(dòng)程序,打開(kāi)上位機(jī)程序,讀取數(shù)據(jù)庫(kù)中220.dat文件,傳輸?shù)絊TM32完成D/A,原始心電信號(hào)波形與示波器回放波形的比較如圖7所示。

D/A模塊較好的完成了回放功能。通過(guò)示波器實(shí)時(shí)分析,回放波形周期及幅度亦滿足要求,即時(shí)序性滿足要求。

5 結(jié)語(yǔ)

基于STM32的MIT-BIH心電數(shù)據(jù)D/A回放的設(shè)計(jì),在硬件和固件應(yīng)用程序兩方面實(shí)現(xiàn)了比較完美的結(jié)合,對(duì)原始數(shù)據(jù)的D/A回放取得了良好的運(yùn)行效果。同時(shí)主控芯片STM32F103RE內(nèi)部集成的豐富的功能模塊,降低了開(kāi)發(fā)的難度,也保證了系統(tǒng)的

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉