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

互联网技术专业学什么济南seo优化公司助力网站腾飞

互联网技术专业学什么,济南seo优化公司助力网站腾飞,网络维护公司名字,山西网架公司目录 一、CAN协议 1.1 CAN协议简介 1.2 CAN物理层 1.3 CAN协议层 二、CAN控制器 2.1 CAN控制内核 2.2 CAN发送邮箱 2.3 CAN接收FIFO 2.4 CAN验收筛选器 一、CAN协议 1.1 CAN协议简介 CAN 是控制器局域网络 (Controller Area Network) 的简称,它是由研发和生…

目录

一、CAN协议

1.1 CAN协议简介

1.2 CAN物理层

1.3 CAN协议层

二、CAN控制器

2.1 CAN控制内核

2.2 CAN发送邮箱

2.3 CAN接收FIFO

2.4 CAN验收筛选器

 

一、CAN协议

1.1 CAN协议简介

CAN 是控制器局域网络 (Controller Area Network) 的简称,它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO11519以及ISO11898),是国际上应用最广泛的现场总线之一。差异点如下:

1.2 CAN物理层

CAN 通讯不是以时钟信号来进行同步的,它是一种异步通讯,只具有 CAN_High 和 CAN_Low 两条信号线,共同构成一组差分信号线,以差分信号的形式进行通讯

CAN 物理层的形式主要有两种

  • 遵循 ISO11898 标准的高速、短距离闭环网络,总线最大长度为 40m,通信速度最高为 1Mbps,总线的两端各要求有一个120欧的电阻
  • 是遵循 ISO11519-2 标准的低速、远距离开环网络,最大传输距离为 1km,最高通讯速率为 125kbps,两根总线是独立的、不形成闭环,要求每根总线上各串联有一个2.2千欧的电阻

以TJA1050芯片作为CAN收发器的电路原理图如下图示

差分信号又称差模信号,差分信号传输时,需要两根信号线,这两个信号线的振幅相等,相位相反,通过两根信号线的电压差值来表示逻辑 0 和逻辑 1,CAN中显性电平(差值为正)对应逻辑 0,隐性电平(差值小于或等于0)对应逻辑 1,显性电平比隐性电平更强

1.3 CAN协议层

CAN 属于异步通讯,没有时钟信号线,连接在同一个总线网络中的各个节点会像串口异步通讯那样,节点间使用约定好的波特率进行通讯,CAN 使用位同步的方式来抗干扰、吸收误差,实现对总线电平信号进行正确的采样,确保通讯正常

  • 位时序分解:为了实现位同步,CAN 协议把每一个数据位的时序分解成 SS 段、PTS 段、PBS1 段、PBS2 段,这四段的长度加起来即为一个CAN数据位的长度。分解后最小的时间单位是 Tq,一个完整的位由 8~25 个 Tq 组成

段名称

作用

Tq数

SS 段 (SYNC SEG)

同步段,若通讯节点检测到总线上信号的跳变沿被包含在 SS 段的范围之内,则表示节点与总线的时序是同步的

1Tq

PTS 段 (PROP SEG)

传播时间段,用于补偿网络的物理延时时间。是总线上输入比较器延时和输出驱动器延时总和的两倍

1~8Tq

PBS1 段 (PHASE SEG1)

相位缓冲段,主要用来补偿边沿阶段的误差,它的时间长度在重新同步的时候可以加长

1~8Tq

PBS2 段 (PHASE SEG2)

另一个相位缓冲段,也是用来补偿边沿阶段误差的,它的时间长度在重新同步时可以缩短

2~8Tq

  • 波特率:总线上的各个通讯节点只要约定好 1 个 Tq 的时间长度以及每一个数据位占据多少个 Tq,就可以确定 CAN 通讯的波特率。

例如,假设上图中的 1Tq=1us,而每个数据位由 19 个 Tq 组成,则传输一位数据需要时间 T1bit=19us,从而每秒可以传输的数据位个数为:1x10次方/19 = 52631.6 (bps)。这个每秒可传输的数据位的个数即为通讯中的波特率。

  • 同步过程:波特率只是约定了每个数据位的长度,数据同步还涉及到相位的细节,此时就要用到数据位内的 SS、PTS、PBS1 及 PBS2 段了。根据对段的应用方式差异, CAN 的数据同步分为硬同步和重新同步。其中硬同步只是当存在帧起始信号时起作用,无法确保后续一连串的位时序都是同步的,而重新同步方式可解决该问题

硬同步:CAN节点通过总线发送数据时,会发送一个帧起始信号。而挂载到CAN总线上的节点在不发送数据时,会时刻检测总线上的信号。如下图,当总线出现帧起始信号时,节点检测到总线的帧起始信号不在节点内部时序的 SS 段范围,所以判断它自己的内部时序与总线不同步,因而这个状态的采样点采集得的数据是不正确的。所以节点以硬同步的方式调整,把自己的位时序中的 SS 段平移至总线出现下降沿的部分,获得同步,同步后采样点就可以采集得正确数据了

重新同步:前面的硬同步只是当存在帧起始信号时才起作用,如果在一帧很长的数据内,节点信号与总线信号相位有偏移时,这种同步方式就无能为力了。因而引入重新同步方式,它利用普通数据位的高至低电平的跳变沿来同步。与硬同步方式相似的是它们都使用 SS 段来进行检测,同步的目的都是使节点内的 SS 段把跳变沿包含起来。重新同步分为超前和滞后两种情况,以总线跳变沿与 SS 段的相对位置进行区分。
- 相位超前:节点从总线的边沿跳变中,检测到它内部的时序比总线的时序相对超前 2Tq,这时控制器在下一个位时序中的 PBS1 段增加 2Tq 的时间长度,使得节点与总线时序重新同步。
- 相位滞后:节点从总线的边沿跳变中,检测到它的时序比总线的时序相对滞后 2Tq,这时控制器在前一个位时序中的 PBS2 段减少 2Tq 的时间长度,获得同步。

  • 报文种类及结构:对数据、操作命令 (如读/写) 以及同步信号进行打包,打包后的这些内容称为报文。CAN 一共规定了 5 种类型的帧

数据帧的结构:数据帧是在 CAN 通讯中最主要、最复杂的报文,它的结构如下图

段名称

作用

备注

帧起始

SOF,用于通知各个节点将有数据传输

1 个数据位(显性电平)

仲裁段

决定数据帧发送的优先级,也决定其它节点是否会接收这个数据帧。标准格式11位,扩展格式29位

RTR位标识是否远程帧(0 数据帧;1 远程帧),IDE位为标识符选择位(0 标准标识符;1 扩展标识符),SRR位为代替远程请求位(隐性位),代替了标准帧中的RTR位

控制段

表示数据段的字节数,由6个位构成

标准帧和扩展帧有所不同,r1和r0为保留位,默认为显性位; DLC为数据长度码,由4位组成,表示本报文中的数据段含有多少个字节

数据段

节点要发送的原始信息

由 0~8 个字节组成,从最高位(MSB)开始输出

CRC 段

用于检查帧传输错误

由15个位的CRC顺序和1个位的CRC界定符(用于分隔的位)组成

ACK 段

用来确认是否正常接收

由ACK槽(ACK Slot)和ACK界定符2个位组成

帧结束

EOF,由发送节点发送的 7 个隐性位表示结束

7 个数据位(隐性电平)

其他报文结构

二、CAN控制器

STM32 的芯片中具有 bxCAN 控制器 (Basic Extended CAN),它支持 CAN 协议 2.0A 和 2.0B 标准。该 CAN 控制器支持最高的通讯速率为 1Mb/s;可以自动地接收和发送 CAN 报文,支持使用标准ID和扩展ID的报文;外设中有 3 个发送邮箱,发送报文的优先级可以使用软件控制,还可以记录发送的时间;有 2 个 3 级深度的接收 FIFO,可使用过滤功能只接收或不接收某些 ID 号的报文;可配置成自动重发;不支持使用 DMA 进行数据收发。框架示意图如下:

STM32 有两组 CAN 控制器,其中 CAN1 是主设备,框图中的“存储访问控制器”是由 CAN1控制的,CAN2 无法直接访问存储区域,所以使用 CAN2 的时候必须使能 CAN1 外设的时钟。框图中主要包含 CAN 控制内核、发送邮箱、接收 FIFO 以及验收筛选器,下面对框图中的各个部分进行介绍。

2.1 CAN控制内核

  • 主控寄存器 CAN_MCR:负责管理 CAN 的工作模式

INRQ位:用来控制初始化请求,在CAN初始化时,先设置该位为1,进行初始化,之后再设置该位为0,让CAN进入正常工作模式

  • 位时序寄存器 CAN_BTR:用于配置测试模式、波特率以及各种位内的段参数

位名称

作用

备注

SILM

静默模式

0:正常工作 1:静默模式

LBKM

环回模式

0:禁止环回模式 1:使能环回模式

SJW

再同步跳转宽度

再同步时最多可将位加长或缩短的时间片数目

TS2

时间段2

相当于 PBS2

TS1

时间段1

相当于 PTS + PBS1

BRP

波特率预分频器

用于配置单个时间片的长度 Tq

CAN波特率的计算公式:只需要知道BS1和BS2的设置,以及APB1的时钟频率,就可以方便的计算出波特率。比如设置TS1=9、TS2=5和BRP=6,在APB1频率为45Mhz的条件下,即可得到CAN通信的波特率=45000/6/(5+9+1)=500Kbps

2.2 CAN发送邮箱

CAN 共有 3 个发送邮箱,即最多可以缓存 3 个待发送的报文。每个发送邮箱中包含有标识符寄存器 CAN_TIxR、数据长度控制寄存器 CAN_TDTxR 及 2 个数据寄存器 CAN_TDLxR、CAN_TDHxR,如下图

当使用 CAN 外设发送报文时,需要把报文的各个段分解,按位置写入到这些寄存器中,并对标识符寄存器 CAN_TIxR 中的发送请求寄存器位 TMIDxR_TXRQ 置 1,即可把数据发送出去。其中标识符寄存器 CAN_TIxR 中的 STDID 寄存器位比较特别。我们知道 CAN 的标准标识符的总位数为 11 位,而扩展标识符的总位数为 29 位的。当报文使用扩展标识符的时候,标识符寄存器 CAN_TIxR 中的 STDID[10:0] 等效于 EXTID[18:28] 位,它与 EXTID[17:0] 共同组成完整的 29位扩展标识符。

  • 发送邮箱标识符寄存器 CAN_TIxR

名称

作用

STID[10:0]/EXID[28:18]

标准标识符或扩展标识符的 MSB

EXID[17:0]

扩展标识符的 LSB

IDE

定义邮箱中消息的标识符类型

RTR

远程发送请求 (Remote transmission request)

TXRQ

发送邮箱请求

  • 发送邮箱数据长度和时间戳寄存器 CAN_TDTxR

名称

作用

TIME[15:0]

消息时间戳,包含在进行 SOF 发送时所捕获的 16 位定时器值

TGT

发送全局时间,只有硬件处于时间触发通信模式时,此位才会激活

DLC[3:0]

定义数据帧或遥控帧请求中的数据字节数

  • 发送邮箱低字节数据寄存器 CAN_TDLxR

  • 发送邮箱高字节数据寄存器 CAN_TDHxR

2.3 CAN接收FIFO

CAN 共有 2 个接收 FIFO,每个 FIFO 中有 3 个邮箱,即最多可以缓存 6 个接收到的报文。当接收到报文时,FIFO 的报文计数器会自增,而 STM32 内部读取 FIFO 数据之后,报文计数器会自减,通过状态寄存器可获知报文计数器的值,而通过前面主控制寄存器的 RFLM 位,可设置锁定模式,锁定模式下 FIFO溢出时会丢弃新报文,非锁定模式下 FIFO 溢出时新报文会覆盖旧报文。跟发送邮箱类似,每个接收 FIFO 中包含有标识符寄存器 CAN_RIxR、数据长度控制寄存器CAN_RDTxR 及 2 个数据寄存器 CAN_RDLxR、CAN_RDHxR,它们的功能见下表

通过中断或状态寄存器知道接收 FIFO 有数据后,我们再读取这些寄存器的值即可把接收到的报文加载到 STM32 的内存中

  • 接收FIFO邮箱标识符寄存器 CAN_RIxR

名称

作用

STID[10:0]/EXID[28:18]

标准标识符或扩展标识符的 MSB

EXID[17:0]

扩展标识符的 LSB

IDE

定义邮箱中消息的标识符类型

RTR

远程发送请求 (Remote transmission request)

  • 接收FIFO邮箱数据长度和时间戳寄存器 CAN_RDTxR

名称

作用

TIME[15:0]

消息时间戳,包含在进行 SOF 发送时所捕获的 16 位定时器值

FMI[7:0]

筛选器匹配索引

DLC[3:0]

定义数据帧所包含的数据字节数,远程帧为0

  • 接收FIFO邮箱低字节数据寄存器 CAN_RDLxR

  • 接收FIFO邮箱高字节数据寄存器 CAN_RDHxR

2.4 CAN验收筛选器

CAN 验收筛选器,共有 28 个筛选器组,每个筛选器组有 2 个寄存器,CAN1 和 CAN2 共用筛选器。CAN 协议中,消息的标识符与节点地址无关,但与消息内容有关。因此,发送节点将报文广播给所有接收器时,接收节点会根据报文标识符的值来确定软件是否需要该消息,为了简化软件的工作,STM32 的 CAN 外设接收报文前会先使用验收筛选器检查,只接收需要的报文到 FIFO中。筛选器工作的时候,可以调整筛选 ID 的长度及过滤模式。

根据筛选 ID 长度来分类有有以下两种:

  • 检查 STDID[10:0]、EXTID[17:0]、IDE 和 RTR 位,共 31 位
  • 检查 STDID[10:0]、RTR、IDE 和 EXTID[17:15],共 16 位

根据过滤的方法分为以下两种模式:

  • 标识符列表模式,它把要接收报文的 ID 列成一个表,要求报文 ID 与列表中的某一个标识符完全相同才可以接收,可以理解为白名单管理。
  • 掩码模式,它把可接收报文 ID 的某几位作为列表,这几位被称为掩码,可以把它理解成关键字搜索,只要掩码 (关键字) 相同,就符合要求,报文就会被保存到接收 FIFO。

通过配置筛选模式寄存器 CAN_FM1R 的 FBMx 位可以设置筛选器工作在哪个模式。通过配置筛选尺度寄存器 CAN_FS1R 的 FSCx 位可以设置筛选器工作在哪个尺度。不同的尺度和不同的过滤方法可使筛选器工作在图 的 4 种状态。

每组筛选器包含 2 个 32 位的寄存器,分别为 CAN_FxR1 和 CAN_FxR2,它们用来存储要筛选的ID 或掩码,各个寄存器位代表的意义与图中两个寄存器下面“映射”的一栏一致,各个模式的说明见表

例如下面的表格所示,在掩码模式时,第一个寄存器存储要筛选的 ID,第二个寄存器存储掩码,掩码为 1 的部分表示该位必须与 ID 中的内容一致,筛选的结果为表中第三行的 ID 值,它是一组包含多个的 ID 值,其中 x 表示该位可以为 1 可以为 0。

而工作在标识符模式时,2 个寄存器存储的都是要筛选的 ID,它只包含 2 个要筛选的 ID 值 (32位模式时)。如果使能了筛选器,且报文的 ID 与所有筛选器的配置都不匹配,CAN 外设会丢弃该报文,不存入接收 FIFO。

  • 过滤器模式寄存器 CAN_FM1R

名称

作用

FBMx

0:筛选器存储区 x 的两个 32 位寄存器处于标识符屏蔽模式。1:筛选器存储区 x 的两个 32 位寄存器处于标识符列表模式。

  • 过滤器尺度寄存器 CAN_FS1R

名称

作用

FSCx

0:双 16 位尺度配置;1:单 32 位尺度配置

  • 过滤器FIFO分配寄存器 CAN_FFA1R

名称

作用

FFAx

筛选器 x 的筛选器 FIFO 分配,通过此筛选器的消息将存储在指定的 FIFO 中

  • 过滤器激活寄存器 CAN_FA1R

名称

作用

ACTx

筛选器激活,软件将此位置 1 可激活筛选器 x

  • 过滤器组i的寄存器x CAN_FiRx

名称

作用

FB[31:0]

筛选器位

http://www.dtcms.com/wzjs/26248.html

相关文章:

  • 本地网站建设电话百度上海推广优化公司
  • 成都网站建设cdcidi品牌运营包括哪些内容
  • 黑黑网站推广运营是做什么的
  • 传媒公司注册需要什么条件网站优化公司上海
  • 做网站运营的要求枣庄网站建设制作
  • cc网站域名注册昆明seo排名外包
  • 工程公司名字seo网站推广方案
  • 网站建设话术分析品牌形象推广
  • 网站可不可以不添加源码直接添加模板网络营销公司注册找哪家
  • 如何seo推广工厂店seo营销推广多少钱
  • 网站建设公司服务今日头条十大热点
  • 网站建设流程图解直接打开百度
  • 网站开发怎样建立后台数据百度推广seo自学
  • 传奇霸主seo公司怎么样
  • 单位装专用的网站网页归档百度客户服务电话是多少
  • 做网站需要的参考文献360网站关键词排名优化
  • 南昌企业建设网站开发网站seo谷歌
  • 自己怎么做网站空间海外引流推广平台
  • 济南行知网站建设百度推广登录官网入口
  • 网站的基本价格搜索引擎优化的定义
  • 苏州定制建站网站建设seo店铺描述例子
  • 外贸建英文网站的重要性seo优化工具哪个好
  • 宁波电商平台网站建设厦门seo网站排名优化
  • 网站如何做视频链接地址专注于seo顾问
  • 网站开发公司流程宁德市医院
  • 网站seo分析工具武汉刚刚突然宣布
  • 珠海视窗网苏州seo按天扣费
  • 深圳网站建设企业上海短视频推广
  • 网站301检测网站优化包括对什么优化
  • 做的比较好的网站灰色关键词快速排名