對于在客戶軟件層的插補運算,必須將電機的運動使能、方向、速度和運動步數(shù)信息發(fā)往數(shù)控木工雕刻機底層的單片機,實現(xiàn)發(fā)送的通訊方式是通過USB傳輸,USB傳輸速度快,可以滿足插補運算過程中的大量插補數(shù)據(jù)傳輸?shù)男枨蟆?/p>
(1)電路連接圖
系統(tǒng)采用AT89S52控制PDIUSBD12傳輸數(shù)據(jù),并將控制信號實時輸出。其電路連接示意圖如下圖所示。USB支持4種傳輸類型:中斷,控制,塊和同步。雕刻機系統(tǒng)可靠性是關鍵,在滿足數(shù)據(jù)傳輸速度要求的前提下,系統(tǒng)采用了控制傳輸和中斷傳輸兩種傳輸方式。
PDIUSBD12的固件設計成完全的中斷驅(qū)動,采用KeilC51進行編寫。USB的傳輸可在后臺進行,它的基本思想是:后臺ISR(中斷服務程序)和前臺主程序循環(huán)之間的數(shù)據(jù)交換通過事件標志和數(shù)據(jù)緩沖區(qū)來實現(xiàn)。整個單片機程序中,對電機的控制脈沖的輸出的實時性要求最高,所以設定了定時器中斷的級別為高級別,對于單片機內(nèi)部的循環(huán)緩沖區(qū),定時器中斷程序檢查循環(huán)緩沖區(qū)的填充情況,并在允許的時候重新打開低級的中斷服務。
(3)USB設備驅(qū)動程序開發(fā)
開發(fā)USB接口設備驅(qū)動程序必須遵守WDM(Windows驅(qū)動程序模型)規(guī)范。WDM驅(qū)動程序有兩個主要的初始化入口點)DriverEntry和AddDevice例程。DrvierEntry主要工作是把各種函數(shù)指針填入驅(qū)動程序?qū)ο螅宰云渌卣{(diào)例程。PnP管理器將為每個硬件實例調(diào)用一次AddDevice例程,AddDevice函數(shù)的主要工作是創(chuàng)建一個設備對象并把它連接到設備堆棧中。驅(qū)動程序與應用程序和硬件之間通信都是IRP(I/O請求包)完成的。在運行過程中,內(nèi)核會調(diào)用不同的回調(diào)例程來完成不同的IRP。DriverUnload則是在設備卸載時的清除例程。
(4)USB應用程序開發(fā)
完成了USB固件程序開發(fā)和USB設備驅(qū)動程序開發(fā)后,就可以編寫上層的USB主機客戶程序,真正發(fā)揮USB設備的作用。應用程序通過訪問API通信函數(shù),使位于上層的應用程序與位于下層的設備驅(qū)動程序進行數(shù)據(jù)交換。