對于在客戶軟件層的插補運算,,必須將電機的運動使能,、方向,、速度和運動步數(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的固件設計成完全的中斷驅動,,采用KeilC51進行編寫,。USB的傳輸可在后臺進行,它的基本思想是:后臺ISR(中斷服務程序)和前臺主程序循環(huán)之間的數(shù)據(jù)交換通過事件標志和數(shù)據(jù)緩沖區(qū)來實現(xiàn),。整個單片機程序中,,對電機的控制脈沖的輸出的實時性要求最高,所以設定了定時器中斷的級別為高級別,,對于單片機內(nèi)部的循環(huán)緩沖區(qū),,定時器中斷程序檢查循環(huán)緩沖區(qū)的填充情況,并在允許的時候重新打開低級的中斷服務,。
(3)USB設備驅動程序開發(fā)
開發(fā)USB接口設備驅動程序必須遵守WDM(Windows驅動程序模型)規(guī)范,。WDM驅動程序有兩個主要的初始化入口點)DriverEntry和AddDevice例程。DrvierEntry主要工作是把各種函數(shù)指針填入驅動程序對象,,以注冊其它回調例程,。PnP管理器將為每個硬件實例調用一次AddDevice例程,AddDevice函數(shù)的主要工作是創(chuàng)建一個設備對象并把它連接到設備堆棧中,。驅動程序與應用程序和硬件之間通信都是IRP(I/O請求包)完成的,。在運行過程中,內(nèi)核會調用不同的回調例程來完成不同的IRP,。DriverUnload則是在設備卸載時的清除例程,。
(4)USB應用程序開發(fā)
完成了USB固件程序開發(fā)和USB設備驅動程序開發(fā)后,就可以編寫上層的USB主機客戶程序,,真正發(fā)揮USB設備的作用,。應用程序通過訪問API通信函數(shù),使位于上層的應用程序與位于下層的設備驅動程序進行數(shù)據(jù)交換,。