于金杰
[摘 要]目前,CAN(Controller Area Network)總線已經(jīng)推廣到鐵路行業(yè),主要是利用CAN總線實(shí)現(xiàn)采集監(jiān)測設(shè)備與采集處理器的通信。
[關(guān)鍵詞]CAN總線,采集監(jiān)測設(shè)備,采集處理器
中圖分類號:TP274.4 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-914X(2016)16-0349-01
1、 CAN總線的主要特點(diǎn)
CAN總線應(yīng)用領(lǐng)域越來越廣泛主要是因?yàn)槠浔旧砭哂械奶攸c(diǎn)。
1) CAN為多主方式工作、網(wǎng)絡(luò)上任一節(jié)點(diǎn)均可在任意時刻主動的向網(wǎng)絡(luò)上其他節(jié)點(diǎn)發(fā)送信息,而不分主從;當(dāng)多個節(jié)點(diǎn)同時發(fā)送時,依據(jù)報(bào)文的優(yōu)先級而不是節(jié)點(diǎn)的優(yōu)先級進(jìn)行總線訪問控制。
2) CAN采用非破壞性總線仲裁技術(shù)。當(dāng)多個節(jié)點(diǎn)同時向總線發(fā)送信息出現(xiàn)沖突時,高優(yōu)先級的節(jié)點(diǎn)可不受影響地繼續(xù)傳輸數(shù)據(jù),從而大大節(jié)省了總線沖突仲裁時間,保證了高優(yōu)先級節(jié)點(diǎn)傳輸報(bào)文的實(shí)時性要求。
3) CAN節(jié)點(diǎn)只需通過對報(bào)文的標(biāo)識符濾波即可實(shí)現(xiàn)點(diǎn)對點(diǎn)、一點(diǎn)對多點(diǎn)及全局廣播等幾種方式傳送接收數(shù)據(jù)。
4) 很遠(yuǎn)的數(shù)據(jù)傳輸距離(長達(dá)10km)。
5) 高速的數(shù)據(jù)傳輸速率(高達(dá)1Mbps)。
6) 可根據(jù)報(bào)文的ID決定接收或者屏蔽該報(bào)文。
正是基于CAN總線的這些特點(diǎn),CAN總線被應(yīng)用于越來越多的通信領(lǐng)域。
2、 CAN總線傳輸介質(zhì)
電氣傳輸介質(zhì)使用方式:兩線總線、單線總線、共用一條線傳輸信號和供電。
在現(xiàn)有的鐵路設(shè)備CAN通信中,多使用兩線總線。兩線總線提供差分信號的傳輸,因此可以抑制共模誤差,即使在非常低的信號電平下也能保證信號的可靠傳輸。在兩線傳輸時,必須在總線的每一端接一個電阻(建議值為120Ω),以避免出現(xiàn)信號反射。
在現(xiàn)場使用過程中,出現(xiàn)過多達(dá)38個區(qū)段的監(jiān)測數(shù)據(jù)出現(xiàn)異常,主要現(xiàn)象是同一數(shù)據(jù)幀會重復(fù)出現(xiàn)幾次甚至幾十次,不僅增加了采集處理器的工作量,還會造成CAN線擁堵,影響通信。經(jīng)過檢查是監(jiān)測CAN總線末端未加入120歐姆匹配電阻,造成CAN總線內(nèi)信號反射,使數(shù)據(jù)成百上千倍的增加,造成CAN總線阻塞。通過在每路CAN總線末端加入120歐姆終端電阻,杜絕CAN總線上的信號反射,保障CAN總線通訊質(zhì)量。
3、 CAN協(xié)議通信模式
CAN網(wǎng)絡(luò)是一個基于連接的主從式網(wǎng)絡(luò),有一個主控設(shè)備來管理網(wǎng)絡(luò)上的其他設(shè)備,并監(jiān)控整個網(wǎng)絡(luò)的功能;各個從設(shè)備之間不能直接進(jìn)行通信。CAN協(xié)議支持主從通信模式和事件觸發(fā)通信模式。事件觸發(fā)通信模式用于從站設(shè)備主動向主站中傳送數(shù)據(jù)報(bào)文;主從通信模式用于主站設(shè)備對于從站設(shè)備的訪問。
4、 CAN協(xié)議通信模式在鐵路設(shè)備中的應(yīng)用
1) 事件觸發(fā)通信模式
在這種通信模式下,采集監(jiān)測設(shè)備可以定時循環(huán)向采集處理器發(fā)送數(shù)據(jù),或者在設(shè)定的條件下向采集處理器發(fā)送數(shù)據(jù),具體執(zhí)行過程見圖-1。
在實(shí)際使用中,采集監(jiān)測設(shè)備定時6s向采集處理器發(fā)送全部的模擬量和開關(guān)量;當(dāng)判斷采集的模擬量或開關(guān)量發(fā)生了變化,則立刻將變化的模擬量和開關(guān)量發(fā)送給采集處理器,在這個過程中定時6s及模擬量和開關(guān)量變化即是觸發(fā)事件。
2) 主從通信模式
主從通信方式即命令/應(yīng)答通信方式:通信由采集處理器發(fā)起,接收到命令幀的采集監(jiān)測設(shè)備返回應(yīng)答幀。在新型的鐵路采集監(jiān)測設(shè)備中多數(shù)采用這種通信模式,它逐漸代替了事件觸發(fā)通信模式。
主從通信模式分為點(diǎn)對點(diǎn)式和廣播式兩種方式。
①點(diǎn)對點(diǎn)式是采集處理器和一個采集監(jiān)測設(shè)備進(jìn)行通信。采集監(jiān)測設(shè)備接收到命令幀并處理完請求后返回相應(yīng)的應(yīng)答幀給采集處理器,具體執(zhí)行過程見圖-2。
在這種模式中一個完整的通信過程包括采集處理器的請求命令和采集監(jiān)測設(shè)備的應(yīng)答,實(shí)現(xiàn)通信的關(guān)鍵是采集處理器能夠準(zhǔn)確的接收到命令幀。
每個采集監(jiān)測設(shè)備必須有自己唯一的標(biāo)識用以區(qū)分其他設(shè)備。在DSP28335硬件平臺上,通過對配置郵箱MSGID寄存器(DSP28335中郵箱標(biāo)識符寄存器[1])的ID域配置來實(shí)現(xiàn),ID域固定的位置可以包括設(shè)備的類型、設(shè)備的地址、優(yōu)先級、方向等多種信息,這些由通信協(xié)議確定,通過設(shè)備類型和設(shè)備地址就可以確定唯一的一臺設(shè)備。在通信過程中只有當(dāng)采集處理器發(fā)出的命令幀中包含的幀頭信息與采集監(jiān)測設(shè)備接收命令的郵箱ID域配置一致,指定的采集監(jiān)測設(shè)備才能接收到命令幀,且只有一臺采集監(jiān)測設(shè)備能滿足要求。這種通信方式在未接收到采集處理器的請求時采集監(jiān)測設(shè)備是不會傳輸數(shù)據(jù)的。
②廣播式是采集處理器同時發(fā)送一種請求命令幀給所有采集監(jiān)測設(shè)備,它的通信過程與點(diǎn)對點(diǎn)式類似,只是滿足命令幀要求的設(shè)備為多臺。
在命令幀中忽略設(shè)備類型、設(shè)備地址等具有標(biāo)識性的信息。在DSP28335硬件平臺,所有的采集監(jiān)測設(shè)備要將接收命令的郵箱MSGID寄存器的ID域配置成相同,同時也忽略掉設(shè)備類型、設(shè)備地址等具有標(biāo)識性的信息。
5、數(shù)據(jù)發(fā)送與接收
1) CAN報(bào)文的發(fā)送分為查詢控制發(fā)送和中斷控制發(fā)送。
查詢控制發(fā)送:當(dāng)在發(fā)送報(bào)文時,發(fā)送緩沖區(qū)對寫操作是鎖定的,這樣CPU必須檢查狀態(tài)寄存器的發(fā)送緩沖區(qū)狀態(tài)標(biāo)志,以確定是否可以將一個新報(bào)文寫入發(fā)送緩沖區(qū)。
①當(dāng)發(fā)送緩沖區(qū)被鎖定時,CPU周期性地查詢狀態(tài)寄存器,等待發(fā)送緩沖區(qū)被釋放。
②當(dāng)發(fā)送緩沖區(qū)被釋放時,CPU將新報(bào)文寫入發(fā)送緩沖區(qū),并置位命令寄存器的發(fā)送請求標(biāo)志,該標(biāo)志導(dǎo)致發(fā)送的啟動。當(dāng)發(fā)送完成狀態(tài)置位1時,表明CAN報(bào)文已發(fā)送成功。
中斷控制發(fā)送:將CAN報(bào)文寫入發(fā)送緩沖區(qū)和置位發(fā)送請求與查詢控制類似。
①當(dāng)發(fā)送緩沖區(qū)被鎖定時,CPU必須將報(bào)文臨時保存到數(shù)據(jù)存儲器中,并置位軟件標(biāo)志“還有報(bào)文”用于指示有新的報(bào)文等待發(fā)送。在結(jié)束當(dāng)前運(yùn)行的發(fā)送時啟動中斷服務(wù)程序,在中斷服務(wù)程序中進(jìn)行下一個發(fā)送報(bào)文的起始處理。
②當(dāng)發(fā)送緩沖區(qū)被釋放時,CPU將新報(bào)文寫入發(fā)送緩沖區(qū),并置位發(fā)送請求標(biāo)志。在發(fā)送結(jié)束時CAN控制器產(chǎn)生一個發(fā)送中斷。
2) CAN報(bào)文的接收分為查詢控制接收和中斷控制接收。
查詢控制接收:CPU以一定周期讀取CAN控制器的狀態(tài)寄存器以檢查接收緩沖區(qū)狀態(tài)標(biāo)志指示是否至少接收到一個報(bào)文。
①接收緩沖區(qū)狀態(tài)標(biāo)志指示“空”,即沒有接收到報(bào)文;在沒有新的檢查接收緩沖區(qū)狀態(tài)的要求之前,CPU繼續(xù)當(dāng)前的任務(wù)。
②接收緩沖區(qū)狀態(tài)標(biāo)志指示“滿”,即已接收到一個或是多個報(bào)文;CPU從CAN控制器讀取第一個報(bào)文并置位命令寄存器中的釋放接收緩沖區(qū)標(biāo)志。
中斷控制接收:已接收一個報(bào)文,該報(bào)文通過驗(yàn)收濾波器并放入接收FIFO中,則產(chǎn)生一個接收中斷。CPU能夠立即響應(yīng)將接收到的報(bào)文傳送到自身的報(bào)文存儲器,并置位命令寄存器的釋放緩沖區(qū)標(biāo)志。
6、總結(jié)
論文描述了CAN總線的特點(diǎn),并通過實(shí)際使用分析了CAN傳輸介質(zhì)及終端120Ω電阻在實(shí)現(xiàn)正常通信過程中的重要作用;介紹了CAN協(xié)議的幾種通信模式在鐵路設(shè)備中的應(yīng)用;最后對數(shù)據(jù)的發(fā)送和接收方式進(jìn)行了簡單的介紹。
參考文獻(xiàn)
[1] 劉陵順,高艷麗,張樹團(tuán),王昉. TMS320F28335DSP原理及開發(fā)編程[M].北京航空航天大學(xué)出版社,2011.