应用实例

1.  透明转换  

   透明转换方式下,转换器接收到一侧总线的数据就立即转换发送至另一总线侧。这样以数据流的方式来处理,最大限度地提高了转换器的速度,也提高了缓冲区的利用率,因为在接收的同时转换器也在转换并发送,又空出了可以接收的缓冲区。  

1.1  帧格式

1.1.1   串行总线帧

   可以是数据流,也可以是带协议数据。通讯格式:1 起始位,8 数据位,1停止位。  

1.1.2   CAN 总线帧

   CAN 报文帧的格式不变。  

1.2 转换方式

1.2.1  串行帧转 CAN 报文

   串行帧的全部数据依序填充到 CAN 报文帧的数据域里。转换器一检测到串行总线上有数据后就立即接收并转换。  
   转换成的 CAN 报文的帧类型和帧 ID 来自用户事先的配置,并且在转换过程中帧类型和帧 ID 一直保持不变。数据转换对应格式如图 5.1 所示。  
   如果收到的串行帧长度小于等于 8 字节,依序将字符 1 到 n(n 为串行帧长度)填充到 CAN 报文的数据域的 1 到 n 个字节位置(如图 5.1 中 n 为 7)。  
   如果串行帧的字节数大于 8,那么处理器从串行帧首个字符开始,第一次取8 个字符依次填充到 CAN 报文的数据域。将数据发至 CAN 总线后,再转换余下的串行帧数据填充到 CAN 报文的数据域,直到其数据被转换完。  

1.2.2  CAN 报文转串行帧

   对于 CAN 总线的报文也是收到一帧就立即转发一帧。数据格式对应如图 5.2所示。  
   转换时将 CAN 报文数据域中的数据依序全部转换到串行帧中。如果在配置的时候,“允许 CAN 帧信息转发到串行帧”项被选中,那么转换器会将 CAN 报文的“帧信息”字节直接填充至串行帧。  
   如果“允许 CAN 帧 ID 转发到串行帧”项被选中,那么转换器会将 CAN 报文的“帧 ID”字节全部填充至串行帧。  

1.3  转换示例

1.3.1  串行帧转 CAN 报文

   假设配置的转换成 CAN 报文帧信息为“标准帧”,帧 ID1,ID2 通过“发送标识符”设置为“00,60”,那么转换格式如图 5.3 所示。  

1.3.2 CAN 报文转串行帧

   配置为允许 CAN 报文的“帧信息”转换,不允许 CAN 报文的“帧 ID”转换。CAN 报文和转换后的串行帧如图 5.4 所示。  

2.  透明带标识转换

   透明带标识转换是透明转换的特殊用法,有利于用户通过转换器更方便的组建自己的网络,使用自定义的应用协议。  
   该方式把串行帧中的地址信息转换成 CAN 总线的帧 ID。只要在配置中告诉转换器该地址在串行帧的起始位置和长度,转换器在转换时将提取出这个帧 ID填充在 CAN 报文的帧 ID 域里,作为该串行帧转发时 CAN 报文的 ID。在 CAN报文转换成串行帧的时候也会把 CAN 报文的 ID 转换在串行帧的相应位置。  
   请注意:在该转换模式下,配置软件的“发送标识符”无效,因为此时发送的标识符(帧 ID)由上述的串行帧中的数据填充。  

2.1  帧格式

2.1.1 串行总线帧

   带标识转换时,必须取得完整的串行数据帧,转换器以两帧间的时间间隔作为帧的划分。并且该间隔可由用户设定。串行帧最大长度为缓冲区的长度:2048字节。  
   转换器在串行总线空闲状态下检测到的首个数据作为接收帧的首个字符。传输中该帧内字符间的时间间隔必须小于或等于传输 n 个字符(n 的值由上位机事先配置)的时间。传输一个字符的时间是用该字符包含的位数除以相对应的波特率。  
   如果转换器在接收到一个字符后小于等于 n 个字符的传输时间内没有字符再被接收到,转换器就认为此帧传输结束,将该字符作为此帧的最后一个字符;n 个字符时间之后的字符不属于该帧,而是下一帧的内容。帧格式如图 5.5 所示。

2.1.2  CAN 总线帧

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

2.2  转换方式

2.2.1  串行帧转 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 继续转换直到将串行帧转换完成。  

2.2.2   CAN 报文转串行帧

   对于 CAN 报文,收到一帧就立即转发一帧,每次转发的时候根据事先配置的 CAN 帧 ID 在串行帧中的位置和长度把接收到的 CAN 报文中的 ID 作相应的转换。其它数据依序转发,如图 5.7 所示。  
   请注意:无论是串行帧还是 CAN 报文在应用的时候其帧格式(标准帧还是扩展帧)应该符合事先配置的帧格式要求,否则可能导致通讯不正常。  

2.3  转换示例

2.3.1  串行帧转 CAN 报文

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

2.3.2  CAN 报文转串行帧

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

3.  格式转换(仅支持GCAN-207)

  • FF:   标准帧和扩展帧的标识位,1为扩展帧,0为标准帧。
  • RTR:  远程帧和数据帧的标识位,1为远程帧,0为数据帧。
  • 保留:  保留值为0,不可写入1。
  • D3~D0:  数据长度位,标识该CAN帧的数据长度。
2023-08-21
0 0