劉先盛
渤海大學
?
基于USB總線的實時數據采集系統設計
劉先盛
渤海大學
在現代工業生產以及科學技術不斷發展的過程中,做好數據的采集工作有著非常重要的意義,當前采集系統中的采集方法存在的各種問題,可能會存在安裝麻煩以及由于環境的影響而導致采集數據的問題,所以會對中斷資源產生限制,不利于進行很好的擴展,但是USB總線控制更好地解決了存在的各種問題,文章分析了主機和小型科學儀器的接口方式,認為通過串行總線就可以實現主機和小型科學儀器(USB)的通信,我們從硬件設計,固件設計,設備驅動設計及應用軟件設計的方面對USB總線的數據采集,有利于下一步多臺儀器和主機互聯的目標。
USB總線 數據采集 傳輸系統
因為科學技術的不斷進步和發展,慢慢的出現了各種便攜式的電子產品,但是因為工程實踐中出現的各種采集裝置的問題,而且采集的過程中很復雜,數據處理系統的體積會影響數據采集技術的發展,USB接口技術與PCI或ISA總線接口技術比起來,因為數據傳輸效率比較高所以這些電子產品能夠進行傳輸,單片機是為了對智能儀器設備進行控制而使用的一種微型計算機,這種計算機的功能非常強大,而且具備優異的性能,這種單片機的分支轉移目標以及定位處理功能對工業控制的需要有著重要的意義。
為了促進接調度速度和精度的提升,采用了基于SPCE061A 16位單片機的USB實時數據采集系統。得出了一種USB通信的詳細硬軟件設計方案和數據處理方法,而且USB總線技術有利于PC機總線的發展,因為連接的方式很簡單,而且連接的速度比較快,這里利用USB2.0實現和RS-232接口通信,通過PC機可以對原有的數據進行計算,在對硬件設計的過程中,對于充分發揮軟件的作用有著重要的意義,因為傳統的編程技術效率不高,而且進行及時處理很困難,需要通過windows多任務處理功能,通過各種編程技術對數據進行處理。
當前USB控制器出現了兩個,一種是有USB接口的單片機,不是USB接口的芯片,要更好地實現USB通信就要有外部微處理器進行協調,然后實現數據的交換;可以使用公司的接口芯片讓USB更好地進行傳輸,而且提供了一種8位的并行接口有利于數據以及地址的復用,而且可以很好的和單片機進行連接。
本設計使用了橋式整流電路和AD522 構成前端調理電路,AD522 是一種高精度的數據采集器,A/D轉換主要使用的美國模擬器件公司的產品AD7884,這種產品具有高速而且高精度16位A/D轉換器,AD7884工作速度也比較高,對干擾噪聲比較敏感,使用的主要方法是在外部電路以及電源單加上特有電路,在輸入端和模擬地使用了運算放大器,有效的改進了 AD7844的動態特性。
在該系統中,時鐘電路的信號是通過接口電路的DMA控制器獲得的,由于計數器譯碼器以及觸發器構成的分頻電路,這種電路一般會提供125HZ 驅動信號,有利于對4個信道進行采集。
這個信號會經過特定的處理和分屏,而且時鐘電路的結構不復雜,可以很可靠地進行工作,系統的緩存通過4片6264 組成,地址編碼會通過接口電路的控制器實現,可以通過硬件自動地完成對數據的采集,如果緩沖存儲器半滿的時候,就可以對數據進行讀取,而且硬件可以繼續對緩存進行采樣。
有用的USB數據采集系統有 A/D轉換器,,微控制器以及USB通信接口:在這里, 由于ADuC812 內部集成了 A/D 轉換器和微控制器,有利于數據采集系統硬件部分的采集,整個系統由 USBN9604 和 ADuC812 連接而成.系統硬件結構框架如圖 1所示。

圖1 硬件總體結構
單片機和采集電路的電源會通過計算機的USB接口獲得,而且ADuC812 單片機的 P0 口采用的分時復用的方法,既可以用作地址線,也可以用作數據線,因為實現了總線復用,所以它們之間的連接更簡單,因為數據和控制信號通過中斷和讀寫8 位地址/數據線來傳遞。USBN9604 會占用到地址7Fxxh,有用的地址范圍為7F00h~7F3Fh.,單片機也可以對數據進行實時采集,一般轉換器的基準電源為0~5 V,我們可以使用5V的電源,如果進行了模擬樣的采集以后,需要進行濾波以及放大才能將信號進行轉換,才能在一定時間內進行模擬量的轉換,所得的數據臨時存放在內部的 RAM 或外部擴展的 RAM 中,如果接收到了程序的指令USBN9604 的發送 FIFO 中,通過它可以發送到上層設備,有利于更好地處理USB通信,他的處理能力不強,進行USB協議的解釋,所以需要將數據和控制信號進行分布,USB使用四芯電纜連接,電纜中有四條線,這幾條線可以標識設備,可以標志高速設備或者是低速設備。上面圖1為硬件總體結構圖。
系統的軟件有設備單程序和驅動程序,因為主機驅動程序會涉及到windows內核移動,所以內容會出現復雜的情況,要對設備單的程序進行介紹,設備端程序也要通過各種代碼進行書寫,可以使用匯編語言進行編寫,可以使用C51語言編寫,有利于設備的數據管理和交互,圖2是一種主程序的框架,實現了設備和主機驅動程序相互響應,而且有利于設備的添加配置,刪除等基本操作數據交互是讓設備和主機之間進行數據包的傳送,有利于單片機及 USBN9604 的初始化工作,數據的采集需要通過終端的方式進行,共有 3 個中斷程序 ,每個程序都要設置 A/D 轉換,這樣才能更好的接收數據并且存儲,如果獲得了主機命令,就要對命令類型進行判斷,才能讓數據進行傳送和事件處理,9604的初始化會涉及到各種設備的問題,在對設備進行枚舉的時候,需要發送各種數據包,這樣才能將數據信息更好地傳送,包括設備的類型以及設備的接口,這樣才能為設備分配各種地址,有利于設備更好地進行初始化操作,設備完成初始化操作后就可以進行正常工作,對驅動程序的編寫是一種很困難的工作,還沒有需要處理的窗口信息,如果沒有windows系統的保護作用就會影響操作系統,而且設備驅動程序是系統非常信任的一部分,會對系統的發展產生影響,出現系統崩壞的情況,所以在開發的時候要注意驅動程序的配備:C ++,Win-dows device developer kits(DDK),此外還要有必要的調試工具,比如:SoftIce、 Winbug等。驅動程序使用 WDM 模型 ,支持設備的即插即用。
USB驅動程序是是基于WDM的。對于USB設備來說,驅動可分為USB總線驅動程序以及USB功能驅動,操作系統就可以對總線進行驅動,因為和實際的硬件有聯系,所以有利于進行低層的通信,總線驅動程序是通過開發者進行編寫的,在USB總線驅動程序的上層,通過總線驅動程序會發送包含URB的IRP ,有利于對USB設備信息進行接送。
WDM的結構特點和WN32程序設計的消息驅動很相像,這種驅動體制的主體是一個入口函數DriveEnry ,函授的參數是指針會指向某個初始化的驅動程序,這樣的方法會將函數指針填入到驅動程序中,這些指針對操作系統指明了驅動程序容器中各種子例程的位置。以下圖2就是本文所涉及的DriveEnry 例程實現。

圖2 USB系統驅動程序層次關系
USB總線接口作為計算機的一種接口,在許多應用中獲得了廣泛的發展,因為計算機外設設備的不斷進步,有利于滿足人們的需求,所以在許多音像設備以及語音設備中都使用了USB接口,本文分析了USB總線數據采集系統,并且介紹了方案設計的硬件和軟件方法,因為整個系統的調試過程很復雜,,包括數據采集硬件的固件程序調試和 PC 機上驅動程序的調試。在這里 ,我們可以使用硬件仿真器這樣才能對數據采集系統的軟硬件更好進行仿真,有利于程序獲得良好的效果,也能夠實現整體的性能,有利于預期目標的實現,這種設備在國內外處于高速發展的時代而且在國內也獲得了廣泛的應用和發展,采用 USB2.0協議的 USB 接口 ,最大限度的提升了數據的傳輸速度,如此高的傳輸速率對于傳輸速率的發展有著重要的意義,通過這種高設計的設備控制,有利于實現動態圖像的控制和傳輸,隨著時代的發展和進步,USB必將在更廣闊的發展領域中獲得應用。
[1] 陳繁.USB在數據采集系統中的應用[J].知識經濟,2010(16)
[2] 臧巨輪,朱長青,王川川等.USB總線數據采集設備驅動程序的設計[J].國外電子測量技術,2009(12)
[3] 蔣承延,賈日亙.基于USB的嵌入式遠程視頻監控系統設計[J].重慶工商大學學報(自然科學版),2009(6)
