基于1553B與CAN總線的電機(jī)控制網(wǎng)絡(luò)設(shè)計
引言
MIL一sTD一1553B因其在實時控制方面的優(yōu)越性,已在工業(yè)控制領(lǐng)域得到了廣泛應(yīng)用。CAN總線具有出色的性能,如通信速率高、控制簡單等,同時它也是現(xiàn)場總線中的主流產(chǎn)品。1553B總線和CAN總線互連具有優(yōu)秀的可靠性、實時性及使用性,因此,CAN一1553B網(wǎng)關(guān)的設(shè)計具有很高的應(yīng)用價值。本文在原有CAN總線電機(jī)控制網(wǎng)絡(luò)系統(tǒng)實驗裝置的基礎(chǔ)上,對其軟硬件進(jìn)行改造,設(shè)計了CAN一1553B網(wǎng)關(guān),構(gòu)建了電機(jī)控制系統(tǒng)一CAN一1553B網(wǎng)關(guān)一CAN一1553B網(wǎng)關(guān)一PC機(jī)實驗系統(tǒng),實現(xiàn)1553B協(xié)議與CAN協(xié)議之間的通信,利用現(xiàn)場總線與DsP嵌入式技術(shù)完成對伺服控制系統(tǒng)的自動控制。
1MIL一STD一1553B和CAN的對比
CAN總線是一種網(wǎng)絡(luò)通信協(xié)議,主要使用在要求實時處理的場合。本文的研究背景是在CAN總線電機(jī)控制網(wǎng)絡(luò)中加入MIL一sTD一1553B總線,由此將MIL一sTD一1553B總線與CAN總線展開對比,具體如下:
1.1可靠性
在硬件結(jié)構(gòu)上,CAN總線在大部分情況下采用主機(jī)工作方式,能構(gòu)建多機(jī)冗余備份系統(tǒng),進(jìn)而增強(qiáng)了系統(tǒng)的可靠性。MIL一sTD一1553B總線主要選擇使用單主機(jī)工作方式,并且也可以操作多余度的總線結(jié)構(gòu),具有相當(dāng)出色的容錯能力?;趯崟r性的前提,MIL一sTD一1553B總線為了提高數(shù)據(jù)傳輸?shù)目煽啃?選擇使用了差錯控制措施。但是,CAN總線選擇了無連接的數(shù)據(jù)報方式,大大降低了其可靠性。
1.2響應(yīng)時間
MIL一sTD一1553B的響應(yīng)時間較長,這個時間與節(jié)點數(shù)的數(shù)量成正比例關(guān)系:CAN總線響應(yīng)時間短,并隨著節(jié)點數(shù)的增加變化不大。
如果將MIL一sTD一1553B融合到控制系統(tǒng)中和CAN總線形成互補(bǔ),可以得到更好的控制效果。
2系統(tǒng)總體設(shè)計
本文構(gòu)建了基于CAN總線的電機(jī)控制網(wǎng)絡(luò)單元,實現(xiàn)了對交流伺服電機(jī)的雙模位置控制:設(shè)計CAN一1553B網(wǎng)關(guān),實現(xiàn)CAN總線與1553B總線之間的通信,完成了系統(tǒng)任務(wù)機(jī)對一臺伺服電機(jī)的網(wǎng)絡(luò)控制。整個網(wǎng)絡(luò)系統(tǒng)拓?fù)浣Y(jié)構(gòu)如圖1所示。
本方案采用兩塊CAN一1553B網(wǎng)關(guān)相連,中間采用1553B總線作為電機(jī)控制網(wǎng)絡(luò)的主總線。節(jié)點1的CAN一1553B網(wǎng)關(guān)利用TMs320LF2407芯片上集成的sCI外圍設(shè)備,采用Rs一232的接口方式與電腦相連,通過串口接收系統(tǒng)任務(wù)機(jī)發(fā)送的控制數(shù)據(jù),轉(zhuǎn)換成符合1553B協(xié)議的信號并發(fā)送到1553B總線上,同時接收節(jié)點2反饋到1553B總線上的數(shù)據(jù)。節(jié)點2的CAN一1553B網(wǎng)關(guān)則掛CAN總線電機(jī)控制網(wǎng)絡(luò)子系統(tǒng),完成1553B協(xié)議與CAN總線協(xié)議之間的轉(zhuǎn)換,從而實現(xiàn)系統(tǒng)任務(wù)機(jī)通過1553B總線與CAN總線網(wǎng)絡(luò)之間的通信,這是本設(shè)計的重點及難點。在CAN總線電機(jī)控制網(wǎng)絡(luò)子系統(tǒng)中有兩個節(jié)點:控制器節(jié)點(節(jié)點3)、一臺伺服電機(jī)的信號采集與執(zhí)行機(jī)構(gòu)(節(jié)點4)。其中電機(jī)信號采集與執(zhí)行機(jī)構(gòu)用于接收電機(jī)的碼盤反饋信號,并將該反饋信號通過CAN總線送入控制器節(jié)點,同時接收來自控制器節(jié)點的控制量,并通過DA轉(zhuǎn)換得到模擬電壓,控制電機(jī)轉(zhuǎn)動??刂破鞴?jié)點主要有兩個功能:一是通過CAN接收網(wǎng)關(guān)傳來的控制方式字及位置控制量并對電機(jī)進(jìn)行位置控制:二是產(chǎn)生CAN總線節(jié)點同步時鐘,便于采用基于時間觸發(fā)的CAN總線協(xié)議。
CAN一1553B網(wǎng)關(guān)的實現(xiàn)框圖如圖2所示。其中,CAN控制器由DsP外圍電路提供,CAN總線接口模塊實現(xiàn)網(wǎng)關(guān)與CAN總線之間的通信:CPU模塊及曼徹斯特編譯碼模塊實現(xiàn)了CAN總線協(xié)議與1553B總線協(xié)議之間的轉(zhuǎn)換:1553B接口模塊則實現(xiàn)網(wǎng)關(guān)與1553B總線之間的通信,從而實現(xiàn)系統(tǒng)任務(wù)機(jī)對CAN總線網(wǎng)絡(luò)節(jié)點的監(jiān)控。
本系統(tǒng)的控制對象為日本松下公司MINAs系列交流伺服電機(jī)和驅(qū)動器組成的交流伺服系統(tǒng),其中伺服驅(qū)動器采用速度控制模式,在該控制模式下,由電機(jī)控制器輸出一10~+10V的模擬電壓,輸入伺服驅(qū)動器控制端,能夠?qū)崿F(xiàn)電機(jī)從負(fù)向最大轉(zhuǎn)速到正向最大轉(zhuǎn)速之間的速度變化,同時控制器通過正交編碼電路及捕獲電路接收來自伺服驅(qū)動器反饋的編碼器信號構(gòu)成位置閉環(huán)。
CPU模塊采用TI公司數(shù)字信號處理器(DsP)TMs320LF-2407A芯片,該芯片為定點DsP,它專為數(shù)字電機(jī)和運(yùn)動控制而優(yōu)化的豐富內(nèi)嵌外設(shè)使得用戶能夠非常容易地構(gòu)建一個單芯片控制系統(tǒng);而且該芯片擁有內(nèi)嵌CAN控制器,只需外接CAN總線收發(fā)器即可完成CAN接口的設(shè)計。鑒于該芯片以上優(yōu)勢,在本系統(tǒng)網(wǎng)絡(luò)各節(jié)點均采用該芯片作為控制器。
CAN-1553B網(wǎng)關(guān)通過1553B總線接收系統(tǒng)任務(wù)機(jī)發(fā)出的控制信號,并通過CAN總線發(fā)給控制器;同時,CAN-1553B網(wǎng)關(guān)通過CAN總線接收位置反饋信號,把其發(fā)送給系統(tǒng)任務(wù)機(jī),并通過MATLAB繪圖,將電機(jī)響應(yīng)曲線直觀地顯示出來。
數(shù)據(jù)采集與執(zhí)行節(jié)點利用0EP及CAP電路采樣位置信號,并經(jīng)過CAN總線送入控制器節(jié)點??刂破鞴?jié)點采用雙??刂扑惴▽﹄姍C(jī)碼盤反饋信號進(jìn)行處理,再通過CAN總線發(fā)送給數(shù)據(jù)采集與執(zhí)行節(jié)點。數(shù)據(jù)采集與執(zhí)行節(jié)點通過12位DAC輸出控制信號,控制電機(jī)運(yùn)動。同時,控制器節(jié)點也作為同步時鐘產(chǎn)生節(jié)點,利用DsP事件發(fā)生器的定時器定時向CAN總線發(fā)出同步時鐘信號。
3CAN-1553B網(wǎng)關(guān)的硬件
網(wǎng)關(guān)主要作用是完成數(shù)據(jù)在CAN總線和1553B總線不同協(xié)議間的相互轉(zhuǎn)換。TMs320LF2407A芯片是由美國TI公司開發(fā)的面向電機(jī)控制的低成本、高性能的DsP器件,也是本設(shè)計中的核心芯片。其指令周期最短為25ns,可以很好地滿足系統(tǒng)的實時性要求,能夠?qū)崿F(xiàn)復(fù)雜的控制算法及各種復(fù)雜功能。
4基于CAN總線的電機(jī)控制單元硬件設(shè)計
基于CAN總線的伺服電機(jī)控制系統(tǒng)實現(xiàn)對一臺電機(jī)的位置伺服控制,包括兩個節(jié)點:主控制器節(jié)點、信號采集及執(zhí)行機(jī)構(gòu)節(jié)點。其整體結(jié)構(gòu)框圖如圖3所示。
4.1碼盤信號采集模塊
為了使位置能夠閉環(huán),需要對伺服電機(jī)轉(zhuǎn)子轉(zhuǎn)角進(jìn)行測量,這是一個極其關(guān)鍵的環(huán)節(jié)。TMs320LF2407A芯片的每個事件管理器模塊都有一個功能模塊與光電編碼器相連,用于轉(zhuǎn)角和轉(zhuǎn)速的檢測,其中0EP內(nèi)部設(shè)有轉(zhuǎn)向判別和倍頻功能。
在本設(shè)計中,由電機(jī)驅(qū)動器提供電機(jī)光電編碼器信號的差分輸出,即A+、A-、B+、B-、Z+、Z-,用長線接收器AM26Ls32來接收這些信號。
設(shè)計時,選擇通用定時器T2用于計算電路輸入脈沖數(shù)。T2工作于雙向加/減計數(shù)模式。光電碼盤每旋轉(zhuǎn)一周產(chǎn)生一個零位參考脈沖(Z相信號),DsP捕獲引腳CAP3用于捕獲該信號。當(dāng)DsP捕獲到該信號,T2的計數(shù)值被捕獲,并作為計算轉(zhuǎn)角的基準(zhǔn)值。故轉(zhuǎn)子每旋轉(zhuǎn)一周,基準(zhǔn)值被重新刷新一次,從而保證轉(zhuǎn)角的準(zhǔn)確性。
字式轉(zhuǎn)速測量方法包括M法、T法和M/T法。M法的主要含義為在規(guī)定的檢測時間內(nèi),根據(jù)獲得的轉(zhuǎn)速脈沖信號的個數(shù)判斷該設(shè)備的轉(zhuǎn)速。在本系統(tǒng)中采用的是M法,在0.5ms的定時時間內(nèi)測量脈沖數(shù),具體電路如圖4所示。
4.2DAC模塊
要實現(xiàn)對電機(jī)轉(zhuǎn)速的控制,需將經(jīng)DsP計算所得的控制量轉(zhuǎn)化為-10~+10V的控制電壓。在這里采用了BURR-BRowN公司生產(chǎn)的12位4路雙緩沖D/A轉(zhuǎn)換芯片DAC7624外擴(kuò)數(shù)模轉(zhuǎn)換輸出設(shè)備。DAC7624建立時間是10us,它有33mw的低功耗。每個DAC轉(zhuǎn)換通道都有自己的R-2R梯形網(wǎng)絡(luò)和輸出隔離放大環(huán)節(jié),但它們公用一個參考電壓輸入。DAC7624的低功耗、小體積使得它特別適用于閉環(huán)伺服控制系統(tǒng)。DAC7624的四個通道輸出信號電壓范圍為0~+2.5V,需要對其進(jìn)行處理,將其轉(zhuǎn)化為-10~+10V送到電機(jī)驅(qū)動器,用來驅(qū)動電機(jī)。
首先經(jīng)過運(yùn)算放大器的第一級運(yùn)放后得到的電壓為:
V1的電壓范圍是0~+5V,然后經(jīng)過運(yùn)算放大器構(gòu)成第二級差分比例運(yùn)算電路。
Vout電壓范圍是-l0~+l0+,它與數(shù)字量0V000xH0V0~~~x相對應(yīng)。FDC7624芯片復(fù)位時,數(shù)字量默認(rèn)為0V0800,對應(yīng)模擬量輸出為l.25+,經(jīng)放大器放大,輸出到驅(qū)動器的實際電壓為0,則電機(jī)停轉(zhuǎn)。
5CAN總線電機(jī)控制單元程序設(shè)計
5.1位置控制算法
筆者采用位置伺服控制的雙??刂扑惴楹诵乃惴▉韺崿F(xiàn)對電機(jī)的控制。在位置伺服控制中,FsP把位置目標(biāo)值sR(k)(由控制計算機(jī)設(shè)定)與當(dāng)前位置值sa(k)(來自正交脈沖編碼單元)進(jìn)行比較,采用對應(yīng)的方法進(jìn)行處理,就能使位置偏差A(yù)s(k)減小。
圖5簡單描述了理想定位過程中偏差A(yù)s(1)和速度0的關(guān)系。
以下分別討論這三個階段:
(1)勻加速階段(0~1l):速度0(1)=am1,達(dá)到0m所需的時間1l=0m/am,本階段的運(yùn)動距離
在本階段終點1=11時的位置偏差A(yù)s1=As0-Asa=As0-0m2/2am。
(2)勻速運(yùn)動階段(11~12):速度0(1)=0m,在本階段終點的位置偏差A(yù)s2=0m2/2am。
(3)勻減速階段(12~13):速度0(1)=0m-am(1-12),偏差
即勻減速階段速度0(1)與位置偏差A(yù)s(1)的關(guān)系為0(1)=√2amAs(1)。
當(dāng)偏差進(jìn)入一定范圍后,常采用線性控制方法。本設(shè)計采用了積分分離控制算法,克服了"積分飽和"現(xiàn)象。
雙模調(diào)節(jié)流程圖如圖6所示。當(dāng)所需行程量比較小(<0m2/2am)時,是沒有勻速調(diào)節(jié)階段的,電機(jī)速度還沒有達(dá)到最大值時就要減速,本流程圖也考慮到了這種情況,故分為大行程、小行程分別處理。
電機(jī)的位置是通過采集編碼器的信號得到的,這里采用的是M法(利用固定采樣時間間隔內(nèi)的編碼器脈沖數(shù)來確定轉(zhuǎn)速和位置),定時時間為0.5ms。在定時中斷處理程序中,采集定時器2計數(shù)器中的數(shù)值,即為當(dāng)前的編碼器位置,該信號與前一時刻的編碼器位置做差,可得到該定時時間內(nèi)電機(jī)軸轉(zhuǎn)過的角度,此信號即為反饋回來的位置信號,與給定位置信號比較得到偏差。
5.2電機(jī)控制網(wǎng)絡(luò)單元程序
本設(shè)計中,電機(jī)控制網(wǎng)絡(luò)單元要對一臺電機(jī)進(jìn)行位置控制。主控制器通過CDN總線接收由CDN-1553B網(wǎng)關(guān)發(fā)送的電機(jī)位置指令,再通過CDN總線發(fā)送給采樣及執(zhí)行節(jié)點,即開始控制電機(jī)運(yùn)動到指定位置。
電機(jī)控制網(wǎng)絡(luò)單元控制流程如圖7所示。
6系統(tǒng)調(diào)試
要實現(xiàn)各模塊軟硬件功能,完成對整套系統(tǒng)的協(xié)調(diào)控制,需按以下步驟對系統(tǒng)進(jìn)行調(diào)試:
(1)硬件調(diào)試:調(diào)試硬件首先應(yīng)保證供電電源的準(zhǔn)確:其次,分別對電路各功能模塊進(jìn)行調(diào)試,保證其功能的實現(xiàn)。
(2)完成單臺電機(jī)的位置伺服控制:進(jìn)行單機(jī)控制算法調(diào)試時,控制器同時完成主控制器與信號采集及執(zhí)行機(jī)構(gòu)的功能。本步主要對控制算法進(jìn)行調(diào)節(jié),確定控制器相關(guān)參數(shù)。
(3)調(diào)試CAN總線電機(jī)控制單元:調(diào)試CAN總線的通信程序,完成主控制器節(jié)點與電機(jī)的信號采集及執(zhí)行機(jī)構(gòu)節(jié)點之間的通信,繪制電機(jī)的階躍響應(yīng)曲線。
(4)將CAN-1553B網(wǎng)關(guān)引入系統(tǒng),進(jìn)行系統(tǒng)聯(lián)調(diào),實現(xiàn)上位機(jī)通過1553B總線與CAN總線電機(jī)控制單元之間的通信。
調(diào)試結(jié)果如下:
(1)給定位置信號為16圈(即16×2500×4=160000個脈沖)時電機(jī)的階躍響應(yīng)曲線如圖8所示。
由圖可以看出,此電機(jī)階躍響應(yīng)的響應(yīng)時間為372.5ms,穩(wěn)態(tài)誤差為0。
(2)給定速度信號為16個脈沖/0.5ms時電機(jī)的響應(yīng)曲線如圖9所示。
給定速度信號16個脈沖/0.5ms時電機(jī)速度響應(yīng)最大誤差為130個脈沖,即4.689。
(3)給定正弦信號時的正弦響應(yīng)曲線如圖10所示。圖中的虛線部分為給定的正弦位置信號。
給定的正弦信號為
其中,256為脈沖數(shù),0.0628055s為周期T。該正弦信號的最大速度為1224(9)/s。
7結(jié)語
MIL-sTD-1553B是國際廣泛采用的多路數(shù)據(jù)總線標(biāo)準(zhǔn),在航空航天等許多軍事領(lǐng)域應(yīng)用廣泛,并逐漸進(jìn)入非軍事應(yīng)用領(lǐng)域,我國也制定了相應(yīng)的軍方標(biāo)準(zhǔn)。不過,1553B總線連接方式并不很簡單,且需花費(fèi)很高的成本。CAN總線由于造價相對比較低廉、市場較易購買成品,在工業(yè)控制領(lǐng)域應(yīng)用極為廣泛?;贒sP和CPLD,筆者設(shè)計了CAN-1553B網(wǎng)關(guān),并且選擇了1553B總線來擔(dān)任電機(jī)控制系統(tǒng)的主總線,其主要用于操作系統(tǒng)與子控制系統(tǒng)之間的通信:為了更好地完成各節(jié)點之間的信息通信,采用了CAN總線作為子系統(tǒng)總線。