張騰
徐州徐工鐵路裝備有限公司 江蘇 徐州 221000
CAN總線就是控制器局域網(wǎng)絡(luò),是由德國一家汽車電子產(chǎn)品企業(yè)開發(fā)的,后形成了國際標(biāo)準(zhǔn),當(dāng)前CAN總線在國際上的應(yīng)用十分廣泛,也是汽車計(jì)算機(jī)控制系統(tǒng)中最為常用的總線之一。與普通的通信總線相比,CAN總線有著實(shí)時(shí)性強(qiáng)、開發(fā)周期短的優(yōu)勢(shì),正因如此CAN總線被廣泛應(yīng)用于各個(gè)領(lǐng)域。
隨著信息時(shí)代的到來,人們生產(chǎn)生活節(jié)奏不斷加快,對(duì)于信息傳輸?shù)乃俣扔辛烁叩囊?,因此,想要?shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)處理,就需要不斷提高數(shù)據(jù)物理傳輸路徑的速度。此外,對(duì)于多主網(wǎng)絡(luò)而言,總線的仲裁水平也是判斷網(wǎng)絡(luò)系統(tǒng)的重要標(biāo)準(zhǔn)之一。而在這兩方面CAN總線有著極大的優(yōu)勢(shì)。總線仲裁指的是,在網(wǎng)絡(luò)運(yùn)行的過程中,當(dāng)出現(xiàn)多個(gè)節(jié)點(diǎn)同時(shí)競(jìng)爭(zhēng)主線的情況下,需要對(duì)各節(jié)點(diǎn)進(jìn)行有效控制。常見的總線仲裁方法就是優(yōu)先權(quán)法。節(jié)點(diǎn)優(yōu)先權(quán)就是事先對(duì)網(wǎng)絡(luò)當(dāng)中的各個(gè)節(jié)點(diǎn)確定唯一優(yōu)先級(jí),在網(wǎng)絡(luò)傳輸?shù)倪^程中,如果出現(xiàn)多個(gè)節(jié)點(diǎn)搶占總線的情況,就會(huì)按照優(yōu)先級(jí)進(jìn)行處理,級(jí)別高的優(yōu)先使用總線進(jìn)行數(shù)據(jù)傳輸。相比于普通總線而言,CAN總線傳輸速率相對(duì)較快的原因是利用總線的僅是一些請(qǐng)求總線而尚未做出決定的站,此類請(qǐng)求會(huì)根據(jù)其在系統(tǒng)中的重要性逐個(gè)處理,因此當(dāng)網(wǎng)絡(luò)節(jié)點(diǎn)相對(duì)較多的情況時(shí),這種仲裁方式有著較大的優(yōu)勢(shì)。
在進(jìn)行總線仲裁的過程中,如果僅僅依靠信息的優(yōu)先級(jí)進(jìn)行總線占有權(quán)限分配的話,就會(huì)導(dǎo)致高優(yōu)先級(jí)的實(shí)時(shí)信息量相對(duì)較多,或者高優(yōu)先級(jí)節(jié)點(diǎn)信息傳輸?shù)念l率相對(duì)較高,導(dǎo)致總線經(jīng)常會(huì)被此類節(jié)點(diǎn)占用,其他低優(yōu)先級(jí)節(jié)點(diǎn)難以獲得信息傳輸?shù)臋C(jī)會(huì),若此類信息長時(shí)間被壓制,就可能會(huì)導(dǎo)致系統(tǒng)出現(xiàn)一定問題[1]。
對(duì)于上述常見問題,在實(shí)際應(yīng)用CAN總線的過程中,可以通過將節(jié)點(diǎn)優(yōu)先和信息優(yōu)先權(quán)進(jìn)行有機(jī)結(jié)合,使得CAN總線仲裁的過程中,不僅要考慮節(jié)點(diǎn)的優(yōu)先級(jí)還需要考慮數(shù)據(jù)的類型,以此確??偩€能夠根據(jù)實(shí)際情況進(jìn)行信息的處理和傳輸。
針對(duì)現(xiàn)代工程機(jī)械實(shí)際情況進(jìn)行分析,可知CAN總線網(wǎng)絡(luò)中共包括三種類型的節(jié)點(diǎn),即上位機(jī)節(jié)點(diǎn)、執(zhí)行器節(jié)點(diǎn)以及傳感器節(jié)點(diǎn)。在實(shí)際進(jìn)行消息類型確認(rèn)之前,需要對(duì)通信過程中的消息類型進(jìn)行明確。結(jié)合CAN總線的節(jié)點(diǎn)類型,可知消息類型包括實(shí)時(shí)數(shù)據(jù)、控制命令、報(bào)告數(shù)據(jù)以及數(shù)據(jù)要求指令。其中從傳感器節(jié)點(diǎn)向上位機(jī)節(jié)點(diǎn)以及執(zhí)行器節(jié)點(diǎn)發(fā)送的信息均屬于實(shí)時(shí)數(shù)據(jù)類型;從上位機(jī)節(jié)點(diǎn)向執(zhí)行器或者傳感器節(jié)點(diǎn)發(fā)送的消息屬于控制命令類型;而從執(zhí)行器節(jié)點(diǎn)向上位機(jī)節(jié)點(diǎn)發(fā)送的數(shù)據(jù)信息則屬于報(bào)告數(shù)據(jù);由上位機(jī)節(jié)點(diǎn)傳輸?shù)絺鞲衅鞴?jié)點(diǎn)的信息類型屬于數(shù)據(jù)要求指令。不同節(jié)點(diǎn)之間傳輸?shù)男畔?shù)據(jù)有著不同的功能和作用,因此對(duì)于工程機(jī)械監(jiān)控器的運(yùn)行的意義也不盡相同。
以微芯公司的PICI8F485處理器為例,其中包括USB接口、串行接口、CAN接口以及調(diào)試接口。在該處理器中,RXF和RXM是CAN總線控制器當(dāng)中負(fù)責(zé)接收濾波的寄存器,其中前者負(fù)責(zé)驗(yàn)收碼部分,后者負(fù)責(zé)驗(yàn)收屏蔽部分。在系統(tǒng)進(jìn)行運(yùn)作的過程中,只有接收到的數(shù)據(jù)標(biāo)識(shí)和兩個(gè)寄存器之間滿足一定條件關(guān)系的情況下,才可以進(jìn)行濾波并接受信息。簡(jiǎn)而言之,就是在接收濾波的過程中,當(dāng)接收到的標(biāo)識(shí)符與驗(yàn)收碼寄存器狀態(tài)相一致的情況下,才能夠被接受,否則就會(huì)被拒接。
當(dāng)CAN總線在工程機(jī)械監(jiān)控器當(dāng)中進(jìn)行運(yùn)轉(zhuǎn)的過程中,為了保障總線在信息負(fù)荷過大的情況下可以有序進(jìn)行數(shù)據(jù)傳輸?shù)耐瑫r(shí)能夠符合濾波器運(yùn)行要求,并且避免優(yōu)先級(jí)較高的節(jié)點(diǎn)長時(shí)間占用總線,而阻礙了低優(yōu)先級(jí)節(jié)點(diǎn)的傳輸,經(jīng)分析后,決定將消息類型優(yōu)先權(quán)和節(jié)點(diǎn)優(yōu)先權(quán)策略進(jìn)行有機(jī)結(jié)合,以此提高CAN總線的信息傳輸?shù)膶?shí)效性以及可靠性。并以此為思路對(duì)數(shù)據(jù)標(biāo)識(shí)符進(jìn)行劃分,其中包括發(fā)送節(jié)點(diǎn)標(biāo)識(shí)、數(shù)據(jù)類型標(biāo)識(shí)以及擴(kuò)充位,并明確節(jié)點(diǎn)和數(shù)據(jù)標(biāo)識(shí)內(nèi)容。其中發(fā)送節(jié)點(diǎn)標(biāo)識(shí)包括三種標(biāo)識(shí)類型,即由傳感器節(jié)點(diǎn)發(fā)送的信息,由上位機(jī)節(jié)點(diǎn)發(fā)送的信息以及由執(zhí)行器節(jié)點(diǎn)發(fā)送的信息。數(shù)據(jù)類型標(biāo)識(shí)包括:實(shí)時(shí)數(shù)據(jù)、上位機(jī)到執(zhí)行器節(jié)點(diǎn)的控制指令、上位機(jī)到傳感器節(jié)點(diǎn)的控制指令以及遠(yuǎn)程數(shù)據(jù)要求。并且在設(shè)計(jì)的過程中通過不同的標(biāo)識(shí)符類型對(duì)上述節(jié)點(diǎn)通信消息類型進(jìn)行分別標(biāo)注。例如,從上位機(jī)傳輸?shù)絺鞲衅鞴?jié)點(diǎn)的數(shù)據(jù)要求指令表示為0001 11 XXXXX;從執(zhí)行器傳輸?shù)缴衔粰C(jī)節(jié)點(diǎn)的報(bào)告數(shù)據(jù)用0011 00 XXXXX表示。并通過對(duì)通訊節(jié)點(diǎn)與消息類型的對(duì)應(yīng)關(guān)系,明確得到CAN控制器中屏蔽寄存器和驗(yàn)收碼寄存器中各個(gè)通信節(jié)點(diǎn)的定義。通過上述討論,能夠?qū)AN總線節(jié)點(diǎn)通信協(xié)議的優(yōu)先級(jí)和寄存器中各節(jié)點(diǎn)的定義進(jìn)行明確,這是CAN總線在工程機(jī)械監(jiān)控器節(jié)點(diǎn)通信協(xié)議當(dāng)中的關(guān)鍵環(huán)節(jié),對(duì)于整個(gè)系統(tǒng)高效、可靠的運(yùn)行有著十分重要的意義[2]。
綜上所述,由于CAN總線有著多種節(jié)點(diǎn)類型,因此在進(jìn)行通信的過程中也有著不同的消息類型,而且由于CAN總線協(xié)議摒棄了傳統(tǒng)站地址編碼形式,而是通過通信數(shù)據(jù)塊形式進(jìn)行的編碼,因此對(duì)于節(jié)點(diǎn)個(gè)數(shù)沒有過多限制,還能夠?qū)崿F(xiàn)節(jié)點(diǎn)之間的通信自由。相信在未來工程機(jī)械的發(fā)展過程中,CAN總線將會(huì)發(fā)揮更大的作用。