STM8 控制器局域网(beCAN)

2020-06-30来源: eefocus关键字:STM8  控制器局域网  beCAN

STM8控制器局域网(beCAN)简介

beCAN是基本扩展CAN(Basic Extended CAN)的缩写,它支持CAN协议2.0A和2.0B。它的设计目标是,以最小的CPU负荷来高效处理大量收到的报文。它也支持报文发送的优先级要求(优先级特性可软件配置)。


对于安全紧要的应用,beCAN提供所有支持时间触发通信模式所需的硬件功能。


STM8 beCAN主要特点

  • 支持CAN协议2.0A和2.0B主动模式

  • 波特率最高可达1兆位/秒

  • 支持时间触发通信功能

  • 可选择时钟源(fMASTER或CANEXT)

发送

  • 3个发送邮箱

  • 发送报文的优先级特性可软件配置

  • 记录发送SOF时刻的时间戳

接收

  • 1个3级深度的接收FIFO

  • 6个位宽可变的过滤器组

  • 标识符列表

  • FIFO溢出处理方式可配置

  • 记录接收SOF时刻的时间戳

时间触发通信模式

  • 禁止自动重传模式

  • 16位自由运行定时器

  • 可配置定时器精度

  • 可在最后2个数据字节发送时间戳

管理

  • 中断可屏蔽

  • 邮箱占用唯一的地址空间,便于提高软件效率

总体描述

在当今的CAN应用中,CAN网络的节点在不断增加,并且多个CAN常常通过网关连接起来,因此整个CAN网中的报文数量(每个节点都需要处理)急剧增加。除了应用层报文外,网络管理和诊断报文也被引入。

  • 需要一个增强的过滤机制来处理各种类型的报文
    此外,应用层任务需要更多CPU时间,因此报文接收所需的实时响应程度需要减轻。

  • 采用接收FIFO方式,从而允许CPU花很长时间处理应用层任务而不会丢失报文。
    构筑在底层CAN驱动程序上的高层协议软件,要求跟CAN控制器之间有高效的接口。

  • 所有邮箱和报文以16个字节为一页映射到同一个地址,通过页面选择寄存器选择页面。

STM8_CAN网拓扑结构
(图126:STM8_CAN网拓扑结构 )


CAN 2.0B(active)内核
beCAN模块可以完全自动地接收和发送CAN报文;且硬件完全支持标准标识符(11位)和扩展标识符(29位)。


控制、状态和配置寄存器
应用程序通过这些寄存器,可以:

  • 配置CAN参数,如波特率

  • 请求发送报文

  • 处理报文接收

  • 管理中断

  • 获取诊断信息

发送邮箱
共有3个发送邮箱供软件来安排要发送报文。由发送调度器决定哪个邮箱的报文先被发送。 

接收过滤器
共有6个位宽可变/可配置的标识符过滤器组,用来选择留下软件所需要的报文,丢弃其它报文。


接收FIFO
接收FIFO用于存储CAN控制器接收的报文,FIFO中可以存放3个完整的报文。软件可以在同一个地址访问下一个可用的报文。FIFO完全由硬件来管理。

STM8_beCAN功能框图
(图127:STM8_beCAN功能框图)

关键字:STM8  控制器局域网  beCAN 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic501628.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM8 beCAN工作模式
下一篇:STM8 LIN主模式

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM8学习笔记---普通IO口模拟串口功能
串口在产品应用中很常见,但是单片机的默认带的串口往往比较少,有时候就会出现串口不够用,所以就想着能不能用普通IO口模拟串口来实现串口的功能。要模拟串口首先要清楚串口数据传输过程中的原理。常用的串口格式为 1位起始位,8位数据位,无校验位,1位结束位。起始位为低电平,结束位为高电平。数据0为低电平,数据1为高电平。所以最简单的串口传输一个字节总共有10个电平变化,每个电平的宽度由波特率决定的。具体的串口数据分析,可以参考这篇文章:STM8学习笔记---通过示波器分析串口数据。下面看一个通过波特率如何计算每个位的电平宽度。发送一个字节,以stm8中9600bit/s的波特率计算的过程为例(1秒钟传输9600位)。可以计算出传输1位所需
发表于 2020-06-07
STM8学习笔记---普通IO口模拟串口功能
IAR FOR STM8 同一个工程芯片选择003F3可以编译003K3提示空间不足
同一个工程文件,选择103F3可以编译通过,但是选择103K3便提示空间不足百思不得其解,查阅大量资料无果。最后在IAR工程里面找到了配置文件 打开003f3的配置文件和003K3配置文件进行对比,其余都一样,唯独程序空间003K3是从地址0X9000开始,少了1K,不知道为何要这样设置,明明两个芯片空间大小和结构一模一样。将003K3的配置文件地址改成0x8000开始,重新编译,一切正常。编译通过,程序空间总共占用5419b。问题:这样操作后将程序下载到电路板上不知道会不会出错,有待验证。个人猜测应该没问题,是IAR的错误。
发表于 2020-06-07
IAR FOR STM8 同一个工程芯片选择003F3可以编译003K3提示空间不足
STM8的烧写
最近一次烧写STM8遇到以下问题1.Error : Cannot communicate with the tool.Wrong tool selection or check tool power supply or check that a previous session is closed.Error : < PROGRAM MEMORY programming failed.和stlink的链接出问题,有两种情况:a.仿真器未连接b.驱动没装好2.Error : Cannot communicate with the device !Check the SWIM cable connection and check
发表于 2020-06-07
STM8读取AD值偶尔跳变出错的问题
在调试STM8S103K3T6的AD功能时,发现当温度快速变化时(吹风机模拟),读取到的AD值会偶尔出现跳变,出现的位置相对固定;AD时钟设为2Mhz,每100ms采集一次,单次单路采集,通道无切换,用示波器看供电电压和AD口电压都没有毛刺等跳变,可以排除外部器件的问题;后来查看手册发现问题,DRH/DRL数据的左对齐和右对齐方式,对应不同的读取顺序我使用的右对齐,把程序改成先读DRL,再读DRH,问题解决
发表于 2020-06-06
STM8读取AD值偶尔跳变出错的问题
基于使用STM8单片机I2C方式实现读写操作
STM8硬件I2C知识STM8S的I2C模块不仅可以接收和发送数据,还可以在接收时将数据从串行转换成并行数据,在发送时将数据从并行转换成串行数据。可以开启或禁止中断。接口通过数据引脚(SDA)和时钟引脚(SCL)连接到I2C总线。允许连接到标准(最高100kHz)或快速(最高400kHz)的I2C总线。1.I2C的4种模式● 从设备发送模式● 从设备接收模式● 主设备发送模式● 主设备接收模式2.I2C的主要特点● 并行总线/I2C总线协议转换器● 多主机功能:该模块既可做主设备也可做从设备●I2C主设备功能─ 产生起始和停止信号●I2C从设备功能─ 可编程的I2C 地址检测─ 停止位检测● 产生和检测7位/10位地址和广播呼叫
发表于 2020-05-23
基于使用STM8单片机I2C方式实现读写操作
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved