O 引言
硬度測量是工業(yè)生產(chǎn),特別是材料加工工業(yè)中廣泛應(yīng)用的傳統(tǒng)測試技術(shù)。便攜式硬度計是一種較先進的硬度測試儀器,具有體積小、重量輕、易攜帶、操作方便等特點,尤其對一些大型、不可拆卸部件或精加工后要求復(fù)測硬度的零件的硬度測量特別有用。但由于一般便攜式硬度計在硬件和功能等方面存在局限,所以不能滿足生產(chǎn)過程中的復(fù)雜要求。
基于USB總線的數(shù)據(jù)通信具有安裝方便、可靠性高、數(shù)據(jù)不易丟失、抗干擾能力強、便于數(shù)據(jù)傳輸和處理等優(yōu)點,隨著USB應(yīng)用日益廣泛,已經(jīng)逐漸成為現(xiàn)代數(shù)據(jù)傳輸?shù)闹饕厔荨?/p>
本文設(shè)計的便攜式硬度計數(shù)據(jù)通信系統(tǒng)實現(xiàn)方案,將USB通信技術(shù)應(yīng)用到硬度測量過程中,選用Philips公司的PDIUSBD12作為USB芯片,選用 Atmel公司的ATmega128作為MCU,利用可靠的USB數(shù)據(jù)傳輸,將便攜式硬度計與PC機連接,由上位機完成所需功能的處理,滿足了測試現(xiàn)場的要求。
1 系統(tǒng)分析與設(shè)計
1.1 硬度計的工作原理及實際工作要求
硬度是表征金屬在表面局部體積內(nèi)抵抗形變或破裂的能力。硬度表明材料的彈性變形和塑性變形,硬度計采用沖擊方式進行檢測后,通過傳感器將所得到的沖擊量轉(zhuǎn)換成電信號交由電子設(shè)備進行處理,受檢材料硬度值是通過硬度計配置的沖擊裝置得到的。目前國際通用的硬度計量標準有洛氏、里氏、維氏、布氏等,而便攜式硬度計以里氏硬度計居多。
里氏硬度值的定義如下:
?
式中:HL為里氏硬度值;vA為沖擊體距試樣表面1 mm時的沖擊速度;vB為沖擊體距試樣表面1 mm時的反彈速度。
在使用便攜式硬度計進行測量工作時,常常會對硬度測量提出一些要求,如表1所示。
?
由于便攜式硬度計數(shù)據(jù)存量相對有限、實現(xiàn)功能相對簡單,在面對實際工作中遇到的表1所示的相對復(fù)雜需求時,存在一定局限性,很難提高測后數(shù)據(jù)處理工作效率。因此,本文提出USB數(shù)據(jù)通信方案來解決這些問題。
1.2 便攜式硬度計USB數(shù)據(jù)通信系統(tǒng)硬件組成
USB(Universal Serial Bus)是一種快速、雙向、同步傳輸、即插即用的通用串行數(shù)據(jù)傳輸總線,以其方便穩(wěn)定、易于接入PC機、兼容性強、易于升級、成本低廉,得到了廣泛應(yīng)用。因此,為實現(xiàn)便攜式硬度計與PC機的通信,選用了USB通信方式。
便攜式硬度計USB數(shù)據(jù)通信系統(tǒng)結(jié)構(gòu)如圖1所示。
?
本方案選用微處理器ATmega128作為數(shù)據(jù)通信系統(tǒng)的控制器。
ATmega128為Atmel公司推出的8位AVR微處理器,具有很高的信價比,工作時最高速度可以達到16MIPS,128 KB的FLASH、4 KB的E2PROM,足夠滿足方案中數(shù)據(jù)暫存的需要,另外,ATmega128具有53個可編程輸入/輸出口,可擴展64 KB的外部存儲器,便于實現(xiàn)多點硬度值數(shù)據(jù)采集的硬件擴展。
在該系統(tǒng)中,MCU ATmega128承擔著數(shù)據(jù)采集和USB數(shù)據(jù)通信的雙重任務(wù),主要完成采集多路數(shù)字量輸入、配合PC機控制USB通信電路完成硬件檢測、枚舉連接及數(shù)據(jù)的雙向傳輸;控制存儲電路完成數(shù)據(jù)的存取等控制功能。
本方案選用的USB芯片PDIUSBD12是Philips公司成熟且價格低廉的產(chǎn)品。片內(nèi)集成了高性能USB接口器件、FIFO存儲器、收發(fā)器以及電壓調(diào)整器等,支持USB 2.O的全速模式。
為保證USB數(shù)據(jù)傳輸?shù)男剩痉桨覆捎秒x線測量,定量傳送的實現(xiàn)方式。按工藝流程將一組產(chǎn)品硬度測量值臨時存入MCU的存儲器中,再將MCU存儲器中的臨時數(shù)據(jù)打包通過USB發(fā)給PC機并存入主機數(shù)據(jù)庫,主機應(yīng)用程序需要時對數(shù)據(jù)進行處理。
2 軟件系統(tǒng)實現(xiàn)
本方案要解決以下三個方面的工作:一是在MCU上設(shè)計USB固件程序;二是編寫上位機的USB驅(qū)動程序;三是實現(xiàn)上位機數(shù)據(jù)處理應(yīng)用程序。
2.1 USB固件程序
固件設(shè)計主要完成設(shè)備枚舉、主機與設(shè)備的數(shù)據(jù)交換、設(shè)備端的數(shù)據(jù)處理和控制等工作,固件程序設(shè)計成前后臺模式,把設(shè)備端數(shù)據(jù)處理和控制作為MCU的前臺任務(wù),枚舉及枚舉成功之后的USB數(shù)據(jù)交換放在后臺進行。實現(xiàn)設(shè)備與主機以最大的傳輸速率通信。
設(shè)計時將USB端口1和端口2定義為普通輸入/輸出類型,對應(yīng)于PDIUSBD12的模式0。控制端口0完成響應(yīng)USB標準請求的功能,輸入端口用于把數(shù)據(jù)采集電路采集并打包的硬度值數(shù)據(jù)送給USB主機,輸出端口接收USB主機發(fā)送的包。
PDIUSBD12從USB收到一個數(shù)據(jù)包,就對MCU產(chǎn)生一個中斷請求,MCU立即響應(yīng)中斷,中斷服務(wù)子程序用來處理由PDIUSBD12引發(fā)的中斷,它將數(shù)據(jù)從PDIUSBD12的FIFO中取回到MCU存儲器中。各端點中斷處理程序如下:
?
在各端點的中斷處理程序中,MCU主要是通過對PDIUSBD12端點緩沖區(qū)寫入或讀取數(shù)據(jù)包來完成處理過程的,其流程如圖2和圖3所示。
?