前言:我們精心挑選了數(shù)篇優(yōu)質(zhì)控制器設(shè)計(jì)論文文章,供您閱讀參考。期待這些文章能為您帶來(lái)啟發(fā),助您在寫(xiě)作的道路上更上一層樓。
1高速握手
USB2.0設(shè)備連接到主機(jī)后,主機(jī)給設(shè)備供電并發(fā)送復(fù)位信號(hào)復(fù)位設(shè)備,之后設(shè)備進(jìn)入全速模式工作,由圖2所示在fullspeed狀態(tài)檢測(cè)到SE0(linestate[1:0]=00)持續(xù)2.5μs后,高速握手開(kāi)始,設(shè)備控制器進(jìn)入sendchirp狀態(tài),設(shè)備向主機(jī)發(fā)送一個(gè)持續(xù)時(shí)間大于1ms的K(linestate[1:0]=01)信號(hào)以檢測(cè)主機(jī)是否支持高速模式。設(shè)備進(jìn)入recvchirp狀態(tài)并準(zhǔn)備接收來(lái)自主機(jī)的JK序列。主機(jī)支持高速并檢測(cè)到K之后,向設(shè)備發(fā)送JKJKJK序列以檢測(cè)設(shè)備是否支持高速模式。設(shè)備控制器在recvchirp狀態(tài)成功檢測(cè)到3對(duì)JK序列后高速握手成功,進(jìn)入到highspeed模式工作;否則,設(shè)備以全速模式工作。
2設(shè)備掛起
根據(jù)USB2.0協(xié)議,為了減小功耗,當(dāng)總線3ms沒(méi)有動(dòng)作時(shí),設(shè)備需進(jìn)入掛起(suspend)狀態(tài),設(shè)備在掛起狀態(tài)只能消耗小于500μA的電流,并且進(jìn)入掛起后設(shè)備需要保留原來(lái)的狀態(tài)。(1)全速模式掛起:檢測(cè)到總線狀態(tài)為SE0達(dá)到3ms,設(shè)備從fullspeed狀態(tài)進(jìn)入suspend狀態(tài)。(2)高速模式掛起:設(shè)備工作在高速模式時(shí),由于高速?gòu)?fù)位和高速掛起都是發(fā)送一個(gè)大于3ms的總線空閑信號(hào),因此設(shè)備需要區(qū)分這兩個(gè)事件。如圖2,處于highspeed狀態(tài)時(shí),設(shè)備檢測(cè)到總線空閑(SE0)3ms,進(jìn)入hsrevert狀態(tài)。之后檢測(cè)總線狀態(tài)不為SE0,此后設(shè)備掛起。假如在hsrevert狀態(tài)后還檢測(cè)到SE0持續(xù)100μs,則判斷為高速?gòu)?fù)位,clrtimer2=1。設(shè)備狀態(tài)轉(zhuǎn)換到sendchirp狀態(tài),開(kāi)始設(shè)備的高速握手。
3掛起恢復(fù)
設(shè)備處于掛起狀態(tài)時(shí),在它的上行口接收到任何非空閑信號(hào)時(shí)可以使設(shè)備恢復(fù)工作[5]。(1)全速掛起恢復(fù):設(shè)備從掛起狀態(tài)起檢測(cè)到的不是持續(xù)的J,則恢復(fù)到fullspeed狀態(tài),以全速模式工作。(2)高速掛起恢復(fù):掛起時(shí)保留著高速連接狀態(tài),highspeed=1且hssupport=1,掛起恢復(fù)需要判斷是由總線動(dòng)作引起還是系統(tǒng)復(fù)位引起。設(shè)備中測(cè)到總線狀態(tài)為SE0,說(shuō)明是由復(fù)位引起的掛起恢復(fù),設(shè)備狀態(tài)進(jìn)入sus-preset,然后檢測(cè)到SE0持續(xù)2.5μs后,進(jìn)入高速握手過(guò)程sendchirp狀態(tài);反之,檢測(cè)到掛起恢復(fù)信號(hào)K,則設(shè)備從掛起恢復(fù)到高速模式。
4復(fù)位檢測(cè)
集線器通過(guò)在端口驅(qū)動(dòng)一個(gè)SE0狀態(tài)向所連接的USB設(shè)備發(fā)出復(fù)位信號(hào)。復(fù)位操作可以通過(guò)USB系統(tǒng)軟件驅(qū)動(dòng)集線器端口發(fā)出復(fù)位信號(hào),也可以在設(shè)備端RE-SET信號(hào)置1,進(jìn)行硬件復(fù)位。(1)設(shè)備是從掛起狀態(tài)復(fù)位:在suspend狀態(tài)檢測(cè)到SE0時(shí),設(shè)備跳轉(zhuǎn)到suspreset狀態(tài),檢測(cè)總線狀態(tài)為超過(guò)2.5μs的SE0后設(shè)備啟動(dòng)高速握手檢測(cè),即進(jìn)入sendchirp狀態(tài)。(2)設(shè)備從非掛起的全速狀態(tài)復(fù)位:設(shè)備在檢測(cè)到2.5μs<T<3.0ms的SE0狀態(tài)后啟動(dòng)高速握手檢測(cè)。硬件縱橫HardwareTechnique(3)設(shè)備從非掛起的高速狀態(tài)復(fù)位:設(shè)備在high-speed狀態(tài)檢測(cè)到總線上持續(xù)時(shí)間3.0ms的SE0后,設(shè)備狀態(tài)轉(zhuǎn)換到hsrevert,以移除高速終端并重連D+的上拉電阻,此時(shí)為全速連接狀態(tài);之后設(shè)備需要在100μs<T<875μs的時(shí)間內(nèi)采樣總線狀態(tài),檢測(cè)到SE0持續(xù)2.5μs后,進(jìn)入sendchirp狀態(tài),開(kāi)始高速握手過(guò)程。
5仿真及驗(yàn)證
關(guān)鍵詞:CAN_BUS調(diào)試系統(tǒng)通信協(xié)議
磁懸浮轉(zhuǎn)向架的懸浮由四組電磁鐵實(shí)現(xiàn),每組電磁鐵都有獨(dú)立的懸浮控制器,控制該點(diǎn)的懸浮與下落。為了獲得最優(yōu)的控制參數(shù),需要在整個(gè)轉(zhuǎn)向架的懸浮過(guò)程中通過(guò)上位機(jī)監(jiān)視軌道與電磁鐵之間的間隙、電磁鐵工作電流等狀態(tài)參數(shù)以及懸浮控制器的控制參數(shù),動(dòng)態(tài)地修改控制參數(shù)以觀察控制效果。
懸浮控制器之間是相互獨(dú)立的,上位機(jī)無(wú)法同時(shí)監(jiān)控多個(gè)懸浮控制器,因此需要找到合理的通信方式使上位機(jī)同時(shí)與所有的控制器連接,使它們之間能夠?qū)崟r(shí)傳遞數(shù)據(jù)。CAN總線是一種有效支持分布式控制和實(shí)時(shí)控制的多主的異步串行通信網(wǎng)絡(luò)。由于CAN總線具有較強(qiáng)的糾錯(cuò)能力,支持差分收發(fā),適合高噪聲環(huán)境,具有較遠(yuǎn)的傳輸距離,在各個(gè)領(lǐng)域中得到了廣泛應(yīng)用。CAN通信協(xié)議規(guī)定通信波特率、每個(gè)位周期的取樣位置和個(gè)數(shù)都可以自行設(shè)定,這保證了用戶在使用過(guò)程中的靈活性。選用CAN總線,無(wú)論是在抗電磁干擾方面還是在實(shí)時(shí)性方面都能夠滿足實(shí)驗(yàn)要求。
圖1
1調(diào)試系統(tǒng)硬件端口的設(shè)計(jì)
懸浮控制器使用SJA1000作為CAN總線協(xié)議轉(zhuǎn)換芯片。SJA1000是一種獨(dú)立控制器,用于移動(dòng)目標(biāo)和一般工業(yè)環(huán)境中的區(qū)域網(wǎng)絡(luò)控制。它內(nèi)建BASICCAN協(xié)議,并提供對(duì)CAN2.0B協(xié)議的支持。通過(guò)對(duì)片內(nèi)寄存器的讀、寫(xiě)操作,懸浮控制器的核心處理器能夠設(shè)置CAN總線通信模式,實(shí)現(xiàn)數(shù)據(jù)的發(fā)送與接收。它的傳輸速度很快,位速率可達(dá)1Mbit/s,可滿足高速大流量實(shí)時(shí)傳輸要求。
SJA1000在邏輯上實(shí)現(xiàn)了傳輸數(shù)據(jù)的編碼和解碼,若要與物理線路連接,必須借助總線驅(qū)動(dòng)器。PCA82C250是協(xié)議控制器與物理鏈路之間的接口,可以用高達(dá)1Mbit/s的位速率在兩條有差動(dòng)電壓的總線電纜上傳輸數(shù)據(jù),它與SJA1000結(jié)合才能實(shí)現(xiàn)CAN總線通信。
圖1為CAN總線接口電路原理圖。圖中,SJA1000用16MHz的晶振作為基準(zhǔn)時(shí)鐘,數(shù)據(jù)線AD0~AD7與核心控制器的低八位數(shù)據(jù)線相連,在CS、RD、WR的控制下可實(shí)現(xiàn)芯片寄存器的讀寫(xiě)。RX0和TX0與PCA82C250數(shù)據(jù)輸入引腳相連,作為串行數(shù)據(jù)線。RX1與PCA82C250的參考電壓引腳5相連,向PCA82C250輸出參考電壓。PCA82C250的兩根輸出數(shù)據(jù)線之間加上120Ω的終端電阻,用以匹配線路。
上位機(jī)通過(guò)專用的USBTOCAN轉(zhuǎn)換器實(shí)現(xiàn)PC機(jī)與CAN總線的連接,市場(chǎng)上有很多這類產(chǎn)品,這里不再詳細(xì)說(shuō)明。上位機(jī)主要提供人機(jī)交互界面,顯示狀態(tài)和控制器參數(shù),并完成參數(shù)與程序的下載。
2通信協(xié)議構(gòu)建
DSP控制器上的CAN總線端口要完成兩項(xiàng)工作:(1)上傳控制器的控制常量和電流、間隙等狀態(tài)參數(shù),送給檢測(cè)系統(tǒng);(2)讀取上位機(jī)下傳的待修改的控制參數(shù),實(shí)現(xiàn)參數(shù)的在線修改,接收下傳的程序文件,實(shí)現(xiàn)DSP主程序的在線寫(xiě)入。
在調(diào)試過(guò)程中,實(shí)現(xiàn)多DSP系統(tǒng)的在線聯(lián)調(diào)是很有效的調(diào)試手段。這樣,上位PC機(jī)不但能夠采集各控制器的狀態(tài)參數(shù),還能夠?qū)Σ杉臄?shù)據(jù)進(jìn)行整理與顯示,并能實(shí)時(shí)調(diào)整不同控制器的控制參數(shù),最終實(shí)現(xiàn)控制器運(yùn)行程序的遠(yuǎn)程下載。
為實(shí)現(xiàn)CAN總線的數(shù)據(jù)傳送,需要定義參數(shù)包、程序包、命令包三種傳送數(shù)據(jù)包,并分別由0x11、0x22、0x33標(biāo)示出來(lái)。根據(jù)數(shù)據(jù)傳送方向的不同,數(shù)據(jù)包的格式略有差異。考慮到CAN總線上的節(jié)點(diǎn)較多,為避免數(shù)據(jù)傳送過(guò)程中出現(xiàn)混亂的情況,定義數(shù)據(jù)發(fā)送的基本數(shù)據(jù)包大小為8個(gè)字節(jié),即CAN總線一次傳送的最大字節(jié)數(shù)為8。
2.1下傳數(shù)據(jù)協(xié)議
下傳數(shù)據(jù)包括程序、參數(shù)、命令三種數(shù)據(jù)類型。
2.1.1參數(shù)數(shù)據(jù)包格式
上位機(jī)需要下傳的數(shù)據(jù)包括控制參數(shù)C1、C2、C3及給定間隙與電流,根據(jù)修改需要,每個(gè)參數(shù)都是單獨(dú)下傳的。下傳數(shù)據(jù)包的大小與CAN的最大有效傳送字節(jié)數(shù)一致,為8個(gè)字節(jié)。第一個(gè)字節(jié)指出數(shù)據(jù)包的類型(用Oxll標(biāo)示),第二個(gè)字節(jié)指出參數(shù)類型(用0xx7標(biāo)示),第三字節(jié)至第八字節(jié)指出傳送的有效數(shù)據(jù),對(duì)應(yīng)上面給定參數(shù)的參數(shù)標(biāo)示依次為0x17、0x27、0x37、0x47、0x57。圖2所示為數(shù)據(jù)包的一般格式。
2.1.2程序數(shù)據(jù)包格式
FLASH寫(xiě)入文件較大,一般有幾十K字節(jié)。控制系統(tǒng)采用的FLASH芯片AT29C010以128字節(jié)為基本操作單位。為了適應(yīng)芯片,可將文件分成128字節(jié)的數(shù)據(jù)段,并為每個(gè)數(shù)據(jù)段標(biāo)定次序。發(fā)送時(shí),標(biāo)出數(shù)據(jù)段號(hào)及該片數(shù)據(jù)所處段中的位置即可。控制器接收到128字節(jié)后,做一次寫(xiě)入FLASH操作,數(shù)據(jù)包格式及說(shuō)明見(jiàn)圖3。
2.1.3命令數(shù)據(jù)包格式
命令數(shù)據(jù)指出對(duì)下傳參數(shù)的操作,Oxx7+0x44表示對(duì)某一參數(shù)的修改生效,如:0x17+0x44使能C1,0x27+0x44使能C2,0x37+0x44使能C3。如果修改的參數(shù)不能滿足控制要求,調(diào)試員希望能恢復(fù)原來(lái)的運(yùn)行參數(shù),因此定義0x55為修改參數(shù)恢復(fù)命令,如:0x17+0x55恢復(fù)C1,0x27+0x55恢復(fù)C2,0x37+0x55恢復(fù)C3。0x66+0x66表示將下傳數(shù)據(jù)寫(xiě)入最后的FLASH參數(shù)存儲(chǔ)區(qū)。命令數(shù)據(jù)包格式如圖4所示。
2.2上傳數(shù)據(jù)協(xié)議
上傳數(shù)據(jù)包的大小也為8個(gè)字節(jié),數(shù)據(jù)包類型分為參數(shù)反饋、命令反饋兩種,參數(shù)反饋用于上傳DSP的實(shí)際運(yùn)行控制參數(shù)及間隙、電流等狀態(tài)信息,命令反饋用于對(duì)PC機(jī)使能、寫(xiě)入、參數(shù)恢復(fù)等命令的應(yīng)答。
上傳數(shù)據(jù)依次為控制參數(shù)C1、C2、C3、CURRENTl、CURRENT2、CLEARANCE。數(shù)據(jù)類型標(biāo)示依次為0x17、0x27、0x37、0x47、0x57、0x67。由于上位機(jī)要同時(shí)接收多個(gè)控制器上傳的數(shù)據(jù),所以為了正確區(qū)分這些參數(shù),需要給上傳的數(shù)據(jù)包加入端口標(biāo)示,指出數(shù)據(jù)包來(lái)自哪個(gè)總線端口。上傳的數(shù)據(jù)包在前面格式的基礎(chǔ)上還要加入對(duì)應(yīng)于各控制器的CAN總線端口號(hào)。
上傳命令是對(duì)總線通信出現(xiàn)異常情況的應(yīng)答,因?yàn)榭刂破麟S時(shí)將控制參數(shù)上傳,且參數(shù)字節(jié)數(shù)較少,出錯(cuò)的可能性較低,不需配備應(yīng)答命令;而上傳程序的數(shù)據(jù)量較大,容易出現(xiàn)錯(cuò)誤,必須配備應(yīng)答命令,指示程序?qū)懭脒^(guò)程。
因?yàn)榭刂破魇侵芷谛缘貟呙鑃JAl000的接收緩沖區(qū),當(dāng)總線連接的節(jié)點(diǎn)較多時(shí),數(shù)據(jù)量較大,難免會(huì)發(fā)生數(shù)據(jù)漏收的情況;而且控制器對(duì)外部中斷的響應(yīng)也會(huì)影響掃描周期,使接收緩沖區(qū)中未來(lái)得及讀取的數(shù)據(jù)被新數(shù)據(jù)沖掉。當(dāng)控制器發(fā)現(xiàn)應(yīng)接收的數(shù)據(jù)位置與已接收到的數(shù)據(jù)位置不符時(shí),控制器發(fā)差錯(cuò)命令給上位機(jī),指出應(yīng)接收的數(shù)據(jù)段號(hào)及位置,上位機(jī)接收到這一信息后重發(fā)相關(guān)數(shù)據(jù)。發(fā)送數(shù)據(jù)包包含CAN端口字節(jié)、命令標(biāo)示、段號(hào)、位置號(hào)等信息。通信過(guò)程中也可能出現(xiàn)發(fā)送數(shù)據(jù)與接收數(shù)據(jù)不符的情況,因此有必要引入數(shù)據(jù)校驗(yàn)算法。控制器將接收到的128字節(jié)校驗(yàn)后得到的校驗(yàn)值與接收到的校驗(yàn)值作比較,一致后才將數(shù)據(jù)寫(xiě)入FLASH;否則反饋回校驗(yàn)值錯(cuò)誤信息,上位機(jī)重發(fā)該段數(shù)據(jù)。發(fā)送數(shù)據(jù)包包含CAN端口字節(jié)、命令標(biāo)示、段號(hào)、重發(fā)標(biāo)示(0x88)等信息。
圖5
3通信程序設(shè)計(jì)流程
3.1控制器通信流程
控制器的通信部分主要在主程序循環(huán)中完成。每次主程序循環(huán)中,控制器都向調(diào)試系統(tǒng)發(fā)送當(dāng)前C1、C2、C3、CURRENTl、CURRENT2、CLEARANCE等信息;一旦接收到調(diào)試系統(tǒng)下傳的信息,控制器便分析下傳信息的性質(zhì),對(duì)它們分別進(jìn)行判別與應(yīng)答。
圖5是控制器的通信流程。控制器上電后,程序從FLASH的參數(shù)存儲(chǔ)區(qū)(最后256個(gè)字節(jié))讀取控制參數(shù)值,存人控制參數(shù)緩存中,作為參數(shù)初值。同時(shí),控制器通過(guò)CAN總線接收上位機(jī)下傳的控制參數(shù),校驗(yàn)后存入控制參數(shù)緩存中。一旦接收到參數(shù)使能命令,則將緩存中的數(shù)據(jù)復(fù)制給C1、C2、C3等變量,作為實(shí)際的工作參數(shù);調(diào)試完畢后,在接收到參數(shù)寫(xiě)入命令后,將參數(shù)寫(xiě)入FLASH的參數(shù)存儲(chǔ)區(qū),作為永久工作參數(shù)。接收到程序數(shù)據(jù)包后,控制器首先檢驗(yàn)數(shù)據(jù)的次序,保證接收到的數(shù)據(jù)按次序排列;接著代入校驗(yàn)算法,將計(jì)算得到的校驗(yàn)值和接收的校驗(yàn)值作比較,不一致則給上位機(jī)反饋校驗(yàn)值錯(cuò)誤命令,要求上位機(jī)重發(fā)該段程序,否則將數(shù)據(jù)寫(xiě)入FLASH。圖中監(jiān)控信息的發(fā)送周期可根據(jù)情況確定。
3.2上位機(jī)通信流程
上位機(jī)是調(diào)試員與控制系統(tǒng)的接口,它顯示控制器的上傳參數(shù),將調(diào)試員需要修改的控制參數(shù)下傳。為完成上述功能,調(diào)試界面應(yīng)包括參數(shù)顯示窗口、參數(shù)輸入窗口、命令工具條等,必要的話,還應(yīng)將狀態(tài)參數(shù)以曲線的形式顯示出來(lái)。調(diào)試人員根據(jù)狀態(tài)曲線調(diào)整控制參數(shù)。
本文設(shè)計(jì)的基于以太網(wǎng)的超聲檢測(cè)多軸運(yùn)動(dòng)控制系統(tǒng)是在復(fù)雜的多軸運(yùn)動(dòng)控制技術(shù)之上結(jié)合了遠(yuǎn)程通信技術(shù),以此來(lái)實(shí)現(xiàn)超聲檢測(cè)的遠(yuǎn)程自動(dòng)控制。此系統(tǒng)主要由上位機(jī)、多軸運(yùn)動(dòng)控制器、步進(jìn)電機(jī)驅(qū)動(dòng)器、步進(jìn)電機(jī)、機(jī)械執(zhí)行裝置、限位開(kāi)關(guān)和超聲探頭等組成,其組成框圖如圖1所示。由上位機(jī)LabVIEW控制系統(tǒng)為多軸運(yùn)動(dòng)控制器發(fā)送運(yùn)動(dòng)指令,并由多軸運(yùn)動(dòng)控制器將運(yùn)動(dòng)信號(hào)拆分為步進(jìn)信號(hào)和方向信號(hào),再將這兩種電機(jī)控制信號(hào)發(fā)送給步進(jìn)電機(jī)驅(qū)動(dòng)器,步進(jìn)電機(jī)驅(qū)動(dòng)器將其轉(zhuǎn)化為角位移發(fā)送給步進(jìn)電機(jī),使步進(jìn)電機(jī)轉(zhuǎn)動(dòng)相應(yīng)個(gè)步距角,以達(dá)到使步進(jìn)電機(jī)按指令運(yùn)動(dòng)的目的。步進(jìn)電機(jī)上安裝有機(jī)械執(zhí)行裝置,用以固定超聲探頭,機(jī)械執(zhí)行裝置上安有限位開(kāi)關(guān),以此控制電機(jī)的運(yùn)動(dòng)范圍,當(dāng)電機(jī)運(yùn)動(dòng)到限位開(kāi)關(guān)的位置時(shí),限位開(kāi)關(guān)發(fā)出限位信號(hào)到多軸運(yùn)動(dòng)控制器,運(yùn)動(dòng)控制器便停止發(fā)出使電機(jī)運(yùn)動(dòng)的脈沖信號(hào)。在進(jìn)行自動(dòng)超聲檢測(cè)時(shí),Z軸方向機(jī)械執(zhí)行機(jī)構(gòu)上固定的超聲檢測(cè)探頭能夠在被檢測(cè)物體的表面按照上位機(jī)運(yùn)動(dòng)控制算法設(shè)計(jì)的運(yùn)動(dòng)軌跡進(jìn)行連續(xù)檢測(cè),并實(shí)時(shí)向PC機(jī)返回探頭的位置信息,并將數(shù)據(jù)采集卡采集的超聲信號(hào)與探頭返回的位置信息建立起對(duì)應(yīng)關(guān)系,最終通過(guò)上位機(jī)的圖像處理系統(tǒng)形成超聲檢測(cè)圖像,以此來(lái)實(shí)現(xiàn)物體的超聲檢測(cè)。
2多軸運(yùn)動(dòng)控制器的方案設(shè)計(jì)
多軸運(yùn)動(dòng)控制器可以通過(guò)遠(yuǎn)程以太網(wǎng)通信的方式接收上位機(jī)的控制信號(hào),向步進(jìn)電機(jī)驅(qū)動(dòng)器發(fā)送脈沖信號(hào)和方向信號(hào)以完成對(duì)電機(jī)的運(yùn)動(dòng)控制。采用ARM9處理器S3C2440搭建硬件平臺(tái),配有DM9000A以太網(wǎng)通信芯片使硬件平臺(tái)具備遠(yuǎn)程通信的功能。在Linux操作平臺(tái)上進(jìn)行控制系統(tǒng)軟件功能設(shè)計(jì),并采用UDP通信協(xié)議實(shí)現(xiàn)上位機(jī)與運(yùn)動(dòng)控制器之間的遠(yuǎn)程通信[3]。
2.1多軸運(yùn)動(dòng)控制器硬件電路設(shè)計(jì)
本文采用ARM9處理器S3C2440設(shè)計(jì)了系統(tǒng)中運(yùn)動(dòng)控制器的硬件電路部分,并采用DM9000A網(wǎng)絡(luò)接口控制器設(shè)計(jì)了運(yùn)動(dòng)控制器的以太網(wǎng)接口。運(yùn)動(dòng)控制器硬件整體框圖如圖2所示。運(yùn)動(dòng)控制器選用ARM9處理器作為運(yùn)動(dòng)控制器的核心芯片可以方便地嵌套Linux操作系統(tǒng),在操作系統(tǒng)之上實(shí)現(xiàn)運(yùn)動(dòng)控制器的插補(bǔ)等多軸運(yùn)動(dòng)控制算法。選用DM9000A以太網(wǎng)控制芯片實(shí)現(xiàn)上位機(jī)LabVIEW與運(yùn)動(dòng)控制器之間的遠(yuǎn)程通信,進(jìn)而實(shí)現(xiàn)超聲檢測(cè)的遠(yuǎn)程自動(dòng)控制。為了解決步進(jìn)電機(jī)驅(qū)動(dòng)器與主控芯片信號(hào)匹配的問(wèn)題,本文采用光耦器件設(shè)計(jì)了電壓轉(zhuǎn)換模塊,負(fù)責(zé)把主控芯片輸出的3.3V電壓信號(hào)轉(zhuǎn)換至5V電壓信號(hào)后輸入到步進(jìn)電機(jī)驅(qū)動(dòng)器中,同時(shí)負(fù)責(zé)把限位開(kāi)關(guān)發(fā)出的24V限位信號(hào)轉(zhuǎn)換至3.3V輸入到主控芯片中。此外,電路中還搭載了用于存儲(chǔ)數(shù)據(jù)的擴(kuò)展存儲(chǔ)器、以及用于調(diào)試的JTAG接口電路和RS232串口電路。
2.2多軸運(yùn)動(dòng)控制器軟件設(shè)計(jì)
本課題所用的限位開(kāi)關(guān)為位置可調(diào)的限位開(kāi)關(guān),每個(gè)軸有2個(gè)限位開(kāi)關(guān),在每次超聲檢測(cè)前,把每個(gè)限位開(kāi)關(guān)調(diào)節(jié)到被測(cè)工件的邊緣處,從而使探頭移動(dòng)的范圍即為工件所在范圍。故此設(shè)計(jì)運(yùn)動(dòng)控制器的軟件時(shí)便可將限位開(kāi)關(guān)做為邊界條件,以此來(lái)設(shè)計(jì)探頭的運(yùn)動(dòng)范圍。其運(yùn)動(dòng)控制流程:首先系統(tǒng)初始化,通過(guò)上微機(jī)控制界面人工控制探頭到被測(cè)工件的起點(diǎn),然后X軸正向運(yùn)動(dòng)到X軸限位開(kāi)關(guān)處,Y軸正向運(yùn)動(dòng)一個(gè)探頭直徑的長(zhǎng)度,X軸再反向運(yùn)動(dòng)到X軸另一側(cè)的限位開(kāi)關(guān)處,之后Y軸繼續(xù)正向運(yùn)動(dòng)一個(gè)探頭直徑的長(zhǎng)度,如此往復(fù)運(yùn)動(dòng)直至探頭到達(dá)Y軸的限位開(kāi)關(guān)處,檢測(cè)結(jié)束,探頭復(fù)位。運(yùn)動(dòng)控制軟件流程圖如圖3所示。
3多軸運(yùn)動(dòng)控制系統(tǒng)上位機(jī)軟件設(shè)計(jì)
基于以太網(wǎng)的自動(dòng)超聲檢測(cè)多軸運(yùn)動(dòng)控制系統(tǒng)的上位機(jī)軟件是以LabVIEW開(kāi)發(fā)平臺(tái)為基礎(chǔ),使用圖形G語(yǔ)言進(jìn)行編寫(xiě)的,主要包括多軸運(yùn)動(dòng)控制軟件和以太網(wǎng)通信軟件。Lab-VIEW是一款上位機(jī)軟件,其主要應(yīng)用于儀器控制、數(shù)據(jù)采集和數(shù)據(jù)分析等領(lǐng)域,具有良好的人機(jī)交互界面[4]。LabVIEW軟件中有專門(mén)的UDP通信函數(shù)提供給用戶使用,用戶無(wú)需過(guò)多考慮網(wǎng)絡(luò)的底層實(shí)現(xiàn),就可以直接調(diào)用UDP模塊中已經(jīng)的VI來(lái)完成通信軟件的編寫(xiě),因此編程者不必了解UDP的細(xì)節(jié),而采用較少的代碼就可以完成通信任務(wù),以便快速的編寫(xiě)出具有遠(yuǎn)程通信功能的上位機(jī)控制軟件[5]。上位機(jī)LabVIEW軟件的遠(yuǎn)程通信模塊、運(yùn)動(dòng)控制模塊以及數(shù)據(jù)處理模塊相互協(xié)調(diào)配合,共同構(gòu)成了超聲檢測(cè)多軸運(yùn)動(dòng)控制系統(tǒng)的上位機(jī)軟件。
3.1運(yùn)動(dòng)控制軟件設(shè)計(jì)
運(yùn)動(dòng)控制系統(tǒng)軟件部分主要由運(yùn)動(dòng)方式選擇、探頭位置坐標(biāo)、運(yùn)動(dòng)控制等模塊組成,可完成對(duì)系統(tǒng)運(yùn)動(dòng)方式的選擇,運(yùn)動(dòng)參數(shù)、控制指令的設(shè)定以及探頭位置信息讀取等工作。運(yùn)動(dòng)方式選擇模塊可根據(jù)實(shí)際需要完成相對(duì)運(yùn)動(dòng)或是絕對(duì)運(yùn)動(dòng)兩種運(yùn)動(dòng)方式的選擇,并會(huì)依照選擇的既定運(yùn)動(dòng)模式將X、Y、Z三軸的相應(yīng)運(yùn)動(dòng)位置坐標(biāo)輸出在相應(yīng)顯示欄中,以便進(jìn)行進(jìn)一步的參數(shù)核對(duì)以及設(shè)定;運(yùn)動(dòng)控制模塊可依照檢測(cè)規(guī)則實(shí)現(xiàn)對(duì)整個(gè)系統(tǒng)運(yùn)動(dòng)過(guò)程的控制,包括:設(shè)定相對(duì)原點(diǎn)、運(yùn)行、復(fù)位、以及退出等相關(guān)操作。相對(duì)原點(diǎn)設(shè)定可以將探頭任意當(dāng)前位置設(shè)為新的原點(diǎn),并以原點(diǎn)作為下一個(gè)運(yùn)動(dòng)的起始點(diǎn),即為探頭位置坐標(biāo)的相對(duì)零點(diǎn),并將此刻相對(duì)原點(diǎn)的絕對(duì)位置坐標(biāo)值在文本框中顯示出來(lái)。運(yùn)動(dòng)控制系統(tǒng)軟件流程圖如圖4所示。
3.2以太網(wǎng)通信軟件設(shè)計(jì)
以太網(wǎng)通信模塊采用無(wú)連接的UDP通信協(xié)議,通過(guò)定義多軸運(yùn)動(dòng)控制器與上位機(jī)LabVIEW的以太網(wǎng)通信協(xié)議,實(shí)現(xiàn)下位機(jī)與上位機(jī)之間的遠(yuǎn)程通信。具體設(shè)計(jì)如下:首先使用“UDPOpenConnection”打開(kāi)UDP鏈接,使用“UDPWrite”節(jié)點(diǎn)向服務(wù)器端相應(yīng)的端口發(fā)送命令信息,然后使用“UDPRead”節(jié)點(diǎn)讀取服務(wù)器端發(fā)送來(lái)的有效回波數(shù)據(jù),用于后期處理,最后應(yīng)用“UDPCloseConnection”節(jié)點(diǎn)關(guān)閉連接[6]。以太網(wǎng)通信模塊的程序框圖如圖5所示。
4實(shí)驗(yàn)及結(jié)果
實(shí)驗(yàn)平臺(tái)由步進(jìn)電機(jī)及其驅(qū)動(dòng)器、上位機(jī)控制軟件和自主研發(fā)的多軸運(yùn)動(dòng)控制器構(gòu)成。在上位機(jī)的用戶控制界面中,首先輸入以太網(wǎng)的IP地址并選擇運(yùn)動(dòng)方式,然后根據(jù)用戶的檢測(cè)需求設(shè)定運(yùn)動(dòng)速度和運(yùn)動(dòng)距離,點(diǎn)擊運(yùn)行后探頭即按所設(shè)定運(yùn)行。探頭運(yùn)動(dòng)過(guò)程中還可以選擇設(shè)定當(dāng)前位置為原點(diǎn),探頭即按照新的原點(diǎn)重新開(kāi)始運(yùn)動(dòng)。同時(shí),在探頭運(yùn)動(dòng)時(shí)會(huì)實(shí)時(shí)顯示探頭當(dāng)前所在位置坐標(biāo)。模擬開(kāi)關(guān)發(fā)送選通超聲探頭信號(hào)并發(fā)送脈沖信號(hào)激勵(lì)超聲探頭發(fā)射超聲波,F(xiàn)PGA控制A/D轉(zhuǎn)換電路對(duì)超聲回波信號(hào)進(jìn)行轉(zhuǎn)換,并將數(shù)據(jù)存入雙口RAM,存儲(chǔ)完成后向ARM發(fā)送信號(hào),ARM接收到采集完成信號(hào)將數(shù)據(jù)通過(guò)以太網(wǎng)向上位機(jī)發(fā)送。上位機(jī)的LabVIEW用戶控制界面如圖6所示。
5結(jié)束語(yǔ)