O 引言
硬度測量是工業生產,特別是材料加工工業中廣泛應用的傳統測試技術。便攜式硬度計是一種較先進的硬度測試儀器,具有體積小、重量輕、易攜帶、操作方便等特點,尤其對一些大型、不可拆卸部件或精加工后要求復測硬度的零件的硬度測量特別有用。但由于一般便攜式硬度計在硬件和功能等方面存在局限,所以不能滿足生產過程中的復雜要求。
基于USB總線的數據通信具有安裝方便、可靠性高、數據不易丟失、抗干擾能力強、便于數據傳輸和處理等優點,隨著USB應用日益廣泛,已經逐漸成為現代數據傳輸的主要趨勢。
本文設計的便攜式硬度計數據通信系統實現方案,將USB通信技術應用到硬度測量過程中,選用Philips公司的PDIUSBD12作為USB芯片,選用 Atmel公司的ATmega128作為MCU,利用可靠的USB數據傳輸,將便攜式硬度計與PC機連接,由上位機完成所需功能的處理,滿足了測試現場的要求。
1 系統分析與設計
1.1 硬度計的工作原理及實際工作要求
硬度是表征金屬在表面局部體積內抵抗形變或破裂的能力。硬度表明材料的彈性變形和塑性變形,硬度計采用沖擊方式進行檢測后,通過傳感器將所得到的沖擊量轉換成電信號交由電子設備進行處理,受檢材料硬度值是通過硬度計配置的沖擊裝置得到的。目前國際通用的硬度計量標準有洛氏、里氏、維氏、布氏等,而便攜式硬度計以里氏硬度計居多。
里氏硬度值的定義如下:
?
式中:HL為里氏硬度值;vA為沖擊體距試樣表面1 mm時的沖擊速度;vB為沖擊體距試樣表面1 mm時的反彈速度。
在使用便攜式硬度計進行測量工作時,常常會對硬度測量提出一些要求,如表1所示。
?
由于便攜式硬度計數據存量相對有限、實現功能相對簡單,在面對實際工作中遇到的表1所示的相對復雜需求時,存在一定局限性,很難提高測后數據處理工作效率。因此,本文提出USB數據通信方案來解決這些問題。
1.2 便攜式硬度計USB數據通信系統硬件組成
USB(Universal Serial Bus)是一種快速、雙向、同步傳輸、即插即用的通用串行數據傳輸總線,以其方便穩定、易于接入PC機、兼容性強、易于升級、成本低廉,得到了廣泛應用。因此,為實現便攜式硬度計與PC機的通信,選用了USB通信方式。
便攜式硬度計USB數據通信系統結構如圖1所示。
?
本方案選用微處理器ATmega128作為數據通信系統的控制器。
ATmega128為Atmel公司推出的8位AVR微處理器,具有很高的信價比,工作時最高速度可以達到16MIPS,128 KB的FLASH、4 KB的E2PROM,足夠滿足方案中數據暫存的需要,另外,ATmega128具有53個可編程輸入/輸出口,可擴展64 KB的外部存儲器,便于實現多點硬度值數據采集的硬件擴展。
在該系統中,MCU ATmega128承擔著數據采集和USB數據通信的雙重任務,主要完成采集多路數字量輸入、配合PC機控制USB通信電路完成硬件檢測、枚舉連接及數據的雙向傳輸;控制存儲電路完成數據的存取等控制功能。
本方案選用的USB芯片PDIUSBD12是Philips公司成熟且價格低廉的產品。片內集成了高性能USB接口器件、FIFO存儲器、收發器以及電壓調整器等,支持USB 2.O的全速模式。
為保證USB數據傳輸的效率,本方案采用離線測量,定量傳送的實現方式。按工藝流程將一組產品硬度測量值臨時存入MCU的存儲器中,再將MCU存儲器中的臨時數據打包通過USB發給PC機并存入主機數據庫,主機應用程序需要時對數據進行處理。
2 軟件系統實現
本方案要解決以下三個方面的工作:一是在MCU上設計USB固件程序;二是編寫上位機的USB驅動程序;三是實現上位機數據處理應用程序。
2.1 USB固件程序
固件設計主要完成設備枚舉、主機與設備的數據交換、設備端的數據處理和控制等工作,固件程序設計成前后臺模式,把設備端數據處理和控制作為MCU的前臺任務,枚舉及枚舉成功之后的USB數據交換放在后臺進行。實現設備與主機以最大的傳輸速率通信。
設計時將USB端口1和端口2定義為普通輸入/輸出類型,對應于PDIUSBD12的模式0。控制端口0完成響應USB標準請求的功能,輸入端口用于把數據采集電路采集并打包的硬度值數據送給USB主機,輸出端口接收USB主機發送的包。
PDIUSBD12從USB收到一個數據包,就對MCU產生一個中斷請求,MCU立即響應中斷,中斷服務子程序用來處理由PDIUSBD12引發的中斷,它將數據從PDIUSBD12的FIFO中取回到MCU存儲器中。各端點中斷處理程序如下:
?
在各端點的中斷處理程序中,MCU主要是通過對PDIUSBD12端點緩沖區寫入或讀取數據包來完成處理過程的,其流程如圖2和圖3所示。
?
2.2 USB上位機驅動
采用DriverStudios開發USB的WDM(Windows Driver Model)驅動程序。WDM支持即插即用、電源管理和WMI技術。
Driver Studio嵌入在VC 6.0中,在Driver Studio中的Driver Works提供了USB驅動程序設計向導,只要按照向導完成相應的操作和設置就可以設計出一個簡單的USB驅動程序,Driverwizard會根據設定給出一個WDM驅動程序的框架。
在使用驅動程序向導過程中,系統會提示用戶輸入USB設備的Vendor ID和Product ID,這時應該注意與具體使用的芯片對應,這里PDIUSBD12對應的Vendor ID為0471,Product ID為0888。向導完成后,在WDM驅動程序的框架中添加需要實現的USB端口1和端口2的讀寫功能代碼。然后編譯驅動程序工程文件,生成需要的USB 功能驅動程序。
2.3 上位機應用程序
本方案中,硬度測量系統的上位機應用程序集合了與設備進行數據傳輸、數據查詢、參數設置、計量標準轉換、測量誤差修正、統計分析、及數據導出、數據打印等功能。該系統可以在單機工作模式或連接工作模式下使用,并設置了用戶認證和密碼保護功能。
實現和USB控制器進行數據的批量傳輸,主要在系統界面的“接收”頁面的控鍵的程序段中編寫功能代碼,主要完成在設備驅動程序中查找設備,以進行USB通信傳輸,并將設備發送來的數據進行顯示和保存。接收到的數據可以在頁面上直接顯示,并且可以在參數設置頁面中預先設置硬度值上下限,對接收到的超出范圍的數據自動進行識別和標識。上位機應用USB的數據接收界面如圖4所示。
?
在系統“接收”頁面下單擊“保存”,即可將其他硬度測量相關信息錄入硬度數據庫系統,形成數據庫信息后,在系統的“查詢”頁面下,可以按照零件名稱、測量日期進行基本查詢,也可以選擇測試者、所屬班組、產品編號、批次號、零件材料、爐批號、測量時使用的測試配件、沖擊裝置及測量點的曲率、沖擊方向等其他信息項在數據庫中進行多條件精確查詢。
系統為滿足各種測試條件和環境,可根據配置的各種測試配件,對使用的沖擊裝置類型進行校準;對常用沖擊方向進行硬度值修正。根據《GB/17394— 1998》標準,可以將測定的里氏硬度平均值代入通用的按材料大致分類的換算表中,查出相應的硬度值。用代表現場特定材料做試樣,對里氏硬度與其他硬度作對比試驗,將試驗結果經過數據處理,得出里氏硬度與其他硬度的對應關系,通過程序進行轉換誤差修正。
3 結語
隨著材料加工工業的不斷發展,傳統材料硬度測量方式已經無法滿足生產工序中的快節奏要求。本文將USB通信技術引入材料加工硬度測量環節,以提高硬度測量環節的效率。
本文所述的實現方案,以節約成本又兼顧方便操作為設計原則,在原有硬件設備基礎上,利用PDIUSBD12和ATmega128實現可靠的USB數據傳輸,將便攜式硬度計的現場硬度測量數據發送到PC機上,在PC機上建立應用軟件,最終形成了功能全面、使用方便的便攜式硬度計數據通信系統。