CAN總線在組合機(jī)床電控系統(tǒng)通信中的應(yīng)用
摘 要:本文分析了目前廣泛應(yīng)用的TI公司TMS320C2000X系列芯片中內(nèi)嵌CAN控制器的特點(diǎn),介紹了CAN總線在組合機(jī)床電控系統(tǒng)間通信的系統(tǒng)設(shè)計與實(shí)現(xiàn),并在其基礎(chǔ)上重點(diǎn)介紹了控制器以及PC機(jī)與CAN總線接口的硬件設(shè)計和應(yīng)用層協(xié)議軟件的設(shè)計思想。
關(guān)鍵詞:組合機(jī)床電控系統(tǒng);CAN總線;DSP;TMS320LF2407A
引言
現(xiàn)代組合機(jī)床裝備了大量的電子設(shè)備來滿足加工精度、加工速度等要求,如果采用常規(guī)的點(diǎn)到點(diǎn)方式,直接把12V/24V電源連到負(fù)載設(shè)備上(如電機(jī)、液壓泵等),用開關(guān)使電路閉合,勢必造成導(dǎo)線數(shù)量不斷增加,而有限的布線空間則在相對減少。此外,這些電控單元還要進(jìn)行復(fù)雜的控制決策運(yùn)算,包括從周邊設(shè)備收集信息,發(fā)出控制命令,再根據(jù)反饋的信息做下一步的決策等。這一過程需要不同的電控單元之間進(jìn)行通信,彼此影響。這些是不能通過簡單的連接所能實(shí)現(xiàn)的。
有多種信息傳輸手段可以實(shí)現(xiàn)不同的電控單元之間的通信,如常用的RS-232、RS-485和CAN。RS-232雖然應(yīng)用廣泛,但是傳輸速率 較低,傳輸距離較短,抗干擾能力較差,而且最重要的是它只適合點(diǎn)對點(diǎn)的連接方式;RS-485也是一個常用的通信規(guī)范,它可以實(shí)現(xiàn)半雙工的總線型的網(wǎng)絡(luò),總線上允許連接多收發(fā)器,即具有多站能力;而CAN(控制器局域網(wǎng))具有現(xiàn)場總線的特征,與RS-485相比,CAN的信號形式更適合于熱插拔,而且它的網(wǎng)絡(luò)層協(xié)議在滿足模塊間通信高實(shí)時性要求的同時,與定時觸發(fā)的TIP相比更適合不定時傳送信息的要求。CAN繼承了集散控制系統(tǒng)(DCS)的優(yōu)點(diǎn),可以更方便地構(gòu)建模塊間通信網(wǎng)絡(luò)。
本文介紹利用CAN總線,實(shí)現(xiàn)組合機(jī)床電控系統(tǒng)間通信的系統(tǒng)設(shè)計與應(yīng)用,給出模塊控制器以及監(jiān)控PC機(jī)的CAN總線接口的硬件設(shè)計,和應(yīng)用層協(xié)議軟件的設(shè)計思路。
系統(tǒng)的描述
● 系統(tǒng)的組成及網(wǎng)絡(luò)結(jié)構(gòu)
系統(tǒng)由監(jiān)控主機(jī)、并聯(lián)組合機(jī)床電控的數(shù)據(jù)采集模塊和CAN總線組成。
本文研究的組合機(jī)床采用了上述CAN總線接口的微處理器系統(tǒng)。該系統(tǒng)包括數(shù)據(jù)采集和加工過程控制兩部分,前者由掛接在CAN總線上的數(shù)據(jù)采集單元完成,主要是從總線上收集有關(guān)組合機(jī)床的運(yùn)行數(shù)據(jù)(由組合機(jī)床上的控制單元提供),進(jìn)行一些基本的數(shù)據(jù)處理和診斷,如有關(guān)傳感器、執(zhí)行器是否失效,然后將有關(guān)數(shù)據(jù)和加工狀況存儲在擴(kuò)展的EPROM中,在適當(dāng)時刻將存儲的數(shù)據(jù)通過RS232總線上傳到監(jiān)控主機(jī)(PC)進(jìn)行分析。實(shí)際上可以直接把PC機(jī)掛接在CAN總線上。加工過程控制運(yùn)行在PC機(jī)上,主要是處理由數(shù)據(jù)采集系統(tǒng)發(fā)送的數(shù)據(jù),如動力頭轉(zhuǎn)速、進(jìn)給量、切削深度等。這種分層處理的好處在于可以更好地利用PC數(shù)據(jù)處理能力以及已有的一些控制軟件資源,并且可以脫機(jī)處理。
監(jiān)控主機(jī)通過CAN總線從各模塊獲取現(xiàn)場控制數(shù)據(jù),監(jiān)控整個系統(tǒng)的工作狀態(tài),控制各模塊的投入和退出,完成人機(jī)對話,響應(yīng)近端和遠(yuǎn)端的操作。
各個組合機(jī)床電控單元間以及模塊與監(jiān)控主機(jī)之間通過CAN連接通信,通信網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)采用總線式結(jié)構(gòu)。
這種結(jié)構(gòu)的特點(diǎn)是多個節(jié)點(diǎn)共用一條傳輸線,結(jié)構(gòu)簡單、成本低;采用無源抽頭連接,可靠性高。信息的傳輸采用CAN通信協(xié)議,線路利用率高。傳輸介質(zhì)為雙絞線,如需進(jìn)一步提高抗干擾能力,還可在控制器和傳輸介質(zhì)之間加接光電隔離。
● 硬件介紹
硬件包括TMS320LF2407A與CAN總線的接口、監(jiān)控機(jī)與CAN的接口。
由于LF2407A內(nèi)嵌CAN控制器,因此它的CAN總線接口只需一個完成電平轉(zhuǎn)換和線路驅(qū)動的驅(qū)動器PCA82C250T。
PCA82C250T是CAN協(xié)議控制器和物理總線的接口,對總線提供差動發(fā)送能力,對CAN控制器提供差動接收能力,完全符合“ISO11898”標(biāo)準(zhǔn)。在CAN總線的網(wǎng)絡(luò)終端,總線上需加一個120Ω的匹配電阻。
監(jiān)控機(jī)使用了工業(yè)控制用PC機(jī),與CAN的接口用一塊CAN總線通信接口適配卡實(shí)現(xiàn),適配卡插在PC機(jī)的擴(kuò)展槽內(nèi)。
● LF2407A的CAN控制器
LF2407A的CAN控制器是一個16位的外設(shè)模塊,可以通過設(shè)置或讀取內(nèi)部寄存器來訪問CAN控制器。LF2407A的CAN控制器由可編程位定時器和6個郵箱組成。郵箱方式是CAN控制器的特點(diǎn),郵箱是一個48×16位的RAM空間,此空間分為6個郵箱,每個郵箱由郵箱標(biāo)識寄存器、郵箱控制寄存器及4×16位的存儲空間組成,其中郵箱0和郵箱1是接收郵箱,郵箱4和郵箱5是發(fā)送郵箱,而郵箱2和郵箱3則可隨意配置成發(fā)送或接收郵箱。CPU以統(tǒng)一的內(nèi)存編址來訪問這些郵箱寄存器。
LF2407A的CAN控制器支持CAN2.0協(xié)議,有自動重發(fā)功能,支持?jǐn)?shù)據(jù)幀和遠(yuǎn)程幀,數(shù)據(jù)收發(fā)采用郵箱方式,可工作在標(biāo)準(zhǔn)模式和擴(kuò)展模式,有可編程位定時器,可編程實(shí)現(xiàn)總線喚醒功能,可對中斷配置編程。TMS320LF2407A芯片的這些特點(diǎn)方便了系統(tǒng)功能的實(shí)現(xiàn)。
CAN網(wǎng)絡(luò)發(fā)送周期
該圖為在其他站處于等待狀態(tài)時,一次成功發(fā)送周期的時序圖,成功發(fā)送周期=傳輸時延+傳輸時間。
由于CAN網(wǎng)絡(luò)的信息傳遞是基于ID優(yōu)先權(quán)的競爭機(jī)制仲裁。當(dāng)t時刻發(fā)生在A節(jié)點(diǎn)仲裁場結(jié)束之前,即有不少于兩個站同時發(fā)送時,需根據(jù)優(yōu)先權(quán)的比較結(jié)果,決定發(fā)送站的成功發(fā)送周期時序。這里的“同時”可定義為,“當(dāng)節(jié)點(diǎn)A發(fā)送信息時,另一個節(jié)點(diǎn)B在t時刻發(fā)送信息,若t時刻發(fā)生在A節(jié)點(diǎn)仲裁場結(jié)束之前,則稱A節(jié)點(diǎn)和B節(jié)點(diǎn)為同時發(fā)送信息”。在仲裁場結(jié)束之后,信息的成功發(fā)送周期由優(yōu)先權(quán)的比較結(jié)果決定。此時,優(yōu)先權(quán)高的占據(jù)總線,信息得以成功發(fā)送,優(yōu)先權(quán)低的發(fā)送失敗,等待下一次發(fā)送。此時若A的優(yōu)先權(quán)高于B的優(yōu)先權(quán),成功發(fā)送周期不變。否則,則成功發(fā)送節(jié)點(diǎn)為B節(jié)點(diǎn),成功發(fā)送周期為B節(jié)點(diǎn)的發(fā)送時間加上兩節(jié)點(diǎn)同時發(fā)送進(jìn)行優(yōu)先權(quán)比較時A節(jié)點(diǎn)的仲裁場時間,即成功發(fā)送周期=傳輸時間+2×最大傳輸時延+仲裁場時間。若t時刻發(fā)送在A節(jié)點(diǎn)仲裁場結(jié)束之后,則B節(jié)點(diǎn)等待下一次發(fā)送,成功發(fā)送周期不變。
CAN控制器的編程
● 包過濾功能的編程
CAN結(jié)點(diǎn)對數(shù)據(jù)包的選擇接收是通過接收包過濾功能來實(shí)現(xiàn)的。在數(shù)據(jù)鏈路層LLC(邏輯鏈路控制)子層實(shí)現(xiàn)數(shù)據(jù)包過濾。只有符合一定條件的數(shù)據(jù)包才會被該節(jié)點(diǎn)接收,其他數(shù)據(jù)包在底層即被丟棄。因此只要在發(fā)送節(jié)點(diǎn)為數(shù)據(jù)包設(shè)置正確的標(biāo)示符,即可將其發(fā)送到指定的一個或多個節(jié)點(diǎn)。利用CAN總線端口驗(yàn)收碼AC,驗(yàn)收屏蔽碼AM,報文標(biāo)識符ID的關(guān)系,即可實(shí)現(xiàn)上述目的。設(shè)目的CAN端口驗(yàn)收碼、驗(yàn)收屏蔽碼分別為AC、AM,則源CAN端口報文標(biāo)識符ID設(shè)置應(yīng)滿足如下條件,(ID.10~I(xiàn)D.3)或(AC.7~AC.0))或(AM.7~AM.0)=11111111B。應(yīng)用中可以靈活設(shè)置CAN節(jié)點(diǎn)的驗(yàn)收碼和驗(yàn)收屏蔽碼,達(dá)到點(diǎn)對點(diǎn),一點(diǎn)對多點(diǎn),以及多主機(jī)的工作方式。[!--empirenews.page--]
● 波特率設(shè)置的編程
CAN總線的傳輸速率與兩個節(jié)點(diǎn)之間最大距離有關(guān),如表1所示。表中還同時給出了LF2407A的可編程位定時器的數(shù)值。這些值還與LF2407A的主時鐘頻率有關(guān),表中的數(shù)值是在主時鐘頻率為16MHz下得到的,一般地可以按下面的公式計算位速率。
波特率=ICLK/[(BRP+1)+BitTime]
其中ICLK為DSP的系統(tǒng)頻率,BRP由總線時序寄存器0(BTR0)決定。
BitTime=(TSEG1+1)+(TSEG2)+1
其中TSEG1和TSEG2由總線時序寄存器1(BTR1)決定。
● 幀結(jié)構(gòu)設(shè)計
按照CAN2.0規(guī)范,CAN總線上傳送的報文由3~11個字節(jié)組成,其中包含3個字節(jié)的控制字節(jié)和0~8個數(shù)據(jù)字節(jié),見表2。
其中,方向位決定一半的優(yōu)先級,而剩余的優(yōu)先級由節(jié)點(diǎn)地址決定,低地址優(yōu)先級為高。當(dāng)方向位為“1”時,地址域是源節(jié)點(diǎn)地址(從節(jié)點(diǎn)到主節(jié)點(diǎn)),優(yōu)先級由地址決定;當(dāng)方向位為“0”時,地址域是目標(biāo)節(jié)點(diǎn)地址(主節(jié)點(diǎn)到從節(jié)點(diǎn)),優(yōu)先級由地址決定。類型的三個比特可以有多個取值,10×為單幀(廣播),111為非結(jié)束多幀(廣播),110為結(jié)束多幀(廣播),00×為單幀(點(diǎn)對點(diǎn)),011為非結(jié)束多幀(點(diǎn)對點(diǎn)),010為結(jié)束多幀(點(diǎn)對點(diǎn))。每幀字節(jié)數(shù)用五個比特表示。忙信號位表示主節(jié)點(diǎn)正在與某一從節(jié)點(diǎn)通信,如果有另外從節(jié)點(diǎn)提出與主節(jié)點(diǎn)通信的要求時,主節(jié)點(diǎn)就向此從節(jié)點(diǎn)發(fā)出忙反饋信號,通知此節(jié)點(diǎn)稍后再與主節(jié)點(diǎn)通信,否則,從節(jié)點(diǎn)會連續(xù)向主節(jié)點(diǎn)提出通信請求,如果一直未收到任何響應(yīng),此節(jié)點(diǎn)會發(fā)出報警信息,從而會造成通信系統(tǒng)的誤操作。控制命令表示該幀所傳送消息的具體意義,可對各個消息(如測量、調(diào)整、控制等)編碼,實(shí)現(xiàn)模塊間的信息交換以及對外界的安全保密。系統(tǒng)的軟件
● 主控節(jié)點(diǎn)的確認(rèn)
為了使連接在一起的組合機(jī)床電控單元模塊能夠協(xié)調(diào)工作,在所有入網(wǎng)的模塊中動態(tài)地確立一個主模塊。所有非主模塊的數(shù)據(jù)基準(zhǔn)取自主模塊。為了適應(yīng)模塊熱插拔的要求,并避免主模塊故障導(dǎo)致系統(tǒng)的工作失常,主模塊是動態(tài)確立的。每隔一定的時間間隔,各個模塊都要廣播一個“爭主”請求,如果有已經(jīng)確立的主模塊,則主模塊廣播一個“反對”應(yīng)答,禁止其他模塊成為主模塊;如果尚未確立主模塊、或者已經(jīng)確立的主模塊因故障而不能發(fā)出“反對”應(yīng)答,則發(fā)出“爭主”請求的模塊就可以成為新的主模塊。利用多主競爭的原則,在某一主機(jī)失效的情況下,由其他從機(jī)競爭成為主模塊,代替原有主機(jī)的地位,這樣的機(jī)制可以保證整個系統(tǒng)不會因?yàn)橐慌_通信主節(jié)點(diǎn)的癱瘓造成整個組合機(jī)床電控單元間通信系統(tǒng)的癱瘓。
● 監(jiān)控主機(jī)的軟件
用一臺工控機(jī)作為監(jiān)控機(jī),通過適配卡與CAN連接。在監(jiān)控機(jī)上用VB6.0編寫監(jiān)控的操作軟件,并且把監(jiān)控機(jī)作為局域網(wǎng)上的一臺操作服務(wù)器,用戶通過它可以對各個模塊進(jìn)行操作。
結(jié)束語
本文介紹了TI公司TMS320LF2407A芯片中內(nèi)嵌CAN控制器的特點(diǎn),并在其基礎(chǔ)上把CAN總線技術(shù)應(yīng)用在組合機(jī)床電控數(shù)據(jù)通信系統(tǒng)的設(shè)計與實(shí)現(xiàn)中,該系統(tǒng)主要采用了高性能的DSP芯片和適配卡,通過靈活的通信協(xié)議和接口的設(shè)計,使系統(tǒng)滿足CAN總線短突發(fā)、高實(shí)時性、高數(shù)據(jù)率的要求。此系統(tǒng)還可以應(yīng)用到其他工業(yè)控制領(lǐng)域,具有廣泛的應(yīng)用前景。
參考文獻(xiàn)
1 靳自愚.RS-232接口方法與范例.海洋出版社.1992
2 童曉陽.基于CAN總線的分布式絕緣在線監(jiān)測系統(tǒng)的設(shè)計與實(shí)現(xiàn).電力系統(tǒng)自動化.2003.第27卷第1期
3 H.Kopetz, A Comparison of CAN and TIP, Annual Reviews in Control 24(2000)
4 樓少敏.基于零件工藝分析的可重組機(jī)床設(shè)計研究.浙江大學(xué)碩士學(xué)位論文.2000.6
5 Jose Luis Sevillano, Analysis of channel utilization for controller area networks,Computer Communications 21 (1998)
6 TMS320LF/LC240XA DSP Controllers Reference Guide System and Peripherals. Texas Instruments Inc.2002