CCD信號采集系統的USB接口設計
CCD(ChargeCoupledDevices)電荷耦合器件是20世紀70年代初發(fā)展起來(lái)的新型半導體集成光電器件。由于CCD器件具有諸多優(yōu)點(diǎn):靈敏度高、光譜響應寬、動(dòng)態(tài)范圍大、空間自?huà)呙璧?,使得?0年來(lái),CCD器件及其應用技術(shù)的研究取得了驚人的進(jìn)展,特別是在圖像傳感和非接觸測量領(lǐng)域的發(fā)展更為迅速。目前,CCD應用技術(shù)已成為集光學(xué)、電子學(xué)、精密機械及微計算機為一體的綜合性技術(shù),在現代光子學(xué)、光電檢測技術(shù)和現代測量技術(shù)中成果累累。隨著(zhù)CCD技術(shù)的迅猛發(fā)展,針對CCD信號的采集及采集之后的信號如何與計算機進(jìn)行信息通信就成為CCD應用的一個(gè)重要問(wèn)題,而能夠針對CCD每一個(gè)象素進(jìn)行高速采集并實(shí)時(shí)的傳輸給計算機處理,將會(huì )大大的提高采集到的CCD信號的精度并解決實(shí)時(shí)處理的問(wèn)題,這在CCD信號采集和處理領(lǐng)域都將有非常廣闊的前景。
本文引用地址:http://dyxdggzs.com/article/150883.htm 通用串行總線(xiàn)USB(UniversalSerialBus)是1995年由康柏、微軟、IBM,DEC等公司為解決傳統總線(xiàn)不足而推廣的一種新型的通信標準。USB總線(xiàn)接口具有較高的數據傳輸率、使用靈活、易擴展等優(yōu)點(diǎn),非常適合CCD的數據采集。他有低速、全速和高速三種工作方式,即USBl.1版本中.的低速模式和全速模式,低速模式的傳輸速率為1.5Mb/s,支持一些不需要很大數據吞吐量和很高實(shí)時(shí)性的設備,如鼠標、鍵盤(pán)等;全速模式的傳輸速率可以達到12Mb/s。,可以外接速率更高的外設,適合用于線(xiàn)陣CCD的數據采集。在USB 2.0版本中,增加了一種高速模式,其數據傳輸率最高可以達到480Mb/s,完全可以滿(mǎn)足高速CCD數據采集系統的需要。
2 接口硬件組成
本系統選用高速的AD(模數)轉換器,用于采集CCD信號,配以先進(jìn)先出(FIFO)存儲器作為數據高速緩沖器,用于存儲AD轉換后的數據,并采用具有微控制器的USB接口芯片,從而通過(guò)USB接口將采集到的數據輸入計算機。系統原理框圖如圖1所示。
![]() |
USB控制芯片選用Cypress公司EZ-USB系列的AN2131QC,片內嵌有一個(gè)增強型的8051微控制器,并使用片內RAM作程序和數據存儲器,使得芯片具有軟特性,允許客戶(hù)隨時(shí)不斷地設置和升級。內部框圖如圖2所示。
![]() |
EZ-USBAN2131QC符合USB規范1.1版本,有4種傳輸方式:控制傳輸、中斷傳輸、批量傳輸和同步傳輸。其中同步傳輸又有2種方式,即普通讀寫(xiě)方式和快速讀寫(xiě)方式。在本系統中采用的是快速讀寫(xiě)方式,使得芯片可以在0.5 ms內讀寫(xiě)1 kB的數據。
3 軟件設計
軟件主要分為3部分:USB芯片的固件程序、USB設備驅動(dòng)程序以及主機的用戶(hù)應用程序。固件響應各種來(lái)自系統的USB標準請求,完成各種數據的交換工作和事件處理。USB-驅動(dòng)程序為USB采集系統提供了應用軟件與USB設備的接口,他的開(kāi)發(fā)使USB廣泛應用于數據采集系統成為可能。而應用軟件則實(shí)現用戶(hù)與采集系統的交互,完成數據采集命令,進(jìn)行實(shí)時(shí)顯示。
3.1 固件程序代碼
由USB芯片集成的加強型8051單片機來(lái)處理,當EZ-USB設備連接到USB口時(shí),主機進(jìn)行總線(xiàn)枚舉,根據設備ID先使用系統程序將固件下載到芯片內部,然后進(jìn)行重枚舉,固件作為用戶(hù)的功能設備開(kāi)始執行。
Cypress公司提供固件程序框架,來(lái)完成控制傳輸和大部分的數據傳輸工作。本采集系統的固件程序就是基于此固件框架開(kāi)發(fā)的,使用KeilC進(jìn)行編譯。程序流程圖如圖3所示。
圖3中:TD_Init()為初始化全局變量;TD_Poll()為用戶(hù)功能;TD_Suspend()為響應掛起事件;TD_Resume()為響應外部喚醒事件。
EZ-USB使用8051的INT2來(lái)響應21種USB中斷,自動(dòng)矢量(Autovector)機制幫助使8051內核進(jìn)入相應的ISR(Interrupt Service Routine中斷服務(wù)例程)。在初始化函數中加入使能EZ-USB的SOF(幀起始)中斷語(yǔ)句,可以開(kāi)始同步傳輸。每1 ms開(kāi)始發(fā)生SOF中斷,標志幀的開(kāi)始。在SOFISR中從外部FIFO讀取一個(gè)包長(cháng)度的字節數據到端點(diǎn)緩沖區中。
3.2 驅動(dòng)程序設計
USB客戶(hù)驅動(dòng)程序是支持即插即用功能的標準WDM(Windows Driver Model)驅動(dòng)程序,這是分層的驅動(dòng)程序模型,即設備驅動(dòng)被分成了若干層,典型地分成:高層驅動(dòng)程序、中間層驅動(dòng)程序、底層驅動(dòng)程序。每層驅動(dòng)再把I/O請求劃分成更簡(jiǎn)單的請求,以傳給更下層的驅動(dòng)執行。最底層的驅動(dòng)程序在收到I/O請求后,通過(guò)硬件抽象層,與硬件發(fā)生作用,從而完成I/O請求工作。在這樣的架構下,上面的驅動(dòng)層就不需要對每個(gè)操作系統都要開(kāi)發(fā)一遍了。USB客戶(hù)驅動(dòng)程序接收I/O管理器發(fā)來(lái)的IRP(I/ORequestPacket),構造URB(USBRequest Block)傳遞給主控制驅動(dòng)程序接口USBDI。在USBDI的基礎上進(jìn)行編程將大大簡(jiǎn)化,用戶(hù)不用關(guān)心IRP的類(lèi)型,而只需要在相應的分發(fā)例程中通過(guò)構造URB(USBRequestBlock)并將其通過(guò)USBDI發(fā)送下去就可以實(shí)現對USB設備的控制了。
![]() |
開(kāi)發(fā)USB設備驅動(dòng)程序的工具目前廣泛應用的主要有2類(lèi):
評論