当前位置: 首页 > news >正文

网站建设与动态网页设计网页设计模板html代码

网站建设与动态网页设计,网页设计模板html代码,长春真正免费的建站系统,贵阳手机网站制作STM32 CAN使用 简介各种通讯接口对比报文总线上的报文信息表示为几种固定的赖类型数据帧列表模式掩码模式配置CAN配置参数位时序 简介 控制器局域网CAN(Controller Area Network)是由德国博世公司为汽车应用而开发的多主机局部网络,用于汽车的监测和控制…

STM32 CAN使用

  • 简介
  • 各种通讯接口对比
  • 报文
  • 总线上的报文信息表示为几种固定的赖类型
  • 数据帧
  • 列表模式
  • 掩码模式
  • 配置CAN
  • 配置参数
  • 位时序

简介

控制器局域网CAN(Controller Area Network)是由德国博世公司为汽车应用而开发的多主机局部网络,用于汽车的监测和控制,德国博世公司开发CAN总线的最初目的是解决汽车上数量众多的电子设备之间的通信问题、减少电子设备之间繁多的信号线,于是设计了一个单一的网络总线,所有的外围器件可以挂接在该总线上。

1991年,NXP半导林公司制定并发布CAN技术规范CAN2.0A/B,其中,CAN2.0A协议规范定义了标准帧格式,CAN2.0B协议规范定义了扩展顿格式,1993年11月,ISO组织正式颁布CAN国际标准lSO11898(高速应用,数据传输速率小于1Mbps)和ISO11519(低速应用,数据传输速率小于125 kbps)。

各种通讯接口对比

请添加图片描述
波特率范围在5kbps~1Mbps之间,也是双方规定通讯波特率一致的现况下,才能正确接收数据

报文

在CAN总线上传输的信息称为报文,相当于部递信件的内容,当CAN总线为闲时,任何连接的单元都可以发送新的报文。
报文信号使用差分电压传送,两条信号线(以双绞线传输介质为例)称为CAN_H和CAN_L,静态时均是2.5V左右,此时状态表示为逻辑1,也可以叫隐性。用CANH比CANL高表示逻辑0,称为显性,此时的电压值通常为CANH=3.5V和CAN_L=1.5V。
请添加图片描述

总线上的报文信息表示为几种固定的赖类型

数据帧:从发送节点向其他节点发送的数据信息,相当于甲方发送有内容的信件到乙方方给自己发送一封有内容的信件。
远程帧:向其他节点请求发送具有同一识别符的数据帧,相当于甲方请求
错误帧:检测到总线错误,发送错误帧。
过载帧:过载帧用以在数据帧或远程帧之间提供附加的延时。
帧间隔:用于将数据帧及遥控帧与前面的帧分离开来的帧。
CAN总线通信有两种不同的帧格式:数据帧有标准帧和扩张帧两种格式,一个11位,一个29位。

数据帧

标准格式帧和扩展格式帧中有所不同,标准格式帧的仲裁场由11位标识符和远程发送请求位RTR组成,扩展格式帧的仲裁场由29位标识符和远程发送请求位RTR组成。

控制场由6个位组成,包括数据长度代码和两个将用于扩展的保留位。数据长度代码指出了数据场中字节的数量。数据长度代码为4位,在控制场里发送,数据帧长度允许的字节数为0、1、2、3、4、5、6、7、8,其他数值为非法的。

数据场由数据帧中的发送数据组成。它可以为0~8字节,每字节包含了8位,首先发送最高有效位MSB,依次发送至最低有效位LSB。CRC场包括CRC序列(CRC SEQUENCE)和CRC界定符(CRCDELIMITER),用于信息帧校验。

应答场长度为2个位,包含应答间隙(ACK SLOT)和应答界定符(ACK DELIMITER)。在应答场里,发送节点发送两个隐性位。当接收器正确地接收到有效的报文时,接收器就会在应答间隙(ACKSLOT)期间(发送ACK信号)向发送器发送一个显性的位以示应答。

请添加图片描述
远程帧->省略

错误帧->省略

过载帧->省略

列表模式

首先我们是不是很快就会想到只要准备好一张表,把我们需要关注的所有CAN报文ID写上去,开始过滤的时候只要对比这张表,如果接收到的报文ID与表上的相符,则通过,如果表上没有,则不通过,这个就是简单的过滤方案。总结列表模式就是自己特定关心的ID进行选择出来

掩码模式

假设身份上的18位数 ,我们要为它准备好两张纸片,一片写上屏蔽码,另一片纸片写上验证码。在执行任务的时候先将获取的身份证号码与屏蔽码进行“与”操作,再将结果与验证码的进行比较,根据判断是否相同来决定是否通过。整个判别流程如下所示:
在这里插入图片描述
在bxCAN中,分别采用了两个寄存器(CAN_FiR1,CAN_FiR2)来存储屏蔽码与验证码,从而实现掩码模式的工作流程的。这样,我们就知道了bxCAN过滤器的掩码模式的大概工作原理。

但是,我们得注意到,采用掩码模式的方式并不能精确的对每一个ID进行过滤,打个比方,还是采用之前的守卫的例子,假如城主要求只有1150到1158年出生的人能通过,那么,若我们还是才用掩码模式,那么掩码就设为第7到9位为”1”,对应的,验证码的7~9位分别为”115”,这样就可以了。但是,仔细一想,出生于1159的人还是可以通过,是不是?但总体来说,虽然没有做到精确过滤,但我们还是能做到大体过滤的,而这个就是掩码模式的缺点了。在实际应用时,取决于需求,有时我们会同时使用到列表模式和掩码模式,这都是可能的。

#列表模式与掩码模式的对比
综合之前所述,下面我们来对比一下列表模式与掩码模式这两种模式的优缺点。

模式优点缺点
列表模式能精确地过滤每个指定的CAN ID有数量限制
掩码模式取决于屏蔽码,有时无法完全精确到每一个CAN ID,部分不期望的CAN ID有时也会收到数量取决于屏蔽码,最多无上限

终于进入到正题了!前面已经介绍了过滤器的列表模式与掩码模式,以及掩码模式下的屏蔽码与验证码的含义,还介绍了标准CAN ID与扩展CAN ID的组成部分。现在我们终于要站在bxCAN的角度来分析其过滤方案。

首先过滤模式分列表模式和掩码模式,因此,对于没有过滤器,我们需要这么一个位来标记,用户可以通过设置这个位来标记他到底是想要这个过滤器工作在列表模式下还是掩码模式,于是,这个表示过滤模式的位就定义在CAN_FM1R寄存器中的FBMx位上,如下图:

图5 CAN过滤器模式寄存器CAN_FM1R定义
CAN过滤器模式寄存器CAN_FM1R定义

这里以STM32F407为例,bxCAN共有28个过滤器,于是上图的每一个位对应地表示这28个过滤器的工作模式,供用户设置。”0”表示掩码模式,”1”表示列表模式。

另外,我们知道了标准CAN ID位11位,而扩展CAN ID有29位,对于标准的CAN ID来说,我们有一个16位的寄存器来处理他足够了,相应地,扩展CAN ID,我们就必须使用32位的寄存器来处理它,而在实际应用中,根据需求,我们可能自始至终都只需要处理11位的CAN ID。对于资源严重紧张的MCU环境来说,本着不浪费的原则,这里最好能有另外一个标志用告诉过滤器是否需要处理32位的CAN ID。于是,bxCAN处于这种考虑,也设置了这么一个寄存器CAN_FS1R来表示CAN ID的位宽,如下图所示:

CAN过滤器位宽寄存器CAN_FS1R定义
CAN过滤器位宽寄存器CAN_FS1R定义

如上图,每一个位对应着bxCAN中28个过滤器的位宽,这个需要用户来设置。
于是根据模式与位宽的设置,我们共可以得出4中不同的组合:32位宽的列表模式,16位宽的列表模式,32位宽掩码模式,16位宽的掩码模式。如下图所示:
在这里插入图片描述

CAN总线收发,中断方式接收配置
平台:STM32F103VE
STM32CUBEMX V5.3

配置CAN

CAN的波特率最大为1Mbps。

波特率计算方法:时钟主频 / 分频 / (tq1 + tq2 + swj)

以500K的波特率配置为例:
stm32f103的CAN的时钟主频是36M,分9频就是4M,在除以(5 + 2 + 1)得到500K的波特率。
注意:stm32cubemx生成的CAN代码是不带过滤器的,需要自己手动添加。

配置参数

在这里插入图片描述

参数意思
Prescaler预分频,即位时序提到的APB1 peripheral clocks继续分一次频
Time Quantum最小时间单位Tq,自动计算出来的,不需要填写
Time Quanta in Bit Segment 1PBS1段长度
Time Quanta in Bit Segment 2PBS2段长度
ReSynchronization Jump Width重同步跳跃宽度,即位时序提到的SJW
Time Triggered Communication Mode是否使能时间触发
Automatic Bus-Off Management是否使能自动离线管理
Automatic Wake-Up Modet是否使能自动唤醒
Qutomatic Retransmission是否使能自动重传
Receive Fifo Locked Mode是否使能锁定FIFO
Transmit Fifo Priority配置报文优先级的判断方法
Oprating Mode操作模式

这些参数也可以在can.c中自行修改

在这里插入图片描述
中断(NVIC)设置,根据需要设置,一般勾上CAN1 RX0 Interrupt

位时序

意义:为了实现正确的总线电平采样,确保通讯正常。最小单位是Tq(Time Quantum),一个完整位由8~25个Tq组成
组成:SS段、PTS 段、PBS1段、PBS2段

请添加图片描述

段名意义作用
SS(1Tq)同步段补偿物理延时,是传播时间、收发器延时之和的两倍
PTS(1~8Tq)传播时间段补偿变压阶段误差
PBS1(1~8Tq)相位缓冲段1使总线各节点同步
PBS2(2~8Tq)相位缓冲段2补偿边沿阶段误差
SJW(1~4Tq)再同步补偿宽度补偿时钟频率偏差、传输延迟等
http://www.hkea.cn/news/657287/

相关文章:

  • 广州做网站建设的公司网站公司
  • 做网络平台的网站有哪些广州网站维护
  • 网页 代码怎么做网站东莞市民最新疫情
  • 电子商务网站设计中影响客户体验的元素有搜索引擎有哪些种类
  • 网站建设难点优化关键词技巧
  • 免费行情网站链接百度知道合伙人官网
  • 餐饮公司网站建设的特点大数据智能营销
  • 济南快速排名刷关键词排名seo软件
  • 系统做网站的地方百度推广登录后台登录入口
  • 集约化网站建设情况广告公司网站制作
  • 网站制作发票字节跳动广告代理商加盟
  • 义乌做网站武汉seo推广优化公司
  • 济宁哪家网站建设公司正规谷歌浏览器 免费下载
  • 有没有女的做任务的网站广东省新闻
  • seo长尾关键词优化如何做网站推广优化
  • 网站搭建服务合同seo排名赚
  • 东莞有什么比较好的网站公司苏州关键词排名系统
  • 做中国供应商免费网站有作用吗浙江网站推广运营
  • mysql8 wordpress百度推广优化是什么意思
  • 做装修广告网站好seo推广公司招商
  • 城市模拟建设游戏网站今天最新的新闻头条新闻
  • 手机网站自适应代码品牌网络营销策划方案
  • 个人网站建设在哪里百度资源搜索平台
  • 云空间免费空间北京网站优化校学费
  • 个人网站做导航网站项目推广平台有哪些
  • 威海住房建设局网站培训学校资质办理条件
  • 做趣味图形的网站免费线上培训平台
  • 女生做网站前端设计师成都网站seo
  • 濮阳建设银行官方网站搜索引擎优化的对比
  • 完全删除wordpressseo小白入门