stm32地can现场总线实验

stm32地can现场总线实验

ID:34244733

大小:106.50 KB

页数:10页

时间:2019-03-04

stm32地can现场总线实验_第1页
stm32地can现场总线实验_第2页
stm32地can现场总线实验_第3页
stm32地can现场总线实验_第4页
stm32地can现场总线实验_第5页
资源描述:

《stm32地can现场总线实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实用标准STM32的can现场总线实验心得最近在搞stm32实验板的can现场总线实验,之前只是搞过STC51的串口通信,相比之下,发觉can总线都挺复杂的。开始时,知道自己是新手,只知道can总线跟串行通信,485通信,I2C通信一样都是用来传输数据通信的,对其工作原理一窍不通,还是从基础开始看书看资料,先了解它的基本原理吧。原来can总线有以下特点:主要特点?支持CAN协议2.0A和2.0B主动模式?波特率最高可达1兆位/秒?支持时间触发通信功能发送?3个发送邮箱?发送报文的优先级特性可软件配置?记录发送SOF时刻的时间戳接收?3级深

2、度的2个接收FIFO?14个位宽可变的过滤器组-由整个CAN共享?标识符列表?FIFO溢出处理方式可配置?记录接收SOF时刻的时间戳可支持时间触发通信模式?禁止自动重传模式?16位自由运行定时器?定时器分辨率可配置?可在最后2个数据字节发送时间戳管理?中断可屏蔽?邮箱占用单独1块地址空间,便于提高软件效率看完这些特点后,疑问一个一个地出现,1.什么是时间触发功能?2.发送邮箱是什么来的?3.报文是什么来的?4.什么叫时间戳?5.什么叫接收FIFO?6.什么叫过滤器?好了,带着疑问往下看,看完一遍后,报文:报文包含了将要发送的完整的数据信息

3、精彩文档实用标准发送邮箱:共有3个发送邮箱供软件来发送报文。发送调度器根据优先级决定哪个邮箱的报文先被发送。接收过滤器:共有14个位宽可变/可配置的标识符过滤器组,软件通过对它们编程,从而在引脚收到的报文中选择它需要的报文,而把其它报文丢弃掉。接收FIFO共有2个接收FIFO,每个FIFO都可以存放3个完整的报文。它们完全由硬件来管理工作模式bxCAN有3个主要的工作模式:初始化、正常和睡眠模式。初始化模式*软件通过对CAN_MCR寄存器的INRQ位置1,来请求bxCAN进入初始化模式,然后等待硬件对CAN_MSR寄存器的INAK位置1来

4、进行确认*软件通过对CAN_MCR寄存器的INRQ位清0,来请求bxCAN退出初始化模式,当硬件对CAN_MSR寄存器的INAK位清0就确认了初始化模式的退出。*当bxCAN处于初始化模式时,报文的接收和发送都被禁止,并且CANTX引脚输出隐性位(高电平)正常模式在初始化完成后,软件应该让硬件进入正常模式,以便正常接收和发送报文。软件可以通过对CAN_MCR寄存器的INRQ位清0,来请求从初始化模式进入正常模式,然后要等待硬件对CAN_MSR寄存器的INAK位置1的确认。在跟CAN总线取得同步,即在CANRX引脚上监测到11个连续的隐性位

5、(等效于总线空闲)后,bxCAN才能正常接收和发送报文。过滤器初值的设置不需要在初始化模式下进行,但必须在它处在非激活状态下完成(相应的FACT位为0)。而过滤器的位宽和模式的设置,则必须在初始化模式下,进入正常模式前完成。睡眠模式(低功耗)*软件通过对CAN_MCR寄存器的SLEEP位置1,来请求进入这一模式。在该模式下,bxCAN的时钟停止了,但软件仍然可以访问邮箱寄存器。*当bxCAN处于睡眠模式,软件想通过对CAN_MCR寄存器的INRQ位置1,来进入初始化式,那么软件必须同时对SLEEP位清0才行*有2种方式可以唤醒(退出睡眠模

6、式)bxCAN:通过软件对SLEEP位清0,或硬件检测CAN总线的活动。工作流程那么究竟can是怎样发送报文的呢?发送报文的流程为:应用程序选择1个空发送邮箱;设置标识符,数据长度和待发送数据;然后对CAN_TIxR寄存器的TXRQ位置1,来请求发送。TXRQ位置1后,邮箱就不再是空邮箱;而一旦邮箱不再为空,软件对邮箱寄存器就不再有写的权限。TXRQ位置1后,邮箱马上进入挂号状态,并等待成为最高优先级的邮箱,参见发送优先级精彩文档实用标准。一旦邮箱成为最高优先级的邮箱,其状态就变为预定发送状态。一旦CAN总线进入空闲状态,预定发送邮箱中的

7、报文就马上被发送(进入发送状态)。一旦邮箱中的报文被成功发送后,它马上变为空邮箱;硬件相应地对CAN_TSR寄存器的RQCP和TXOK位置1,来表明一次成功发送。如果发送失败,由于仲裁引起的就对CAN_TSR寄存器的ALST位置1,由于发送错误引起的就对TERR位置1。原来发送的优先级可以由标识符和发送请求次序决定:由标识符决定当有超过1个发送邮箱在挂号时,发送顺序由邮箱中报文的标识符决定。根据CAN协议,标识符数值最低的报文具有最高的优先级。如果标识符的值相等,那么邮箱号小的报文先被发送。由发送请求次序决定通过对CAN_MCR寄存器的T

8、XFP位置1,可以把发送邮箱配置为发送FIFO。在该模式下,发送的优先级由发送请求次序决定。该模式对分段发送很有用。时间触发通信模式在该模式下,CAN硬件的内部定时器被激活,并且被用于产生时间

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。