查看: 9075|回复: 27

[原创] 游名:Stm32F3+CA-IS3050 隔离CAN设计参考原理图/PCB图/教程/源...

  [复制链接]
  • TA的每日心情
    开心
    2023-11-10 14:56
  • 签到天数: 141 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2020-3-12 16:30:18 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 mmuuss586 于 2020-7-27 14:04 编辑

    基于Stm32F3+CA-IS3050 隔离CAN设计参考原理图/PCB图/教程/源码等开源分享

    资料下载见附件的,电脑登入
    QQ图片20200312162812.png
    一、概述
        控制器区域网络(CAN)物理层收发器芯片采用了高速、高隔离耐压、低环路延时的高性价比的隔离式收发器CA-IS3050,此器件采用片上二氧化硅(SiO2) 电容作为隔离层,在 CAN 协议控制器和物理层总线之间创建一个完全隔离的接口,与隔离电源一起使用,可隔绝噪声和干扰并防止损坏敏感电路。
    CA-IS3050 可为 CAN 协议控制器和物理层总线分别提供差分接收和差分发射能力,信号传输速率最高可达 1Mbps。该器件具有限流、过压和接地损耗保护(–40 V至 40 V)以及热关断功能, 可防止输出短路,
    共模电压范围为–12 V 至 12 V。CA-IS3050 额定温度范围为–40°C 至 125°C, 提供宽体SOIC-16 封装。

    引脚配置和引脚功能描述如下图:
    1.png


    CA-IS3050 datasheet_cn_revision.0(隔离CAN).pdf

    1.85 MB, 下载次数: 24

    CAN通信例程.zipx.gz

    11.37 MB, 下载次数: 60

    QBD1044 datasheet 2019-11-4(1).pdf

    509.29 KB, 下载次数: 22

    基于Stm32F3 CA-IS3050 隔离CAN设计参考原理图PCB图教程源码等开源分享.pdf.pdf

    682.4 KB, 下载次数: 32

    游名科技产品目录(2020-7-21).pdf

    1.05 MB, 下载次数: 9

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-11-10 14:56
  • 签到天数: 141 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2020-3-12 16:35:11 | 显示全部楼层
    1.png


                                  
    图2 引脚功能描述

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-11-10 14:56
  • 签到天数: 141 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2020-3-12 16:35:56 | 显示全部楼层
    该芯片具有凉薄的保护功能:
    信号隔离:CA-IS3050 信号隔离是通过基于电容隔离方案的数字隔离器实现的, 在逻辑侧通过数字隔离器采用开关键控(On-OffKey, OOK)调制方式将输入信号调制到高频然后通过起隔离耐压作用的片上二氧化硅电容,在总线侧数字隔离器部分电路将接收到的信号恢复然后转换成符合标准的电平输出至 CAN 总线。同理,总线侧的电平被总线侧电路处理后同样通过数字隔离器调制到高频然后传输回逻辑侧,然后在逻辑侧解调恢复输出至 RXD。逻辑侧和总线侧的地完全可以分开,并通过片上二氧化硅电容实现高达 5 kVRMS 的隔离耐压等级,确保了实际使用时微控制器和高压总线之间信号传输的完整性和安全性。
    主动态超时功能:CA-IS3050 具有主动态超时功能,防止 TXD 因为软件或者硬件故障一直被下拉到低电平,造成总线持续进入主动态从而被锁死(阻断整个网络通信)。 主动态超时功能通过使用一个计数器,在 TXD 输入信号的负边沿发生期间被触发,当 TXD 的低电平持续时间长于主动态超时时间 tTXD_DTO 时,收发器会被关断,此时总线被释放并进入被动态。在 TXD输入信号的正边沿期间,计数器会被置位。
    热关断保护功能:CA-IS3050 集成有热关断保护功能,可在过温情况下对器件内部电路进行保护。如果器件的结温超过热关断温度TJ(shutdown), 驱动器会被关断,从而阻断 TXD 到总线的信号传输路径,典型的热关断温度为 165°C。 当器件结温低于热关断温度后,驱动器会被重新使能。
    限流保护:CA-IS3050 集成有限流保护功能,可防止总线侧输出短路至电源或地瞬间过流对器件造成损坏,注意限流保护一旦发生会产生较大的电流,从而带来较大损耗。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-11-10 14:56
  • 签到天数: 141 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2020-3-12 16:37:10 | 显示全部楼层
    二、硬件设计
        模块原理图如下图:
    原理图主要分为隔离电源部分和CAN通信隔离部分;隔离电源主要是通过3510微功率隔离式反激式转换器和变压器将VDD1=3V转换为VDD2=5V,然后CAN模块就可以正常通信。接线图如下表:   
    设备1
    CAN通信模块1
    CAN通信模块2
    设备2
    CAN_TX
    CAN_TX
    CANH
    CANH
    CAN_TX
    CAN_RX
    CAN_RX
    CAN_RX
    CANL
    CANL
    CAN_RX
    CAN_TX



    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-11-10 14:56
  • 签到天数: 141 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2020-3-12 16:38:29 | 显示全部楼层
    参考PCB图及3D显示:

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-11-10 14:56
  • 签到天数: 141 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2020-3-12 16:40:34 | 显示全部楼层
    模块如下图
    1.jpg
    2.jpg
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-11-10 14:56
  • 签到天数: 141 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2020-3-12 16:41:46 | 显示全部楼层
    补充说明:
    有条件的最好对CAN接口加保护,电路参考如下图:
    1.png

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-11-10 14:56
  • 签到天数: 141 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2020-3-12 16:43:07 | 显示全部楼层
    要是对成本比较敏感,可以参考如下方案:数字隔离器(或光耦)+CAN芯片(可选择国产的QBD1044:1元多些);
    1.png

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-11-10 14:56
  • 签到天数: 141 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2020-3-12 16:43:54 | 显示全部楼层
    三、软件设计
            在Cube MX中将基本的串口配置和CAN通信的基础配置好后生成Keil 5工程并使用Keil 5打开对应工程;
    在can.c文件下,最开始添加三个宏定义,由于新版HAL库取消了TXheader的初始化,这里需要自行添加想关初始化;如下:
    CAN_TxHeaderTypeDef hCAN1_TxHeader;
    CAN_RxHeaderTypeDef hCAN1_RxHeader;
    CAN_FilterTypeDef hCAN1_Filter;

    void CAN_TxHeader_Init(CAN_TxHeaderTypeDef    * pHeader,
    uint32_t          StdId,
                                                                    uint32_t          ExtId,
                                                                    uint32_t          IDE,
                                        uint32_t          RTR,
                                       uint32_t          DLC)
    {
        pHeader->StdId    = StdId;   
        pHeader->ExtId    = ExtId;   
        pHeader->IDE      = IDE;     
        pHeader->RTR      = RTR;     
        pHeader->DLC      = DLC;     
        pHeader->TransmitGlobalTime    =    ENABLE;
    }

    void MX_CAN_Init(void)
    {

      hcan.Instance                                         = CAN;
      hcan.Init.Prescaler                         = 6;
      hcan.Init.Mode                                         = CAN_MODE_NORMAL;
      hcan.Init.SyncJumpWidth                = CAN_SJW_1TQ;
      hcan.Init.TimeSeg1                         = CAN_BS1_9TQ;
      hcan.Init.TimeSeg2                         = CAN_BS2_2TQ;
      hcan.Init.TimeTriggeredMode         = DISABLE;
      hcan.Init.AutoBusOff                         = DISABLE;
      hcan.Init.AutoWakeUp                         = DISABLE;
      hcan.Init.AutoRetransmission         = DISABLE;
      hcan.Init.ReceiveFifoLocked         = DISABLE;
      hcan.Init.TransmitFifoPriority= DISABLE;
      if (HAL_CAN_Init(&hcan) != HAL_OK)
      {
        Error_Handler();
      }
    }
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-11-10 14:56
  • 签到天数: 141 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2020-3-12 16:44:59 | 显示全部楼层
    在初始化函数中,这四个参数hcan.Init.Prescaler, hcan.Init.SyncJumpWidth, hcan.Init.TimeSeg1,hcan.Init.TimeSeg2用来配置CAN通信波特率,CA-IS3050支持传输速率最高可达 1Mbps,即我们既可以用通用的500Kbps通信也可以用1Mbps进行通信,计算公式为:
    通信波特率=SYSCLK/(Prescaler*(SyncJumpWidth+TimeSeg1+TimeSeg2))
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-3-29 13:05 , Processed in 0.202555 second(s), 34 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.