跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YT SDK
  4. B1MC0 uds协议

B1MC0 uds协议

已定时 已固定 已锁定 已移动 YT SDK
29 帖子 2 发布者 1.1k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • jiankang_wangJ 离线
    jiankang_wangJ 离线
    jiankang_wang YunTu
    写于 最后由 编辑
    #21

    对比一下字节序是不是正确的。最后把芯片flash上的部分数据是多少拉出来对比一下。

    1 条回复 最后回复
    0
    • wenqiangW 离线
      wenqiangW 离线
      wenqiang
      写于 最后由 编辑
      #22

      我读取了第一个数据,但是我CANoe脚本是通过单个字节查表方式计算的。
      image.png

      image.png

      1 条回复 最后回复
      0
      • jiankang_wangJ 离线
        jiankang_wangJ 离线
        jiankang_wang YunTu
        写于 最后由 编辑
        #23

        可以调试的话,建议四个字节四个字节对比着算。用你提到的工具先算四个字节的数据,与芯片实际写入到crc寄存器的一个word的结果做比较。如果第一个word计算结果是ok的,说明还是末尾处理的有问题,如果第一个word就算错了,那就是你crc设置的问题,可能原因有这些:

        • crc多项式不匹配
        • crc配置不一样
        • 数据不一样
        1 条回复 最后回复
        0
        • wenqiangW 离线
          wenqiangW 离线
          wenqiang
          写于 最后由 编辑
          #24

          这些配置在哪里设置呢?另外还有个问题需要请教,由于boot demo只有物理寻址没有功能寻址,我新增了功能寻址直接link到一起,但是这样有个问题在刷写过程中36服务发送后等待回复30的时候一帧3E服务会打断本该回复的30,请问这种情况该如何解决。

          image.png

          image.png

          1 条回复 最后回复
          0
          • jiankang_wangJ 离线
            jiankang_wangJ 离线
            jiankang_wang YunTu
            写于 最后由 编辑
            #25

            CRC 对应的寄存器地址如下:
            9932eeef-eeb9-4d0e-94c2-540d64ff68fb-image.png
            uds_can 写入CRC集成器代码的位置在 platform/drivers/src/crc/crc_driver.c 的 CRC_DRV_WriteData32 函数。

            此外。后面提到的问题是否是CRC计算不对问题的一部分?如果后面有消息被中止了,没有做什么处理,CRC就应该是计算出错的。


            在发送完首帧后,紧接着发送一个相同地址的单帧,会被认为是非法的:
            b9c34570-dbe6-46f9-aa54-d28dfa297bc9-image.png

            从而导致首帧的传输被中止。

            可以通过以下几种方式规避:

            • 更改两帧消息的地址为不同的地址
            • 上位机处理。加个状态机检测当前是否有长消息在发送过程中,如果有长消息就先不发送单帧。
            • 下位机监听Tp层的错误,在Tp层的消息被中断时会通过 callback 报告:CANTP_CORE_N_UNEXP_PDU, 用户通过该 callback 增加消息传输中止导致的数据缺失问题。
            1 条回复 最后回复
            0
            • wenqiangW 离线
              wenqiangW 离线
              wenqiang
              写于 最后由 编辑
              #26

              与CRC问题无关。有更详细的解决方法吗,1、有没有在只有物理寻址的code上面新增功能寻址的demo可以参考。2、车端没法推动。3、没懂怎么改。

              1 条回复 最后回复
              0
              • jiankang_wangJ 离线
                jiankang_wangJ 离线
                jiankang_wang YunTu
                写于 最后由 编辑
                #27

                新增一个物理地址应该是最简单的解决方式。可以参考 can_stack 的 demo,里面有配置不同通道和地址的设置。
                ddd4b713-3a4c-4cce-8e25-34e43bcf684a-image.png

                1 条回复 最后回复
                0
                • wenqiangW 离线
                  wenqiangW 离线
                  wenqiang
                  写于 最后由 编辑
                  #28

                  新增后,响应服务的接口还是跟物理寻址一样吗

                  image.png

                  1 条回复 最后回复
                  0
                  • wenqiangW 离线
                    wenqiangW 离线
                    wenqiang
                    写于 最后由 编辑
                    #29

                    image.png找到了需要在uds_stack新增,非常感谢

                    1 条回复 最后回复
                    0

                  • 云途开发生态介绍

                    快速上手云途开发生态

                  • 云途论坛规则/Yuntu Forum Rules

                    发帖前请查看

                  • YT CONFIG TOOL调查问卷

                    帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

                  • demo
                    19
                    can
                    18
                    uds
                    11
                    lin stack
                    7
                    fbl
                    5
                    yt-link
                    5
                    md14
                    4
                    adc模块
                    3
                    Online Users
                    mcM
                    mc
                    • 登录

                    • 登录或注册以进行搜索。
                    • 第一个帖子
                      最后一个帖子
                    0
                    • 版块
                    • 最新
                    • 标签
                    • 热门