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

免费注册的网站电子商务企业网站制作

免费注册的网站,电子商务企业网站制作,山东工艺美术学院网站建设公司,怎么做网络运营目录 CAN介绍 CAN总线拓扑图 CAN总线特点 CAN应用场景 CAN物理层 CAN收发器芯片介绍 CAN协议层 数据帧介绍 CAN位时序介绍 数据同步过程 硬件同步 再同步 CAN总线仲裁 STM32 CAN控制器介绍 CAN控制器模式 CAN控制器模式 CAN控制器框图 发送处理 接收处理 接收过…目录 CAN介绍 CAN总线拓扑图 CAN总线特点 CAN应用场景 CAN物理层 CAN收发器芯片介绍 CAN协议层 数据帧介绍 CAN位时序介绍  数据同步过程 硬件同步 再同步 CAN总线仲裁 STM32 CAN控制器介绍 CAN控制器模式 CAN控制器模式 CAN控制器框图 发送处理 接收处理 接收过滤器 CAN控制器位时序 CAN相关寄存器介绍F1 / F4 / F7 CAN主控制寄存器CAN_MCR CAN位时序寄存器CAN_BTR CAN 标识符寄存器CAN_(T/R)IxR 数据长度和时间戳寄存器CAN_(T/R)DTxR CAN低位数据寄存器CAN_(T/R)DLxR CAN高位数据寄存器CAN_(T/R)DHxR CAN过滤器位宽寄存器CAN_FS1R CAN 过滤器FIFO关联寄存器CAN_FFA1R CAN 过滤器组x寄存器CAN_FxR(1/2) CAN相关HAL库驱动介绍 CAN外设相关重要结构体 结构体成员与寄存器情况 CAN基本驱动步骤 过滤器组设置实例 CAN介绍 CANController Area Network是ISO国际标准化的串行通信协议。 为了满足汽车产业的“减少线束的数量”、“通过多个LAN进行大量数据的高速通信”的需求。 低速CAN(ISO11519)通信速率10~125Kbps总线长度可达1000米 高速CAN(ISO11898)通信速率125Kbps~1Mbps总线长度≤40米(经典CAN) CAN FD 通信速率可达5Mbps并且兼容经典CAN遵循ISO 11898-1 做数据收发 更多CAN的历史知识可以上CAN in Automation(CiA) 官网了解。 CAN总线拓扑图 终端电阻用于阻抗匹配以减少回波反射 CAN总线由两根线 CANL 和 CANH 组成允许挂载多个设备节点低速CAN:20 高速CAN:30。 CAN总线特点 1多主控制                  每个设备都可以主动发送数据 2系统的柔软性           没有类似地址的信息添加设备不改变原来总线的状态 3通信速度                  速度快距离远 4错误检测错误通知错误恢复功能 5故障封闭                  判断故障类型并且进行隔离 6连接节点多              速度与数量找个平衡 CAN应用场景 CAN总线协议已广泛应用在汽车电子、工业自动化、船舶、医疗设备、工业设备等方面。 CAN物理层 CAN使用差分信号进行数据传输根据CAN_H和CAN_L上的电位差来判断总线电平。 总线电平分为显性电平(逻辑0)和隐性电平(逻辑1)二者必居其一。 显性电平具有优先权。发送方通过使总线电平发生变化将消息发送给接收方。 电平 高速CAN 低速CAN 显性电平0 UCAN_H – UCAN_L  2V UCAN_H – UCAN_L 3V 隐性电平1 UCAN_H – UCAN_L 0V UCAN_H – UCAN_L - 1.5V CAN收发器芯片介绍 CAN协议层 CAN总线以“帧”形式进行通信。CAN协议定义了5种类型的帧数据帧、遥控帧、错误帧、过载帧、间隔帧其中数据帧最为常用。 数据帧介绍 数据帧由7段组成。数据帧又分为标准帧(CAN2.0A)和扩展帧(CAN2.0B)主要体现在仲裁段和控制段。 CAN位时序介绍  CAN总线以“位同步”机制实现对电平的正确采样。位数据都由四段组成同步段(SS)、传播时间段(PTS)、相位缓冲段1(PBS1)和相位缓冲段2(PBS2)每段又由多个位时序Tq组成。 注意 : 节点监测到总线上信号的跳变在SS段范围内表示节点与总线的时序是同步此时采样点的电平即该位的电平。 采样点是指读取总线电平并将读到的电平作为位值的点。 根据位时序就可以计算CAN通信的波特率。 数据同步过程 由于时钟频率误差、传输上的相位延迟引起偏差所以需要数据同步 CAN为了实现对总线电平信号的正确采样数据同步分为硬件同步和再同步。 硬件同步 节点通过CAN总线发送数据一开始发送帧起始信号。总线上其他节点会检测帧起始信号在不在位数据的SS段内判断内部时序与总线是否同步。 假如不在SS段内这种情况下采样点获得的电平状态是不正确的。所以节点会使用硬件同步方式调整 把自己的SS段平移到检测到边沿的地方获得同步同步情况下采样点获得的电平状态才是正确的。 再同步 再同步利用普通数据位的边沿信号帧起始信号是特殊的边沿信号进行同步。 再同步的方式分为两种情况超前和滞后即边沿信号与SS段的相对位置。 再同步时PSB1和PSB2中增加或者减少的时间被称为“再同步补偿宽度SJW”,其范围1~4 Tq。 限定了SJW值后再同步时不能增加限定长度的SJW值。SJW值较大时吸收误差能力更强但是通讯速度会下降。 CAN总线仲裁 决定优先级 CAN总线处于空闲状态最先开始发送消息的单元获得发送权。 多个单元同时开始发送时从仲裁段(报文ID)的第一位开始进行仲裁。连续输出显性电平最多的单元可继续发送即首先出现隐性电平的单元失去对总线的占有权变为接收。 竞争失败单元会自动检测总线空闲在第一时间再次尝试发送。 STM32 CAN控制器介绍 STM32 CAN控制器bxCAN支持CAN 2.0A 和 CAN 2.0B Active版本协议。 CAN 2.0A 只能处理标准数据帧且扩展帧的内容会识别错误而CAN 2.0B Active 可以处理标准数据帧和扩展数据帧。CAN 2.0B Passive只能处理标准数据帧且扩展帧的内容会忽略。 bxCAN主要特点 波特率最高可达1M bps 支持时间触发通信CAN的硬件内部定时器可以在TX/RX的帧起始位的采样点位置生成时间戳 具有3级发送邮箱 具有3级深度的2个接收FIFO 可变的过滤器组最多28个F1只有14个 CAN控制器模式 CAN控制器的工作模式有三种初始化模式、正常模式和睡眠模式。 CAN控制器模式 CAN控制器的测试模式有三种静默模式、环回模式和环回静默模式。初始化模式下进行配置 CAN控制器框图 1CAN内核 包含各种控制/状态/配置寄存器可以配置模式、波特率等 2发送邮箱 用来缓存待发送的报文最多可以缓存3个报文 3接收FIFO 缓存接收到的有效报文 4接收过滤器 筛选有效报文 发送处理 接收处理 接收过滤器 当总线上报文数据量很大时总线上的设备会频繁获取报文占用CPU。过滤器的存在选择性接收有效报文减轻系统负担。 每个过滤器组都有两个32位寄存器CAN_FxR1和CAN_FxR2。根据过滤器组的工作模式(位宽和选择模式)不同寄存器的作用不尽相同。 选择模式可设置屏蔽位模式或标识符列表模式寄存器内容的功能就有所区别。 屏蔽位模式可以选择出一组符合条件的报文。寄存器内容功能相当于是否符合条件。 标识符列表模式可以选择出几个特定ID的报文。寄存器内容功能就是标识符本身。 REG中bit值代表的是匹配与否1必须匹配 0不用关心 屏蔽位寄存器中位值为1表示与ID要必须匹配位值为0表示可不与ID匹配。 在使能过滤器情况下总线上广播的报文ID与过滤器的配置都不匹配CAN控制器会丢弃该报文不会进入到接收FIFO中。 注意标识符选择位IDE和帧类型RTR需要一致。不同过滤器组的工作模式可以设置为不同。 CAN控制器位时序 STM32的CAN外设位时序分为三段 同步段 SYNC_SEG、        时间段1 BS1PTS PBS1、        时间段2 BS2 STM32F103设TS18、TS27、BRP3波特率 36000 / [( 9 8 1 ) * 4] 500Kbps。 STM32F407设TS16、TS25、BRP5波特率 42000 / [( 7 6 1 ) * 6] 500Kbps。 注意通信双方波特率需要一致才能通信成功。 CAN相关寄存器介绍F1 / F4 / F7 CAN主控制寄存器CAN_MCR INRQ位用于控制初始化请求。 CAN位时序寄存器CAN_BTR STM32F103设TS18、TS27、BRP3波特率 36000 / [( 9 8 1 ) * 4] 500Kbps CAN 标识符寄存器CAN_(T/R)IxR x范围1~33个发送邮箱                x范围1~22个接收FIFO邮箱 报文使用标准标识符EXID[17:0]值无效 TxRQ位置1请求邮箱发送 注意报文使用扩展标识符时STID[10:0]等效于EXID[28:18]与EXID[17:0]组成29位扩展标识符。 数据长度和时间戳寄存器CAN_(T/R)DTxR x范围1~33个发送邮箱                x范围1~22个接收FIFO邮箱 注意DLC是多少数据内容就有多少字节被发送并不是每次都发送8个字节数据。 CAN低位数据寄存器CAN_(T/R)DLxR CAN高位数据寄存器CAN_(T/R)DHxR 使用时间戳功能DLC必须为8字节 CAN过滤器模式寄存器CAN_FM1R CAN过滤器位宽寄存器CAN_FS1R 注意CAN外设只能使用的有的过滤器组不能使用没有的过滤器组。  CAN 过滤器FIFO关联寄存器CAN_FFA1R 该寄存器决定了哪个FIFO寄存器有效即RIxR、RDTxR、RDLxR、RDHxR的‘x’)。  CAN 过滤器组x寄存器CAN_FxR(1/2) CAN相关HAL库驱动介绍 CAN外设相关重要结构体 CAN_InitTypeDef、CAN_FilterTypeDef和CAN_(T/R)xHeaderTypeDef CAN_InitTypeDefuint32_t Prescaler /* 预分频 */ uint32_t Mode /* 工作模式 */ uint32_t SyncJumpWidth /* 再次同步跳跃宽度 */ uint32_t TimeSeg1 /* 时间段1(BS1)长度 */ uint32_t TimeSeg2 /* 时间段2(BS2)长度 */ uint32_t TimeTriggeredMode /* 时间触发通信模式 */ uint32_t AutoBusOff /* 总线自动关闭 */ uint32_t AutoWakeUp /* 自动唤醒 */ uint32_t AutoRetransmission /* 自动重传 */ uint32_t ReceiveFifoLocked /* 接收FIFO锁定 */ uint32_t TransmitFifoPriority /* 传输FIFO优先级 */CAN_FilterTypeDefuint32_t FilterIdHigh /* ID高字节 */ uint32_t FilterIdLow /* ID低字节 */ uint32_t FilterMaskIdHigh /* 掩码高字节 */ uint32_t FilterMaskIdLow /* 掩码低字节 */ uint32_t FilterFIFOAssignment /* 过滤器关联FIFO */ uint32_t FilterBank /* 选择过滤器组 */ uint32_t FilterMode /* 过滤器模式*/ uint32_t FilterScale /* 过滤器位宽 */ uint32_t FilterActivation /* 过滤器使能 */ Uint32_t SlaveStartFilterBank /* 从CAN选择启动过滤器组 单CAN没有意义*/结构体成员与寄存器情况 CAN基本驱动步骤 1、CAN参数初始化 工作模式、波特率等        HAL_CAN_Init 2、使能CAN时钟和初始化相关引脚 GPIO模式设为复用功能模式        HAL_CAN_MspInit 3、设置过滤器 HAL_CAN_ConfigFilter 完成过滤器的初始化 4、CAN数据接收和发送 HAL_CAN_AddTxMessage 发送消息 HAL_CAN_ GetRxMessage 接收数据 5、使能CAN相关中断/设置NVIC/编写中断服务函数 __HAL_CAN_ENABLE_IT 可选 过滤器组设置实例 关于CAN中断  启用 CAN 接收 FIFO0 消息挂起中断 __HAL_CAN_ENABLE_IT(g_can_handle_struct, CAN_IT_RX_FIFO0_MSG_PENDING);__HAL_CAN_ENABLE_IT这是 STM32 HAL 库提供的一个宏用于启用 CAN 外设的中断。CAN_IT_RX_FIFO0_MSG_PENDING这个参数表示启用 CAN 接收 FIFO0 消息挂起中断。 当 CAN 接收 FIFO0 中有新的消息并且该消息已经准备好时控制器会触发一个中断允许外部应用程序处理接收到的消息。FIFO先进先出队列用于存储接收到的 CAN 消息FIFO0 是第一个 FIFO 队列STM32 的 CAN 控制器通常有多个 FIFO 队列。 是的您的理解是正确的。进入挂起中断后您可以读取 can_rxheader_struct.StdId因为当 CAN 控制器收到数据并通过过滤器后会将其存放到 FIFO 队列中。中断会在 FIFO 中有新消息时触发并通过 HAL 函数 HAL_CAN_GetRxMessage 将数据读取出来。 详细解释 1. CAN 接收机制概述 CAN 总线是一个广播式协议当总线上有设备发送消息时所有连接的设备都能接收到这条消息。过滤器CAN 控制器通常配置了过滤器来筛选感兴趣的消息只有经过过滤器允许的消息才会被接收并存储到接收 FIFO 中。STM32 的 CAN 控制器可以通过配置多个过滤器来选择哪些消息应当接收。FIFO 队列接收到的有效消息会被存储到接收 FIFO如 FIFO0。消息排队存储等待被中断服务程序处理。 2. 中断触发 当接收到一条消息并且通过了过滤器的检查后消息就会被存储到 FIFO 中。此时如果启用了接收中断例如通过 CAN_IT_RX_FIFO0_MSG_PENDING并且 FIFO 中有新消息CAN 中断会被触发。 3. 读取接收的消息 在进入中断处理函数 USB_LP_CAN1_RX0_IRQHandler 后您可以通过 HAL_CAN_GetRxMessage 函数读取接收到的消息并将消息的相关信息如标识符和数据存储到相应的结构体中。读取的消息头信息如 StdId、IDE、RTR、DLC 等通常存储在 CAN_RxHeaderTypeDef 结构体中 4. 总结 数据是被动接收的当总线上有数据并且经过了过滤器的过滤符合条件的消息会被存储到 FIFO 中。进入中断后可以读取 can_rxheader_struct.StdId一旦中断被触发您可以通过 HAL_CAN_GetRxMessage 读取消息的标识符和数据标识符信息存储在 can_rxheader_struct.StdId 中。过滤器的作用过滤器用于筛选总线上接收到的消息只有符合条件的消息才会存放到 FIFO 中并触发中断。
http://www.hkea.cn/news/14313944/

相关文章:

  • 网站建设 seo商情网打车软件app开发
  • 心悦会员免做卡网站爱站网
  • 伍佰亿搜索引擎网站系统门户网站建设 交流发言
  • 苏州网站制作排名优化几十万做网站平台
  • 红色网站呢怎样在赶集微网站做微招聘
  • 网站开发常用的开发工具企业邮箱怎么申请账号
  • 做网站学注册保险代理公司需要什么条件
  • 邯郸企业网站建设费用深圳市深企在线技术开发有限公司
  • 用图片做简单网站网络营销的主要传播渠道是
  • 云主机重装系统后网站重新部署吗做推文网站
  • 隆尧网站生活信息网站建设
  • 免费开源企业网站程序wordpress邮箱插件
  • 上海黄金网站设计浅谈旅游网站的规划与建设
  • 网站开发系统计划书wordpress 搭建网站
  • 怎么备份网站模板网站建设为什么要全款
  • 在一个网站上面发布广告怎么做做网站实验报告
  • 演讲网站开发背景营销推广型网站价格
  • 梅林做网站wordpress 宅男猫网站
  • 如何在建设银行网站查验回单静态网站更新文章麻烦
  • 网站设计实训心得做网站 租服务器
  • 怎么查询公司网站备案网站备案 电信
  • 做外贸什么网站比较好做无锡个人网站制作
  • a站是啥wordpress模版post.php
  • 楚雄网站开发微软网站做u盘启动教程
  • 免费简单门户网站开发网站页面策划模板下载
  • 汕头个人网站建设图片转链接在线转换
  • 适合html初学者做的网站个人主页怎么找
  • 建网站哪个公司好厦门模板建站系统
  • 企业网站优化服务主要围绕哪些要素?为什么?建个网站有什么用
  • 山东省住房和城乡建设厅注册中心网站优化大师win10能用吗