基于PCIE總線3D打印機(jī)運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)
摘要:為了使3D打印機(jī)的多個(gè)伺服電機(jī)運(yùn)動(dòng)得更快、更精確,提出一種基于PCIE總線運(yùn)動(dòng)控制系統(tǒng)的解決方案,并設(shè)計(jì)完善了整個(gè)運(yùn)動(dòng)控制系統(tǒng)的硬件架構(gòu)。該系統(tǒng)的創(chuàng)新之處在于硬件部分通過PI3EQX5801對(duì)PCIE總線信號(hào)進(jìn)行加強(qiáng)處理,使PCIE總線信號(hào)在經(jīng)過長(zhǎng)達(dá)1~3 m的傳輸后仍保持高度的有效性。實(shí)際應(yīng)用表明,此系統(tǒng)具有響應(yīng)時(shí)間短、定位準(zhǔn)確的特點(diǎn),滿足設(shè)計(jì)要求。
本文引用地址:http://2s4d.com/article/201610/306595.htm引言
目前3D打印機(jī)在工業(yè)、民用領(lǐng)域得到廣泛應(yīng)用,隨著3D打印技術(shù)的革新,3D打印不僅在傳統(tǒng)的制造行業(yè)體現(xiàn)出非凡的發(fā)展?jié)摿?,而且其魅力延伸至食品制造、服裝奢侈品、影視傳媒以及教育等多個(gè)與人們生活息息相關(guān)的領(lǐng)域。經(jīng)過對(duì)比各種芯片性能,選用PEX8311與X7043協(xié)同工作,PEX8311芯片對(duì) PCIE總線信號(hào)進(jìn)行譯碼,生成16路總線數(shù)據(jù)和地址信號(hào),這些控制信號(hào)可用于X7043運(yùn)控控制芯片,保證同時(shí)對(duì)最多4臺(tái)伺服電機(jī)進(jìn)行實(shí)時(shí)同步的控制。實(shí)驗(yàn)過程中發(fā)現(xiàn)即使3D打印機(jī)與主控機(jī)相距3 m,誤碼率仍在萬分之一以下,對(duì)3D打印機(jī)的運(yùn)動(dòng)控制性能有明顯提升。
1 總體設(shè)計(jì)
該套方案的系統(tǒng)結(jié)構(gòu)圖如圖1所示,在整個(gè)設(shè)計(jì)中,用戶控制主機(jī),向下發(fā)送指令,指令信息最先到達(dá)PCIE板卡,指令經(jīng)過處理(如打包)按照PCIE總線協(xié)議發(fā)送到信號(hào)加強(qiáng)轉(zhuǎn)接板,該板需插入機(jī)箱內(nèi)部插槽(金手指),經(jīng)過信號(hào)加強(qiáng)芯片,對(duì)PCIE總線信號(hào)加強(qiáng),P13EQX5801芯片對(duì)信號(hào)重驅(qū)動(dòng)后,信號(hào)能傳輸?shù)挠行Ь嚯x將大大增加。
總線信號(hào)中的讀/寫信息都是以高頻差分對(duì)的形式傳輸,對(duì)特征阻抗的要求非常高,按照PCI2.0總線協(xié)議,差分對(duì)在PCB走線時(shí)不能超過15 cm,只有進(jìn)行重驅(qū)動(dòng),才能使PCIE總線信號(hào)到達(dá)打印機(jī)的運(yùn)動(dòng)控制模塊,否則在線路傳輸中信號(hào)將被干擾而失真,不能實(shí)現(xiàn)主機(jī)對(duì)3D打印機(jī)運(yùn)動(dòng)控制系統(tǒng)的實(shí)時(shí)操作。
運(yùn)動(dòng)控制系統(tǒng)硬件主要由上位機(jī)、工控機(jī)、P13EQX5801重驅(qū)動(dòng)電路、PEX8311解析電路、X7043控制電路和3臺(tái)伺服電機(jī)驅(qū)動(dòng)系統(tǒng)組成,圖2 所示即為整個(gè)系統(tǒng)結(jié)構(gòu)。上位機(jī)為用戶提供操作界面,工控機(jī)則用來發(fā)送上位機(jī)下達(dá)的指令給下位機(jī),PCIE總線信息首先經(jīng)過PI3EQX5801進(jìn)行重驅(qū)動(dòng)處理,以使信號(hào)在進(jìn)行遠(yuǎn)距離傳輸后不失真。在多軸運(yùn)控控制電路板上裝有PEX8311、X7043和CPLD芯片,PEX8311對(duì)傳輸過來的總線進(jìn)行信號(hào)解析,產(chǎn)生能被X7043使用的數(shù)據(jù)總線、地址總線和控制總線信號(hào),CPLD用于采集編碼信號(hào)和來自伺服電機(jī)驅(qū)動(dòng)器的信號(hào),進(jìn)而準(zhǔn)確控制電機(jī)運(yùn)行狀態(tài)。著重介紹具有創(chuàng)新意義的PI3EQX5801的使用。
2 PI3EQX5801的電路設(shè)計(jì)
PI3EQX5801特性:兼容PCIe 2.0協(xié)議,可調(diào)節(jié)量化接收器,兩路5.0 Gbps差分信號(hào)對(duì),100 Ω匹配電阻差分輸入端,為引腳加強(qiáng)的配置輸出且能控制擺幅輸出,單通道的輸入信號(hào)檢測(cè)和去噪,自動(dòng)接收檢測(cè),低電壓工作為-330 mW(3.3 V)/-150 mW(1.5 V),采用TQFN(4×4 mm)20引腳封裝。
這款低功耗、高性能的信號(hào)驅(qū)動(dòng)器是為PCIE 2.0協(xié)議特別研制的,芯片提供可編程量化器,去加重,具有輸出幅度控制功能,通過抑制系統(tǒng)內(nèi)多樣的物理媒介產(chǎn)生的干擾來優(yōu)化芯片的性能。芯片支持兩路100 Ω特征阻抗的差分信號(hào)輸入/輸出,使用戶平臺(tái)上的ASIC協(xié)議信號(hào)在經(jīng)過轉(zhuǎn)換機(jī)構(gòu)、導(dǎo)線或遠(yuǎn)程數(shù)據(jù)線路后仍有效。
當(dāng)通道使能時(shí),EN#=0,開始操作,通道的輸入信號(hào)極性決定輸出極性,而不管輸出是否激活。當(dāng)輸入通道的信號(hào)下降到閾值(Vth-)以下時(shí),輸出也被驅(qū)動(dòng)到相同的電壓。另外在有信號(hào)條件下,當(dāng)EN#=1時(shí),芯片會(huì)進(jìn)入低功耗的待機(jī)模式。PI3EQX5801還包含一個(gè)完全可編程的I2C總線接口。當(dāng) I2C總線控制模式使能時(shí),I2C EN=1,量化、輸出擺動(dòng)和去加重功能的設(shè)置可以通過編輯相應(yīng)的寄存器得到調(diào)整。
特別注意的是該芯片的輸出振幅設(shè)置,當(dāng)信號(hào)頻率為2.5 GHz時(shí),電阻的選型可根據(jù)表1進(jìn)行選擇,在默認(rèn)情況下輸出的振幅為被加強(qiáng)。
數(shù)據(jù)發(fā)送周期以主控制器產(chǎn)生的一位開始位開始,芯片在識(shí)別這個(gè)開始位后,將監(jiān)督下一位信息,看該數(shù)據(jù)是否與它的地址匹配。當(dāng)發(fā)現(xiàn)匹配后,在接下來的時(shí)鐘信號(hào)里,它將回應(yīng)一個(gè)讀或?qū)懙臄?shù)據(jù)。每字節(jié)后都必須跟著一位應(yīng)答位,除非最后的一個(gè)字節(jié)以一位停止位結(jié)束。在一個(gè)發(fā)送周期中,跟著地址字節(jié)的第一個(gè)數(shù)據(jù)字節(jié)是偽字節(jié)或填充字節(jié),并不被PI3EQX5801使用。這個(gè)字節(jié)是為了兼容使用10位地址的系統(tǒng)而產(chǎn)生的。數(shù)據(jù)傳輸中最先傳輸最重要的數(shù)據(jù)。
重驅(qū)動(dòng)的電路設(shè)計(jì)參考了百利通公司給出的標(biāo)準(zhǔn)圖,為了讓電路具有對(duì)其他設(shè)備的適用性,保留了官方配置時(shí)需要的各個(gè)電阻,在做PCB板時(shí)加入了撥碼開關(guān),可以根據(jù)不同需要進(jìn)行模式選擇。
3 PEX8311設(shè)計(jì)
PEX8311起到橋梁作用,它將PCIE總線變成一般的局部總線信號(hào)。芯片支持3種不同的總線協(xié)議或模式。由于該芯片引腳足夠滿足本控制系統(tǒng)的設(shè)計(jì)要求,所以該系統(tǒng)中使用C(非復(fù)用)模式,總共96個(gè)引腳。作為L(zhǎng)ocal總線的主控方,PEX8311提供了一個(gè)32位的地址用于數(shù)據(jù)傳輸,8位數(shù)據(jù)傳輸時(shí),LAD[31:0]提供字節(jié)地址;16位數(shù)據(jù)傳輸時(shí),LAD[31:1]提供字地址,LAD[0]為0;32位數(shù)據(jù)傳輸時(shí),LAD[31:2]提供雙字地址,LAD[1:0]為00。作為L(zhǎng)ocal總線的從控方,主控方以32位地址訪問PEX8311,LAD[1:0]忽略,在ADS#有效期間、LCLK上升沿到達(dá)時(shí)或者ALE有效時(shí),輸入的地址被鎖存入PEX8311中。
在一個(gè)數(shù)據(jù)周期中,作為L(zhǎng)ocal總線的主控方,PEX8311通過總線數(shù)據(jù)寬度訪問方式可以提供8/16/32位數(shù)據(jù)傳輸通道;作為L(zhǎng)ocal總線的從控方,32位的數(shù)據(jù)總線被用來讀取/寫入PEX8311。
PEX8311上電后接收PCIE協(xié)議信息完成自身的初始化,對(duì)局部總線進(jìn)行讀寫操作。初始化過程代碼如下:
4 X7043電路設(shè)計(jì)
X7043作為大規(guī)模集成電路,能產(chǎn)生控制伺服電機(jī)和步進(jìn)電機(jī)速度和位置的脈沖序列,最多能控制4個(gè)軸。芯片單元包含一個(gè)S形或線性的加速/減速脈沖發(fā)生器、一個(gè)線性插值除法器、一個(gè)基于形或三角形驅(qū)動(dòng)的減速點(diǎn)自動(dòng)計(jì)算器、多個(gè)編碼器和計(jì)數(shù)器的輸入腳(可用作當(dāng)前位置計(jì)數(shù)器或偏差計(jì)數(shù)器),一個(gè)回原點(diǎn)的傳感器接口、一個(gè)限位傳感器接口、一個(gè)伺服驅(qū)動(dòng)接口、一個(gè)8位多用途的輸入口和一個(gè)8位多用途的輸出口。輸入為PEX8311解碼后的數(shù)據(jù)信號(hào),包括16位地址和8位數(shù)據(jù),由于X7043只有8位輸入,所以我們只用到了16位地址線中的8位。
X7043擁有多種指令形式,分別對(duì)應(yīng)多種功能,發(fā)送命令代碼時(shí),代碼先進(jìn)入命令寄存器中。該系統(tǒng)最常用的命令代碼有00h、01h、指數(shù)驅(qū)動(dòng),這樣的驅(qū)動(dòng)形式伴隨加速和減速過程,電機(jī)會(huì)先加速到最高速度,在最高速運(yùn)行一定時(shí)間后進(jìn)入減速狀態(tài),到達(dá)目標(biāo)位置時(shí)剛好停止。電機(jī)轉(zhuǎn)速狀態(tài)如圖3所示。
X7043使用前需先下載應(yīng)用文件,對(duì)需要的功能進(jìn)行配置,具體配置方法參考官方的使用手冊(cè)。
梯形正弦加速度設(shè)置公式:
Tsg=f×K×R5/131 072
梯形正弦減速度設(shè)置公式:
Tsg=f×K×R6/131 072。
其中,K代表速度分辨率,K=f/65536×R0;f為參考時(shí)鐘頻率;R0頻率系數(shù)寄存器值;R5為加速度設(shè)置寄存器值;R6是減速度設(shè)置寄存器值。
PEX8311寫給X7043的程序代碼如下:
實(shí)驗(yàn)中,對(duì)伺服驅(qū)動(dòng)器輸出數(shù)值進(jìn)行采集,并對(duì)各軸的目標(biāo)位置與實(shí)際位置進(jìn)行分析,調(diào)整梯形規(guī)劃算法并優(yōu)化上位機(jī)程序,以提高電機(jī)響應(yīng)速度。實(shí)際效果圖如圖4所示。
圖中預(yù)設(shè)是反向220 r/min,粗線是實(shí)際轉(zhuǎn)速,細(xì)線為設(shè)置轉(zhuǎn)速,可以看出電機(jī)的轉(zhuǎn)停沒有較大的沖擊,并且能夠達(dá)到很高的控制精度。
結(jié)語
此運(yùn)動(dòng)控制系統(tǒng)采用具有高速數(shù)據(jù)處理能力的芯片,對(duì)從上位機(jī)下發(fā)的指令信號(hào)進(jìn)行一整套的解析,在3D打印機(jī)的多軸控制試驗(yàn)中取得了很好效果,這套體系也可用于多軸控制的其他設(shè)備中。作為新方案,軸的運(yùn)動(dòng)速度及精度與進(jìn)口3D打印機(jī)相比還有一定差距。若要達(dá)到國(guó)外高級(jí)3D打印機(jī)的打印精度,還需在控制算法上進(jìn)行深入研究。目前,3D打印機(jī)在國(guó)內(nèi)應(yīng)用市場(chǎng)前景很廣闊,這套運(yùn)動(dòng)控制系統(tǒng)為高精度、高效率的3D打印機(jī)設(shè)計(jì)提供了新思路。
評(píng)論