朱瑩


摘 要:隨著計算機技術和電子信息技術的飛速發展,數據采集系統在航空航天、監測偵察、通信等眾多領域中得到廣泛應用,對數據采集系統的速度、精度、易操作性以及實時性的要求也在不斷地提高。該文設計了基于FPGA與USB 2.0技術相結合的數據采集系統。并通過對系統性能的測試,驗證了該系統的預期目標,即不僅能實現一般用途的數據釆集并且還實現了系統的高速化、高集成化和低功耗等工作。
關鍵詞:FPGA 圖像傳感器 SDRAM存儲器 USB2.0
中圖分類號:TP27 文獻標識碼:A 文章編號:1672-3791(2015)08(a)-0017-03
隨著科學技術的發展尤其是計算機技術的發展與普及,數據采集系統已被廣泛應用于國民經濟和國防建設的各個領域,人們對數據采集系統的速度、精度、易操作性以及實時性的要求不斷提高。USB作為一種新型串口通信標準,具有傳輸速率高、可靠性高、成本低、支持即插即用使用靈活等特點;FPGA結構靈活、開發周期短、對實時信號處理非常的適用,已經廣泛應用于數據采集、圖像處理等諸多領域。該系統設計基于FPGA與USB 2.0的數據釆集系統,具有可靠性高、抗干擾能力強、便于數據的傳輸等優點,具有良好的實用價值和廣泛應用前景。
1 系統總體設計思想
該系統設計以FPGA為控制器,以實現對數據采集的控制,并預期目標。FPGA控制電路主要用于實現對圖像傳感器、SDRAM芯片對數據的緩存以及對USB芯片的控制以及對接收數據的緩存處理。SDRAM存儲電路主要完成采集到的數據存儲,上電時將程序加載到FPGA中,USB數據傳輸電路完成數據和控制信息的傳輸,完成與上位機的正常通信,即將采集到的數據上傳到上位機中。
2 系統硬件電路設計
2.1 總體框圖
2.2 芯片的選擇
該系統采用 Cyclone II 的 EP2C8Q208C8 這款 FPGA 芯片,該芯片選用了 208 管腳的 PQFP 封裝,它內部具有 8256個邏輯單元,18個乘法器,2個鎖相環,總引腳 208個,用戶可用引腳達到了 182個。該芯片內部帶有乘法器可用于完成高速乘法操作,使得數字信號處理能力得到了增強[1]。
USB 2.0采用Cypress公司生產的CY7C68103芯片。CY7C68013A 內部繼承了一個增強的 8051 內核,它既與標準的 8051 兼容,又有諸多的改進,最高工作頻率達到了48MHz,一個指令只需 4個時鐘周期,比標準的 8051平均提高了2.5倍可實現與高速外圍設備的邏輯連接和高速數據傳輸并具有接口設計簡單、價格低等特點滿足設計需求[2]。
CMOS圖像傳感器的光電轉換效率和靈敏度比CCD效果好,在消耗的功耗相同的情況下CMOS攝像頭得到的增益大,CMOS攝像頭的電路集成度高、控制簡單、并且處理速度快,CMOS攝像頭使得系統微型化、耗電量是CCD攝像頭的1/8等優點,因此該系統采用的是Omni Vision公司的CMOS圖像傳感器OV7620芯片。
2.3 硬件框圖
FPGA驅動OV7620的框圖,其驅動包括兩部分,第一部分是使用Verilog語言建立I2C總線模塊對OV7620初始化,第二部分是建立采集模塊按照行、場同步信號,像素時鐘信號的時序對OV7620攝像頭進行圖像采集。
該設計利用 FPGA 作為外部主控制器實現對USB 2.0 接口芯片 CY7C68013 的 Slave FIFO 模式下,對USB 內部的 FIFO 進行控制,以實現數據的高速傳輸。該模塊可普遍適用于基于 USB 2. 0 接口的高速數據傳輸[3]。
3 系統軟件設計
3.1 USB 固件程序設計
固件程序就是指固化在單片機中且能夠運行的程序,系統中的單片機是指USB芯片,該設計的固件程序主要功能就是輔助硬件系統工作,完成對設備的初始化工作,處理應用程序和驅動程序發送的各種命令和數據交換。
固件的初始化功能:硬件系統上電后,所有的寄存器配置都恢復到出廠時的狀態,為了完成實際設備系統所需要的功能,必須對各種寄存器的初始值和設備所需要的設備屬性進行初始化設置。
該設計采用Slave FIFO模式下進行數據高速傳輸,配置數據接收端點為Slave FIFO模式,CPU不再參與數據的傳輸,端點FIFO接收到FPGA控制器傳輸數字信號后,等待PC讀取,USB芯片只作為一個數據傳輸通道。
3.2 WDM驅動程序設計
WDM(Windows Driver Mode Windows驅動程序模型)驅動程序屬于Windows操作系統的內核模式,遵循Win32驅動程序模型,在主機應用程序和物理設備之間采用靈活的分層驅動方式,支持更多特性,如即插即用,電源管理。
WDM驅動程序的功能是通過特定的例程來實現的,不是通過任意例程都能夠實現的。面對不同的情況,主機程序或操作系統只是根據相對應的例程進行觸發,從而對不同的操作進行完成,實現功能要求。典型WDM驅動程序的構成框架如圖4所示。
(1)入口例程:它是所有驅動程序進入的入口,而且實現設備的驅動功能在加載時對操作系統I/O管理器進行調用,其主要作用是對WDM驅動程序進行初始化,這是驅動程序所必須的。
(2)分發例程:主要有Creat()函數、Read()函數以及IOCTL()函數等,主要功能是對用戶發出的各種I/O請求進行處理。
(3)即插即用例程:設備與PC機連接時,PC機的操作系統會自動進行處理,如識別、選擇以及加載合適的驅動程序;設備從PC拔出時,PC機的操作系統也會進行相應的處理,如清除工作。
(4)卸載例程:主要是針對驅動程序卸載的處理。
(5)電源管理例程:主要是針對電源管理請求的處理。
3.3 應用程序設計
應用程序是用戶與系統的接口,外接硬件設備的控制和通信主要就是通過它來實現的,所以應用程序首先要建立與外設的連接,然后才能實施數據的傳輸。
4 結語
該文設計了基于FPGA和USB 2.0兩種技術相結合的數據釆集系統,系統的總體設計方案不僅具有 FPGA技術的易擴展性、低功耗、低成本等特點,還具有 USB技術即插即用的特性,系統運行穩定可靠,具有一定的實用性。
參考文獻
[1] 唐玉蓉.基于FPGA的高速數據采集系統的設計與實現[D].北京:北京郵電大學,2012.
[2] 闕濱城.基丁-USB接口的高速信號采集系統設計[D].成都:電子科技大學,2011.
[3] 劉巍.基于USB接口和FPGA的多通道數據釆集系統的研究[D].北京:中國科學院研究生院(空間科學與應用研究中心),2011.