新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 對經(jīng)濟(jì)型數(shù)控機床實行USB接口改造的實踐探索

對經(jīng)濟(jì)型數(shù)控機床實行USB接口改造的實踐探索

作者: 時間:2013-11-02 來源:網(wǎng)絡(luò) 收藏
/RS232轉(zhuǎn)換器一般由接口模塊、UART接口模塊、數(shù)據(jù)緩沖區(qū)和協(xié)議控制單元組成。接口模塊主要提供與USB總線的連接,它實現(xiàn)一般USB設(shè)備的所有功能,與PC上的USB口相連;UART接口則實現(xiàn)標(biāo)準(zhǔn)RS232接口的所有功能,與DNC接口板的RS232接口相連;協(xié)議控制單元通過接受USB接口的命令,對UART接口進(jìn)行配置(配置通信波特率、數(shù)據(jù)位、校驗位、起始/停止位、流控信號等)。數(shù)據(jù)緩沖區(qū)用來臨時保存雙方的數(shù)據(jù)傳輸工程中的數(shù)據(jù)。

另一種改造方法是直接改造DNC接口板,增加USB模塊。圖4是改造后的硬件結(jié)構(gòu)。


圖4 改造后的DNC接口板結(jié)構(gòu)其中,SIE是串行接口引擎,是USB接口的核心模塊。如果CPU包含了USB接口,則CPU直接與負(fù)責(zé)實現(xiàn)USB協(xié)議要求主要功能的SIE核心模塊連接,否則,CPU則需通過串行總線,如I2C或數(shù)據(jù)地址線I/O口與SIE相連。

兩種硬件改造在USB接口實現(xiàn)上有本質(zhì)的區(qū)別:前者USB/RS232轉(zhuǎn)換器所用的USB芯片屬于USB接口芯片,從硬件結(jié)構(gòu)上來說僅包含USB的串行接口引擎(SIE)、FIFO內(nèi)存、收發(fā)器以及電壓調(diào)整器等芯片;后者則屬于內(nèi)含USB單元的微處理器(MPU),即芯片包含了增強版的8051核心,可以通過I/O與原有CPU相連,甚至可以直接去驅(qū)動步進(jìn)電機,完成數(shù)控任務(wù)。

3. 軟件設(shè)計

(1)USB/RS232

這種結(jié)構(gòu)可以直接使用,不需要另外編制驅(qū)動程序。

(2)對直接改造DNC接口板的,要采用EZ-USB的固件開發(fā)

可以使用Cypress USB仿真器軟件——Cypress Lab中的Keil C Complier工具。該應(yīng)用程序是由Cypress半導(dǎo)體公司為配合USB芯片組的開發(fā)所研制出來的。通過編制相應(yīng)程序,可將編譯后的文件直接燒錄至EEPROM中,從而完成USB的固件設(shè)計。也可以采用CYASM匯編語言,這是一種只有38個精簡指令的編譯器程序,同樣將編譯好的16進(jìn)制格式文件(.hex)燒錄至EEPROM中使用。其主要功能是控制EZ-USB芯片接受并處理USB驅(qū)動程序的請求(請求設(shè)備描述符、請求或設(shè)置設(shè)備狀態(tài)、請求設(shè)備設(shè)置、請求或設(shè)置設(shè)備接口等共11種USBl.1標(biāo)準(zhǔn)請求);控制EZ-USB芯片接受應(yīng)用程序的控制指令;控制A/D模塊的數(shù)據(jù)采集;通過EZ-USB存儲數(shù)據(jù)并實時上傳PC機。

(3)在Windows系統(tǒng)下編制USB驅(qū)動程序

USB總線是支持熱插拔的,當(dāng)Windows檢測到一個新的USB外設(shè)時,必須做的一件事情是找出應(yīng)該使用哪個設(shè)備驅(qū)動應(yīng)用軟件來與設(shè)備通信,然后再載入選定的驅(qū)動。這是Windows設(shè)備管理器的工作,設(shè)備管理器使用類、設(shè)備安裝器和INF文件來找到這個匹配。當(dāng)Windows列舉新的USB設(shè)備時,設(shè)備管理器把所有INF文件中的數(shù)據(jù)(設(shè)備供應(yīng)商和產(chǎn)品的ID,也稱作VID和HD,以及制造商、供應(yīng)商名字和描述符等)與在列舉時從設(shè)備獲得的描述符中的信息做比較。找到匹配之后,Windows系統(tǒng)注冊表將保存所有已安裝設(shè)備的信息。在位置HKEY_L0CAL_ MACHINEEnum USB處,將列出所有的USB設(shè)備。

由于在Windows 98中提供了USBD(USB系統(tǒng)驅(qū)動程序),且USBD又給用戶提供了直接支持的USB DI,用戶在編寫USB驅(qū)動程序時,只需配置滿足USB要求的URB(USB請求塊),并通過USB DI發(fā)送下去,即可實現(xiàn)對USB設(shè)備的控制。設(shè)備驅(qū)動是保證應(yīng)用程序訪問硬件設(shè)備的軟件組件,一個設(shè)備驅(qū)動使得應(yīng)用程序不必知道物理連接、信號和與一個設(shè)備通信需要的協(xié)議等的細(xì)節(jié)。應(yīng)用程序可以使用一套操作系統(tǒng)支持的函數(shù)與設(shè)備驅(qū)動進(jìn)行通信。用于讀寫USB設(shè)備的API函數(shù)是Creat Ne、Device Io Control或Read File和Write File。

把所有與設(shè)備有關(guān)的驅(qū)動操作編譯為DLL,提供給應(yīng)用程序使用。應(yīng)用程序無需知道操作設(shè)備的細(xì)節(jié),只需知道DLL的接口函數(shù)即可。下面給出對USB設(shè)備基本操作函數(shù)的例子。

CreateFile(TEXT("\\.\Ez-USB"),GENERIC_READ,FILE_SHARE_ READ|FIlE_SHARE_WRITE,NULL,OPEN_EXISTING, FILE_FLAG_OVERLAPPED,NULL)

第1個參數(shù)是需打開的設(shè)備名;第2和第3個參數(shù)分別為授權(quán)讀寫和共享模式;第4個參數(shù)為安全屬性,一般為NULL;第5個參數(shù)為打開方式(對USB設(shè)備來說應(yīng)該是打開已存在的);第6個參數(shù)是異步交替模式;第7個參數(shù)為模板文件,這里并不需要。函數(shù)返回值為設(shè)備指針。

Device Io Control(hUSB, (DWORD)wFuncNum, (PVOID)pParam, (DWORD) dwSize,NULL,0,Returned,NULL)

hUSB為通過CreatFile所獲得的設(shè)備指針;wFunHum為設(shè)備操作代碼,具體可查閱CYPRESS公司或USBD提供的標(biāo)準(zhǔn)代碼;pParam為執(zhí)行操作的請求數(shù)據(jù)緩沖區(qū)指針;dwSize為數(shù)據(jù)緩沖區(qū)大小,緊跟其后的兩個參數(shù)分別為操作的輸出數(shù)據(jù)接收緩沖區(qū)指針和大小,一般為NULL和0即可;Returned為操作返回指針;最后一個參數(shù)為異步操作,為NULL即可。

使用前先定義好請求數(shù)據(jù)緩沖區(qū),獲得設(shè)備指針后即可用相應(yīng)的操作代碼對USB設(shè)備進(jìn)行操作了。

以上的設(shè)備驅(qū)動程序和上層應(yīng)用軟件已在VC6.0下調(diào)試通過。

四、總結(jié)

通過上述的軟硬件改造,使經(jīng)濟(jì)型數(shù)控與PC之間具備了一個新的接口——USB接口。這種改造有助于提高經(jīng)濟(jì)數(shù)控系統(tǒng)與PC相配置的靈活性和多樣性,甚至我們可以用1臺PC來控制一條小型流水線上的所有NC。這不僅大大減少了安裝、配置時間,降低了故障率,減少了操作工人數(shù)量,更可以與相關(guān)軟件配合,實現(xiàn)并行制造,使NC的利用率達(dá)到最大,并使經(jīng)濟(jì)型數(shù)控系統(tǒng)擴(kuò)展了網(wǎng)絡(luò)功能,可以通過PC連入Internet/Intranet,實現(xiàn)網(wǎng)絡(luò)化制造。


上一頁 1 2 3 下一頁

關(guān)鍵詞: 數(shù)控機床 USB 接口改造

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉