日本老熟妇一二三区-麻豆视频精品一区-人妻中文字幕xx-一区二区美女少妇-日本成人一级在线

基于USB總線的數(shù)控雕刻機(jī)控制系統(tǒng)設(shè)計(jì)———基于USB總線的數(shù)控雕刻機(jī)控制系統(tǒng)設(shè)計(jì)

0.引言

       隨著PC技術(shù)的迅速發(fā)展,其在工業(yè)控制領(lǐng)域得到廣泛應(yīng)用。用PC技術(shù)開(kāi)發(fā)的數(shù)控系統(tǒng)可以得到強(qiáng)有力的硬件和軟件支持,避開(kāi)專有技術(shù)的制約,在較短時(shí)間內(nèi)達(dá)到較高水平[ 1 ]。USB 自問(wèn)世以來(lái),就以其速度快、成本低廉等諸多優(yōu)點(diǎn)逐步占領(lǐng)了PC及其外圍設(shè)備市場(chǎng)。隨著大量支持USB的個(gè)人電腦的普及, USB 逐步成為PC機(jī)的標(biāo)準(zhǔn)接口已經(jīng)是大勢(shì)所趨。本文介紹了一種基于USB 接口進(jìn)行數(shù)據(jù)傳輸和控制的數(shù)控雕刻機(jī)的軟硬件設(shè)計(jì)方案。

 1.系統(tǒng)硬件結(jié)構(gòu)

    整個(gè)系統(tǒng)的硬件結(jié)構(gòu)如圖1所示。

 


圖1 系統(tǒng)硬件結(jié)構(gòu)框圖

    系統(tǒng)硬件主要由以下幾個(gè)部分組成:

    (1) PC主機(jī)-CAD/CAM 建模,生成文本形式的G2Code,讀入G2Code對(duì)其進(jìn)行解釋,調(diào)用直線或者圓弧插補(bǔ),進(jìn)行插補(bǔ)運(yùn)算,將各種插補(bǔ)轉(zhuǎn)換為一系列相應(yīng)的電機(jī)脈沖信息,并往USB通訊模塊傳輸。

    (2)USB通訊模塊—接收主機(jī)傳輸來(lái)的包含電機(jī)運(yùn)動(dòng)的使能,方向,速度,脈沖信息的各種字節(jié),將這些邏輯控制電平和控制脈沖在相應(yīng)的控制線上實(shí)現(xiàn)。

    (3)運(yùn)動(dòng)控制卡—接收通訊模塊發(fā)出的控制電平和脈沖,將其放大并轉(zhuǎn)換為步進(jìn)電機(jī)的控制脈沖。

    (4) X, Y, Z向步進(jìn)電機(jī)—接收運(yùn)動(dòng)控制卡的輸出脈沖,朝某個(gè)方向運(yùn)轉(zhuǎn),并帶動(dòng)相應(yīng)的執(zhí)行機(jī)構(gòu)運(yùn)動(dòng)。整個(gè)機(jī)構(gòu)的運(yùn)行方式是:雕刻頭在直流電機(jī)的帶動(dòng)下做高速旋轉(zhuǎn),并在Z 方向做上下運(yùn)動(dòng), X 2Y工作臺(tái)帶動(dòng)工件做X、Y方向的進(jìn)給運(yùn)動(dòng),刀具和工件的運(yùn)動(dòng)的合成就可以得到文字和圖案的輪廓。

   

2.系統(tǒng)軟件結(jié)構(gòu)

    此雕刻系統(tǒng)中的軟件結(jié)構(gòu)如圖2所示。運(yùn)動(dòng)控制程序負(fù)責(zé)實(shí)現(xiàn)步進(jìn)電機(jī)的基本動(dòng)作所需要的輸入信號(hào)。USB固件程序?qū)崿F(xiàn)設(shè)備的枚舉和端點(diǎn)與主機(jī)的通信。USB設(shè)備驅(qū)動(dòng)程序?yàn)閼?yīng)用程序和底層驅(qū)動(dòng)程序之間提供接口。PC機(jī)底層驅(qū)動(dòng)負(fù)責(zé)處理總線枚舉、電源管理以及USB 事務(wù)的其它方面,Windows操作系統(tǒng)提供這類驅(qū)動(dòng)程序。Windows操作系統(tǒng)還提供AP I函數(shù),來(lái)啟動(dòng)應(yīng)用程序與設(shè)備驅(qū)動(dòng)程序之間的通信。USB應(yīng)用程序的功能是提供操作和仿真界面、進(jìn)行插補(bǔ)運(yùn)算并和底層進(jìn)行通信??梢?jiàn),編程者需要開(kāi)發(fā)的程序有PC機(jī)的USB 應(yīng)用程序、USB 設(shè)備驅(qū)動(dòng)程序以及單片機(jī)程序(包括PD IUSBD12的固件程序和運(yùn)動(dòng)控制程序) 。

 


圖2 系統(tǒng)的軟件結(jié)構(gòu)框圖

   

3.插補(bǔ)控制的實(shí)現(xiàn)

    3.1 步進(jìn)電機(jī)的基本動(dòng)作

    對(duì)于各種復(fù)雜的運(yùn)動(dòng)軌跡,可以通過(guò)各種基本的插補(bǔ)來(lái)擬合的,而各種基本插補(bǔ)又是由步進(jìn)電機(jī)的最基本的一些動(dòng)作來(lái)完成的,這些基本的動(dòng)作包括(以三維加工為例) : (0, 0, 0) 、(0, 0, n) 、( 0, n, 0) 、( n, 0, 0) 、(0, n, n) 、( n, 0, n) 、( n, n, 0) 、( n, n, n)其中n表示某路電機(jī)往某個(gè)方向步進(jìn)的步數(shù),是一個(gè)整數(shù)。在PC主機(jī)客戶軟件中,將各種插補(bǔ)運(yùn)動(dòng)分解為了一系列的電機(jī)的基本動(dòng)作,往往需要實(shí)現(xiàn)的基本動(dòng)作中n = ±1。

    3.2 電機(jī)基本動(dòng)作的實(shí)現(xiàn)

    用運(yùn)動(dòng)控制卡來(lái)控制步進(jìn)電機(jī),其輸入控制信息有三類:使能,方向,一定頻率的脈沖。據(jù)此將PC主機(jī)發(fā)往USB設(shè)備的數(shù)據(jù)進(jìn)行一定的格式定義,以進(jìn)行分類,然后在單片機(jī)中將接收到的數(shù)據(jù)按照此類格式進(jìn)行分析,并實(shí)現(xiàn)其功能。

 

圖3 單片機(jī)處理接收到的數(shù)據(jù)

    圖3是單片機(jī)程序內(nèi)處在主循環(huán)程序中的處理接收到的數(shù)據(jù)的流程。據(jù)此流程圖,可以看出要使電機(jī)沿某方向運(yùn)轉(zhuǎn)一定的步數(shù),只需依次發(fā)送電機(jī)的使能方向信息,速度信息和一系列的步數(shù)信息,所接收的步數(shù)信息往往是n= ±1的電機(jī)的基本動(dòng)作。為了避免電機(jī)的基本動(dòng)作間因?yàn)榻邮諗?shù)據(jù)的時(shí)間而變得不連續(xù),單片機(jī)采用了定時(shí)器中斷編程來(lái)控制脈沖輸出,而單片機(jī)前臺(tái)則負(fù)責(zé)接收主機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù),并等待上一個(gè)脈沖輸出的完成。AT89S52單片機(jī)片內(nèi)有3 路定時(shí)器中斷,剛好可以滿足雕刻機(jī)3個(gè)電機(jī)的控制需求,每路定時(shí)器中斷負(fù)責(zé)控制1個(gè)電機(jī)的控制脈沖輸出。

    3.3 插補(bǔ)運(yùn)算

    直線插補(bǔ)和圓弧插補(bǔ)是兩種最重要的插補(bǔ),許多復(fù)雜的曲線可以通過(guò)這兩種插補(bǔ)來(lái)擬合,根據(jù)數(shù)字積分器(DDA)的原理可以寫(xiě)出這兩種插補(bǔ)運(yùn)算的實(shí)現(xiàn)函數(shù)。圖4,圖5是在主機(jī)中客戶軟件層實(shí)現(xiàn)它們的流程圖。

    對(duì)于其它類型的插補(bǔ),實(shí)現(xiàn)的思路與上述的兩種類似,都需要根據(jù)插補(bǔ)的原理和算法來(lái)得到插補(bǔ)過(guò)程的每小段的增量,此增量就是步進(jìn)電機(jī)的某個(gè)基本動(dòng)作,將此基本動(dòng)作序列依次發(fā)送到單片機(jī)底層即可實(shí)現(xiàn)刀具的插補(bǔ)運(yùn)動(dòng)。

 


圖4 DDA直線插補(bǔ)流程

 


圖5 DDA圓弧插補(bǔ)流程

    3.4 與單片機(jī)的USB通訊

    對(duì)于在客戶軟件層的插補(bǔ)運(yùn)算,必須將電機(jī)的運(yùn)動(dòng)使能、方向、速度和運(yùn)動(dòng)步數(shù)信息發(fā)往底層單片機(jī),實(shí)現(xiàn)發(fā)送的通訊方式是通過(guò)USB傳輸,USB傳輸速度快,可以滿足插補(bǔ)運(yùn)算過(guò)程中的大量插補(bǔ)數(shù)據(jù)傳輸?shù)男枨蟆?/p>

    (1) 電路連接圖

    系統(tǒng)采用AT89S52控制PD IUSBD12傳輸數(shù)據(jù),并將控制信號(hào)實(shí)時(shí)輸出。其電路連接示意圖如圖6所示。

 


圖6 電路連接示意圖

    (2) USB固件程序開(kāi)發(fā)

    USB支持4種傳輸類型:中斷,控制,塊和同步[ 3 ]。雕刻機(jī)系統(tǒng)可靠性是關(guān)鍵,在滿足數(shù)據(jù)傳輸速度要求的前提下,系統(tǒng)采用了控制傳輸和中斷傳輸兩種傳輸方式。

    PD IUSBD12的固件設(shè)計(jì)成完全的中斷驅(qū)動(dòng),采用KeilC51進(jìn)行編寫(xiě)。USB的傳輸可在后臺(tái)進(jìn)行,它的基本思想是:后臺(tái)ISR (中斷服務(wù)程序)和前臺(tái)主程序循環(huán)之間的數(shù)據(jù)交換通過(guò)事件標(biāo)志和數(shù)據(jù)緩沖區(qū)來(lái)實(shí)現(xiàn)[ 4 ]。整個(gè)單片機(jī)程序中,對(duì)電機(jī)的控制脈沖的輸出的實(shí)時(shí)性要求最高,所以設(shè)定了定時(shí)器中斷的級(jí)別為高級(jí)別,對(duì)于單片機(jī)內(nèi)部的循環(huán)緩沖區(qū),定時(shí)器中斷程序檢查循環(huán)緩沖區(qū)的填充情況,并在允許的時(shí)候重新打開(kāi)低級(jí)的中斷服務(wù)。

    (3) USB設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)

    開(kāi)發(fā)USB 接口設(shè)備驅(qū)動(dòng)程序必須遵守WDM(Windows驅(qū)動(dòng)程序模型)規(guī)范。WDM驅(qū)動(dòng)程序有兩個(gè)主要的初始化入口點(diǎn)—DriverEntry和AddDevice例程。DrvierEntry主要工作是把各種函數(shù)指針填入驅(qū)動(dòng)程序?qū)ο螅宰?cè)其它回調(diào)例程[ 5 ]。PnP管理器將為每個(gè)硬件實(shí)例調(diào)用一次AddDevice例程,AddDevice函數(shù)的主要工作是創(chuàng)建一個(gè)設(shè)備對(duì)象并把它連接到設(shè)備堆棧中。驅(qū)動(dòng)程序與應(yīng)用程序和硬件之間通信都是IRP ( I/O請(qǐng)求包)完成的。在運(yùn)行過(guò)程中,內(nèi)核會(huì)調(diào)用不同的回調(diào)例程來(lái)完成不同的IRP。DriverUnload則是在設(shè)備卸載時(shí)的清除例程。

    (4) USB應(yīng)用程序開(kāi)發(fā)

    完成了USB 固件程序開(kāi)發(fā)和USB 設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)后,就可以編寫(xiě)上層的USB 主機(jī)客戶程序,真正發(fā)揮USB設(shè)備的作用。應(yīng)用程序通過(guò)訪問(wèn)AP I通信函數(shù),使位于上層的應(yīng)用程序與位于下層的設(shè)備驅(qū)動(dòng)程序進(jìn)行數(shù)據(jù)交換。

    1)與USB設(shè)備建立通訊

    采用了GU ID接口方式來(lái)打開(kāi)設(shè)備, GU ID是在編寫(xiě)設(shè)備驅(qū)動(dòng)程序時(shí)獲得的,也<