【摘要】近年來,近視眼的人數(shù)逐步增長,為了更加精確的了解近視患者近視程度,為近視者開出合理的配鏡處方,驗光儀器成為了配置眼鏡過程中必不可少的設(shè)備。全自動電腦驗光的接口設(shè)計是在原先驗光儀的基礎(chǔ)進行了改進,設(shè)計了基于FPGA的全自動電腦控制系統(tǒng),并采用了先進的USB技術(shù)連接設(shè)備與電腦,提高了數(shù)據(jù)傳輸速率,增加了定位精度,并且縮短了驗光過程的時間。
【關(guān)鍵詞】電腦驗光儀;FPGA;USB接口;控制系統(tǒng)
1.引言
近些年來,近視已經(jīng)嚴重影響了人們的健康。為了準確的了解近視患者眼睛的近視程度,為近視者配出更加合適的眼鏡,驗光儀器成為了眼鏡零售行業(yè)必不可少的設(shè)備。目前市場上主流電腦驗光儀并不能完全實現(xiàn)驗光過程的自動化,問題主要表現(xiàn)在以下三個方面:
①定位速度慢;②定位精度差;③自動化水平低[2]。
為了解決以上問題,本設(shè)計對原有的電腦驗光儀進行了改進,采用運行速率快,穩(wěn)定性高的FPGA控制步進電機驅(qū)動芯片,實現(xiàn)了驗光儀的三軸聯(lián)動;運用行程開關(guān)實現(xiàn)了極點間的自動往返。為了保護電路安全,設(shè)計了板間的光電隔離電路;并且采用先進的USB技術(shù)使電腦和設(shè)備進行通信,增加了數(shù)據(jù)的傳輸率,提高了設(shè)備的可控性[3]。
2.系統(tǒng)硬件整體設(shè)計
控制系統(tǒng)是驗光儀的控制核心,它不但要實現(xiàn)對多軸步進電機的運動和光源控制,還要實現(xiàn)與上位機信息的交互和其他重要功能。驗光儀的主控制板的設(shè)計由EP3C16Q240C8最小系統(tǒng)擴展而成,根據(jù)FPGA功能實現(xiàn)及相關(guān)外設(shè)擴展對插針接口進行適當更改,并添加了USB通信接口、步進電機驅(qū)動模塊和行程開關(guān)信號輸入端的光電隔離電路。驗光儀控制系統(tǒng)的主控制板硬件電路設(shè)計框圖如圖1所示。
主控制板中FPGA使用的是Altera公司生產(chǎn)的Cylone III系列芯片EP3C16Q240C8N,該芯片擁有15,408個邏輯單元;可以提供516,096字節(jié)的RAM;另外芯片內(nèi)部還自帶有4個鎖相環(huán),可以保證系統(tǒng)時鐘信號在高速運行時的穩(wěn)定性。步進電機驅(qū)動芯片選擇使用Allergo公司生產(chǎn)兩相步進電機專用驅(qū)動芯片SLA7042M,它能夠?qū)崿F(xiàn)超平滑低速驅(qū)動。為了實現(xiàn)主芯片和外部設(shè)備通信,控制板需要將3.3V和5V的電平相互轉(zhuǎn)換,系統(tǒng)使用TI公司生產(chǎn)的16位3.3V-5V電平轉(zhuǎn)換芯片SN74ALVC164245。USB接口控制芯片采用PDIUSBD12,它集成了SIE FIFO存儲器、收發(fā)器以及電壓調(diào)整期,適用于許多的外部設(shè)備。
3.Verilog硬件功能實現(xiàn)
Verilog HDL是一種硬件描述語言,主要用于從算法級、門級到開關(guān)級的多種抽象設(shè)計層次的數(shù)字系統(tǒng)建模[4]。FPGA芯片是驗光儀主控制板的核心部件,本設(shè)計中使用Verilog HDL在FPGA上實現(xiàn)下位機與上位機的信息交互、多軸聯(lián)動步進電機運動平臺的控制、對光源的控制等功能,F(xiàn)PGA內(nèi)部功能模塊如圖2所示。
1)USB接口控制模塊:FPGA內(nèi)部USB固件程序,實現(xiàn)FPGA與上位機USB接口通信。
2)時鐘模塊:對外部的16MHz時鐘進行分頻、倍頻處理,產(chǎn)生FPGA工作所需各種頻率的時鐘信號。
3)指令分析模塊:分析收到的上位機指令,根據(jù)規(guī)定的指令協(xié)議,產(chǎn)生執(zhí)行命令并將執(zhí)行指令發(fā)送到各個執(zhí)行模塊。
4)步進電機控制模塊:執(zhí)行FPGA送達的三軸步進電機控制指令,對各軸的電機進行細分、變速控制,最終通過給步進電機專用驅(qū)動芯片發(fā)送不同的命令實現(xiàn)電機的三軸聯(lián)動。
5)光源控制模塊:控制光學(xué)系統(tǒng)的5個LED紅外光源和3個視覺輔助光源3個視覺輔助光源引導(dǎo)人眼注視方向,5個LED紅外光源輔助系統(tǒng)的對焦功能。
4.上位機應(yīng)用程序及驅(qū)動程序的實現(xiàn)
本電腦驗光儀控制系統(tǒng)上位機軟件主要負責(zé)完成視頻圖像采集和處理的功能,在預(yù)處理的基礎(chǔ)上完成形態(tài)學(xué)的處理、目標識別和光斑參數(shù)計算輸出等一系列指令,并將指令通過USB接口傳輸給下位機。由于該設(shè)備不是一個類設(shè)備,說以要使設(shè)備正常工作,還需要編寫專門的驅(qū)動程序和軟件。
4.1 驅(qū)動程序的編寫
驅(qū)動程序的編寫使用一些驅(qū)動開發(fā)的專用工具,例如Driver Studio、WinDriver等。Driver Studio3.2進行開發(fā),開發(fā)步驟這里就不一一列舉,應(yīng)該注意的是要在USB Vendor ID和USB Product ID中輸入和固件中設(shè)備描述一致的信息。由于選用的是Philips的PDIUSBD12芯片,所以設(shè)備的Vendor ID固定為0x0471。
使用Driver Studio的Driver Wizard生成驅(qū)動框架后,可以根據(jù)需要使用Visual C++6.0對Driver Wizard生成的工程文件中的函數(shù)進行修改,還有就是對自定義的IO控制接口函數(shù)進行處理和廠商請求的編寫。完成這些后,就可以對驅(qū)動程序進行編譯了,成功編譯驅(qū)動程序后,將它和Driver Studio自動生成的.inf文件放在同一目錄下,在查找驅(qū)動的時候指定這個目錄就可以了。
4.2 上位機應(yīng)用程序的編寫
由于設(shè)備使用USB接口進行上位機與設(shè)備進行通信,所以上位機應(yīng)用程序要通過USB驅(qū)動實現(xiàn)對設(shè)備的訪問,編寫上位機的應(yīng)用程序必須符合USB驅(qū)動定義的接口規(guī)范。一般來說,使用Driver Wizard生成一個驅(qū)動工程后,會同時生成一個***ioctl.h的文件,這個文件就是建立應(yīng)用程序和驅(qū)動之間的橋梁,它定義了驅(qū)動程序的接口,在編寫應(yīng)用程序的時候需要將它引用進去。
上位機應(yīng)用程序整體劃分6個區(qū)域,視頻顯示區(qū)域、(直接控制)操作區(qū)域、MOTOR控制區(qū)域、LED控制區(qū)域、實時處理(數(shù)據(jù))顯示區(qū)域、狀態(tài)反饋數(shù)據(jù)顯示區(qū)域。
本系統(tǒng)人機交互功能在windows平臺上使用VC++6.0編譯環(huán)境設(shè)計完成,可以直觀顯示跟蹤對焦過程,并進行簡單控制的可視化人眼跟蹤控制程序,通過人機界面實現(xiàn)對人眼跟蹤系統(tǒng)的完全控制。完成的人機交互界面(上位機應(yīng)用程序),具體實現(xiàn)代碼不再敖述。
5.系統(tǒng)的搭建及測試
全自動電腦驗光儀控制系統(tǒng)整體分為上位機和下位機兩部分,通過USB總線進行連接通信,配合完成整個系統(tǒng)功能。通過VC6.0++開發(fā)環(huán)境編程實現(xiàn)windows平臺的上位機軟件,可通過其人機交互界面對設(shè)備進行控制。上位機軟件實現(xiàn)了對電腦驗光儀機頭內(nèi)CCD攝像頭的控制、對視頻數(shù)據(jù)的實時采集處理、下發(fā)各種控制指令、顯示數(shù)據(jù)信息等功能。
在搭建好的工作平臺上進行完整的系統(tǒng)測試,結(jié)果如圖3所示,在人機交互界面可以清晰完整的觀察到已完成跟蹤后采集的圖像。通過對測試結(jié)果分析,本控制系統(tǒng)可以很好的完成跟蹤任務(wù),識別準確、跟蹤迅速、對焦精確,充分驗證了本系統(tǒng)的可行性,基本達到了設(shè)計預(yù)期。
6.結(jié)束語
本文利用PC和FPGA配合設(shè)計出了一套完整的控制系統(tǒng),充分發(fā)揮了PC機在圖像處理、人機交互方面的特長以及FPGA硬件資源多、可重構(gòu)性強的特點,極大的提高了系統(tǒng)的實時處理能力,縮短了跟蹤時間,提高了跟蹤效率。本文設(shè)計的電腦驗光儀控制系統(tǒng)將會是整個驗光儀系統(tǒng)中的一部分。
參考文獻
[1]陳國平,周潤.我國中小學(xué)生近視影響因素現(xiàn)況[J].安徽預(yù)防醫(yī)學(xué)雜志,2011,5.
[2]鄭定列.自動綜合驗光儀——科學(xué)驗光的發(fā)展趨勢[J].中國眼鏡科技雜志,2008,3.
[3]薛媛媛.USB應(yīng)用技術(shù)開發(fā)大全[M].北京:人民郵電出版社,2007.
[4]J.Bhasker.A Verilog HDL Primer,Third Edition[M].Star Galaxy Publishing,2005.
[5]鄭彧,陳鴻,裴煥斗.基于SPMC75F2413A單片機的步進電機控制方法[J].航空科學(xué)技術(shù),2007,5:44-46.
[6]華清遠見嵌入式培訓(xùn)中心.FPGA應(yīng)用開發(fā)入門與典型實例[M].北京:人民郵電出版社,2008.
作者簡介:
閆蘊霞(1989—),女,河南開封人,中北大學(xué)在讀碩士研究生,主要研究方向:測量儀器設(shè)計。
陳鴻(1963—),男,中北大學(xué)教授,碩士生導(dǎo)師,主要研究方向:自動化測量與控制技術(shù)、電子測量技術(shù)與儀器、光電檢測技術(shù)、光電測試與計量技術(shù)、電氣工程及其自動化。