趣百科

串口转CAN模块-透明带标识转换模式应用实例

编辑:Simone 2024-12-09 10:03:06 517 阅读

串口转CAN模块-透明带标识转换模式应用实例

串口转CAN模块是一款将串口设备与CAN总线设备连接起来的模块,前两天入手了一款串口转CAN模块设备(GCAN-201),它的工作模式之一就是透明带标识转换模式,下面我就以GCAN-201为例,为大家说说串口转CAN模块-透明带标识转换模式应用实例。

透明带标识转换是透明转换的特殊用法, 有利于用户通过转换器更方便的组建自己的网络, 使用自定义的应用协议。

该方式把串行帧中的地址信息转换成 CAN 总线的帧 ID。 只要在配置中告诉转换器该地址在串行帧的起始位置和长度, 转换器在转换时将提取出这个帧 ID填充在 CAN 报文的帧 ID 域里, 作为该串行帧转发时 CAN 报文的 ID。

在 CAN报文转换成串行帧的时候也会把 CAN 报文的 ID 转换在串行帧的相应位置。

请注意: 在该转换模式下, 配置软件的“ 发送标识符” 无效, 因为此时发送的标识符( 帧 ID) 由上述的串行帧中的数据填充。

串行总线帧:

带标识转换时, 必须取得完整的串行数据帧, 转换器以两帧间的时间间隔作为帧的划分。 并且该间隔可由用户设定。 串行帧最大长度为缓冲区的长度: 2048字节。

转换器在串行总线空闲状态下检测到的首个数据作为接收帧的首个字符。传输中该帧内字符间的时间间隔必须小于或等于传输 n 个字符( n 的值由上位机事先配置) 的时间。 传输一个字符的时间是用该字符包含的位数除以相对应的波特率。

如果转换器在接收到一个字符后小于等于 n 个字符的传输时间内没有字符再被接收到, 转换器就认为此帧传输结束, 将该字符作为此帧的最后一个字符;

如果转换器在接收到一个字符后小于等于 n 个字符的传输时间内没有字符再被接收到, 转换器就认为此帧传输结束, 将该字符作为此帧的最后一个字符;

CAN总线帧:

CAN 报文的格式不变, 只是 CAN 相应的帧 ID 也会被转换到串行帧中。

串行帧转 CAN 报文:

串行帧中所带有的 CAN 的标识在串行帧中的起始地址和长度可由配置设定。起始地址的范围是 1~7, 长度范围分别是 1~2( 标准帧) 或 1~4( 扩展帧)。转换时根据事先的配置, 将串行帧中的 CAN 帧 ID 对应全部转换到 CAN 报文的帧 ID 域中( 如果所带帧 ID 个数少于 CAN 报文的帧 ID 个数, 那么在 CAN报文的填充顺序是帧 ID1~4, 并将余下的 ID 填为 0), 其它的数据依序转换, 如图 5.6 所示 。

如果一帧 CAN 报文未将串行帧数据转换完, 则仍然用相同的 ID 作为 CAN报文的帧 ID 继续转换直到将串行帧转换完成。

CAN 报文转串行帧:

对于 CAN 报文, 收到一帧就立即转发一帧, 每次转发的时候根据事先配置的 CAN 帧 ID 在串行帧中的位置和长度把接收到的 CAN 报文中的 ID 作相应的转换。 其它数据依序转发, 如图 5.7 所示。

请注意: 无论是串行帧还是 CAN 报文在应用的时候其帧格式( 标准帧还是扩展帧) 应该符合事先配置的帧格式要求, 否则可能导致通讯不正常。

串行帧转 CAN 报文:

假定 CAN 标识在串行帧中的起始地址是 1, 长度是 3( 扩展帧情况下), 串行帧的和转换成的 CAN 报文结果如图 5.8 所示。 其中, 两帧 CAN 报文用相同的 ID 进行转换。

CAN 报文转串行帧:

假定配置的 CAN 标识在串行帧中的起始地址是 1,长度是 3 ( 扩展帧情况下),CAN 报文和转换成串行帧的结果如图 5.9 所示。

版权声明:本站【趣百科】文章素材来源于网络或者用户投稿,未经许可不得用于商用,如转载保留本文链接:https://www.qubaik.com/life/100811.html

相关推荐