专业高精密PCB电路板研发生产厂家

微波电路板·高频板·高速电路板·双面多层板·HDI电路板·软硬结合板

报价/技术支持·电话:0755-23200081邮箱:sales@ipcb.cn

通讯设备

通讯设备

STM32-CAN通讯与编程
2021-05-25
浏览次数:1020
分享到:

一、can通讯介绍
1、基本概念:CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO世界规范化的串行通讯协议。在汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,林林总总的电子控制系统被开发了出来。
2、CAN总线物理特性:CAN bus两根信号线分别叫CANH 和CANL,假定CANH电平 大于 CANL 为 Dominant (显性电平) 其实标明的是信号 0 ;假定CANH电平 等于 CANL 为 Recessive (隐形电平) 其实标明的是信号 1。
芯片5V供电时输出0时CANH 和 CANL输出电压大致为 3.5V和1.5V,当输出为1时 两根线就是浮地的高阻情况,通过外界的端接电阻将电压拉到相等大致为2.5V。

CAN总线物理特性

3、协议规范:CAN协议通过ISO规范化后有两个规范:IS011898规范和IS011519-2规范。其间IS011898是针对通讯速率为125Kbps-1Mbps的高速通讯规范,而IS011519-2是针对通讯速率为125Kbps以下的低速通讯规范。
4、参数:通讯速率最高可达1Mbps,通讯间隔最远可达10KM,传输间隔与速率的一般关系如下:

通讯速率

5、比照:CAN通讯比较于串口通讯、SPI通讯、IIC通讯,功用和高烦扰才能要更强一些;与485总线有些相似,都是2线制的差分方法;但比较而言,CAN总线的数据通讯具有更好的可靠性、实时性和灵活性。CAN已经构成世界规范,并已被公认为几种最有出路的现场总线之一。

数据比照

二、CAN通讯编程
1、意图:本次实验首要结束MCU(stm32F103)与BMS的CAN通讯功用,然后根据BMS的通讯协议文档解析当时BMS的情况。
2、编程思路:参看STM32的CAN例程基础上,1)根据BMS通讯要求更改初始化参数;2)CAN接纳后进行BMS情况解析。
3、编程结束:
(1)CAN总线波特率设置
CAN通讯的一个位可分为 4 段:同步段(SS)、传达时间段(PTS)、相位缓冲段1(PBS1)、相位缓冲段2(PBS2);STM32把传达时间段和相位缓冲段1(STM32称之为时间段1)吞并了,所以STM32的CAN一个位只要3段:同步段(SYNC_SEG)、时间段1(BS1)和时间段2(BS2)。通过设定位时序,多个单元可一同采样,也可任意设定采样点。比方设置TS1=9、TS2=8,SYNC_SEG=1和BRP=8,在APB1频率为36Mhz的条件下,即可得到CAN通讯的波特率=36000/[(9+8+1)*8]=250Kbps。
(2)滤波器和屏蔽
(3)接纳:选用中止方法
三、作用与总结
1、实验作用
BMS电池数据测量值如下,与预期相同

BMS电池数据测量值

2、总结:
(1)调试方法:按照单STM32回环查验–>双STM32功用查验–>STM32与BMS通讯查验
(2)滤波器和屏蔽配置时,可以先不进行屏蔽,在接纳中止中进行挑选;功用调通后,后续再根据需求进行设置。

X

截屏,微信识别二维码

微信号:IPcb-cn

(点击微信号复制,添加好友)

  打开微信

微信号已复制,请打开微信添加咨询详情!