現(xiàn)場總線作為工業(yè)自動(dòng)化系統(tǒng)中最后一段通訊的橋梁,越來越多的傳感器和執(zhí)行機(jī)構(gòu)都集成了CAN總線之類的通訊接口,但其固化的幾個(gè)通訊數(shù)據(jù)格式,面對當(dāng)前眾多復(fù)雜的大系統(tǒng),時(shí)常會(huì)給設(shè)計(jì)者帶來底層數(shù)據(jù)沖突的困擾,如何完美解決這一難題,至關(guān)重要。
一、問題描述
大家都知道,一個(gè)CAN網(wǎng)絡(luò)中不同節(jié)點(diǎn)發(fā)出的報(bào)文的ID也應(yīng)是不同的,否則當(dāng)ID沖突的兩個(gè)節(jié)點(diǎn)同時(shí)上傳數(shù)據(jù)時(shí)會(huì)產(chǎn)生錯(cuò)誤。但是我們時(shí)常會(huì)發(fā)現(xiàn)某些CAN接口的傳感器或者控制器的報(bào)文ID是固定的,不具備硬件地址區(qū)分。以下圖為例,某電機(jī)控制器有三條標(biāo)準(zhǔn)幀功能報(bào)文,ID分別為00001、00002、00003。那么如何在同一個(gè)CAN網(wǎng)絡(luò)中使用多個(gè)同樣的電機(jī)控制器既可以防止ID沖突又可以識別硬件地址呢?
二、解決方案
針對這一問題,可以將致遠(yuǎn)電子的CAN網(wǎng)橋CANbridge+加裝在各個(gè)設(shè)備與總線之間,利用其ID映射功能,將每臺設(shè)備的功能ID映射為一個(gè)帶地址字段的新ID。這樣既可以防止設(shè)備上傳的報(bào)文產(chǎn)生ID沖突錯(cuò)誤,又可以通過添加的地址字段區(qū)分不同的設(shè)備。如下圖所示,將標(biāo)準(zhǔn)幀ID的高8位定義為地址字段,這樣就可以通過ID區(qū)分不同設(shè)備的上行下行報(bào)文。
三、設(shè)置流程
1、波特率設(shè)置
使用通訊線連接CANbridge+和PC機(jī),打開CANCfg軟件,在基本信息選項(xiàng)卡里點(diǎn)擊CAN1、CAN2波特率的下拉菜單,均選擇所接CAN設(shè)備的對應(yīng)波特率。
2、幀映射設(shè)置
在幀映射選項(xiàng)卡里點(diǎn)擊使能幀映射,假定網(wǎng)橋的CAN1端口連接CAN設(shè)備,網(wǎng)橋的CAN2端口連接CAN網(wǎng)絡(luò)。添加如下圖所示的映射關(guān)系,即可將1號設(shè)備的所有功能ID關(guān)聯(lián)上硬件地址。同樣對其他設(shè)備連接的CAN網(wǎng)橋做類似的設(shè)置,即可實(shí)現(xiàn)相同CANID設(shè)備的組網(wǎng)。