當前位置:首頁 » 存儲配置 » fifo存儲器晶元

fifo存儲器晶元

發布時間: 2025-10-16 06:54:14

A. 數據採集時,如何動態創建緩沖區存數據

第二節 數據傳輸與數據處理的獨立性
為了提高數據吞吐率以及實現實時數據處理(如隨時取數、隨時暫停設備、隨時開始傳輸、隨時存檔、隨時顯示波形、隨時設備控制輸出等功能), 我們採用一種最新、最靈活的設計思想,即數據採集傳輸和數據處理相獨立的思想。即用我們所創建的設備對象在Windows系統空間管理一個一級強制性緩沖隊列,該緩沖隊列可支持128K字(即256K位元組)的系統內存空間Buffer,該隊列採用先進先出策略和動態鏈表等技術來更高效地管理這個Buffer。這個隊列緩沖與用戶數據緩沖區相獨立,設備對象在後台負責數據採集和傳輸,將其數據映射到相應的隊列緩沖單元,且維持一個動態鏈表,並向用戶發送相應的通知消息。而用戶則不必知道內部的任何復雜操作,而只須在這個消息到來時,使用ReadDeviceIntAD函數讀一批AD數據或幾批即可。重要的是,在這個消息沒有到來時,用戶代碼不必花任何CPU時間去輪詢等待,而用戶正好利用這段空閑時間去處理更多的任務。即輕松實現了數據採集與數據處理的同步並發進行。這將是最高效的。這個隊列緩沖跟先進先出存儲器FIFO晶元功能基本一致,只不過這個緩沖是一個被軟體模擬的FIFO存儲器。使用這項技術的最大優點就是完全解決了在多任務環境中實現高速連續採集數據難的問題。特別是整個系統突然繁忙的時候,比如用戶在高速採集數據或實時存檔時,偶而移動窗口或改變窗口大小或彈出對話框時,這項技術足以保證所採集的數據完整無缺。如果用戶希望應用程序有更好的處理能力和克服操作系統的陡然忙碌對連續數據採集的影響,可以考慮在用戶模式中再使用二級緩沖隊列和相應的緩沖區鏈表技術。具體細節請參考NT下的中斷演示程序。(目前在Window NT中完全支持此項技術,在以後的Win2000和WinXP版本中應該會進一步提供)。
第三節 連續不間斷大容量採集存檔
在虛擬儀器、實驗室數據分析、醫療設備、記錄儀等諸多研究和應用領域中,對數據的要求很高,一方面數據容量較大,如幾百兆甚至幾仟兆,另一方面采樣速度都較高,如200KHz,300KHz等,更重要是要求在高速長時間的採集數據過程中,不能丟掉一個點,必須全部存入硬碟,同時還要進行一些點的抽樣分析,這在DOS環境中實現起來就有較大的難度,就更別說在Windows這樣的多任務環境中(對於Windows多任務機制請參閱有關Windows手冊)。大家知道Windows的各應用程序總是不斷地被任務調度器調度,循環處在睡眠、排隊、就緒、觸發運行等狀態中。Win95任務之間的切換密度至少大於1毫秒,那麼如果要以300KHz頻率采樣(即每3.3微秒就得傳輸一個數據),很顯然有大量的數據在傳輸中由於任務之間的切換而被丟失掉。這就是基於Windows客戶程序在傳統模式下,高速連續採集傳輸數據時所具有的局限性。為了突破這種局限性,就得採用別的辦法,如非客戶程序、內核程序、驅動程序(如VxD、微代碼)等,再加上我們所掌握的新技術,如內存映射、直接寫盤技術以及獨有的設計思想便可以很好的解決這些問題。從1998年9月開始,已有部分用戶實際使用,反映良好。我們自己也經過全面測試,比如在Windows95下使用無FIFO晶元的BH5104模板,實際結果是:以200KHz頻率,雙通道採集正弦波且存檔,寫滿整個硬碟近4000兆數據,其時間長達6個小時左右,隨後再讀盤回放磁碟數據,整個波形沒有發現任何串道、斷點和畸形狀。當然PCI2303等PCI設備同樣具這樣的性能。它不僅具有一級硬體緩沖FIFO(其緩沖深度可調1KB、2KB、4KB、8KB、16KB等),同樣具有第二節中敘述的二級強制隊列緩沖,這個軟體防真的緩沖比一級緩沖要大幾十倍。如果用戶需要的話,可以在應用程序中再建立循環式用戶緩沖,即可實現高速不間斷大容量採集存檔功能。

第四節 後台工作方式
我們的驅動程序為用戶提供了後台工作方式進行數據傳輸,這樣可以保證您的前台應用程序能實時高效的進行數據處理。後台方式的特點是在進行數據採集和傳輸過程中不佔用客戶程序的任何時間,當採集的數據長度達到客戶指定的值時便觸發客戶事件,客戶程序接受該事件便開始進行數據處理。在數據處理的同時,驅動程序依然在進行下一批數據的傳輸,即實現了並行操作,極大的提高了數據的吞吐量和計算機系統的整體處理能力。
第五節 與設備無關性
通過總結各數據採集卡的的共同特點,設計了基本一致的介面方式,可以讓您的應用程序不僅能適應您所購買的我公司第一種產品,同時也能不經修改地適應我公司的其他同類產品(只有極少數設備需要極少的修改,其修改的比例基本不超過5%)。所以可以保證您的應用程序在我們的硬體產品基礎上極為容易地進行功能和應用擴展,節省您的大部分軟體投資,極大的縮短工程開發周期。
第六節 驅動程序的堅固性
我們的驅動程序都是經過嚴密徹底的測試和驗證,並經部分用戶試用之後,確認沒有任何問題後才予以正式發行的,所以當您使用起來應該有十足的安全感。
第七節 驅動程序特點
由於我們的驅動程序均採用動態虛擬技術(Windows 95),微內核代碼(Windows NT)因此可動態裝載和卸載,而且可以重入,即可實現多道任務同時訪問硬體設備的功能。這樣可以保證您的軟硬體資源可以被充分有效的利用。特別是在Windows NT下,採用隊列突發機制,可以實現幾十道線程序同時訪問一設備的功能。

B. 什麼是存儲器

存儲器(Memory)是現代信息技術中用於保存信息的記憶設備。其概念很廣,有很多層次,在數字系統中,只要能保存二進制數據的都可以是存儲器;在集成電路中,一個沒有實物形式的具有存儲功能的電路也叫存儲器,如RAM、FIFO等;在系統中,具有實物形式的存儲設備也叫存儲器,如內存條、TF卡等。計算機中全部信息,包括輸入的原始數據、計算機程序、中間運行結果和最終運行結果都保存在存儲器中。它根據控制器指定的位置存入和取出信息。有了存儲器,計算機才有記憶功能,才能保證正常工作。計算機中的存儲器按用途存儲器可分為主存儲器(內存)和輔助存儲器(外存),也有分為外部存儲器和內部存儲器的分類方法。外存通常是磁性介質或光碟等,能長期保存信息。內存指主板上的存儲部件,用來存放當前正在執行的數據和程序,但僅用於暫時存放程序和數據,關閉電源或斷電,數據會丟失。
存儲器的分類特點及其應用
在嵌入式系統中最常用的存儲器類型分為三類:
1.隨機存取的RAM;
2.只讀的ROM;
3.介於兩者之間的混合存儲器
1.隨機存儲器(Random Access Memory,RAM)
RAM能夠隨時在任一地址讀出或寫入內容。 RAM的優點是讀/寫方便、使用靈活;
RAM的缺點是不能長期保存信息,一旦停電,所存信息就會丟失。 RAM用於二進制信息的臨時存儲或緩沖存儲
2.只讀存儲器(Read-Only Memory,ROM)
ROM中存儲的數據可以被任意讀取,斷電後,ROM中的數據仍保持不變,但不可以寫入數據。
ROM在嵌入式系統中非常有用,常常用來存放系統軟體(如ROM BIOS)、應用程序等不隨時間改變的代碼或數據。
ROM存儲器按發展順序可分為:掩膜ROM、可編程ROM(PROM)和可擦寫可編程ROM(EPROM)攔耐。
3. 混合存儲器
混合存儲器既可以隨意讀寫,又可以蘆族在斷電後保持設備中的數據不變。混合存儲設備可分為三種:
EEPROM NVRAM FLASH
(1)EEPROM
EEPROM是電可擦寫可編程存儲設備,與EPROM不同的是EEPROM是用電來實現數據的清除,而不是通過紫外線照射實現的。
EEPROM允許用戶以位元組為單位多次用電擦除和改寫內容,而且可以直接在機內進行,不需要專用設備,方便靈活,常用作對數據、參數等經常修改又有掉電保護要求的數據存儲器。
(2) NVRAM
NVRAM通常就是帶有後備電池的SRAM。當電源接通的時候,NVRAM就像任何其他SRAM一樣,但是當電源切斷的時候,NVRAM從電池中獲取足夠的電力以保持其中現存的內容。
NVRAM在嵌入式系統中使用十分普遍,它最大的缺點是價格昂貴,因此,它的應用被限制於存儲僅僅幾百位元組的系統關鍵信息。
(3)Flash
Flash(閃速存儲器,簡稱快閃記憶體)是不需要Vpp電壓信號的EEPROM,一個扇區的位元組可以在瞬間(與單時鍾周期比較是一個非常短的時間)擦除。
Flash比EEPROM優越的方面是,可以同時擦除許多位元組,節省了每次寫數據前擦除的時間,但一旦一個扇區被擦除,必須逐個位元組地寫進去,其寫入時間很長。
存儲器工作原理
這里只介紹動態存儲器(DRAM)的工作原理。

工作原理
動態存儲器每片只有一條輸入數據線,而地址引腳只有8條。為了形成64K地址,必須在系統地址匯流排和晶元地址引線之間專門設計一個地址形成電路。使系統地址匯流排信號能分時地加到8個地址的引腳上,藉助晶元內部的行鎖存器、列鎖存器和解碼電路選定晶元內的存儲單元,鎖存信號也靠著外部地址電路產生。
當要從DRAM晶元中讀出數據時,CPU首先將行地址加在A0-A7上,而後送出RAS鎖存信號,該信號的下降沿將地址鎖存在晶元內部。接著將列地址加到晶元的A0-A7上,再送CAS鎖存信號,也是在信號的陪衡弊下降沿將列地址鎖存在晶元內部。然後保持WE=1,則在CAS有效期間數據輸出並保持。
當需要把數據寫入晶元時,行列地址先後將RAS和CAS鎖存在晶元內部,然後,WE有效,加上要寫入的數據,則將該數據寫入選中的存貯單元。

存儲器晶元
由於電容不可能長期保持電荷不變,必須定時對動態存儲電路的各存儲單元執行重讀操作,以保持電荷穩定,這個過程稱為動態存儲器刷新。PC/XT機中DRAM的刷新是利用DMA實現的。首先應用可編程定時器8253的計數器1,每隔1⒌12μs產生一次DMA請求,該請求加在DMA控制器的0通道上。當DMA控制器0通道的請求得到響應時,DMA控制器送出到刷新地址信號,對動態存儲器執行讀操作,每讀一次刷新一行。

熱點內容
伺服器如何添加聯想de存儲 發布:2025-10-16 09:30:39 瀏覽:926
站群伺服器ip怎麼解析 發布:2025-10-16 09:25:06 瀏覽:472
編程打古詩 發布:2025-10-16 09:17:51 瀏覽:642
python正態隨機數 發布:2025-10-16 09:13:27 瀏覽:210
新建域用戶如何保存原來的配置 發布:2025-10-16 09:05:01 瀏覽:966
安卓相機怎麼調出蘋果相機的效果 發布:2025-10-16 08:56:21 瀏覽:692
我的世界大伺服器列表 發布:2025-10-16 08:50:09 瀏覽:444
如何找回發票軟體用戶名密碼 發布:2025-10-16 08:35:54 瀏覽:305
電腦怎麼打開伺服器界面 發布:2025-10-16 08:13:40 瀏覽:408
115安卓同時下載的文件在哪裡 發布:2025-10-16 08:05:34 瀏覽:413