工頻50Hz的濾除電路_第1頁
工頻50Hz的濾除電路_第2頁
工頻50Hz的濾除電路_第3頁
工頻50Hz的濾除電路_第4頁
工頻50Hz的濾除電路_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 3.5 工頻50hz的濾除電路工頻干擾是經(jīng)絡(luò)信號(hào)的主要干擾,雖然前置放大電路對(duì)共模干擾具有較強(qiáng)的抑制作用,但有部分工頻干擾是以差模信號(hào)方式進(jìn)入電路的,且頻率處于經(jīng)絡(luò)信號(hào)的頻帶之內(nèi),加上電極和輸入回路不穩(wěn)定等因素,前級(jí)電路輸出的經(jīng)絡(luò)信號(hào)仍存在較強(qiáng)的工頻干擾,所以必須專門濾除。采用如下圖所示是有源雙t帶阻濾波器,該電路的q值隨著反饋系數(shù)(0<<1)的增高而增高,q值與的關(guān)系如下:,調(diào)節(jié)r16和r17的比值可改變q值。圖3-103.5.1參數(shù)計(jì)算:,c7=c8=c,c6=2c先取,由公式計(jì)算得,在軟件上模擬后,調(diào)整為:,。3.5.2 q值討論50hz陷波器的傳遞函數(shù)為: (1)幅頻特性

2、為: (2),1,100rad。國家允許交流供電頻率在49.550.5hz范圍內(nèi),所以50hz陷波器的q值并不是越高越好,太高時(shí),阻帶過窄,若工頻干擾頻率發(fā)生波動(dòng),則根本達(dá)不到濾除工頻干擾的目的。而q值太小時(shí),又可能會(huì)濾掉有用信號(hào)。選擇3db處截止頻率為47.5hz,52.5hz,將,分別代入中計(jì)算得,q19.74,q210.24,所以取10,r1722m, r16510k。軟件模擬設(shè)計(jì)50hz陷波器幅頻特性如下所示:3.6后級(jí)放大電路后級(jí)放大采用反相放大器,反相放大器一般形式如下圖所示:圖3-12在此電路上加一個(gè)電容,就可以同時(shí)實(shí)現(xiàn)放大和濾波,稱之為實(shí)用反相放大器。低端截止頻率設(shè)計(jì)為0.05

3、hz,由式0.05hz來定c10,r18的值,取c1033,r18100k。再由=-5,取r19=510k。高端截止頻率,由此式計(jì)算出c11的值,取c12680。圖3.14設(shè)計(jì)實(shí)用反相放大器的模擬幅頻特性如下所示(輸入信號(hào)1mv):圖3-153.7 總結(jié)和討論信號(hào)經(jīng)過放大、濾波、處理后送入單片機(jī)進(jìn)行a/d變換,一方面將a/d變換后的數(shù)據(jù)通過usb傳到主機(jī); 經(jīng)絡(luò)系統(tǒng)的前向通路對(duì)目前面世的許多醫(yī)學(xué)儀器起著不可漠視的重要角色;這相當(dāng)于一個(gè)基石,沒有了它,經(jīng)絡(luò)信號(hào)就不能很好的放大和給a/d采集,所以當(dāng)前對(duì)經(jīng)絡(luò)的研究是至關(guān)重要的。剛要做時(shí),我覺得無法入手,經(jīng)過長時(shí)間的對(duì)相關(guān)資料的了解,明白自己首要做的

4、事情就是要了解經(jīng)絡(luò)信號(hào)的特點(diǎn),因?yàn)榻?jīng)絡(luò)信號(hào)輸出時(shí)的幅度不上5mv,那么選擇一個(gè)適合的放大器對(duì)設(shè)計(jì)是第一個(gè)要點(diǎn),在課題的一步步設(shè)計(jì)下去,碰到的問題不少,如放大電路中芯片的選擇,在對(duì)比經(jīng)絡(luò)放大的各種要求才確定一個(gè)最方便、最實(shí)用的辦法。根據(jù)經(jīng)絡(luò)信號(hào)的特點(diǎn),設(shè)計(jì)了一個(gè)帶通濾波器、一個(gè)陷波器來對(duì)信號(hào)進(jìn)行濾波,也使我明白了多階濾波器的設(shè)計(jì);還有一點(diǎn)很重要的就是電容和電阻的參數(shù)確定比較繁瑣,在選取使要考慮電阻標(biāo)稱值。第4章軟件分析與設(shè)計(jì)4.1系統(tǒng)總體設(shè)計(jì)usb數(shù)據(jù)采集系統(tǒng)軟件設(shè)計(jì)主要包括兩部分:一是usb設(shè)備端的單片機(jī)軟件,主要完成usb協(xié)議處理與數(shù)據(jù)交換(多數(shù)情況下是一個(gè)中斷子程序)以及其它應(yīng)用功能程序。

5、二是pc端的程序,由usb設(shè)備驅(qū)動(dòng)程序和應(yīng)用程序兩部分組成。公司在express的開發(fā)包中提供了一個(gè)通用驅(qū)動(dòng)程序,我們對(duì)該驅(qū)動(dòng)程序進(jìn)行了封裝,完成應(yīng)用程序與usb操作系統(tǒng)的接口功能。應(yīng)用程序根據(jù)下位機(jī)的數(shù)據(jù)包格式及通信協(xié)議,提取出各種信息供其它模塊使用。pc端程序的開發(fā)難度比較大,程序員不僅要熟悉usb協(xié)議,還要熟悉windows體系結(jié)構(gòu)并能熟練運(yùn)用ddk工具。4.2 固件程序設(shè)計(jì)4.2.1 usb接口固件設(shè)計(jì)對(duì)于單片機(jī)控制程序,目前沒有任何廠商提供自動(dòng)生成固件的工具,因此所有程序都要由自己手工編制。根據(jù)usb協(xié)議,任何傳輸都是由主機(jī)開始的,這樣單片機(jī)作它的前臺(tái)工作,等待中斷。主機(jī)首先要發(fā)令牌

6、包給usb設(shè)備, 設(shè)備接收到令牌包后就給單片機(jī)發(fā)中斷,單片機(jī)進(jìn)入中斷服務(wù)程序,首先讀c8051f320的中斷寄存器,判斷usb令牌包的類型,然后執(zhí)行相應(yīng)的操作。因此,usb單片機(jī)程序主要就是中斷服務(wù)程序的編寫。在usb單片機(jī)程序中要完成對(duì)各種令牌包的響應(yīng),其中比較難處理的是setup包,主要是端口0的編程。4.2.2單片機(jī)主程序設(shè)計(jì)主程序由兩部分組成:第一、初始化單片機(jī);第二、主循環(huán)部分,其任務(wù)是可以中斷的,并對(duì)經(jīng)絡(luò)信號(hào)進(jìn)行處理。在此選用了keil c51語言進(jìn)行了程序的調(diào)試和軟件仿真。keil c51開發(fā)系統(tǒng)可以完成編輯、編譯、連接、調(diào)試和仿真等整個(gè)開發(fā)流程??梢杂盟鼇砭庉媍或匯編文件,然后

7、由c51或a51編譯器生成目標(biāo)文件(.obj)。 目標(biāo)文件可由lib51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)l51連接定位生成絕對(duì)目標(biāo)文件(.abs ). abs文件由oh51轉(zhuǎn)換成標(biāo)準(zhǔn)的hex文件,以提供給調(diào)試器使用,進(jìn)行源代碼級(jí)調(diào)試,直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存儲(chǔ)器中。4.2.2.1 初始化過程初始化程序分為兩個(gè)部分,首先初始化單片機(jī)內(nèi)部寄存器,定時(shí)器,設(shè)置看門狗和外部i/o口,以及usb相關(guān)得寄存器進(jìn)行初始化。4.2.2.2 主循環(huán)部分完成初始化工作后,就可作其它的前臺(tái)工作了,并在前臺(tái)判斷是否有setup包(通過一個(gè)變量,當(dāng)中斷服務(wù)程序檢測到有setup包時(shí),設(shè)置該變量),

8、然后執(zhí)行響應(yīng)的控制傳輸。本系統(tǒng)的主程序流程圖如圖4-2所示。主循環(huán)初始化單片機(jī)及usb寄存器經(jīng)絡(luò)數(shù)據(jù)采集和濾波總線復(fù)位掛起改變建立包總線復(fù)位處理掛起改變處理調(diào)用協(xié)議處理程序yesyesyesnonono 圖4-1 主程序流程圖中斷程序讀取單片機(jī)中斷寄存器設(shè)置標(biāo)志總線是否復(fù)位端點(diǎn)0 in端點(diǎn)0 out端點(diǎn)1 in端點(diǎn)1 out端點(diǎn)2 in端點(diǎn)2 out轉(zhuǎn)入端點(diǎn)0 in 中斷轉(zhuǎn)入端點(diǎn)0 out中斷轉(zhuǎn)入端點(diǎn)1 in 中斷轉(zhuǎn)入端點(diǎn)1 out中斷轉(zhuǎn)入端點(diǎn)2 in 中斷轉(zhuǎn)入端點(diǎn)1 out中斷中斷寄存器值為0endyesyesyesyesesyesyesnononononono圖4-2中斷程序流程圖中斷服務(wù)

9、程序?qū)r(shí)間敏感的,必須馬上執(zhí)行。前面己經(jīng)提到c8051f320中的單片機(jī)固化程序主要就是中斷服務(wù)程序。主程序和中斷程序之間的數(shù)據(jù)交換主要是靠數(shù)據(jù)緩沖器和事件標(biāo)志來完成的。如中斷流程圖4-3所示,中斷程序主要進(jìn)行端點(diǎn)的控制。如表4-1所示,usb提供3組端點(diǎn),其中端點(diǎn)0為設(shè)備缺省支持的控制端點(diǎn):端點(diǎn)1為普通端點(diǎn),可以作為塊傳輸或中斷傳輸端點(diǎn);端點(diǎn)2稱為主端點(diǎn),主要用于大塊數(shù)據(jù)的傳輸,采用雙緩沖技術(shù)以更好的支持實(shí)時(shí)應(yīng)用的等時(shí)傳輸,支持dma操作。可以通過setmode命令從1種傳輸模式中選擇一種設(shè)置,即將主端點(diǎn)設(shè)置為等時(shí)傳輸或非等時(shí)傳輸。 端點(diǎn)索引傳輸方向最大包尺寸(字節(jié))001outin1612

10、3outin16245outin64表4-1 c8051f320端點(diǎn)類型塊輸出端點(diǎn):當(dāng)d12需要接收一個(gè)來自u(píng)sb總線上的數(shù)據(jù)包時(shí),向cpu產(chǎn)生一個(gè)中斷請(qǐng)求,cpu接收到中斷請(qǐng)求信號(hào)后,馬上服務(wù)于中斷程序。在中斷服務(wù)程序中,用單片機(jī)固化程序來將d12內(nèi)部寄存器的數(shù)據(jù)轉(zhuǎn)移到數(shù)據(jù)緩沖器(cpu內(nèi)部ram)中并等待主程序來處理,且將d12內(nèi)部寄存器清空以便接收新的數(shù)據(jù)包。cpu可接著執(zhí)行它的主程序,并且檢查數(shù)據(jù)緩沖器中是否有新的數(shù)據(jù)并加以處理。在這種結(jié)構(gòu)下,cpu不管數(shù)據(jù)是來自u(píng)sb總線、串行口還是并行口,它的主要任務(wù)是查看數(shù)據(jù)緩沖器是否有新的數(shù)據(jù)以便處理??刂贫它c(diǎn):它和塊輸出端點(diǎn)在數(shù)據(jù)處理方面概念

11、相同。當(dāng)中斷服務(wù)程序(isr)在接收和儲(chǔ)存控制數(shù)據(jù)包的同時(shí),設(shè)置相應(yīng)的寄存器標(biāo)志。因?yàn)樗械臉?biāo)準(zhǔn)設(shè)備、類等都是在協(xié)議層中處理的,isr的這種結(jié)構(gòu)則可以保持它的效率。下面給出控制端點(diǎn)輸出(如圖4-4)和控制端點(diǎn)輸入(如圖4-4)處理程序流程圖。初始化控制輸入和控制輸出發(fā)送一個(gè)控制輸出標(biāo)志開始step包請(qǐng)求有效?控制讀?控制寫?字節(jié)數(shù)=0?結(jié)束nononononoyesyesyesyesyes圖 4-4開始清除控制端點(diǎn)和輸入中斷點(diǎn)控制讀?字節(jié)數(shù)=0?發(fā)送控制輸入標(biāo)志結(jié)束yesyesnono圖4-54.2.3設(shè)備配置信息 這是系統(tǒng)枚舉并配置usb設(shè)備所依據(jù)的一系列數(shù)據(jù)結(jié)構(gòu)的定義。這些數(shù)據(jù)結(jié)構(gòu)完全遵循

12、usb規(guī)范,并對(duì)廠商和設(shè)備特征。主要包括:1個(gè)設(shè)備描述符,1個(gè)配置描述符,1個(gè)接口描述符,2個(gè)端口描述符,和若干字符串描述符(包括標(biāo)識(shí),廠商,產(chǎn)品,序列號(hào))。這里,2個(gè)端口描述符定義分別定義了1個(gè)中斷輸出和1個(gè)中斷輸入端點(diǎn),查詢間隔為50毫秒。設(shè)備描述符中定義廠商id,產(chǎn)品id。兩個(gè)id構(gòu)成硬件id,系統(tǒng)將根據(jù)硬件id查找并自動(dòng)加載所需要的驅(qū)動(dòng)程序??蛻糗浖sb系統(tǒng)軟件usb主控制器功能單元usb邏輯結(jié)構(gòu)usb總線接口主機(jī)系統(tǒng)usb設(shè)備功能層usb設(shè)備層usb總線接口層邏輯通信流實(shí)際通信流圖4-6 分層通信模型圖4-6中的通信模型是對(duì)主機(jī)與usb設(shè)備的一個(gè)分層通信模型的描述,它表明主機(jī)與us

13、b設(shè)備之間軟件以及數(shù)據(jù)通信的對(duì)應(yīng)關(guān)系。主機(jī)軟件通過對(duì)usb設(shè)備的端點(diǎn)和管道進(jìn)行操作實(shí)現(xiàn)主機(jī)與usb設(shè)備之間的通信,usb總線接口層為主機(jī)和usb設(shè)備提供了物理的連接,usb設(shè)備層是通過控制管道將系統(tǒng)軟件與邏輯設(shè)備連接起來,功能層通過數(shù)據(jù)管道將客戶軟件與usb設(shè)備的功能接口連接起來。對(duì)于usb設(shè)備層和功能層而言,這兩層d都有其層間的邏輯通信,而這種邏輯通信實(shí)際上是通過usb總線接口層來完成其數(shù)據(jù)傳輸?shù)摹?.3設(shè)備驅(qū)動(dòng)程序驅(qū)動(dòng)程序使用在主機(jī)上,用來程序化一個(gè)ubs設(shè)備。在windows系統(tǒng)下,主機(jī)與設(shè)備之間的usb通信必須經(jīng)過設(shè)備驅(qū)動(dòng)程序來傳輸。設(shè)備驅(qū)動(dòng)程序知道如何與系統(tǒng)的ubs驅(qū)動(dòng)程序、以及與存

14、取設(shè)備的應(yīng)用程序溝通。應(yīng)用程序不需要知道它所通信的設(shè)備,其實(shí)際的連接地址、信號(hào)種類以及通信所用的協(xié)議等細(xì)節(jié),這些工作是由設(shè)備驅(qū)動(dòng)程序來處理的。應(yīng)用程序只需知道設(shè)備的名稱,或是設(shè)備的功能即可。4.3.1 usb驅(qū)動(dòng)程序?qū)觲indows系統(tǒng)中管理設(shè)備通信的部分是i/o子系統(tǒng)(i/0subsystem)。i/o子系統(tǒng)分成數(shù)層,每一層包含一個(gè)或多個(gè)驅(qū)動(dòng)程序,通信的要求在這些層次間分別傳遞。在1/0子系統(tǒng)內(nèi)有一個(gè)ubs子系統(tǒng),包含有處理所有設(shè)備的ubs通信的驅(qū)動(dòng)程序。4.3.2 函數(shù)驅(qū)動(dòng)程序函數(shù)驅(qū)動(dòng)程序(functinodrive)r讓應(yīng)用程序與ubs設(shè)備,通過api函數(shù)來溝通。這些api函數(shù)屬于win

15、dwos的win32子系統(tǒng),win32子系統(tǒng)同時(shí)也管理著執(zhí)行應(yīng)用程序、讀取鍵盤與鼠標(biāo)輸入、在屏幕上顯示輸出等用戶函數(shù)。函數(shù)驅(qū)動(dòng)程序同時(shí)知道如何與較低級(jí)的總線驅(qū)動(dòng)程序溝通,總線驅(qū)動(dòng)程序控制著硬件。圖34是應(yīng)用程序與各個(gè)驅(qū)動(dòng)程序,如何一起完成ubs通信的結(jié)構(gòu)圖。函數(shù)驅(qū)動(dòng)程序通常被指為設(shè)備驅(qū)動(dòng)程序,不過設(shè)備驅(qū)動(dòng)程序除了函數(shù)驅(qū)動(dòng)程序外,還包含總線驅(qū)動(dòng)程序。函數(shù)驅(qū)動(dòng)程序可以是一個(gè)類別驅(qū)動(dòng)程序,或者說一個(gè)特定的設(shè)備驅(qū)動(dòng)程序。當(dāng)設(shè)備或是子類別的要求超過類別驅(qū)動(dòng)程序的能力時(shí),會(huì)有輔助的過濾器驅(qū)動(dòng)程序來增加類別驅(qū)動(dòng)程序的能力。一個(gè)上層的過濾器驅(qū)動(dòng)程序位于類別驅(qū)動(dòng)程序的上方,如圖34所示。從應(yīng)用程序傳來的要求,會(huì)

16、先經(jīng)過上層的過濾器驅(qū)動(dòng)程序,然后才傳給類別驅(qū)動(dòng)程序。一個(gè)下層的過濾器驅(qū)動(dòng)程序位于類別驅(qū)動(dòng)程序與總線驅(qū)動(dòng)程序之間,類別驅(qū)動(dòng)程序?qū)⒁髠鬟f給下層過濾器驅(qū)動(dòng)程序,然后再傳給總線驅(qū)動(dòng)程序。usb的總線驅(qū)動(dòng)程序包含:(一)根集線器驅(qū)動(dòng)程序(root一hubdriver)(2)總線類別驅(qū)動(dòng)程序(bus一elassdriver)(3)主機(jī)控制器驅(qū)動(dòng)程序(host一eontrollerdriver)根集線器驅(qū)動(dòng)程序管理連接端口的初始化,以及與設(shè)備驅(qū)動(dòng)程序和總線類別驅(qū)動(dòng)程序之間的通信??偩€類別驅(qū)動(dòng)程序管理總線的電源、檢測、ubs事務(wù)以及usb外設(shè)的設(shè)備驅(qū)動(dòng)和應(yīng)用程序與根集線器驅(qū)動(dòng)程序和主機(jī)控制器驅(qū)動(dòng)程序之間的通

17、信。主機(jī)控制器驅(qū)動(dòng)程序啟用主機(jī)控制器的硬件,與ubs系統(tǒng)軟件之間的通信。主機(jī)控制器驅(qū)動(dòng)程序之所以與總線類別驅(qū)動(dòng)程序分開,是因?yàn)閣indwos支持多個(gè)類型的主機(jī)控制器,每一個(gè)主機(jī)控制器有自己的驅(qū)動(dòng)程序??偩€類別驅(qū)動(dòng)程序?qū)儆趙indwos的一部分,所以設(shè)備驅(qū)動(dòng)程序的編寫不需要知道總線類別驅(qū)動(dòng)程序的工作細(xì)節(jié)。4.3.3 usb設(shè)備被發(fā)現(xiàn)的過程一個(gè)usb設(shè)備接入計(jì)算機(jī)后,要經(jīng)過如下的步驟被主機(jī)所發(fā)現(xiàn)。1.usb外設(shè)所連的hub檢測到所連接的usb外設(shè),并自動(dòng)通知主機(jī),以及它的端口變化狀態(tài),這時(shí)外設(shè)還是處于禁止?fàn)顟B(tài)。2.主機(jī)通過對(duì)hub的查詢以確認(rèn)外設(shè)的連接。3.現(xiàn)在,主機(jī)己經(jīng)知道有一臺(tái)新的usb外設(shè)連

18、接到usb系統(tǒng)中,然后,它激活這個(gè)hub的端口,并向hub發(fā)送一個(gè)復(fù)位該端口的信號(hào)。4.hub將復(fù)位信號(hào)保持10ms,為連接到該端口的設(shè)備提供最大不超過100ma的電流,這時(shí)外設(shè)處于powered的狀態(tài),它所有的寄存器都被清空。5.在外設(shè)分配到唯一地址以前,它的默認(rèn)信道是主機(jī)默認(rèn)的地址,然后主機(jī)通過讀取默認(rèn)信道所使用的地址來讀取設(shè)備的特征字,從而能夠?yàn)樵O(shè)備找到相應(yīng)的設(shè)備驅(qū)動(dòng)程序。6此時(shí)主機(jī)分配給外設(shè)一個(gè)唯一的usb地址,從此以后就用該地址與設(shè)備通信,這時(shí)設(shè)備叫addressed狀態(tài)7.主機(jī)通過端點(diǎn)0來讀取設(shè)備描述符,從而為設(shè)備進(jìn)行配置做準(zhǔn)備。8.經(jīng)主控器件仲裁后,對(duì)設(shè)備進(jìn)行配置,這樣設(shè)備就被配

19、置成功了。經(jīng)過以上的八個(gè)步驟后,一臺(tái)usb設(shè)備就進(jìn)入工作狀態(tài)了。4.3.4 windows驅(qū)動(dòng)程序描述在windows下,與usb外設(shè)的任何通信必須通過usb設(shè)備驅(qū)動(dòng),這個(gè)驅(qū)動(dòng)知道如何與系統(tǒng)的usb驅(qū)動(dòng)和訪問設(shè)備的應(yīng)用程序通信。設(shè)備驅(qū)動(dòng)是保證應(yīng)用程序訪問硬件設(shè)備的軟件組件,使得應(yīng)用程序不必知道物理連接、信號(hào)和與-個(gè)設(shè)備通信需要的協(xié)議等的細(xì)節(jié),可以保證應(yīng)用程序代碼只通過外設(shè)名字訪問外設(shè)或端口目的地gaol。應(yīng)用程序不需要知道外設(shè)連接端口的物理地址,不需要精確監(jiān)視和控制外設(shè)需要的交換信號(hào)。設(shè)備驅(qū)動(dòng)通過在應(yīng)用層和硬件專用代碼之間的轉(zhuǎn)化來完成它的任務(wù)。應(yīng)用層代碼一般使用一套操作系統(tǒng)支持的函數(shù),硬件代碼

20、則處理那些訪問外設(shè)電路的必要協(xié)議。設(shè)備驅(qū)動(dòng)能與應(yīng)用程序之間相互通信是通過windows提供的api函數(shù),這些函數(shù)使應(yīng)用程序能夠控制顯示器、處理信息、訪問存儲(chǔ)器、讀寫磁盤和其它設(shè)備。對(duì)于一些標(biāo)準(zhǔn)設(shè)備,windows提供通用驅(qū)動(dòng);而對(duì)于一些實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)屬于自定義的設(shè)備,對(duì)此windows并不提供通用的驅(qū)動(dòng),所以需要為設(shè)備編寫自定義的驅(qū)動(dòng),并且必須遵循微軟在windows98以上版本中為用戶定義的win32驅(qū)動(dòng)模式。盡管windows98和windows2000提供了很多標(biāo)準(zhǔn)接口函數(shù),但編制設(shè)備驅(qū)動(dòng)程序仍是usb開發(fā)中最困難的部分。隨著usb設(shè)備的大量開發(fā)和使用,目前己經(jīng)出現(xiàn)了一些專門的usb開

21、發(fā)套件。另外還有許多第三方軟件廠商提供了各種各樣的生成工具,像compuware的driver works, bluewaters它們能根據(jù)usb設(shè)備十分容易地生成高質(zhì)量usb設(shè)備驅(qū)動(dòng)程序,減少了開發(fā)的困難。win-driver還包括一個(gè)功能強(qiáng)大的硬件探測器和調(diào)試器,在寫入代碼前,可通過調(diào)試器對(duì)硬件進(jìn)行全面的測試。這種方式能夠在寫驅(qū)動(dòng)程序前,校驗(yàn)硬件是否按照期望的那樣工作。windriver能根據(jù)檢測到的usb設(shè)備自動(dòng)生成設(shè)備驅(qū)動(dòng)程序代碼以及inf文件,用戶幾乎可以不加修改就可直接編譯生成usb設(shè)備驅(qū)動(dòng)程序。win-driver還能根據(jù)用戶對(duì)usb設(shè)備的具體操作生成程序代碼,用戶可以將此程序代

22、碼直接加入到用戶應(yīng)用程序中,另外,還可直接利用windriverapi函數(shù)開發(fā)應(yīng)用程序。4.3.5 usb設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)一個(gè)完整的驅(qū)動(dòng)程序要完成以下工作:初始化;創(chuàng)建與刪除設(shè)備;處理應(yīng)用層程序的打開和關(guān)閉句柄的請(qǐng)求;處理應(yīng)用層程序的輸入/輸出請(qǐng)求;串行化對(duì)設(shè)備的訪問;訪問硬件;調(diào)用其它驅(qū)動(dòng)程序;取消uo請(qǐng)求;超時(shí)i/0請(qǐng)求;處理可熱插拔設(shè)備的加入和刪除事件;電源管理和wmi。(1) wdm設(shè)備驅(qū)動(dòng)程序結(jié)構(gòu)作為wnixp推薦的一項(xiàng)技術(shù)來說,usb的驅(qū)動(dòng)程序是wdm類型的。wdm驅(qū)動(dòng)程序在層次上主要可以分為兩層:功能驅(qū)動(dòng)程序和總線驅(qū)動(dòng)程序。另外,為處理一些特定設(shè)備的請(qǐng)求,還有一些過濾驅(qū)動(dòng)程序。u

23、sb總線驅(qū)動(dòng)程序負(fù)責(zé)枚舉和控制低速的usb總線。功能驅(qū)動(dòng)程序知道如何控制設(shè)備的主要功能。它對(duì)irp進(jìn)行操作后,向下交與總線驅(qū)動(dòng)程序處理。驅(qū)動(dòng)程序主要任務(wù)就是處理各種i/0(輸入輸出)請(qǐng)求。i/0請(qǐng)求包(irp)是驅(qū)動(dòng)程序操作的中心。它是一個(gè)內(nèi)核“對(duì)象”,是一個(gè)預(yù)先定義的數(shù)據(jù)結(jié)構(gòu),帶有一組對(duì)它進(jìn)行操作的i/0管理器例程。i/0管理器接收一個(gè)i/0請(qǐng)求,然后再把它傳遞到合適的驅(qū)動(dòng)程序棧中的最上層驅(qū)動(dòng)程序之前,分配并初始化一個(gè)irp。一個(gè)irp有一個(gè)固定的首部和可變數(shù)目的irp棧單元塊。每個(gè)1/o請(qǐng)求有一個(gè)主功能代碼,并可能有次功能代碼。它們都有各自的例程用來進(jìn)行相關(guān)處理。usb驅(qū)動(dòng)程序的入口例程為

24、driverentryo,負(fù)責(zé)主功能代碼調(diào)度。它接收不同的irp,根據(jù)類型調(diào)用相應(yīng)的分發(fā)例程。(2)應(yīng)用程序與wdm的通信 應(yīng)用程序是用戶運(yùn)行的程序,包括支持自定義硬件的特殊用途的應(yīng)用程序。設(shè)備驅(qū)動(dòng)使得應(yīng)用程序不必知道物理連接、信號(hào)和與一個(gè)設(shè)備通信需要的協(xié)議等的細(xì)節(jié)。設(shè)備驅(qū)動(dòng)可以保證應(yīng)用程序代碼只通過外設(shè)需要的交換信號(hào)(忙、選通等)。windows包括應(yīng)用程序接口(api)函數(shù),使得設(shè)備驅(qū)動(dòng)能與應(yīng)用程序之間相互通信。這些函數(shù)是使得應(yīng)用程序能夠控制顯示器、處理信息、訪問存儲(chǔ)器、讀寫磁盤和其他設(shè)備以及更多的幾千個(gè)函數(shù)中的一部分。用于讀寫usb設(shè)備的api函數(shù)是readfile,writefile和

25、deviceiocontrol。在win32系統(tǒng)中,每個(gè)設(shè)備都被抽象為文件,應(yīng)用程序只需要簡單的調(diào)用幾個(gè)api函數(shù),就可以實(shí)現(xiàn)對(duì)設(shè)備的控制。如:當(dāng)應(yīng)用程序調(diào)用api函數(shù)createfile來打開設(shè)備時(shí),操作系統(tǒng)向驅(qū)動(dòng)程序發(fā)送irpmjcreate。驅(qū)動(dòng)程序接到后,調(diào)用相應(yīng)的處理例程。打開設(shè)備的操作,需要先后調(diào)用4個(gè)api函數(shù):(1)用該usb設(shè)備的標(biāo)識(shí)符(guid)作為一個(gè)參數(shù),調(diào)setupdigetclassdevs,傳回一個(gè)設(shè)備信息群,包含指定類別內(nèi)的所有設(shè)備;(2)調(diào)用setupdienumdevicelnterfaces函數(shù),根據(jù)guid,傳回上面設(shè)備信息群內(nèi)的一個(gè)設(shè)備的信息;(3)調(diào)

26、用setupdigetdevicelnterfacedetail函數(shù),傳回這個(gè)設(shè)備的路徑;(4)按照傳回的路徑,調(diào)用createfile函數(shù),開啟設(shè)備的通信。4.4 應(yīng)用軟件的設(shè)計(jì) 數(shù)據(jù)采集系統(tǒng)應(yīng)用軟件主要是對(duì)采集到的經(jīng)絡(luò)數(shù)據(jù)進(jìn)行處理。在主窗口顯示被測者的經(jīng)絡(luò)波形,以便能夠直觀的了解被測者生理的大概狀況。而存儲(chǔ)形式為數(shù)據(jù)形式,以便能夠具體進(jìn)行分析。使用此應(yīng)用程序采集經(jīng)絡(luò)數(shù)據(jù)的主窗口如圖4-7所示。 經(jīng)絡(luò)數(shù)據(jù)采集軟件能夠存儲(chǔ)經(jīng)絡(luò)數(shù)據(jù),打開經(jīng)絡(luò)數(shù)據(jù)賀存儲(chǔ)波形。除此之外,還可以放大或縮小主窗口,以便能夠方便的查看經(jīng)絡(luò)波形。 從應(yīng)用程序主窗口可以觀察到被測者的經(jīng)絡(luò)波形,可以發(fā)現(xiàn),經(jīng)絡(luò)壓力在.周期為2h

27、z.符合經(jīng)絡(luò)的基本特征。也可以調(diào)節(jié)功能放到或縮小經(jīng)絡(luò)波形,以滿足觀測者的需要。4.5 本章小結(jié)usb 設(shè)備的軟件設(shè)計(jì)主要包括兩部分:一是usb設(shè)備端的單片機(jī)軟件,主要完成usb協(xié)議處理與數(shù)據(jù)交換(多數(shù)情況下是一個(gè)中斷子程序)以及其它應(yīng)用功能程序(比如采樣、a/d轉(zhuǎn)換等);二是pc端的程序由usb通信程序和用戶服務(wù)程序兩部分組成,用戶服務(wù)程序通過usb通信程序與系統(tǒng)usbdi (usb device interface)通信,由系統(tǒng)完成usb協(xié)議的處理與數(shù)據(jù)傳輸。pc端程序的開發(fā)難度較大,開發(fā)者不僅要熟悉usb協(xié)議,還要熟悉windows體系結(jié)構(gòu)。在本章中系統(tǒng)的介紹了本課題的軟件設(shè)計(jì)與實(shí)現(xiàn),同時(shí)

28、給出了部分程序。另外,對(duì)于應(yīng)用程序的設(shè)計(jì)也做了簡單的描述。第5章經(jīng)絡(luò)數(shù)據(jù)采集系統(tǒng)的調(diào)試5.1調(diào)試步驟要快、成功地開發(fā)一個(gè)usb設(shè)備,正確、合理的調(diào)試方法是必不可少的環(huán)節(jié)。調(diào)試基本分為硬件和軟件兩步進(jìn)行:首先對(duì)硬件電路外部設(shè)備(單片機(jī)部分)進(jìn)行調(diào)試。然后,借助pc機(jī)調(diào)試軟件將設(shè)備端的usb協(xié)議(主要有描述符請(qǐng)求、端口配置、地址設(shè)置以及基本數(shù)據(jù)交換)調(diào)通,用調(diào)試好的usb設(shè)備接口來開發(fā)、調(diào)試pc軟件,加上usb設(shè)備端的其它用戶程序,對(duì)整個(gè)完整的系統(tǒng)進(jìn)行系統(tǒng)調(diào)試。5.2 硬件的調(diào)試與驗(yàn)證經(jīng)絡(luò)數(shù)據(jù)采集系統(tǒng)的硬件調(diào)試主要有以下幾步:·檢查電路原理圖是否有錯(cuò)誤;·根據(jù)電路原理圖檢查pc

29、b圖是否有錯(cuò)誤;·制板,根據(jù)pcb圖檢查pcb板是否有錯(cuò)誤,主要檢查是否有線粘連;·焊件,測試各個(gè)元件管腳連接是否有錯(cuò)誤,并檢查是否有虛焊脫焊的問題。·加電測試電源部分工作是否正常,晶振部分工作是否正常;·下載c08051f320的程序,測試電路其他各部分工作是否正常;·測試完畢。5.3軟件的調(diào)試與驗(yàn)證在調(diào)試usb設(shè)備時(shí),可使用usbview程序檢測設(shè)備是否能被windows枚舉并配置,如果成功, 還可在該程序中查看設(shè)備描述符、配置描述符和端點(diǎn)描述符是否正確。之后可以使用driver wizard生成一個(gè)通用驅(qū)動(dòng)程序,在windows提示安裝驅(qū)

30、動(dòng)程序時(shí),選擇driver wizard生成的驅(qū)動(dòng)程序。其實(shí)driver wizard生成的僅是一個(gè)windows控制臺(tái)的應(yīng)用程序,它會(huì)調(diào)用安裝driver wizard時(shí)安裝在系統(tǒng)中的通用usb驅(qū)動(dòng)程序。使用該程序就可測試設(shè)備是否能夠正確傳輸數(shù)據(jù)以及傳輸速度。該程序也可作為最終產(chǎn)品usb傳輸部分的框架;如果不能滿足要求,也可用wdm重新編制驅(qū)動(dòng)程序,用調(diào)試好的usb設(shè)備來開發(fā)、調(diào)試主機(jī)軟件。根據(jù)前人的經(jīng)驗(yàn),我們?cè)趩纹瑱C(jī)程序調(diào)試過程中對(duì)以下問題進(jìn)行了總結(jié),在編寫單片機(jī)固件程序時(shí),需要注意:單片機(jī)的中斷是否設(shè)置為電平觸發(fā):中斷后一定要讀上次傳輸狀態(tài)寄存器,以清除中斷寄存器中的中斷標(biāo)志。這樣,單片

31、機(jī)的中斷輸出才能變回高電平,這一點(diǎn)非常重要;在接收到setup包后,是否調(diào)用acksetup命令重新使能端口。在向in端點(diǎn)寫 完數(shù)據(jù)后,是否調(diào)用validatebufer(命令fah),指明緩沖區(qū)中的數(shù)據(jù)有效,可以發(fā)送到主機(jī);當(dāng)讀完數(shù)據(jù)后,是否調(diào)用clearbufer(命令f2h),以保證可以接收新的包;通過調(diào)用readchipid(命令fdh)檢查c8051f320是否工作。該命令要讀兩個(gè)字節(jié)數(shù)據(jù)。5.4 抗干擾措施電子系統(tǒng)中的干擾源是多方面的,給系統(tǒng)調(diào)試造成很多問題。經(jīng)過總結(jié),我們的數(shù)據(jù)采集系統(tǒng)的干擾原因主要有:系統(tǒng)與各元件接地策略的不盡合理、pcb的分布參數(shù),電磁干擾等。為了盡量的減少千

32、擾,必須采用符合本系統(tǒng)特點(diǎn)的抗干擾技術(shù)??垢蓴_技術(shù)是保證系統(tǒng)能否正常工作的關(guān)鍵技術(shù),它涉及到系統(tǒng)設(shè)計(jì)的很多方面。為了降低干擾,在設(shè)計(jì)中我們?cè)谟布蛙浖隙疾捎昧丝垢蓴_技術(shù)。5.4.1 硬件抗干擾措施5.4.1.1 pcb大面積接地 在pcb布線時(shí),采用了大面積接地策略,使得所有數(shù)字地、模擬地直接連到近旁相應(yīng)的地線上,盡量減少連線長度以減少分布電感。pcb上的走線實(shí)現(xiàn)是由敷銅腐蝕而成,每條走線必然存在一定大小的等效電阻。而接地引線上如果有較大的電壓降,就會(huì)給系統(tǒng)帶來較大的干擾。所以,在布置pcb地線時(shí),盡量加寬地線,減小地線的等效電阻,能夠達(dá)到減小干擾的效果。5.4.1.2模擬地與數(shù)字地分開 在

33、系統(tǒng)中,普遍存在兩種形式的地信號(hào),即模擬地和數(shù)字地。在數(shù)字電路中,由于各器件的開關(guān)特性,使系統(tǒng)中存在大量的瞬態(tài)大幅度脈沖,如果這些脈沖混入要求比較精確的模擬地中,將會(huì)對(duì)系統(tǒng)的測量精度、穩(wěn)定度等產(chǎn)生很大影響,所以在pcb布線時(shí),我們把這兩種地線分開走線。5.4.1.3防靜電措施 靜電干擾對(duì)系統(tǒng)危害比較大,甚至還可能擊穿器件。為了避免靜電對(duì)系統(tǒng)的干擾。設(shè)計(jì)中采用了以下措施:pcb布線保持環(huán)路面積最??;使導(dǎo)線長度盡量短;加強(qiáng)電源線和地線之間的電容藕合;通過采取以上的措施,并且在設(shè)計(jì)實(shí)現(xiàn)時(shí)避免引入不必要的干擾,在實(shí)際應(yīng)用中取得了較好的效果。5.4.2軟件抗干擾措施僅僅在硬件上采取抗干擾措施是遠(yuǎn)遠(yuǎn)不夠的

34、,必須在軟件上采取措施,才能使系統(tǒng)的抗干擾能力更好。在軟件部分,我主要采用軟件陷阱,程序口令和軟件濾波等方法。5.4.2.1 軟件陷阱和程序口令 用“軟件陷阱+程序口令”對(duì)付指針跑飛。當(dāng)系統(tǒng)受到外界干擾時(shí),指針會(huì)飛到另一段程序中,或跳到空白段去。如果指針飛到空白段去,比較好處理。只要在空白段設(shè)立軟件陷阱,將程序攔截到程序錯(cuò)誤處理段即可。而如果指針飛到另一段程序中去了,則需要采用程序口令的方法,方法如下:首先 ,程序必須模塊化。每個(gè)模塊(子程序)執(zhí)行一個(gè)功能。每個(gè)模塊只有一個(gè)出口; 設(shè)立一 個(gè)模塊(子程序)id寄存器; 為每個(gè)子程序配置一個(gè)唯一的id號(hào)碼; 每當(dāng)子程序執(zhí)行完畢,要返回(ret)之

35、前,先將本子程序的id號(hào)送入id寄存器; 返回到上級(jí)程序后,先判斷id寄存器中的id號(hào)。如果正確,則繼續(xù)執(zhí)行,如果不正確,則表示pc指針有可能己經(jīng)跳錯(cuò)了,子程序沒有按預(yù)計(jì)的出口返回,這時(shí)將程序攔截到程序錯(cuò)誤處理段。5.4.2.2軟件濾波 單片機(jī)程序在ride環(huán)境下進(jìn)行調(diào)試,在實(shí)驗(yàn)中我們發(fā)現(xiàn),盡管人的體溫基本保持穩(wěn)定,但手腕部位皮膚表面的溫度受外界溫度變化的影響仍很大,而且手腕部位皮膚與傳感器表面的溫差也會(huì)給測量帶來很大影響。考慮了這種因素的影響,根據(jù)實(shí)際情況在編程中加入滑動(dòng)加權(quán)濾波處理程序,基本上避免了溫度效應(yīng)給經(jīng)絡(luò)測量帶來的不良影響。5.5本章小結(jié)系統(tǒng)調(diào)試的結(jié)果關(guān)系到課題所完成的情況。本課題

36、的調(diào)試過程耗費(fèi)了幾個(gè)月的時(shí)間,從開始的毫無反應(yīng),到最后能夠正確的顯示波形,每一步都會(huì)有意想不到的事情發(fā)生,對(duì)于我這個(gè)不是很有經(jīng)驗(yàn)的設(shè)計(jì)者來說的確是困難重重。在這一章中僅就一些重點(diǎn)問題給出了論述,例如抗干擾,軟硬件調(diào)試等,在實(shí)際的操作出現(xiàn)的問題遠(yuǎn)遠(yuǎn)超過以上的內(nèi)容。但是通過認(rèn)真仔細(xì)的調(diào)試,進(jìn)行了詳細(xì)的測試。本系統(tǒng)基本達(dá)到了預(yù)期的目標(biāo)。系統(tǒng)的顯示圖形如圖所示. 結(jié)論對(duì)經(jīng)絡(luò)信號(hào)進(jìn)行準(zhǔn)確地測量,在臨床上具有非常重要的意義。使用傳統(tǒng)的診脈法雖然簡單,但由于其主要依賴測試者的主觀判斷,測量過程受人為因素及外界干擾影響較大。經(jīng)絡(luò)數(shù)據(jù)采集系統(tǒng)由于其易于操作、測量準(zhǔn)確等特點(diǎn),有取代傳統(tǒng)診脈方法的趨勢。由于usb接

37、口具有速度快、可以采用總線供電、易于擴(kuò)展、使用靈活、支持即插即用和熱插拔功能等特點(diǎn),非常適合作為主機(jī)和經(jīng)絡(luò)采集系統(tǒng)之間的通信接口。圖為系統(tǒng)的采集波形圖。本文在研究usb傳輸協(xié)議和傳輸特點(diǎn)的基礎(chǔ)上,研制了一套基于usb的經(jīng)絡(luò)數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)采用帶有12位-e型a/d轉(zhuǎn)換器c8051f320微控制器,無需外加a/d轉(zhuǎn)換芯片。該系統(tǒng)通過usb口進(jìn)行供電,不需要外接電源,可以進(jìn)行經(jīng)絡(luò)的動(dòng)態(tài)實(shí)時(shí)測量,為醫(yī)生提供參考。是一種極具發(fā)展?jié)摿Φ男滦徒?jīng)絡(luò)測量系統(tǒng)。論文從硬件設(shè)計(jì)和軟件算法編制兩個(gè)方面對(duì)采集系統(tǒng)的設(shè)計(jì)進(jìn)行了詳細(xì)的闡述.謝 辭 隨著畢業(yè)設(shè)計(jì)的結(jié)束,我的大學(xué)生活也將劃上一個(gè)句號(hào),在這短短的一個(gè)學(xué)期中

38、,伴隨著無限的激情和巨大的挑戰(zhàn),在畢業(yè)設(shè)計(jì)的前期學(xué)習(xí)和后期制作過程中,我充分的檢驗(yàn)了自己的學(xué)習(xí)能力和動(dòng)手能力,也認(rèn)識(shí)到自身的一些不足之處,體會(huì)到所學(xué)的專業(yè)知識(shí)和扎實(shí)的基本功在實(shí)際應(yīng)用中的重要性。得到的這些收獲不僅僅是我一個(gè)人努力的成果,老師和同學(xué)的幫助、鼓勵(lì)和支持也是成功的重要因素,在此我要感謝我的指導(dǎo)老師陳輝老師,從論文的選題到具體試驗(yàn)方案的確定以及論文撰寫的每一個(gè)環(huán)節(jié)都浸透著陳老師的心血。他淵博的知識(shí)賀嚴(yán)謹(jǐn)務(wù)實(shí)的治學(xué)態(tài)度將使我終身受益。在此謹(jǐn)向陳老師致以崇高的敬意賀表示忠心的感謝!參考文獻(xiàn)1 李冰星,朱文鋒.中醫(yī)脈診研究思考.中國中醫(yī)基礎(chǔ)醫(yī)學(xué)雜志1998,(4):20 -222 姜濤.基于

39、小波分析的中醫(yī)脈象識(shí)別的研究.河海大學(xué)碩士論文,2003:1-153 杜鋒.經(jīng)絡(luò)血流動(dòng)力一經(jīng)絡(luò)檢測系統(tǒng)的開發(fā)研制.解放軍信息工程大學(xué)碩士論文,2002:4 段穎康.數(shù)字血壓經(jīng)絡(luò)檢測儀的實(shí)現(xiàn).微電子技術(shù),2003,(1) : 57-595 沙憲政,尹勇,魏巍.基于usb的家庭健康監(jiān)護(hù)系統(tǒng)數(shù)據(jù)采集的設(shè)計(jì),電子技術(shù),2003,(1):29-317 李楚元.基于usb傳輸?shù)臄?shù)據(jù)采集系統(tǒng)的研制.華東理工大學(xué)碩士論文,2001,(12):9-388 君邦政,魏亞東,邢達(dá),何永紅.基于labview的usb實(shí)時(shí)數(shù)據(jù)采集處理系統(tǒng)的實(shí)現(xiàn).電子技術(shù)應(yīng)用2003,( 7):22249 張東青,王元昔.新型自檢經(jīng)絡(luò)傳感器的研制.傳感器技術(shù),2001,(5):46-4810 許松順,蘇中義,張志剛.智能a/d轉(zhuǎn)換器msc1210在醫(yī)用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論