基于FPGA和USB接口的驗光儀控制系統(tǒng)設(shè)計方案
1.引言
本文引用地址:http://www.ex-cimer.com/article/226546.htm近些年來,近視已經(jīng)嚴重影響了人們的健康。為了準確的了解近視患者眼睛的近視程度,為近視者配出更加合適的眼鏡,驗光儀器成為了眼鏡零售行業(yè)必不可少的設(shè)備。目前市場上主流電腦驗光儀并不能完全實現(xiàn)驗光過程的自動化,問題主要表現(xiàn)在以下三個方面:
①定位速度慢;②定位精度差;③自動化水平低.
為了解決以上問題,本設(shè)計對原有的電腦驗光儀進行了改進,采用運行速率快,穩(wěn)定性高的FPGA控制步進電機驅(qū)動芯片,實現(xiàn)了驗光儀的三軸聯(lián)動;運用行程開關(guān)實現(xiàn)了極點間的自動往返。為了保護電路安全,設(shè)計了板間的光電隔離電路;并且采用先進的USB技術(shù)使電腦和設(shè)備進行通信,增加了數(shù)據(jù)的傳輸率,提高了設(shè)備的可控性.
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)建模.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)上位機軟件主要負責完成視頻圖像采集和處理的功能,在預(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固定為0×0471.
使用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)的實時處理能力,縮短了跟蹤時間,提高了跟蹤效率。經(jīng)系統(tǒng)的測試表明本方案設(shè)計的電腦驗光儀控制系統(tǒng)將會是整個驗光儀系統(tǒng)中不可缺少的一部分。
行程開關(guān)相關(guān)文章:行程開關(guān)原理
評論