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