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