




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 具有高可靠性的高速連續(xù)數(shù)據(jù)采集的設計與實施方法 具有高可靠性的高速連續(xù)數(shù)據(jù)采集的設計與實施方法 類別:單片機/DSP  作者:武漢華中理工大學水電與數(shù)字化工程學院(430074)吳道虎 宜昌中國
2、船舶重工集團公司第710研究所(443003)王緒軍 來源:電子技術應用 摘要:從硬件和軟件設計兩個方面介紹保證PCI總線的高速連續(xù)采集系統(tǒng)的數(shù)據(jù)完整性、可靠性的實用關鍵技術及具體實施方法、應用案例,列出了大量實用的設計技術及應用程序。該設計先進、可靠,在實踐中得到了應用。 &
3、#160; 關鍵詞:高速數(shù)據(jù)采集 可靠性和完整性 關鍵技術 設計 在
4、許多測量與控制領域,如電力諧波測試、聲光信號處理、現(xiàn)代雷達系統(tǒng)等元均要求在線進行小波數(shù)字信號分析與處理,其中最為關鍵的是如何利用香農(nóng)(Shannon)采樣理論將外部信號毫無失真地采集并轉化為計算機所用的數(shù)字信號。目前較為流行的方法是提高A/D的轉換速率和計算機的處理速度。同時,提高數(shù)據(jù)的傳輸速率也是較為關鍵的。本文以高速數(shù)轉換芯片AD1674為基礎,采用PCI總線協(xié)議,從硬件和軟件設計入手探討提高整個數(shù)據(jù)采集系統(tǒng)的最大采樣頻率和高可靠性的方法,其中有些方法得到了實踐證實。 一般而言,觸發(fā)A/D轉換有軟
5、件觸發(fā)、實時器同步觸發(fā)及外部觸發(fā)三種方式。而數(shù)據(jù)的傳輸方式有軟件查詢、中斷方式、DMA方式及FIFO方式。四種數(shù)據(jù)傳輸?shù)乃俾时容^如下(以A/D轉換基頻10MHz為例): 軟件查詢 1020kS/s(每秒10k次,與所用計算機的主頻有關) 中斷方式 1030kS/s DMA方式 200kS/s &
6、#160; FIFO方式(w/repeat input string) 330kS/s 在一般控制系統(tǒng)中,采用軟件觸發(fā)A/D、軟件查詢和中斷數(shù)據(jù)傳輸方式就能滿足測控要求。但要求高速連續(xù)數(shù)據(jù)采集的情況下,顯然不能滿足系統(tǒng)要求。在筆者設計的智能化高速連續(xù)數(shù)據(jù)采集系統(tǒng)中,采用了定時器同步觸發(fā)A/D與FIFO(帶重復字符輸入方式)數(shù)據(jù)傳輸方式相結合的方法大大提高了系統(tǒng)的采樣頻率和數(shù)據(jù)的可靠性,改善了在Windows環(huán)境下數(shù)據(jù)傳輸?shù)男阅堋?#160;
7、160; 1 高速連續(xù)數(shù)據(jù)采集系統(tǒng)設計的幾項關鍵技術 1.1 定時觸發(fā)脈沖源的設計 由于系統(tǒng)要求高可靠性、高采樣頻率以及連續(xù)采樣,利用Intel 82
8、54定時計數(shù)功能來觸發(fā)A/D轉換,嚴格控制時序以及數(shù)據(jù)采樣間隔,合理利用Intel 8254的三個定時計數(shù)器。定時計數(shù)器0作備用,用作A/D的外部觸發(fā)源,定時器1和2配合使用。其中定時器1的輸入和定時時鐘基頻(40MHz)相聯(lián),其輸出作為定時器2的輸入,定時器2的輸出作為A/D轉換的定時脈沖觸發(fā)源。 定時器1和2均采用方式2工作。定時計數(shù)器1和2的計數(shù)值CounterT1和CounterT2,必須滿足如下關
9、系式: CounterT1×CounterT2=時鐘基頻/SampleSpeed(系統(tǒng)的采樣頻率)。 其初始化程序如下(編程平臺為Visual C+6.0): ucValue = 0xb4; /定時器2,方式2,
10、ucValue為定時器2的初始化值 _outp(BaseAdr+33,ucValue); /BaseAdr為板卡的基地址 _outp(BaseAdr+32,CounterT2 & 0xff); _outp(BaseAdr+32,(CounterT2 >> 8)& &
11、#160; 0xff); ucVaue=(ucValue & 0xc0)| 0x40; /定時器1,方式2 _outp(BaseAdr+33,ucValue); _outp(BaseAdr+31,CounterT1 & 0xff);
12、 _outp(BaseAdr+31,(CounterT1 >> 8) & 0xff); 1.2 雙端口RAM技術 系統(tǒng)要求不間斷連續(xù)要樣。為了克服常規(guī)的固定I/O端口讀寫方式容易造成丟失數(shù)據(jù)且數(shù)據(jù)傳輸速率低的缺陷,
13、系統(tǒng)采用雙端口RAM技術。利用計算機內(nèi)存直接映象技術,對內(nèi)存物理地址直接讀寫,克服了數(shù)據(jù)傳輸?shù)钠款i效應,滿足了系統(tǒng)的實時性。在雙端口RAM設計過程中,按照工業(yè)控制標準實行全地址譯碼,以確保全地址空間的每一個存儲單元的地址在總線上唯一。 雙端口RAM采用英國ARCT公司的雙端口RAM HK12S25(8K×8bit),采樣數(shù)據(jù)與PC接口采用FIFO存儲器(先入先出存儲器)作為緩沖,系統(tǒng)具有FIFO全
14、滿(FULL)、半滿(HALF)標志。HALF標志用于決定PC機什么時間開始讀取轉換結果,當PC監(jiān)測到HALF信號有效,表明在FIFO中至少有4K個數(shù)據(jù)可以為PC讀取。同時FIFO至少提供4000個空間作為讀數(shù)時A/D數(shù)據(jù)存放的緩沖區(qū)。由于PC采用RAM映射方式從FIFO讀數(shù)據(jù),通常速度為1.2M2M字/秒,PC機有充足的時間來進行實時數(shù)據(jù)處理等操作。 寄存器的定義(BaseAdr+20): D7 D6 D5
15、 D4 D3 D2 D1 D0 FULL HALF 中斷標志 輸入模擬通道轉換控制采用LUT(RAM查找表)驅動模式,LUT的容量為256單元,即輸入通道轉換有256種模式。同時,LUT專門提供一條額外的控制線輸出到外部,可以為用戶提供可編程狀態(tài)標志、同步采樣保持器控制等功能。同時應特別注意LUT驅動通道轉換的功能,它可以提供非線性通道控制模式不同的通道具有不同的采樣速度。
16、 利用_fmemmove(data 1,data2,Samplen)將數(shù)據(jù)映射到高端內(nèi)存,其中:data1為數(shù)據(jù)目的指針,指向一個內(nèi)存中足夠大的空間;data2可以用FP_SEG、P_OFF來賦值;Samplen為傳輸字節(jié)長度。為了進一步提高訪問高端內(nèi)存地址的速度,也可在VC+中嵌入?yún)R編語言_asm movX1,X2。不過,假如采用面向對象的VC+編程,采用_fmemmove足夠以滿足系統(tǒng)的采樣要求。
17、60; 1.3 多線程的數(shù)據(jù)采集軟件設計 在要求高速、高可靠性和連續(xù)采樣的情況下,一方面要求系統(tǒng)不間斷地進行數(shù)據(jù)采集,同時還要進行數(shù)據(jù)的在線定時處理,否則將會造成數(shù)據(jù)的丟失或不連續(xù)。在軟件設計中,引入了Windows線程的多任務處理技術(multitasking)。一個線程是程序的一條執(zhí)行路徑。MFC(Microsoft Foundation Class)明確區(qū)
18、分了兩種線程:用戶界面線程(UI)是一個消息泵,用于處理用戶界面的任務;工作者線程(Worker Thread)完成用戶自己定義的任務,可以充分利用工作者線程來完成數(shù)據(jù)的采集、傳輸以及處理,以保證數(shù)據(jù)的實時性、完整性和連續(xù)性。 在使用多線程時,如何防止兩個線程同時訪問同一個數(shù)據(jù)集(SRAM中的4K個數(shù)據(jù)可以看作是一個數(shù)據(jù)集),以及當HALF
19、60; FLAG標準已出現(xiàn),一個線程正在往SRAM中寫數(shù)據(jù)時,另一個線程要讀取SRAM的數(shù)據(jù),該如何處理,是保證數(shù)據(jù)完整性和連續(xù)性的關鍵。有四種使線程編程更安全的線程同步對象,保證多個線程能在一起適當?shù)貐f(xié)調工作:Critical Section(臨界區(qū))、Mutexe(互斥)、Semaphore(信號量)以及Event(事件)。其中Critical Section是保證在某一個時刻只
20、有一個線程能訪問SRAM的簡易方法,通過對鄰界區(qū)對象的Locking(加鎖)和Unlocking(解鎖)來使得任何線程都可以調用訪問SRAM中的數(shù)據(jù)集,同時每個線程都必須禮貌地等待他們訪問受保護的SRAM中數(shù)據(jù)的機會;Mutexe與Critical Section很相似,只是使用起來稍復雜一點;Semaphore與前兩者也很相似,但Semaphore允許多個線程同時訪問同一資源。這與前兩者在同一時刻只允許一個線程訪問一個資源的限制不同。在創(chuàng)建Semaphore時,需要指出允許同時訪問同一資源的最大線
21、程數(shù)目。在本系統(tǒng)中,主要有數(shù)據(jù)采集、標志位辨別、數(shù)據(jù)傳輸、信號處理等線程,使用Semaphore方法已足以滿足要求。但是在設計線程時,要合理規(guī)劃多個線程對同一資源的使用順序,這可以通過設定每個線程的優(yōu)先級別來實現(xiàn)。在本系統(tǒng)中數(shù)據(jù)采集具有最高的優(yōu)先級,其次為數(shù)據(jù)傳輸。線程優(yōu)先級常量設定如下: THREAD_PRIORITY_ABOVE_NORMAL 設定一個比普通級高一組的優(yōu)先級
22、60; THREAD_PRIORITY_BELOW_NORMAL 設定一個比普通級低一級的優(yōu)先級 THREAD_PRIORITY_HIGHEST 設定一個比普通級高二級的優(yōu)先級
23、0; THREAD_PRIORITY_LOWEST 設定一個比普通級低二級的優(yōu)先級 THREAD_PRIORITY_NORMAL 設定為正常優(yōu)先級 應用程序為: &
24、#160; UNIT THREADSAMPLE(LPVOID param) Csemaphore Semaphore(2,6); someResource.UseResource(); :messageBox(HWND) param;
25、 _outp(BaseAdr+2,0x34); /選擇Pacer觸發(fā)A/D _outp(BaseAdr+4,0x01); /啟動Pacer UNIT THREADTRANSDATA(LPVOID param) float data1,data2;
26、; someResource.UseResource(); :MessageBox(HWND) param; _fmemmove(data1,data2,Samplen); 1.4 高速數(shù)據(jù)鎖存技術 &
27、#160; 在高速連續(xù)數(shù)據(jù)采集系統(tǒng)設計時,高速數(shù)據(jù)的鎖存一直是個難點。A/D轉換的速率越快,數(shù)據(jù)鎖存的難度越大。為確保數(shù)據(jù)的完整性,采用將數(shù)據(jù)輸出端口的數(shù)據(jù)分成四路輸出,為了補償數(shù)據(jù)的傳輸延時以及SRAM的建立時間,在進行四分頻時要推遲12個時鐘,數(shù)據(jù)進入SRAM后,便可以將數(shù)據(jù)分組打包傳輸給計算機進行處理。 1.5 板卡的抗干擾措施 在高速連續(xù)數(shù)據(jù)采集系統(tǒng)設計時,應避免各個
28、信號之間的共模干擾以及信號的完整性。在本PCB設計時,采用了六層板設計技術,分別為布線和元件層、模擬地和±12V電源層、數(shù)字地以及ECL的VCC信號層、模擬+5V和數(shù)字+5V和+3.3V層、模擬-5V和數(shù)字-5V和+2.5V層、布線和元件層,并且使用了大面積的電源和地層可以使各信號線與地或電源平面之間形成與緊偶合以達到減少信號線之間的共模干擾。模擬信號與數(shù)字信號相互隔離,并單獨供電。這些措施的采用,有效地抑制了信號間的共模干擾。 2 實際應用 &
29、#160; 筆者設計的基于PCI總線協(xié)議的板卡已應用于某國防項目,由于篇幅的原因,省略硬件結構圖,程序框圖如圖1所示。為了加快數(shù)據(jù)的讀寫速度,采用了16Bits寄存器,在讀取A/D轉換結果時可一次讀入16Bits數(shù)據(jù)。16Bits數(shù)據(jù)格式如下: 部分關鍵源代碼如下: #include "CtrsysDoc.h" #include "afx.h" #include "
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 黑龍江省哈爾濱市實驗學校2025年八年級數(shù)學第二學期期末復習檢測模擬試題含解析
- 信息處理技術員考試小技巧與試題及答案
- 軟件設計師考試趨勢分析與試題及答案
- 2025屆北京市延慶區(qū)數(shù)學七下期末質量跟蹤監(jiān)視試題含解析
- 軟件測試策略與方法總結試題及答案
- 移動應用用戶體驗設計考題試題及答案
- 機械設備行業(yè)保安工作計劃
- 算法與數(shù)據(jù)結構2025年考試試題及答案
- 如何開展財務審計工作計劃
- 信息科技行業(yè)安全防護總結計劃
- 史記人物課件教學課件
- 走進泰國-課件
- 一站到底課件
- 西安中建一局裝修合同模板
- 社會團體財務報表
- DB34∕T 3468-2019 民用建筑樓面保溫隔聲工程技術規(guī)程
- iso220002024食品安全管理體系標準
- 2024年秋新冀教版三年級上冊英語教學課件 U3L3
- 拔牙術后并發(fā)癥及處理對策
- 2024年山東省濟南市歷下區(qū)中考一模物理試題(解析版)
- 幼兒園大班語言文學活動《小魚睡在哪里》課件
評論
0/150
提交評論