新聞中心

EEPW首頁(yè) > 醫(yī)療電子 > 設(shè)計(jì)應(yīng)用 > 基于C8051F320單片機(jī)的低成本心電監(jiān)護(hù)系統(tǒng)設(shè)計(jì)

基于C8051F320單片機(jī)的低成本心電監(jiān)護(hù)系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2014-11-27 來(lái)源:網(wǎng)絡(luò) 收藏

  心電電極將得到的信號(hào)經(jīng)濾波和可變?cè)鲆娣糯笃鞣糯蠛笏椭?a class="contentlabel" href="http://2s4d.com/news/listbylabel/label/C8051">C8051F320單片機(jī),單片機(jī)將得到的模擬心電信號(hào)實(shí)時(shí)轉(zhuǎn)換為數(shù)字信號(hào),采集到的數(shù)據(jù)通過(guò)USB接口傳給PC機(jī),進(jìn)一步分析處理信號(hào)數(shù)據(jù)。

本文引用地址:http://2s4d.com/article/266066.htm

  3 系統(tǒng)軟件設(shè)計(jì)

  3.1 F320單片機(jī)程序設(shè)計(jì)

  F320單片機(jī)程序包括:(1)A/D轉(zhuǎn)換程序和程控放大控制程序;(2)基于USB器件的通信程序,接收從USB主機(jī)發(fā)送的用戶指令并將采集的數(shù)據(jù)發(fā)送給USB主機(jī)。

  3.1.1 A/D轉(zhuǎn)換程序

  衡量A/D轉(zhuǎn)換性能主要有兩個(gè)指標(biāo):采樣分辨率(A/D轉(zhuǎn)換器位數(shù))和A/D轉(zhuǎn)換速度。設(shè)置A/D轉(zhuǎn)換器的采樣率為2 000 Hz,并采用定時(shí)器TIME2溢出中斷觸發(fā)轉(zhuǎn)換,每次轉(zhuǎn)換結(jié)束后1O位結(jié)果數(shù)據(jù)字被鎖存到A/D轉(zhuǎn)換器的數(shù)據(jù)寄存器中,供USB通訊子程序數(shù)據(jù)調(diào)用,圖4為A/D轉(zhuǎn)換流程。A/D轉(zhuǎn)換程序較簡(jiǎn)單,可通過(guò)設(shè)置C8051F320片上定時(shí)器確定A/D轉(zhuǎn)換器的采樣周期,由定時(shí)器的溢出周期性啟動(dòng)A/D轉(zhuǎn)換器來(lái)采樣被測(cè)數(shù)據(jù)。USB設(shè)置為塊狀傳輸模式與PC機(jī)進(jìn)行數(shù)據(jù)通信。將每64個(gè)數(shù)據(jù)打成一個(gè)數(shù)據(jù)包。以充分利用硬件資源并提高數(shù)據(jù)傳輸效率。

  

 

  3.1.2 基于USB器件的通信程序

  整個(gè)程序流程以USB通信為主線,如圖5所示。圖中所涉及的USB_Clock_Start()、USB_Int()等函數(shù)均是SiliconLab公司專為C8051F320單片機(jī)USB功能開(kāi)發(fā)的USB端API函數(shù)。通過(guò)在C8051F320上層應(yīng)用程序中直接調(diào)用這些函數(shù)可方便快捷地訪問(wèn)USB底層硬件。

  

 

  3.2 PC機(jī)程序設(shè)計(jì)

  PC機(jī)程序設(shè)計(jì)主要完成用戶圖形界面和基于USB主機(jī)通信程序兩大功能,從而實(shí)現(xiàn)人機(jī)交互,將用戶輸入的指令和采集模塊采集的數(shù)據(jù)通過(guò)USB總線在PC機(jī)和C8051F320之間傳遞。

  3.2.1 程序面板設(shè)計(jì)

  開(kāi)發(fā)USB設(shè)備驅(qū)動(dòng)程序的工具使用USB Xpress Devel-opment Kit,主要有:SI_Open()函數(shù);SI_Close()函數(shù);SI_Read函數(shù);SI_Write()函數(shù);SI_GetNumDevices()函數(shù);SI_CheckRX Queue()函數(shù)。用戶從設(shè)備讀取數(shù)據(jù)將調(diào)用一個(gè)應(yīng)用程序接口API。SI_GetNumDevices()、SI_GetProductString()等函數(shù)均是Silicon Lab公司專為C8051F320單片機(jī)USB功能開(kāi)發(fā)的USB主機(jī)端API函數(shù)。LabVIEW提供調(diào)用鏈接庫(kù)函數(shù)Call Librarv Function,本設(shè)計(jì)利用Silicon Lab公司的SiUSBXp.dll動(dòng)態(tài)鏈接庫(kù)來(lái)實(shí)現(xiàn)對(duì)USB底層硬件的訪問(wèn)。

  通過(guò)調(diào)用SLGetNumDevices()甬?dāng)?shù)完成設(shè)備的通信初始化,生成函數(shù)返回驅(qū)動(dòng)的設(shè)備號(hào);該設(shè)備號(hào)用來(lái)在調(diào)用SI GetProductString()函數(shù)時(shí)生成設(shè)備描述字符串。要讀取一個(gè)設(shè)備,首先必須通過(guò)調(diào)用SI_GetNumDevices()函數(shù)生成的索引(設(shè)備號(hào))來(lái)調(diào)用SI_Open()函數(shù)。SI_Open()函數(shù)將返回設(shè)備的句柄,該句柄將在隨后的所有進(jìn)程中被用到。利用 SI_Write()和SI_Read()函數(shù)就可實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出。當(dāng)完成數(shù)據(jù)的輸入和輸出操作后,可通過(guò)調(diào)用SI_Close()關(guān)閉設(shè)備。圖6為I/O接口驅(qū)動(dòng)程序框圖。

  



評(píng)論


相關(guān)推薦

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

關(guān)閉