李 俠,張志龍,段美珠,劉 嘉
(北京工業(yè)大學(xué) 機電學(xué)院,北京 100124)
數(shù)字化爆機USB接口設(shè)計
李 俠,張志龍,段美珠,劉 嘉
(北京工業(yè)大學(xué) 機電學(xué)院,北京 100124)
針對數(shù)字化焊機的特點及發(fā)展趨勢,設(shè)計了由USB總線傳輸層和焊機信息交互層構(gòu)成的兩層傳輸框架,同時以U盤作為信息交互的載體。USB總線傳輸層按照USB2.0協(xié)議搭建,實現(xiàn)U盤和USB橋接芯片的通信。信息交互層按照自己制定的協(xié)議實現(xiàn)上位機同焊機的通信。
USB總線;U盤驅(qū)動;信息交互
數(shù)字化焊機具有諸多優(yōu)勢,如適應(yīng)性強、便于升級、穩(wěn)定性好等。利用高速、高精度數(shù)字信號處理技術(shù),可以只通過軟件設(shè)計來實現(xiàn)對焊機功能的改進,可以大大提高焊機的使用壽命和使用范圍[1]。針對數(shù)字化焊機的特點,當今發(fā)達國家的焊機制造商大都為焊機添加了信息交互系統(tǒng)。該系統(tǒng)多用于與計算機進行通信、下載更新焊接程序以及把焊接過程中的參數(shù)傳遞給計算機。
通過直接或者間接的方式同計算機進行信息交互逐漸成為了數(shù)字化焊機的發(fā)展趨勢。在此設(shè)計了一套基于USB技術(shù)的信息交互系統(tǒng),該系統(tǒng)分為USB事務(wù)傳輸層和焊機信息交互層。通過兩層傳輸框架,使上位機控制焊機的各種焊接參數(shù)并接收焊機傳來的數(shù)據(jù)。由于U盤具有諸多優(yōu)勢:如傳輸速度快、系統(tǒng)支持性好、支持熱插拔、接口標準統(tǒng)一、攜帶方便等。所以采用U盤作為信息交互的載體,來實現(xiàn)計算機和焊機的通信。
系統(tǒng)由USB事務(wù)傳輸層和焊機信息交互層構(gòu)成。USB事務(wù)傳輸層處理U盤和USB橋接芯片之間的通信。信息交互層按照自己制定的協(xié)議處理上位機和焊機主控芯片之間的通信??傮w方案如圖1所示。
圖1 總體方案框圖
上位機按照信息交互層的協(xié)議編寫焊機指令并通過USB總線保存到U盤;U盤和USB橋接芯片CY7C67300按照USB總線協(xié)議通信,構(gòu)成了USB事務(wù)傳輸層,一方面把上位機編寫的指令傳輸給焊機,另一方面負責(zé)接收焊機傳來的各種焊接參數(shù);焊機主控芯片負責(zé)接收并處理焊機指令,根據(jù)指令的要求傳回焊接參數(shù)。
1.1 USB總線協(xié)議簡介
USB底層傳輸?shù)淖罨締挝皇侨N包,分別是令牌包、數(shù)據(jù)包和握手包。利用這三種包就可以構(gòu)成USB傳輸事務(wù),對于全速USB設(shè)備來說傳輸事務(wù)主要有SETUP事務(wù)、DATA IN事務(wù)、DATA OUT事務(wù)[2]。令牌包由主機發(fā)送給從機,告訴從機本次傳輸是哪種事務(wù);數(shù)據(jù)包用來傳輸具體的數(shù)據(jù),方向要根據(jù)事務(wù)類型來決定,例如在DATA IN事務(wù)中,從機會把主機要求的數(shù)據(jù)放在數(shù)據(jù)包中并傳給主機;握手包和數(shù)據(jù)包的傳輸方向相反,用來告訴對方本次傳輸是否成功。USB傳輸有四種傳輸方式,分別是控制傳輸、中斷傳輸、批量傳輸和等時傳輸。每種傳輸方式都是由之前提到的三種傳輸事務(wù)構(gòu)成。
USB協(xié)議除了定義底層傳輸協(xié)議外,還規(guī)定了若干種設(shè)備類規(guī)范,如人機接口設(shè)備(HID)、大容量存儲設(shè)備(MSC)、音頻設(shè)備、通信設(shè)備等,每個設(shè)備類規(guī)范還包括若干個子規(guī)范,在USB驅(qū)動層就是要按照這些設(shè)備類規(guī)范來編寫。如U盤就屬于大容量存儲設(shè)備,所以要按照MSC設(shè)備類規(guī)范來編寫。
MSC設(shè)備類協(xié)議主要由四個子協(xié)議組成:(1) CBI傳輸協(xié)議。該協(xié)議規(guī)定USB主機可以采用批量傳輸、中斷傳輸、控制傳輸同從機通信;(2)BULK-ONLY傳輸協(xié)議(BOT)。該協(xié)議規(guī)定從機和主機采用批量傳輸?shù)姆绞竭M行通信;(3)適用于硬盤的ATA命令集和適用于USB移動存儲設(shè)備的UFI命令集。在編寫U盤驅(qū)動程序時需要遵守BOT協(xié)議和UFI命令集。
1.2 USB傳輸層設(shè)計
由于利用U盤作為數(shù)據(jù)傳輸?shù)妮d體,而U盤屬于MSC設(shè)備,所以采用以USB總線驅(qū)動層、MSC設(shè)備類驅(qū)動層、UFI命令層、FAT文件系統(tǒng)層為框架的傳輸方式[3]。USB傳輸層結(jié)構(gòu)如圖2所示。
圖2 USB傳輸層結(jié)構(gòu)
文件系統(tǒng)層負責(zé)文件級的操作,包括在U盤中尋找指定的文件以及向文件中寫入、讀取數(shù)據(jù)等多個函數(shù),通過調(diào)用UFI命令來實現(xiàn)。UFI命令層利用Read10、Write10等UFI命令對U盤指定地址進行讀寫,從而實現(xiàn)尋找指定文件的首簇、建立該文件的簇鏈等功能[4]。在MSC驅(qū)動層按照MSC設(shè)備類規(guī)范把需要傳輸?shù)拿詈蛿?shù)據(jù)打包,按照BOT協(xié)議來傳輸。USB總線驅(qū)動層按照批量傳輸?shù)姆绞胶蚒盤進行傳輸,把打包好的命令或數(shù)據(jù)放到USB總線上傳給U盤的硬件接口層。U盤對總線傳來的數(shù)據(jù)進行處理并對FLASH存儲區(qū)進行操作。
下面以橋接芯片從U盤讀取數(shù)據(jù)為例說明U盤和USB橋接芯片之間的數(shù)據(jù)傳輸過程。當橋接芯片檢測到U盤連接后,會調(diào)用文件系統(tǒng)層的函數(shù)find_file()尋找文件“data.txt”的首簇并建立該文件的簇鏈,通過首簇確定該文件的起始扇區(qū)號,然后調(diào)用read_file()以扇區(qū)為單位讀取文件,在read_file()中按照MSC設(shè)備類協(xié)議,將UFI命令放到USB總線上傳輸,U盤接到命令后會將指定扇區(qū)的內(nèi)容放到總線上回傳給橋接芯片,這樣就實現(xiàn)了數(shù)據(jù)的讀取。
1.3 信息交互層協(xié)議制定
在信息交互層中,上位機通過若干條指令來實現(xiàn)對焊機的控制,每一條指令通過一定的協(xié)議格式來編寫。具體來說每條完整的指令都是由五個字節(jié)組成的,包括指令編號、指令序號、指令參數(shù)三部分,指令編號和序號各占一個字節(jié)。參數(shù)占三個字節(jié),每個字節(jié)保存一個參數(shù)。對于一次指令傳輸來說,除了由若干條指令構(gòu)成的指令序列,還需要在傳輸?shù)牡谝粋€字節(jié)內(nèi)寫入本次傳輸?shù)目傋止?jié)數(shù)。例如一個要發(fā)送兩條指令的傳輸,那么該次傳輸?shù)氖鬃止?jié)就要寫入11,代表一共要傳輸11個字節(jié),如圖3所示。
序號的作用是指定這些指令的執(zhí)行順序,在焊機主程序接到這組數(shù)據(jù)后會調(diào)用相關(guān)函數(shù),使這些指令按照序號從小到大的順序依次執(zhí)行。指令編號由一個字節(jié)組成,所以最多可以指示256條指令,每條指令實際上就對應(yīng)著焊機主程序中的一個響應(yīng)函數(shù)。參數(shù)1到參數(shù)3就作為這個函數(shù)的參數(shù)。
1.4 信息交互層設(shè)計
在信息交互層中,上位機按照制定的協(xié)議格式編寫焊機指令,焊機主控芯片接到指令后調(diào)用響應(yīng)函數(shù)調(diào)整焊接主程序的各項參數(shù),進而改善焊接工藝;也可以通過指令使焊機的主控芯片將采集的電流、電壓等參數(shù)傳遞給上位機,從而實現(xiàn)信息交互。
圖3 信息交互層協(xié)議
上位機采用VB編寫,通過上位機界面選擇要傳輸?shù)闹噶钜约霸撝噶畹男蛱柡蛥?shù)。這些數(shù)據(jù)會按照焊機指令協(xié)議的格式進行編排并存放到U盤指定文件中。上位機界面如圖4所示。
圖4 上位機界面
上位機中每一個指令名都對應(yīng)著一個指令編號,焊機主程序會根據(jù)這個編號調(diào)用對應(yīng)的響應(yīng)函數(shù),實際上界面上的指令名就是響應(yīng)函數(shù)的函數(shù)名。例如在界面中選擇led0指令,那么主程序中就會調(diào)用led0()。fun數(shù)組的每一個元素都保存著一個響應(yīng)函數(shù)的入口地址,而該數(shù)組元素的腳標就對應(yīng)著焊機指令的編號。本系統(tǒng)就是以這個指針數(shù)組為橋梁來實現(xiàn)焊機指令與響應(yīng)函數(shù)的對應(yīng)關(guān)系。
XC164從SPI總線上收到這些指令后會引發(fā)中斷,進入中斷服務(wù)子程序,將指令序列存入cmd_idx數(shù)組中,然后返回主程序。在主程序中調(diào)用函數(shù)按照信息交互層協(xié)議的格式對指令序列進行處理,并按照指令序號從小到大的順序執(zhí)行每條指令對應(yīng)的響應(yīng)函數(shù)。處理過程如圖5所示。
圖5 下位機處理指令
具體的函數(shù)處理過程要依靠指向整型變量的指針數(shù)組inter來完成。該數(shù)組中的元素保存著指令序號字段的地址,然后以序號從小到大為順序?qū)?shù)組中的元素進行排序。排序之后inter[0]即指向最小的那個序號,(inter[0]-1)就指向該序號對應(yīng)的指令編號,由此可以實現(xiàn)按序號從小到大的順序執(zhí)行響應(yīng)函數(shù)。通過這些響應(yīng)函數(shù)就可以調(diào)整焊接主程序的各項參數(shù)或者將采集到的電流、電壓等參數(shù)傳遞給上位機,從而實現(xiàn)信息交互。
2.1 上位機指令輸出測試
通過上位機輸出指令控制XC164的PWM0通道占空比來測試焊機指令是否能通過系統(tǒng)進行傳輸。PWM模塊頻率為4 kHz,輸出指令前PWM0占空比為80%,如圖6所示。
圖6 執(zhí)行指令前的PWM波形
通過上位機向U盤寫入指令:0x06 0x03 0x00 0x32 0x00 0x00。從這些數(shù)據(jù)可以看出,本次傳輸共6個字節(jié),指令編號為3,指令序號為0,對應(yīng)著響應(yīng)函數(shù)PWM0(),參數(shù)1的值為50,在該參數(shù)下響應(yīng)函數(shù)會將PWM0通道的占空比調(diào)整為60%,如圖7所示。
圖7 執(zhí)行指令后的PWM波形
2.2 焊機數(shù)據(jù)回傳測試
測試通過焊機將A/D模塊采集到的正弦波轉(zhuǎn)換成二進制數(shù)保存在U盤中,上位機再將U盤中的數(shù)據(jù)轉(zhuǎn)換成對應(yīng)的電壓數(shù)值,以此來測試系統(tǒng)是否能正確接收焊機返回的數(shù)據(jù)。正弦波由信號發(fā)生器產(chǎn)生,頻率為100 Hz,幅值2 V,如圖8所示。
圖8 信號發(fā)生器產(chǎn)生的正弦波形
圖9為上位機讀取U盤數(shù)據(jù)并轉(zhuǎn)換成電壓后的波形,右側(cè)為一個周期所采集到的數(shù)據(jù),XC164的采樣頻率為1 kHz,可以看出正弦波通過本系統(tǒng)傳輸后能夠在上位機中正確顯示。
圖9 上位機轉(zhuǎn)換后的波形
通過以上兩個測試可以證明本系統(tǒng)的傳輸方案設(shè)計是合理的,能夠?qū)崿F(xiàn)上位機同焊機的雙向信息交互。
本系統(tǒng)將USB總線技術(shù)應(yīng)用到數(shù)字化焊機中,以U盤為載體,兩層傳輸協(xié)議為框架,通過制定信息交互層協(xié)議實現(xiàn)了上位機和焊機之間的信息交互。USB技術(shù)同數(shù)字化焊機的結(jié)合一方面擴展了USB的應(yīng)用范圍,另一方面也為數(shù)字化焊機在遠程升級、優(yōu)化焊接工藝、質(zhì)量監(jiān)控等方面提供了有力的支持。
[1]劉 嘉,殷樹言,丁京柱.數(shù)字化焊機及其特點[J].電焊機,2001,31(6):8-10,16.
[2]李英偉.USB2.0原理與工程開發(fā)[M].北京:國防工業(yè)出版社,2007.
[3]周 東,王立德,劉 彪,等.基于DSP的USB海量存儲設(shè)備的設(shè)計及實現(xiàn)[J].微計算機信息,2009.25(2-2):146-148.
[4]宋群生,宋亞瓊.硬盤扇區(qū)讀寫技術(shù)[M].北京:機械工業(yè)出版社,2004.
Design on USB interface for Digital controlled welding machine
LI Xia
,ZHANG Zhi-long,DUAN Mei-zhu,LIU Jia
(College of Mechanical Engineering and Applied Electronics Technology,Beijing University of Technology,Beijing 100124,China)
Aiming to characteristic and development tendency of the digital controlled welding machine,designed two-layer transfer framework which is consist of USB transport layer and mutual information layer,USB flash be used as carrier of mutual information.USB transport layer was built by USB2.0 protocol,achieving communication between USB flash and USB bridge chip.Mutual information layer achieved communication between upper machine and welding machine by custom communication protocol.
USB bus;USB flash drive;mutual information
TG409
A
1001-2303(2011)06-0090-04
2010-11-05
李 俠(1983—),男,北京人,碩士,主要從事焊機自動化方面的研究工作。