最后更新:2021-10-30 03:51:58 手机定位技术交流文章
CAN是控制器局域网(控制区网络)的缩写,该网络由德国BOSCH公司设立,为研究和制造电子车辆货物得到承认,最终成为国际标准(ISO 11519和ISO 11898),是全世界使用最广泛的现场公共汽车线路之一。

CAN公共汽车协议已成为汽车计算机控制系统和内嵌工业控制局域网的通用公共汽车线路,J1939协议是为大型面包车和重型机械车辆(以CAN为底线)开发的,近年来,其高可靠性和良好的误差检测能力得到了强调,并被广泛用于低环境温度的车辆计算机控制系统和工业环境。
让我们看看车载网络
CAN通信与I2C和SPI等时钟信号的同步通信不同,只是与CAN_High和CAN_Low两条信号线的传闻通信,它们共同创建了一套差异信号线,以差异信号的形式进行通信。让我们看看地图。

CAN物理层分为两类,图中的CAN通信网络是一个高速短距离“封闭环网”,符合ISO 11898标准,最长长度为40米,通信速度最高为1Mbps,公共汽车两端都有“120欧元”屏障。

图形描绘了一个符合ISO 11519-2标准的低速、远程开放环路网络,最大传输距离为1公里,最大通信速率为125千位/秒,有两条主要线是独立和不封闭的,每辆公共汽车需要两条链路。

一些通信节点可以安装在 CAN 公共汽车上,节点之间的信号可以传送到公共汽车上,以便能够进行节点之间的通信。 因为 CAN 通信协议并不编码节点,而是编码数据的内容,因此网络中的节点数量可能是无限的,只要总线载荷足够,中继器可以增加载荷。
CAN通信节点由CAN控制器和CAN收发器组成,通过Can_Tx和Can_Rx信号线与收发器连接,以及收发器和Can_Low总和Can_Can_Can_Low信号线连接。 Can_Tx和Can_Rx使用传统的TTL式逻辑信号,而Can_High和Can_Low则是使用更具体的差分信号的一对差异信号。
当节点需要传输数据时,控制器向收发器发送通过 CAN_Tx 发送到 CAN_Tx 发送到 CAN_Tx 接收器的二进制代码,然后将正常逻辑级别信号转换成通过 Can_High 和 Can_Low 差分线向 CAN公共汽车网络出口的差分信号。当控制器需要从公共汽车接收数据时,收发器将从公共汽车接收的CAN_Hi 和 CAN_Low 信号转换成一个 noturnsnsn 节点,控制器将通过CAN_Tx 线发送到收发器的二进制代码,然后将正常逻辑级别信号转换成通过 Can_Hi 和 Can_Low 差线向 CAN公共汽车网络出口的差分信号。当控制器需要从公共汽车接收数据时,收发器将CAN_Hi和从公共汽车收到的CAN_Low 信号转换成一个或一个
例如,SSM32屏幕扩展至通信节点的控制,并配有收发器,将测试盘上的TJA1050型芯片作为CAN收发器。CAN控制器,如MAX32322芯片,与CAN收发器联系。TTL信号通过MAX32322装置转换为RS-232级。CAN收发器作为CAN控制器TTL级别信号的差分信号(反之亦然)。
现可提供以下水平转换器芯片(不完整):
用 TJA 1050 检查图示:

差号信号不同于通常使用单线电压传送逻辑的典型方法,也称为差号模型信号。在使用差号信号时,需要两条信号线。两条信号线的振幅相同,以两条信号线之间的电压差异为代表。
1. 如图中所示,图表下方的信号使用V+至V信号边距表示。
使用不同信号传输比使用单一信号线具有以下优势:
• 干扰阻力很高,当外部世界出现噪音干扰时,它实际上同时与两条信号线相连,而接收端则关注两个信号之间的差别,允许外部扰动噪音得到完全平衡。
举例来说,传统的单线逻辑1为3.3V,逻辑0为0V,但如果有噪音,则3.3V为0V(extreme),而 0V为3.3V,这是目前一个逻辑错误,但与通常按两条线运作的Can High/Can Low(Can High/Can Low)相比,两者均具有噪音效应,但差异仍然相同。
• 它能够有效地尽量减少对外部环境的电磁干扰,并且因为这两个信号是两极分化的,它们的外部辐射电磁场可以相互抵消,导致由于电磁连接的紧凑性,向外部世界排放的电磁能量减少。
例如,如果一个是10V,另一个是10V, 它都是对外部世界的电磁干扰, 但是CAN可能会把电线连在一起 就像一点灰尘一样 来抵消电动干扰。
• 时间序列定位是准确的,因为差分信号开关的变化位于两个信号的交叉点,没有根据两个电压阈值用标准单端信号进行评估,因此受过程和温度影响较小,时间序列错误减少,更适合低程信号电路。
由于不同信号线的好处,在USB、485、Ethernet和CAN的物理层采用了不同信号传输。
就高速CAN协议而言,当逻辑1(隐形水平)被标出时,CAN_High和CAN_Low线上的电压为2.5v,即逻辑0代表时,VH-V:sub:L=0V;CAN_Hi的电压差VH-V:sub:L=0V;5V的电压水平为1.5V,即其电压差为VH-V:sub:L=2V。例如,CAN收发器在CAN_Tx线(逻辑0)上获得低级别信号时,CAN_Tx线上产生3.5V,CAN_High线上产生1.5V,逻辑为0.0。

如果有两个 CAN 通信节点, 一个输出隐藏的节点, 而另一个输出可见的节点, I2C 公交车的“ 直线和” 特性, 将会将它置于可见的节点状态, 也就是如何提供可见级别的名称, 这被视为一个优先事项 。
由于CAN总线协议包含一对差分线的物理层,它只能一次传送一个信号,CAN通信对通信节点来说是半双向的,接收和发送数据需要时间。 在CAN通信网络中,由于共用总线,只有一个通信节点可以同时在整个网络中发出信号,剩下的节点只能同时收到。
CAN没有时钟信号线,因为它是非同步通信,而与同一个公共汽车网络相连的节点作为非同步通信连在一起。 特别是,CAN使用“比同步”技术抵制干扰和消化错误,实现适当的公共汽车级信号取样并确保正常通信。
为了实现比特同步, CAN 协议将每个数据比特的时间序列分割为图中所示的SS、PTS、PBS1和PBS2段,其长度加在一起等于 CAN 数据槽的长度。分解后最小的时间单位是 Tq, 完整部分由 8- 25 Tqs 组成 。
本图中CAN信号的长度为19Tq,其中SS部分为1Tq,PTS部分为6Tq,PBS部分为5Tq,PBS部分为5Tq,PBS部分为7Tq。该信号的取样点在PBS1和PBS2之间,通过调节各部分的长度,取样点可以正确取样。
下文所述各段发挥以下作用:
• SYNC SEG(SS段)
SS 被转换为同步部分。 如果通信节点检测到公交车上的信号线在 SS 段范围内, 它表示节点与 us 命令同步, 当节点与公交车同步时, 样本点收集的中央线级为空格水平。 SS 段大小被设定为 1Tq 。
• PROP SEG(PTS段落)
PTS转换成一个传播时间段,用来补偿网络的物理延迟。 这是输入比较和公共汽车输出驱动器总延迟时间的两倍。 PTS段的大小从1到8Tq不等。
• 第PBS1段(PHASE SEG1)
PBS1已转换成一个阶段缓冲器,主要用于弥补差值阶段误差,在重新合成时可以延长。 PBS1部分的初始规模可以是1-8Tq。
• PBS2(第2部分)
PBS2是另一个用于弥补间隔期误差的阶段性缓冲,在进行回同步时可以缩短。 PBS2段的初始大小可以是 2-8Tq 。
只要公共汽车上的通信节点就1Tq长度和每个数据空档的Tqs数量达成一致,就可以计算CAN连接的港口速率。
例如,在上图中,假设1 Tq = 1us,每个数据位置由19 Tqs组成,T1bit = 19us 传输一个数据,因此每秒可传送的数据位置数为1 x 10 x 19 = 52631.6(bps)。
通信中的波特率是指每秒可传输的数据位数。
端口速率只影响每个数据位置的长度, 而数据同步化则包括阶段信息。 这一次, 它需要用于数据位置中的SS、 PTS、 PBS1 和 PBS2 部分。 Can 数据会根据段落应用方式的不同而同步到硬同步和再同步中。 Hard 同步化只有在存在“ 框架启动信号” 的情况下才起作用, 这不能保证未来的位数序列是同步的, 并且回同步技术会解决这个问题, 这两点都解释如下:
(1) 硬同步
当 Can 节点通过公交车传输数据时, 它会发出信号, 显示通信的起始点( 下分节描述的框架启动信号), 即从高到低的递减线 。 安装在 CAN 公交车上的通讯节点将总是在不发送数据的情况下检测公交车上的信号 。 可以看到, 当公交车上出现一个框架启动信号时, 一个点会检测到公交车中的框架启动信号不在节点内时间序列中SS 部分的范围, 因此判断它自己的内部时间序列与公交车不同步, 因此它内部的时间序列不会与公交车同步, 因此由此状态的取样点收集的数据是不正确的 。 因此, 节点会进行硬同步调整, 您本地时间序列的 SS 段会移动到公交车里段, 并获得同步, 以便同步之后的取样点可以得到正确的数据 。
(2) 重新同步
只有当有框架启动信号时, 前端的硬同步才会有效, 如果在长的数据框架内, 节点信号和总线信号之间出现偏差, 也没有任何问题可做。 因此, 需要引入一个重新同步方法, 使用正常数据点的高到低高度线同步( 框架启动信号是一个特殊的跳线 ) 。 重新同步与硬同步相似, 因为它们都使用SS 部分来检测它们, 所有同步都设计在节点中包括SS 部分以移动跳跃。 重新同步化在节点前和后两处进行, 区分公共汽车跳跃和SS 段的相对位置 。 如图所示, 第一阶段是提前的, 当控制器在2Tq 之前的一段内, 当控制器在下一个时间序列的 PBS1 段内增加 2Tq 的长度时, 从而将节点与总线的时间顺序同步 。
如所示,第二阶段滞后期为2Tq时段,从公共汽车边缘确定了节点,导致公共汽车上先前的PBS2路段的长度减少2Tq路段。
同步期间PBS1和PBS2中增加或缩短的间隔长度被描述为“ 重新同步补偿 SJW ” 。 一般来说, CAN 控制器限制 SJW 的最大值, 例如当最大 SJW = 3Tq 受限时, 单个同步无法提高或缩短超过 3Tq 的时间长度, 控制器如果需要, 可以通过一些微小的修改实现同步。 当控制器设定的 SJW 限制更大时, 可以吸收的错误会增加, 但通信速度会降低 。
SPI 通信中的4个信号都有自己的信号线: 选择、 时钟信号、 数据输入和数据输出。 I2C 协议包括第二条信号线, 有时包括时钟信号和数据信号, 而非同步的嘴包括接收和发送两条信号线。 一些协议包含的信号比 CAN 协议包含的信号更多, 该协议可以方便地同步数据或识别数据传输方向。 但是, 能否使用两条差异信号线, 只能表示一个信号, 而一个基本的物理层则决定如何利用一个信号频道来创建同样或更强大的功能, 并配有一套更复杂的协议? CAN 协议为包装数据、 操作指令( 例如读/ 写) 和同步信号提供了一个机制, 这些信号被称为报告 。
将起始标签、片段(识别)标签和控件标签的传输添加到原始数据段的前端,并将 CRC 检查标签、 回答标签和传输端标签添加到数据结尾, 并以特定格式将内容包起来, 然后在单个频道中表达信号, 各种标签作为同步传输方式发挥作用, 类似于 SPI 中各个频道的信号 。

数据框架是《Can》通讯中最重要和最复杂的报告, 我们正在研究它的结构和内容。
数据框架从可见的(逻辑0)位置开始,最后有七个连续隐藏的(逻辑1)部分:仲裁、控制、数据、CRC和ACK。
• 帧起始
SOF 区段(Freame Start OfFrame),又称框架启动,由框架启动信号组成,框架启动信号只有一个数据位,一个可见水平,目的是表明数据将由每个节点传输,其他节点将通过框架启动信号的平滑跳动进行严格的同步。
• 仲裁段
当同时发出两条电文时,公交车根据仲裁段落的内容选择了哪些包件可以转发,而仲裁段落也是公交车名称的来源。
仲裁条款主要包括该数据框架的识别信息(识别符),该数据框架的识别信息有标准格式和扩展格式,不同之处在于识别信息长度,标准格式的11位标识和扩展格式的29位标识,根据标准的识别符,这比比标准格式多18位。 在《加拿大国际通则》中,识别符在确定发送数据框架的优先顺序和是否其他节点将接收数据框架方面发挥重要作用。《加拿大国际通则》没有将标点和挂载地址放在其上方,而拥有公交车取决于信息的重要性,即重要信息的重要性,我们将用最优先的识别符包包,使信息能够及时交付。此外,这也是由于这种优先分配原则,CAN的扩展得到大大加强,公交车节点的增加或减少不影响其他设备。通信的优先次序由ID的仲裁确定。基于对物理层的早期分析,我们知道,如果公交车上既有主导层,也有隐藏层,那么公交车的状况就被设定为可见的仲裁水平。
如果两个节点同时竞争CAN公交车的所有权,当它们发出信息时,如果先有一个隐藏的级别,它们就会失去对公交车的占有,然后进入接收状态。从一开始可以看到,这两个装置发送的电量相同,因此它们继续发送数据。在图表箭头显示的时间序列之前,节点1发送了隐性级别,而节点2发送了节点级别,显示的节点水平b。

由于CAN公共汽车上的数据以广播方式提供,所有与CAN公共汽车连接的节点都从所有其他节点获得有效数据,因此,我们可能
大多数限制程序都包含基于 ID 的过滤能力, 使得他们能够控制自己只接收特定的 ID 信息。 回顾框架格式, 很明显, 除了提交文件的 ID 以外, 还有 RTR、 IDE 和 SRR 位元 。
(1) RTR比特被解释为远程传输请求,用于区分数据框架和远程框架,如果是可见水平,则标明远程框架。
(2) IDE Bit(识别符扩展Bit)被翻译成识别符扩展名,用于区分标准格式和扩展格式,如果是主导水平和隐含水平,则将其作为标准格式。
(3) SRR位(替代远程请求位)完全在扩展格式中发生,并用来取代标准格式中的RTR位。由于扩展框中的SRR位被隐藏,数据框中的RTR位被可见,标准格式在两个代号中对于同一标准和扩展格式具有更大的优先地位。
• 控制段
控件中保留 r1 和 r0 的位数默认设置为可见位置。 关键特征是 DLC 段落( 数据长度代码), 包括 4 个数据位数, 显示此提交数据字段中的字节数, 而 DLC 段落中的数字是 1-8 。
• 数据段
数据部分是数据框架的主要材料,数据框架是将由节点传送的原始电文,由1-8字节组成,然后是MSB。
• CRC 段
为确保电文的准确传输,Can电文包含一个15比的CRC校准代码,如果节点被算作有与所收到的节点不同的CRC代码,则给节点错误的电文并要求使用错误的框架重新发送。 CRC组件的计算通常由CAN控制硬件处理,而发生错误时的处理则由软件管理。
• ACK 段
ACK 段落包含 ACK 槽和 ACK 定义的槽。 在 ACK 槽中, 发件人节点传递一个隐藏的位置, 而接收节点发送一个可见的位置来表示答案, 类似 I2C 总线。 ACK 槽与框架末端提供 ACK 段之间打开的 ACK 槽和框架末端提供 ACK 段落中包含 ACK 槽和 ACK 定义的槽。 在 ACK 槽中, 发件人节点传递了一个隐藏的位置, 而接收节点发送了一个可见的位置来表示答案, 类似于 I2C 条总线。 ACK 分隔符打开了 ACK 槽与框架末之间的位置 。
• 帧结束
EOF(框架终了)段落,翻译为框架结束,包含7个通过传送节点结束传送的密点。
其他出版物的结构

STM32芯片特征bxCAN控制器(基本扩展控制器),它支持CAN协议2.0A和2.0B标准。CAN控制器支持最大通讯速度1Mb/s的通信速度;可以自动接受和发送CAN信息,支持使用标准ID和ID的扩展使用;输出中有三个发送信箱,发送信息的优先次序可以由软件控制,发送时间可以登录;接收FIFFO,分为两个和三个级别。
STM32有两套CAN控制器,其中CAN1是主要装置。框架中的“存储存取控制器”由CAN1控制,CAN2不能直接进入储存区,因此,CAN2必须用来使CAN1超设时钟成为CAN1。框架图除其他外,包括CAN控制内核、发送信箱、接收FIFO以及接收和检查过滤器。
CAN控制内核在框图标记处有多个控制储量和状况登记册,其中最重要的是总控制登记册(CAN_MCR)和时间序列登记册(CAN_BTR),这是最重要的。
控制总登记册能够控制CAN的操作模式,并使用下文所示的内存空档控制该模式。
(1) DBF调试冻结功能
DBF(调试冻结)调试冻结了从FIFO(FIFO)收到的数据,当数据被禁止时,这些数据被用来将CAN置于功能状态或被禁止状态。 这两个州只有在STM32芯片处于程序调试模式、正常使用无效时才使用。
(2) TTCM(时间触发控制模式)
TTCM(时间触发通信模式) 时间触发模式,用于设定CAN的时间触发模式,CAN利用内部定时器制作时间标记,并在CA_RDTxR、CAN_TDTXR发件人中保存时间标记。 内部定时器插在每根Can点上,在接收和发送的框架开始时取样,并生成时间标记。
ABOM代表自动离线管理。
当节点检测到发送或接收特定值错误的错误时,它会自动脱机,在离线状态下,它可能不会接收或发送消息。在离线状态下,这个自动脱机管理功能可以通过软件控制直接恢复或使用,并将在适当的时候立即恢复。
(4) AWUM 自动觉醒
AWUM(自动公交车管理)自动醒来,可以使用软件进入CAN以外的低容量睡眠模式,如果启用,当CAN感应到公共汽车活动时自动醒来。
(5) 自动重新发送 NART
NRT( 不自动再传输) 失败时自动重新发送信息, 成功时自动将信息再次发送到成功点 。 如果未使用此函数, 则无论结果如何, 信息只发送一次 。
(6) 锁定模式RFLM
RFLM( 收到 FIFO 锁定模式) 是用于锁定接收器 FIFO 的 FIFO 锁定模式。 锁定后, 当收到 FIFO 溢出时, 下一个接收的信件将被删除。 未锁定时, 以下接收的信件覆盖初始提交书 。
(7) 在传输TXFP电文时确定优先权的程序
当信箱由信箱设置的盒子里有不止一个未解决的电文时,TXFP(发送FIFO优先)优先发送电文的技术使这一功能能够调节该文本是按电文作为身份识别优先接收的顺序发送的还是按邮箱持有的顺序发送的。

Can_BTR 用于配置测试模式、端口速率和许多位数参数。
模式模式
SILM 31: 静音模式( 调试) 。
0:正常工作
1:静默模式
环模式( 调试) (30 LBKM) (回调模式( 调试) )
0:禁止环回模式
1:使能环回模式
STM32 的 AN 具有一种测试模式,用于配置 CAN_BTR 计时器的 SILM 和 LBKM 登记册槽,以调控正常模式、 安静模式、 回声模式 和静音环模式的使用情况,如图片所示。

以下是对各种工作方式的描述:
• 正常模式
正常模式是标准 Can 节点, 允许从总线传输和接收数据 。
• 静默模式
在安静模式下,它自己的输出端逻辑0数据直接传输到它自己的输入端,逻辑1数据可能提供给公共汽车,因此它不能向公共汽车发送可见的位置(逻辑0),而只能发送隐藏的位置(逻辑1),输入端可以从公共汽车上接收内容。它被称为静态模式,因为它只能传输不强迫公共汽车状态的隐藏位置。
• 回环模式
在循环模式中,它自己的输出端的所有内容都直接广播到它自己的输入端,输出端的内容也传送到公共汽车上,允许公共汽车监控。输入端只接收它自己的发件人的内容,没有来自公共汽车上的内容,它自己的输出端的所有内容都直接广播到它自己的输入端,输出端的内容也传送到公共汽车上,允许由公共汽车监控。输入端只接收它自己的发件人的内容,没有从公共汽车上接收内容。
• 回环静默模式
静音回声模式是两种模式的组合,它自己的输出端的所有内容都直接发送到它自己的输入端,而不是发送到公共汽车上一个无法监测其分布的清晰效果公共汽车。 输入端只接收它自己的发件人的内容,不接收公共汽车的内容。 当自我检查不阻碍公共汽车时, 当自我检查不阻碍公共汽车时, 它的输出端的所有内容都会被直接发送到它自己的输入端, 并且不会发送到公共汽车上。
由于输出与输入直接相连,因此在STM32芯片内连接,传输路径不通过CAN_Tx/Rx试点,更不用说外部的CANCAN收发机,只有在输出数据到达或从公共汽车收到输出数据时才通过CAN_Tx/Rx触发器和收发机。
波特速率和比特时间顺序
STM32 与我们以前讨论过的化学文摘社标准时间序列略有不同。
在CAN额外定位时间序列中,STM32只包含三段:同步的SYNC_SEG段、BS1和BS2点,取样点位于BS1和BS2的交叉点。 SYNC_SEG段的长度固定为1Tq,而BS1和BS2的长度都可以。
指定在重新同步时可以提高或减少的时间,以及位序列内存条目的长度。
理解STM32的CAN额外时间序列表明,BS1段与先前提出的CAN标准协议中的PBS1段相配合,但BS2段与PBS2段完全相同。
我们可以通过配置时间序列登记册CAN_BTR和CAN_BTR来定制港口费率。 TS1[3:0]和TS1。
调整BS1和BS2的长度,以确定每个CAN数据位置的时间:TS2 [2:0]
BS1:TS1=Tqx(TS1[3:0]+1),BS1期间:TS1=Tqx(TS1[3:0]+1)
TS2 = Tq x (TS2[2:0]+1, BS2 期间)
T1bit = 1Tq+TS1+TS1+TS2=1+(TS1[3:0]+1]+1+(TS2[2:0]+1]=NTq 一个数据槽的时间: T1bit = 1Tq+TS1+TS2=1+(TS1[3:0]+1)+(TS2[2:0]+1)=NTq
单时间工作表 Tq 的长度与 C. O. C. O. O. O. E. N. 的 C. C. C. O. E. N. 的 时钟总线和分区器配置有关,C. N. 和 C. N. 2 在 APB1 的 APB1 公共汽车上安装,但在 C. N. B. T. 可配置 BRP [9:0] 地址
Fpclk1/ (CAN_BS1+CAN_BS2+1) *CAN_预估器) = CANPORT
对于粉笔来说,是42M!
最好使用坎波特速率计算器。
亲爱的,我不知道你在说什么,这篇文章是我们特别报导全球之声在线.com/s/1W77tXUZUZWX4x0Sy1djmWAbw的部分内容。
提取码:0212
以Can的框框返回图表,该框框与可能从Can发出的邮件盒贴上标签,该框框共有三个邮件箱,即每个发件人有一个载有ID CAN_TixR的登记册,一个数据长度控制登记册CAN_TDTXR,以及两个数据保存人CAN_TDLXR,CAN_TDHXR,其用途见下表。
当我们使用“Can-Outline”传输信息时,我们分解了该信息的部分,将其分解到这些登记器中,并将1 TIDxR_TXRQ作为身份识别特征CAN_TixR登记册中的发件人。 其中,识别特征登记册中的STDID地址是特殊的。 我们知道常规身份识别特征的总数是11位,而扩展身份识别特征的总数是29位。
图表中的罐头框代表接收器 FIFO, 它有两个接收 FIFO 和每个 FIFO 的3 个信箱, 也就是说, 最多有 6 个可以缓存的接收信箱。 当收到电文时, FIFO 的报告反面会增加, 而 STM32 在内部读 FIFO 数据, 报告方会减少自己, 我们通过州登记册得到报告方的值, 在前方主控登记册中的 RFLM 位可以设置锁模式、 FIFO 溢出在锁定模式下的锁定模式, 以丢弃新报告, 以及 非锁模式 FIFO 溢出的新报告, 以覆盖旧报告。 每一个接收FIFO 的FIFO 都包含一个带有识别器 CAN_ RixR、 数据长度控制器 CAN_ RDTR 和 2 数据存储器 CAN_ RDLXR, CAN_ RDHXR,, 其功能在表格中显示 。

我们可以读取这些发射机的值,并在通过中断或国家登记册接收FIFO数据后,将接收的信息装入STM32内存。
Can 外部过滤器的框在图表中由 CAN 外部过滤器表示,该过滤器包括28个过滤器组,每个过滤器有2个发送器,CAN1 和 CAN2 通用过滤器。根据 Can 协议,电文识别器不与节点地址挂钩,而是与电文的内容挂钩。因此,在将电文传送到所有接收器时,接收器的节点评估程序是否需要基于电文标识值的信息。为了使软件的工作更加容易,将使用接收和检查过滤器检查STM32的 CAN 外部接收信息,只有FIFO才能收到合适的信息。
在过滤器运行期间,您可以修改过滤器 ID 的长度以及过滤器模式。以下两个组根据过滤器 ID 的长度进行分类:
(1) 共检查31个地点的STDID[10:0]、EXTID[17:0]、IDE和RTR地点。
(2) 对性病[10:0]、RTR、IDE和EXTID[17:15]的审查,共16个地点。
FSCx 位元可以配置过滤器比例发送器 Can_FS1R 来指定过滤器工作的尺度。 过滤机制可以分为两种模式:
(1) 标识符列表模式,该模式将接收电文的标识指定为表格,并要求电文标识与列表中的一种识别符相等,才能接收,这类似于白色列表管理。
(2) 隐藏模式列出了电文 ID 所选收件人的名称,称为 掩码,可以视为关键词搜索,只要掩码(密钥)相同,符合要求,并且存储信息以接收 FIFO。 FBMx 位元可以通过定义过滤模式发件人可以_FM1R 来指定过滤器的运作模式。
每组过滤器由两组32位发送器(CAN_FxR1和CAN_FxR2)组成,它们用来持有需要过滤的身份证或面罩,与图表中两个保存者下方的“地图”一栏的平均值相同,如表格所示。
例如,在掩码模式下,第一个内存存储处存储了要过滤的ID,第二个内存存储处包含面罩,1号面罩部分表明它必须与ID中的内容匹配,过滤器的结果是表格第三行的ID值,该行由多个ID值组成,x表示它可以是0的1。

在使用识别符号模式时,只有两个身份识别码(32位模式)存储用于过滤,每个身份识别码仅包括两个身份识别码值。
如果过滤器激活,而信件 ID 与所有过滤器的配置不匹配, CAN 输出将删除信件, 而不是保存在 FIFO 中 。
回到图表结构时,图表中的符号代表了Can2外部结构的结构,与Can1外部结构的结构相同;它们共用过滤器,而储存存取控制器的防守由CAN1控制,它们必须使用Can2时钟才能做到可行。STM32F103系列芯片缺少一个 CAN2控制器。
注:HAL图书馆在网络上已经使用了很长时间,我们使用较新的图书馆。 25. 22, 最新的图书馆仍然大不相同!
我们可以从STM32的外部CAN中推断出,它拥有广泛的能力,控制需要大量发射机,可通过利用STM32 HAL图书馆提供的不同结构和图书馆功能加以简化。
HAL 图书馆定义了 CAN 初始化结构的工作模式以及控制 CAN 的初始化功能, 接收和发送信件所使用的结构, 以及图书馆文件 STM32F4x_hal_can.com.H 和“ STM32F4x_hal_can_can” 中的配置控制过滤模式和 ID 结构。 在编程过程中, 我们可以使用或使用一个参考库来协助文件对两个文件的评论。 现在, 让我们了解基本结构的内容, 请参见代码列表 1 。
这些结构的成员在括号中将以下文字定义为STM32 HAL库中指定的宏。
(1) Prescaler
此成员设置一个外摄像时钟频率, 以调节时间切片 Tq 的时间长度, 在时间切片 Tq 中, 值最终减少一个, 并随后写入 BRP 注册位置, 即先前给出的 Tq 公式 :
Tq = (BRP[9:0]+1) x TPCLK
Tq = PCLK TPCLK TPCLK TPCLK TPCLK TPCLK TPCLK TPCLK TPCLK TPCLK TPCLK TPCLK TPCLK TPCLK TPCLK TPCLK TPCLK TPCLK TTPC TPCLK TPCLK TTPC TPCLK TPCLK TPCLK TPCK TPCLK TPCK TPCLK TPCK TPCLK TPCK TPCK TPCLK TTPK TPCK TPCK TPCK TPCLK TTPK TTPK TPC TPK TTPK TTPK TPCK TPC TPC TTPC TTPK TPC TPK TTPK TPC TPK TTPC TTP TPK TTP TP TP TP TTP TP TP TP TP TP TP TTP TP TP TP TTP TTP TTP TP TP TP TP TP TTP TP TP TP TP TTP TP TP TP TP TP TP TP TTP TTP TTP TTP TP TP TP TP TP TP TP TP TE TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TE TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TE TE TE TE TE TE TE TE TE TP TE TE TP TP TE TE TP TP TP TP TP TP TP TP TP TP TP TP TP TP TE TE TP TP TE TE TE TE TE TP TE TP TP TP TE TP TP TP TE TP TP TP TP TP TP TP TP TP TP TP
(2) Mode
此组件配置 CAN 操作模式, 可以更改为正常( CAN_ MODE_ NORMLAL)、 回声( CAN_ MODE_ LOOPBACK)、 静音( CAN_ MODE_ SILENT) 或回声( CAN_ MODE_ SIRENT_ LOOPBACK ) 。
(3) SyncJumpWidth
该成员可以设定SJW的最长长度,即一个CAN再同步中可能提高或降低的最大长度,该最大长度可设定为1-4Tq(CAN_SJW_1/2/3/4tq)。
(4) TimeSeg1
此元素用于配置Canble时间序列中 BS1 段的长度, 该时间序列可设定为 1-16 Tq (CAN_BS1_1/2/3..16tq)。
(5) TimeSeg2
本元素用于配置化学文摘社位址顺序中的 BS2 段长度,可设为 1-8 Tq (CAN_BS2_1/2/3..8.tq)。 SYNC_SEG、 BS1 和 BS2 的长度是上述数据槽的长度。
T1bit = 1Tq+TS1+TS2+TS2=1+(TS1[3:0]+1]+1+(TS2[2:0]+1]+(TS2[3:0]+1]+(TS2[3:0]+1]+(TS2[3:0]+1]
T1比特=1Tq+CAN_BS1+CAN_BS2=T1比特=1Tq+CAN_BS1+CAN_BS2
(6) TimeTriggeredMode
这一组成部分控制了时间触发特征(耐受性/易受性)是否被各种加拿大国家协调机构的标准所利用。
(7) AutoBusOff
这一要素用于具体说明是否使用自动离线管理(ENCable/DISEB),在节点过错后无需软件干预即可自动恢复自动离线管理。
(8) AutoWakeUp
这一要素用于说明是否应当启用自动唤醒功能(耐受性/易感性),以便在监测公共汽车活动后自动唤醒。
(9) AutoWakeUp
本构成部分用于配置是否使用自动离线管理(ENCable/DISEB),在断层时可自动恢复自动离线管理,而无需软件干预。
(10) AutoRetransmission
这一要素用于具体说明是否使用自动再传输(ENCL/DISB)以及何时传送电文直到电文成功。
(11) ReceiveFifoLocked
该成员具体说明是否使用锁定来接受FIFO(耐受/耐受)、锁定来接收FIFO,如果FIFO溢出时拒绝新数据,或者锁定来接收FIFO,当FIFO溢出时以新数据覆盖旧数据。
(12) TransmitFifoPriority
此组件配置了发送信件的优先确定方法( ENLE/ DISBL), 以便在可能情况下, 信件按信箱中的顺序发送, 否则会按照电文代号的优先顺序发送 。 在指定这些结构的成员后, 我们可调用图书馆函数 HAL_ CAN_ Init 将这些参数写入 CAN 控制登记册并激活 CAN 。
在发送或接收电文时,必须向发件人的邮箱写上电文,或从接收的FIFO取回电文。 使用代码列表中提供的STM32HAL图书馆的结构可以简单完成。
这些机构的成员如下:
(1) StdId
此成员持有信件在 0-0x7FF 范围内的 11 位标准标识符 。
(2) ExtId
此成员持有信件在 0-0x1FF#F 范围内的 29 位扩展代号 。 ExtID 和 StdID 是基于下面的 IDE 位设置, 只有一位成员被允许 。
(3) IDE
当其值为宏 Can_ID_STD 时, 表示它是标准框架, 信件 ID 存储在 StdID 成员中; 当其值为宏 Can_ID_ EXT 表示它是扩展框架时, 信件 ID 存储在 ExtID 成员中 。
(4) RTR
此成员包含信件类型名称 RTR 位, 表示它是当值为宏 Can_ RTR_ Data 时的数据框架, 是一个值为宏 Can_ RTR_ Data 的远程框架, 当值为宏 Can_ RTR_ Remote 时是无效的, 当值为远程框架时是无效的, 因为没有数据段 。
(5) DLC
当报告用于远程控制时,该成员记录数据框中数据部分的长度,该数据框的范围为1-8,默认值为0。
CAN过滤器有几种操作模式,可能只是使用代码列表提供的过滤器结构来定制。 Code List Can过滤器结构
“41.2.14 接受和检查过滤器这一段中提供的内容可按照每个结构的成员所具体规定,以比较的方式加以解释,具体如下:
(1) FilterIdHigh
过滤器 High 成员存储要过滤的 ID; 如果过滤器以 32 位模式操作, 它会保存过滤的 ID 的 16 位高度; 如果过滤器以 16 位模式操作, 它会存储要过滤的全部 ID 。
(2) FilterIdLow
过滤器Low 成员则用于持有要过滤的 ID 。 如果过滤器以 32 位模式操作, 它记录过滤的 ID 的低 16 位; 如果过滤器以 16 位模式操作, 它存储要过滤的全部 ID 。
(3) FilterMaskIdHigh
较短的MaskIdHigh 以两种方式保存材料:当过滤器在标识符列表模式下操作时,它的作用类似于过滤器Idhig, 并存储要过滤的代号;当过滤器在掩码模式下操作时, 它会存储一个与过滤器IdHigh 成员匹配的遮罩, 用过滤器Low 建立一组过滤器 。
(4) FilterMaskIdLow
同样,过滤器 MaskIdLow 当过滤器在标识符列表模式中时, 存储与过滤器相同的功能, 并记录要过滤的代号; 当过滤器处于掩码模式中时, 它会存储过滤器Low 成员的匹配掩码, 用过滤器设置一组过滤器。 请联系前面的图39_ 0_ 15阅读下表39_ 7, 必要时读取库函数 FellerInit 的源代码 。
表格各种形式结构成员的内容
在评估这些机构的成员时,考虑对登记册的地位进行摸底,即哪个组成部分代表科技创新与发展,哪个部分代表EXID、IDE和RTR?
(5) FilterFIFOAssignment
此属性指定 FIFO 与过滤器匹配时接收信件的地址, 以 FIFO0 或 FIFO1 作为选项( 主机 Can_ FILTER_ FIFOO0/1) 。
(6) FilterBank
此成员设置过滤器所用的数字, 即这个过滤器结构, 取决于它配备的过滤器是哪一组, 总共可以包含28个过滤器, 允许它输入 0- 27 范围的参数 。
(7) FilterMode
该成员用于调整过滤器的工作模式可以设置为列表模式 (Major Can_FILTERMODE_IDLIST) 或掩码模式 (Major Can_FILTERMODE_IDMASK) 。
(8) FilterScale
该成员用于调整过滤器的量度可设定为32位长(大Can_FILTERSCALE_32BIT)或16位长(大Can_FILTERSCALE_16BIT)。
(9) FilterActivation
此成员用于指定该过滤器是否应该激活( macro enable/ liable) 。
我们熟悉立方体设置 通过问题, 你熟悉这些问题 并知道如何设置它们!
答案:如图

答复:例如,使用我上面提到的CANPORT率计算f103AHP1_36M f407AHP1_42M样本点软件。
例1:因为我们有500千赫, 我们必须这样做。

我们选择了80%的收集点, 因此 BS1 是 4 tq, BS2 是 2 tq, 频率系数是 12, 使用代理公式 Fpclk1/ (CAN_BS1+CAN_BS2+1* Can_ Pregramer) = 42M/( 4+2+1) = 500kHz = 500kHz 。
解释2:我们将有一个MHZ, 因此我们将有一个MHZ。
收集点75%,BS1为3 tq,BS2为2 tq,频率系数为7,代际公式Fpclk1/(CAN_BS1+CAN_BS2+1*CAN_Pregramer)=42 M/(3+2+1)/7=1 MHz。

时间错开的通信模式:在某些Can标准中,将适用时间触发功能(耐受/耐受)。
自动巴士-办公室管理(可视/可视):这是用来配置是否使用自动离线管理(可视/可视),在问题发生时,可在离线时自动恢复,而无需软件干预。
自动唤醒模式 : 此模式用于配置是否使用自动唤醒功能( ENEB/ DISBL), 以便在监测公交车活动后自动唤醒 。
自动再传送:用于具体说明是否应当使用自动再传送(ENCL/DISD),在使用自动再传送时,电文将发送到成功为止。
接收 Fio 锁定模式: 确定是否使用锁定来接收 FIFO( 耐受/ 易受), 并在锁定来接收 FIFO 后, 如果 FIFO 溢出, 是否拒绝新数据, 或者如果 FIFO 溢出, 是否覆盖现有数据 。
转发 Fifo 优先级 : 用于发送信件的优先确定方法( Enable/Disable), 使信件能够按存储在信箱中的顺序发送; 否则, 则根据电文 ID 的优先级发送 。 在指定这些结构的成员后, 我们可调用图书馆功能 HAL_ CAN_ Init 将这些参数写入 CAN 控制登记册并启动 CAN 。

答复:STM32有两个三级接收缓冲区:FIFO0和FIFO1,其中每个区有三份完全硬件管理的完整报告。如果FIFO0的接收中断,则由CAN1_RX0_IRQn的中断处理。如果FIFO1的接收中断,则由CAN1_RX1_IRQn的中断处理。


仅举几个例子!
我们将使用CAN分析工具 最好是用它做我们自己的工具
https://www.zhcxgd.com/h-col-112.html

我们定义了各种参数: id_ 类型是一个扩展或标准框架, 基础_ id是一个标准框架代号(在框架内有效), ex_ id是一个扩展框架代号(在框架内有效), 数据由数据提供, 数据长度由数据发送。
在主函数中,我们传递一个包含以下代码的框架,在标准框架和扩展框架之间相互参照:
调查结果通过CAN协议分析器进行。

1.没用调用HAL_CAN_Start(&hcan1);使能CAN
二,我开始相信 如果我不把它挂起来,我就不能过滤, 但我想了很多,这很有道理。STM32怎么知道FIFO没有被过滤, 将收据放进哪个FIFO?
待提升:
三. 在使用FIFO1之前,只有FIFO0可以使用。

步骤2、3和4与投票完全相同, 让我们来谈谈中断的本质。
这就是我们打算实现的目标。
参考内容:
“StM32 HAL图书馆发展实践指南——一个以野火挑战者为基础的发展董事会。”pdf [野火嵌入火]
2.pdf STM32F4参考手册
三,你能读到招生簿吗? pdf
————————————————
版权所有:Wireless_Link是CSDN的原始博客,
由Flickr用户 XiaoXiaoPengBo/article/details/116206252拍摄,
本文由 在线网速测试 整理编辑,转载请注明出处。