新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > CCD信號采集系統的USB接口設計

        CCD信號采集系統的USB接口設計

        作者: 時間:2011-04-07 來源:網絡 收藏

        (ChargeCoupledDevices)電荷耦合器件是20世紀70年代初發展起來的新型半導體集成光電器件。由于器件具有諸多優點:靈敏度高、光譜響應寬、動態范圍大、空間自掃描等,使得近30年來,器件及其應用技術的研究取得了驚人的進展,特別是在圖像傳感和非接觸測量領域的發展更為迅速。目前,CCD應用技術已成為集光學、電子學、精密機械及微計算機為一體的綜合性技術,在現代光子學、光電檢測技術和現代測量技術中成果累累。隨著CCD技術的迅猛發展,針對CCD之后的如何與計算機進行信息通信就成為CCD應用的一個重要問題,而能夠針對CCD每一個象素進行高速并實時的傳輸給計算機處理,將會大大的提高采集到的CCD的精度并解決實時處理的問題,這在CCD信號采集和處理領域都將有非常廣闊的前景。

        本文引用地址:http://www.104case.com/article/150883.htm

        通用串行總線(UniversalSerialBus)是1995年由康柏、微軟、IBM,DEC等公司為解決傳統總線不足而推廣的一種新型的通信標準。總線具有較高的數據傳輸率、使用靈活、易擴展等優點,非常適合CCD的數據采集。他有低速、全速和高速三種工作方式,即l.1版本中.的低速模式和全速模式,低速模式的傳輸速率為1.5Mb/s,支持一些不需要很大數據吞吐量和很高實時性的設備,如鼠標、鍵盤等;全速模式的傳輸速率可以達到12Mb/s。,可以外接速率更高的外設,適合用于線陣CCD的數據采集。在USB 2.0版本中,增加了一種高速模式,其數據傳輸率最高可以達到480Mb/s,完全可以滿足高速CCD數據采集的需要。

        2 硬件組成

        選用高速的AD(模數)轉換器,用于采集CCD信號,配以先進先出(FIFO)存儲器作為數據高速緩沖器,用于存儲AD轉換后的數據,并采用具有微控制器的USB芯片,從而通過USB接口將采集到的數據輸入計算機。原理框圖如圖1所示。

        其中使用CPLD技術完成本采集系統的控制模塊。CPLD(可編程邏輯器件)技術已經成為當今數字電路最為流行的方式,他可以將數字電路集成到一塊芯片上,大大減小了電路板的體積和可靠性,而且他的可編程性使得好的電路在升級和修改上變得非常簡單和方便。

        USB控制芯片選用Cypress公司EZ-USB系列的AN2131QC,片內嵌有一個增強型的8051微控制器,并使用片內RAM作程序和數據存儲器,使得芯片具有軟特性,允許客戶隨時不斷地設置和升級。內部框圖如圖2所示。

        EZ-USBAN2131QC符合USB規范1.1版本,有4種傳輸方式:控制傳輸、中斷傳輸、批量傳輸和同步傳輸。其中同步傳輸又有2種方式,即普通讀寫方式和快速讀寫方式。在本系統中采用的是快速讀寫方式,使得芯片可以在0.5 ms內讀寫1 kB的數據。

        3 軟件

        軟件主要分為3部分:USB芯片的固件程序、USB設備驅動程序以及主機的用戶應用程序。固件響應各種來自系統的USB標準請求,完成各種數據的交換工作和事件處理。USB-驅動程序為USB采集系統提供了應用軟件與USB設備的接口,他的開發使USB廣泛應用于數據采集系統成為可能。而應用軟件則實現用戶與采集系統的交互,完成數據采集命令,進行實時顯示。

        3.1 固件程序代碼

        由USB芯片集成的加強型8051單片機來處理,當EZ-USB設備連接到USB口時,主機進行總線枚舉,根據設備ID先使用系統程序將固件下載到芯片內部,然后進行重枚舉,固件作為用戶的功能設備開始執行。

        Cypress公司提供固件程序框架,來完成控制傳輸和大部分的數據傳輸工作。本采集系統的固件程序就是基于此固件框架開發的,使用KeilC進行編譯。程序流程圖如圖3所示。

        圖3中:TD_Init()為初始化全局變量;TD_Poll()為用戶功能;TD_Suspend()為響應掛起事件;TD_Resume()為響應外部喚醒事件。

        EZ-USB使用8051的INT2來響應21種USB中斷,自動矢量(Autovector)機制幫助使8051內核進入相應的ISR(Interrupt Service Routine中斷服務例程)。在初始化函數中加入使能EZ-USB的SOF(幀起始)中斷語句,可以開始同步傳輸。每1 ms開始發生SOF中斷,標志幀的開始。在SOFISR中從外部FIFO讀取一個包長度的字節數據到端點緩沖區中。

        3.2 驅動程序設計

        USB客戶驅動程序是支持即插即用功能的標準WDM(Windows Driver Model)驅動程序,這是分層的驅動程序模型,即設備驅動被分成了若干層,典型地分成:高層驅動程序、中間層驅動程序、底層驅動程序。每層驅動再把I/O請求劃分成更簡單的請求,以傳給更下層的驅動執行。最底層的驅動程序在收到I/O請求后,通過硬件抽象層,與硬件發生作用,從而完成I/O請求工作。在這樣的架構下,上面的驅動層就不需要對每個操作系統都要開發一遍了。USB客戶驅動程序接收I/O管理器發來的IRP(I/ORequestPacket),構造URB(USBRequest Block)傳遞給主控制驅動程序接口USBDI。在USBDI的基礎上進行編程將大大簡化,用戶不用關心IRP的類型,而只需要在相應的分發例程中通過構造URB(USBRequestBlock)并將其通過USBDI發送下去就可以實現對USB設備的控制了。

        開發USB設備驅動程序的工具目前廣泛應用的主要有2類:


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宝坻区| 缙云县| 临湘市| 甘谷县| 海南省| 溧阳市| 义乌市| 三原县| 囊谦县| 武山县| 贡觉县| 承德县| 宁夏| 江达县| 高尔夫| 乌兰浩特市| 明光市| 安庆市| 克东县| 抚顺市| 静宁县| 阳信县| 柳林县| 德令哈市| 阳江市| 额尔古纳市| 分宜县| 吉隆县| 锡林郭勒盟| 噶尔县| 南陵县| 长寿区| 清原| 江源县| 南丰县| 武鸣县| 北海市| 鄯善县| 浦东新区| 谷城县| 公安县|