新聞中心

EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于手機(jī)通信的心電圖機(jī)設(shè)計(jì)方案

基于手機(jī)通信的心電圖機(jī)設(shè)計(jì)方案

作者: 時(shí)間:2012-10-18 來源:網(wǎng)絡(luò) 收藏


2 系統(tǒng)軟件

軟件包括下位機(jī)和上位機(jī)2部分。下位機(jī)主要負(fù)責(zé)接收上位機(jī)的設(shè)置電壓值,并經(jīng)過轉(zhuǎn)換后輸入到MAX522,從而輸出設(shè)置電壓。上位機(jī)則通過VUSB與下位機(jī)連接,并通過模擬的USB協(xié)議向下位機(jī)寫入數(shù)據(jù)。

2.1 下位機(jī)軟件

下位機(jī)軟件流程圖如圖5所示。其中設(shè)備初始化包括單片機(jī)端口初始化、DAC初始化及VUSB端口初始化。在初始化之后,程序進(jìn)入主循環(huán),在其中加入了USB輪詢函數(shù)usbPoll(),用來偵測(cè)USB事件。一旦偵測(cè)到上位機(jī)有USB請(qǐng)求時(shí),usbdrv就會(huì)調(diào)用usbFunctionSetup()函數(shù)來處理請(qǐng)求。在此請(qǐng)求函數(shù)中接收上位機(jī)傳來的數(shù)據(jù)并將此數(shù)據(jù)轉(zhuǎn)換后寫入MAX522數(shù)據(jù)端口,啟動(dòng)DAC輸出電壓。







圖5 下位機(jī)軟件流程。

中需注意以下幾點(diǎn):

1)單片機(jī)方面的VUSB 底層驅(qū)動(dòng)函數(shù)使用AVRUSB,最新版本的AVR-USB為C語言編寫并有詳細(xì)的注釋。開發(fā)平臺(tái)為WinAVR.GCC項(xiàng)目文件夾中需包含驅(qū)動(dòng)文件(usbdrv文件夾),并對(duì)usbconfig.h中的部分宏定義做一些修改。

#define USB_CFG_IOPORTNAME D//這個(gè)接口連接USB總線。當(dāng)配置為D時(shí),寄存器PORTD,PIND and DDRD將有效。

#define USB_CFG_DMINUS_BIT 1//位配置,是在USB_CFG_IOPORT 中連接USB D-的線??梢耘渲脼榻涌诘娜魏挝?。

#define USB_CFG_DPLUS_BIT 2//位配置,是在USB_CFG_IOPORT 中連接USB D+的線。也可以連接到任意口,但是注意D+一定要連接都中斷口INT0

2)單片機(jī)在接收到讀取數(shù)據(jù)命令時(shí)會(huì)自動(dòng)調(diào)用usbFunctionSetup(uchar data[8]),在函數(shù)內(nèi)把全局指針*usbMsgPtr指向所要發(fā)送的數(shù)據(jù)首地址,然后返回(函數(shù)返回值)所發(fā)送數(shù)據(jù)的長(zhǎng)度就可以了。由于采用的是命令包方式傳輸數(shù)據(jù),每次只能接收4個(gè)字節(jié)的有效數(shù)據(jù),存儲(chǔ)在data[2]~data[4]中。

3)初始化時(shí)需要將MAX522的輸出置為關(guān)閉狀態(tài)。

寫入MAX522時(shí)首先寫入8位控制字,然后寫入8位DAC數(shù)據(jù)。

2.2 上位機(jī)軟件

上位機(jī)用C# 語言進(jìn)行編寫,驅(qū)動(dòng)采用一款名為L(zhǎng)ibUsbDotNet的開源USB上位機(jī)驅(qū)動(dòng)庫(kù)文件。此驅(qū)動(dòng)庫(kù)文件還提供了供。NET平臺(tái)調(diào)用的USB接口函數(shù)。使用時(shí)需包含相應(yīng)的動(dòng)態(tài)鏈接庫(kù)文件。

上位機(jī)軟件主要包括顯示設(shè)備連接狀態(tài)、寫入電壓值及讀取當(dāng)前電壓值等功能。上位機(jī)軟件流程圖如圖6所示。







圖6 上位機(jī)軟件流程。

只有在總線請(qǐng)求為用戶自定義類型(Vendor)時(shí)單片機(jī)才會(huì)調(diào)用usbFunctionSetup(uchar data[8])這個(gè)函數(shù),所以傳輸數(shù)據(jù)是通過發(fā)送用戶自定義類型的Setup數(shù)據(jù)包來實(shí)現(xiàn)的。讀數(shù)據(jù)時(shí)設(shè)置此數(shù)據(jù)包為IN,同時(shí)寫入需要讀取的字節(jié)數(shù)。寫入數(shù)據(jù)時(shí)設(shè)置數(shù)據(jù)包為OUT,4字節(jié)的有效數(shù)據(jù)則包含在所建立的8字節(jié)Setup數(shù)據(jù)包的data[2]~data[4]之中。

3 實(shí)驗(yàn)驗(yàn)證與分析

本數(shù)控直流穩(wěn)壓電源在使用之前需進(jìn)行校零。在初始狀態(tài)下,調(diào)節(jié)集成運(yùn)放μA741的外接調(diào)零電阻使集成運(yùn)放輸出為0,調(diào)節(jié)射極輸出器偏置電阻R13使輸出電壓為0.

在輸出最大的情況下,調(diào)節(jié)輸出集成運(yùn)放的比例放大電阻R14,使得輸出電壓為12V.

校零之后將上位機(jī)設(shè)置電壓值與實(shí)際輸出電壓進(jìn)行對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)數(shù)據(jù)如表1所示。







表1 電壓輸出對(duì)比實(shí)驗(yàn)結(jié)果

所設(shè)計(jì)電壓源實(shí)際輸出值與設(shè)定值偏差較小,能夠滿足0~12V連續(xù)可調(diào)輸出,步進(jìn)值為0.1V的使用要求。

4 結(jié) 論

設(shè)計(jì)了一種以單片機(jī)為主,VUSB技術(shù)進(jìn)行數(shù)據(jù)傳輸控制的數(shù)控直流穩(wěn)壓電源。輸出電壓值由單片機(jī)控制,步進(jìn)調(diào)節(jié)方便,輸出穩(wěn)定。既可以作為單獨(dú)的電源使用,也可以嵌入到其他需要步進(jìn)電壓模塊的測(cè)試系統(tǒng)之中。

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

上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

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

關(guān)閉