zoukankan      html  css  js  c++  java
  • 案例分析 CAN OPEN 调试记录 进度

    2020.12.29

    发现一片博客:https://blog.csdn.net/harrycomeon/article/details/94650103

    需要一个硬件:CAN分析仪,网上200元左右.

     

    是因为can总线是通过两条线上的电压对比,???

    所以,需要阻抗匹配,也就是发射出来的电压信号,???

    通过线路传输后,达到终端,然后从终端测量的电压应该不失真才是好的.???

    上面是自己的想法,下面是从网上搜到的:https://rf.eefocus.com/article/id-332676?from=groupmessage&isappinstalled=0

    目前搭建了一个环境:

    1.用的是广成科技的can分析仪:

    厂家GCAN

    型号USBCAN-I

    2.用了一个stm32开发板

    从stm32的开发板上引出can口

    3.烧写了一个程序:

    自己写的F:do22C90DK_F04_独立缓存can和串口备份23 新ProjectSTM32F4xx_StdPeriph_TemplatesMDK-ARM

    这个程序,就是发送字符串:'1234'

    波特率设置:

     调用最终接口:

     然后用,GCAN厂家的can分析仪的上位机,得到的数据:

    目前有个问题,发射can的板子会死机,我把看门狗去掉之后,就会死在那里???

    然后,接收的板子是正常的.没有问题...

    之后,两个板子都试过了,然后发射的时候500K,发一段时间都会死机...

    然后如果不接收,之后就不会死了...  就是can那边不接线,就不会死掉...

    当初没有感觉,,,也没有进行摇摆,???

     

    2020.12.31

    今天调节can底层,主要是把速度提高到500K;

    这里用的是正点原子的开发板,

    然后,它的板子跑起来没问题,目前速度是1s发送一次.

    然后,用正点原子的开发板,速度提高,10ms发送一次,还是没有问题.

    然后,速度提高到1ms发送一次,也没有什么问题.

    而且一直在用0号邮箱.没有变过.

    然后用公司的板子,1s发送一次也没有问题, 这里的一次是指一帧.

    如果频率快了就不行了.

    目前找到了一个问题点:

    这里:

    用公司的开发板,用正点原子的程序:

     上面一次是 cnt '计数'  : mbox,i : '邮箱号', 'i的计数'   其中i的计数是等待邮箱那里.

    目前从上面串口输出可以看到,cnt 是38的时候,邮箱还是0

    然后cnt是39的时候,邮箱就是1了,这里是有问题的.

     所以查一下,为什么邮箱号会由0变成1.

    2021.01.04

    如果要把stm32的f407程序移植到f429就需要 修改启动文件.

    今天用的项目名称是:can20201229_2_fromkfb

    在stm32中如果返回的邮箱号是0x04,就是代表没有邮箱占用了.

    为什么会出现下面的错误:(下面的错误主要是因为 .h 头文件中的问题)

    准备试一下重发的功能:

    下面是寄存器的can配置,写的比较好.

    http://www.openedv.com/posts/list/31995.htm 

    can仿真的时候前几包总是有点问题,

    后面较为正常.

    做一个回环的东西,看一下,发送是否正常.

    之后实在不行,然后编写一个纯寄存器的,看一下到底是哪一步出现了问题.

    之后,还是不行,就尝试一下,改一下板子的can.

    目前打算在 E:程序源码2can20201229_2_fromkfb的基础上改一个can回环,

    看一下板子有没有问题,目前来看,正点原子的板子没有问题.

    正点原子的程序跑起来也还好,

    但是为什么移植到公司的板子上,就会出现问题???

    查看一下,目前是怀疑板子有问题,走线的问题.

    目前打算,新建一个工程,

    把公司的板子没有用的东西都清空,

    然后把正点原子的程序移植过去。

    boot的跳转什么的,最好能够直接烧写进去,没有boot运行起来。

    2021.01.20

    编写回环测试没有问题,就确定基本上是硬件的问题了...

    最终找到原因是硬件的关系.

    因为电路板上有个3.3V转5V的芯片.

     2021.01.20

    开始学习CANopen的东西:

    关于名词:

    1.对象字典: 是一个有序的对象组,每个对象采用一个16位的主索引和子索引值来寻址,

    每个CANopen设备要实现一个对象字典来描述与设备相关的行为参数.

    将所有描述的对象集合起来便得到了对象字典.

     

    2.网络管理对象NMT

     

     

    3.过程数据对象PDO

     

    4.服务数据对象SDO

     5. 其他通信报文

     

     

     2021.01.25

    <<CANopen轻松入门>>  这本书不错.

     CAN中没有定义应用层,因此,每个行业的CAN应用,都需要一个高层协议来定义CAN报文中的11/29位的标识符,8字节数据的使用.

    随着时代的发展,需要一个开放的,标准化的高层协议,CANopen便是为了这个产生的.

     

     

     

     

  • 相关阅读:
    kali linux之wireshark/tcpdump
    kali linux之netcat
    kali 插耳机没声音
    php代码审计10审计会话认证漏洞
    php代码审计9审计反序列化漏洞
    php代码审计8审计文件上传漏洞
    Python opencv 形态学
    图像与轮廓检测-轮廓检测
    Python操作Excel,openpyxl模块,画折线图
    Pthon强制删除非空文件夹
  • 原文地址:https://www.cnblogs.com/chulin/p/14205679.html
Copyright © 2011-2022 走看看