<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 詳解串口轉換CAN模塊“透明帶標識轉換”

詳解串口轉換CAN模塊“透明帶標識轉換”

作者:ZLG致遠電子 時(shí)間:2019-01-09 來(lái)源:電子產(chǎn)品世界 收藏

  UART轉的應用已廣泛應用于各行各業(yè),因此對于數據幀轉換的形式要求也逐漸增多,目前主流的轉換形式包括透明轉換、透明帶標識轉換以及自定義轉換。具體是如何實(shí)現?本文將為大家介紹其中的透明帶標識轉換。

本文引用地址:http://dyxdggzs.com/article/201901/396555.htm

  1 . 適用場(chǎng)景

  模塊在什么時(shí)候需要用到呢?一是老產(chǎn)品面臨升級,需要用到總線(xiàn)通信,但硬件平臺中的MCU沒(méi)有集成CAN總線(xiàn)的控制器。二是選用的MCU已經(jīng)包含CAN總線(xiàn)接口,但數量上不能滿(mǎn)足項目需求。若出現類(lèi)似以上兩種情況且MCU有閑置,則可以選用轉CAN模塊解決。

  

  圖1 應用行業(yè)

  2 . 使用方法

  該類(lèi)模塊可以很方便地嵌入到具有UART接口的設備中,在不需改變原有硬件結構的前提下使設備獲得CAN-bus通訊接口,實(shí)現具有UART設備和CAN-bus網(wǎng)絡(luò )之間的數據通訊。工業(yè)級的轉換模塊內部還包括實(shí)現帶隔離的CAN和UART轉換所必須的模擬和數字器件、光電耦合器、DC/DC變換器、CAN-bus接口等。

  

  圖2 產(chǎn)品架構

  3 . 格式說(shuō)明

  CSM100系列模塊提供3種協(xié)議轉換方式:透明轉換、透明帶標識轉換、自定義協(xié)議轉換。上篇文章已介紹過(guò)透明轉換模式的轉換方法,本文將以CSM100系列的模塊簡(jiǎn)述模塊的透明帶標識轉換格式。

  該轉換模式串行幀中的“幀ID”自動(dòng)轉換成CAN報文中的幀ID。只要在配置中告訴模塊該“幀ID”的地址編號在串行幀的起始位置和長(cháng)度,模塊在轉換時(shí)提取出這個(gè)“幀ID”填充在CAN報文的幀ID域里,作為該串行幀轉發(fā)時(shí)的CAN報文的幀ID。在CAN報文轉換成串行幀的時(shí)候也把CAN報文幀ID轉換在串行幀的相應位置。

  

  圖3 轉換方式

  對比“透明轉換”模式和“透明帶標識”模式不難發(fā)現它們之間的區別:CAN ID信息來(lái)自串口流數據中還是來(lái)自模塊本身的配置信息中。由于“透明轉換”模式下的CAN ID來(lái)自模塊配置信息,配置信息由上位機軟件提供,因此對于使用此模式的節點(diǎn)來(lái)說(shuō)發(fā)送的幀ID是固定的。而“透明帶標識”模式下不同,它可以一個(gè)節點(diǎn)發(fā)送多個(gè)幀ID 的CAN幀。

  4 . 轉換形式

  串行幀的最大緩沖區長(cháng)度為255個(gè)字節,且處于該模式時(shí)串行接收設置有超時(shí)時(shí)間,即在一定時(shí)間內收不到串口數據則默認打包為一幀發(fā)送。因此,在透明帶標識轉換模式下,必須保證模塊取得完整的串行數據幀,否則會(huì )造成分包錯誤。

  

  圖4 分包方式

  透明帶標識轉換模式下,串行幀轉為CAN報文時(shí)的形式如圖5。需要注意的是,串行幀中所帶有的CAN報文“幀ID”在串行幀中的起始地址和長(cháng)度可由配置設定。起始地址的范圍是0~7,長(cháng)度范圍分別是1~2(標準幀)或1~4(擴展幀)。如果在配置中指定幀類(lèi)型為標準幀,幀ID信息起始地址為3長(cháng)度為1,則幀ID的有效位只有8位。地址3中的CAN ID1作為標準幀ID的高8位,其余位全部補0。

  

  圖5 串行幀到CAN幀

  透明帶標識轉換模式下, CAN報文轉為串行幀時(shí)的形式如圖6。若同樣配置CAN幀信息為標準幀,幀ID信息為起始3長(cháng)度1,則轉換時(shí)將丟失ID0的數據。此時(shí)CAN幀 中的數據能正常被接收,但必然缺失幀ID信息(ID0本身不全為0時(shí))。為了正常轉換標準幀的幀ID信息,下圖的轉換情景必須將幀ID信息中的幀長(cháng)度設置為2。

  

  圖6 CAN幀到串行幀

  4 . 轉換示例

  假設CAN報文“幀ID”在串行幀中的起始地址是2,長(cháng)度是3(擴展幀情況下),串行幀發(fā)送的數據分別為0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,則轉換結果如圖7。

  

  圖7 示例1

  若配置起始地址是2,長(cháng)度是3(擴展幀情況下),CAN報文的幀ID為0x00123456,數據為0x55,0x55,0x55,0x55,0x55,0x55則轉換結果如圖8。

  

  圖8 示例2

  4 .總結

  以上為串口轉CAN“透明帶標識”模式下的的轉換方式,該模式特點(diǎn)是可以靈活設定一個(gè)節點(diǎn)發(fā)送的CAN幀ID信息。筆者將介紹透明轉換、透明帶標識轉換、自定義協(xié)議轉換以及moudbus轉換的內容,歡迎關(guān)注往期及后期文章。



關(guān)鍵詞: 串口 CAN

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>