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

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

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

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