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