基于FPGA和USB接口的驗光儀控制系統設計方案
1.引言
本文引用地址:http://dyxdggzs.com/article/226546.htm近些年來(lái),近視已經(jīng)嚴重影響了人們的健康。為了準確的了解近視患者眼睛的近視程度,為近視者配出更加合適的眼鏡,驗光儀器成為了眼鏡零售行業(yè)必不可少的設備。目前市場(chǎng)上主流電腦驗光儀并不能完全實(shí)現驗光過(guò)程的自動(dòng)化,問(wèn)題主要表現在以下三個(gè)方面:
①定位速度慢;②定位精度差;③自動(dòng)化水平低.
為了解決以上問(wèn)題,本設計對原有的電腦驗光儀進(jìn)行了改進(jìn),采用運行速率快,穩定性高的FPGA控制步進(jìn)電機驅動(dòng)芯片,實(shí)現了驗光儀的三軸聯(lián)動(dòng);運用行程開(kāi)關(guān)實(shí)現了極點(diǎn)間的自動(dòng)往返。為了保護電路安全,設計了板間的光電隔離電路;并且采用先進(jìn)的USB技術(shù)使電腦和設備進(jìn)行通信,增加了數據的傳輸率,提高了設備的可控性.
2.系統硬件整體設計
控制系統是驗光儀的控制核心,它不但要實(shí)現對多軸步進(jìn)電機的運動(dòng)和光源控制,還要實(shí)現與上位機信息的交互和其他重要功能。驗光儀的主控制板的設計由EP3C16Q240C8最小系統擴展而成,根據FPGA功能實(shí)現及相關(guān)外設擴展對插針接口進(jìn)行適當更改,并添加了USB通信接口、步進(jìn)電機驅動(dòng)模塊和行程開(kāi)關(guān)信號輸入端的光電隔離電路。驗光儀控制系統的主控制板硬件電路設計框圖如圖1所示。

主控制板中FPGA使用的是Altera公司生產(chǎn)的Cylone III系列芯片EP3C16Q240C8N,該芯片擁有15,408個(gè)邏輯單元;可以提供516,096字節的RAM;另外芯片內部還自帶有4個(gè)鎖相環(huán),可以保證系統時(shí)鐘信號在高速運行時(shí)的穩定性。步進(jìn)電機驅動(dòng)芯片選擇使用Allergo公司生產(chǎn)兩相步進(jìn)電機專(zhuān)用驅動(dòng)芯片SLA7042M,它能夠實(shí)現超平滑低速驅動(dòng)。為了實(shí)現主芯片和外部設備通信,控制板需要將3.3V和5V的電平相互轉換,系統使用TI公司生產(chǎn)的16位3.3V-5V電平轉換芯片SN74ALVC164245.USB接口控制芯片采用PDIUSBD12,它集成了SIE FIFO存儲器、收發(fā)器以及電壓調整期,適用于許多的外部設備。
3.Verilog硬件功能實(shí)現
Verilog HDL是一種硬件描述語(yǔ)言,主要用于從算法級、門(mén)級到開(kāi)關(guān)級的多種抽象設計層次的數字系統建模.FPGA芯片是驗光儀主控制板的核心部件,本設計方案中使用Verilog HDL在FPGA上實(shí)現下位機與上位機的信息交互、多軸聯(lián)動(dòng)步進(jìn)電機運動(dòng)平臺的控制、對光源的控制等功能,FPGA內部功能模塊如圖2所示。

1)USB接口控制模塊:FPGA內部USB固件程序,實(shí)現FPGA與上位機USB接口通信。
2)時(shí)鐘模塊:對外部的16MHz時(shí)鐘進(jìn)行分頻、倍頻處理,產(chǎn)生FPGA工作所需各種頻率的時(shí)鐘信號。
3)指令分析模塊:分析收到的上位機指令,根據規定的指令協(xié)議,產(chǎn)生執行命令并將執行指令發(fā)送到各個(gè)執行模塊。
4)步進(jìn)電機控制模塊:執行FPGA送達的三軸步進(jìn)電機控制指令,對各軸的電機進(jìn)行細分、變速控制,最終通過(guò)給步進(jìn)電機專(zhuān)用驅動(dòng)芯片發(fā)送不同的命令實(shí)現電機的三軸聯(lián)動(dòng)。
5)光源控制模塊:控制光學(xué)系統的5個(gè)LED紅外光源和3個(gè)視覺(jué)輔助光源3個(gè)視覺(jué)輔助光源引導人眼注視方向,5個(gè)LED紅外光源輔助系統的對焦功能。
4.上位機應用程序及驅動(dòng)程序的實(shí)現
本電腦驗光儀控制系統上位機軟件主要負責完成視頻圖像采集和處理的功能,在預處理的基礎上完成形態(tài)學(xué)的處理、目標識別和光斑參數計算輸出等一系列指令,并將指令通過(guò)USB接口傳輸給下位機。由于該設備不是一個(gè)類(lèi)設備,說(shuō)以要使設備正常工作,還需要編寫(xiě)專(zhuān)門(mén)的驅動(dòng)程序和軟件。
4.1 驅動(dòng)程序的編寫(xiě)
驅動(dòng)程序的編寫(xiě)使用一些驅動(dòng)開(kāi)發(fā)的專(zhuān)用工具,例如Driver Studio、WinDriver等。
Driver Studio3.2進(jìn)行開(kāi)發(fā),開(kāi)發(fā)步驟這里就不一一列舉,應該注意的是要在USB Vendor ID和USB Product ID中輸入和固件中設備描述一致的信息。由于選用的是Philips的PDIUSBD12芯片,所以設備的Vendor ID固定為0×0471.
使用Driver Studio的Driver Wizard生成驅動(dòng)框架后,可以根據需要使用Visual C++6.0對Driver Wizard生成的工程文件中的函數進(jìn)行修改,還有就是對自定義的IO控制接口函數進(jìn)行處理和廠(chǎng)商請求的編寫(xiě)。完成這些后,就可以對驅動(dòng)程序進(jìn)行編譯了,成功編譯驅動(dòng)程序后,將它和Driver Studio自動(dòng)生成的。inf文件放在同一目錄下,在查找驅動(dòng)的時(shí)候指定這個(gè)目錄就可以了。
4.2 上位機應用程序的編寫(xiě)
由于設備使用USB接口進(jìn)行上位機與設備進(jìn)行通信,所以上位機應用程序要通過(guò)USB驅動(dòng)實(shí)現對設備的訪(fǎng)問(wèn),編寫(xiě)上位機的應用程序必須符合USB驅動(dòng)定義的接口規范。一般來(lái)說(shuō),使用Driver Wizard生成一個(gè)驅動(dòng)工程后,會(huì )同時(shí)生成一個(gè)ioctl.h的文件,這個(gè)文件就是建立應用程序和驅動(dòng)之間的橋梁,它定義了驅動(dòng)程序的接口,在編寫(xiě)應用程序的時(shí)候需要將它引用進(jìn)去。
上位機應用程序整體劃分6個(gè)區域,視頻顯示區域、(直接控制)操作區域、MOTOR控制區域、LED控制區域、實(shí)時(shí)處理(數據)顯示區域、狀態(tài)反饋數據顯示區域。
本系統人機交互功能在windows平臺上使用VC++6.0編譯環(huán)境設計完成,可以直觀(guān)顯示跟蹤對焦過(guò)程,并進(jìn)行簡(jiǎn)單控制的可視化人眼跟蹤控制程序,通過(guò)人機界面實(shí)現對人眼跟蹤系統的完全控制。完成的人機交互界面(上位機應用程序),具體實(shí)現代碼不再敖述。
5.系統的搭建及測試
全自動(dòng)電腦驗光儀控制系統整體分為上位機和下位機兩部分,通過(guò)USB總線(xiàn)進(jìn)行連接通信,配合完成整個(gè)系統功能。通過(guò)VC6.0++開(kāi)發(fā)環(huán)境編程實(shí)現windows平臺的上位機軟件,可通過(guò)其人機交互界面對設備進(jìn)行控制。上位機軟件實(shí)現了對電腦驗光儀機頭內CCD攝像頭的控制、對視頻數據的實(shí)時(shí)采集處理、下發(fā)各種控制指令、顯示數據信息等功能。
在搭建好的工作平臺上進(jìn)行完整的系統測試,結果如圖3所示,在人機交互界面可以清晰完整的觀(guān)察到已完成跟蹤后采集的圖像。

通過(guò)對測試結果分析,本控制系統可以很好的完成跟蹤任務(wù),識別準確、跟蹤迅速、對焦精確,充分驗證了本系統的可行性,基本達到了設計預期。
6.結束語(yǔ)
本方案利用PC和FPGA配合設計出了一套完整的控制系統,充分發(fā)揮了PC機在圖像處理、人機交互方面的特長(cháng)以及FPGA硬件資源多、可重構性強的特點(diǎn),極大的提高了系統的實(shí)時(shí)處理能力,縮短了跟蹤時(shí)間,提高了跟蹤效率。經(jīng)系統的測試表明本方案設計的電腦驗光儀控制系統將會(huì )是整個(gè)驗光儀系統中不可缺少的一部分。
行程開(kāi)關(guān)相關(guān)文章:行程開(kāi)關(guān)原理
評論