基于STM32F105微控制器的双CAN冗余的方案设计

发布者:草木知秋最新更新时间:2016-08-13 来源: dzsc关键字:STM32F105  微控制器  双CAN冗余 手机看文章 扫描二维码
随时随地手机看文章
     控制器局域网( Contro llerA reaN etwo rk, CAN)是一种多主方式的串行通讯总线。CAN 总线具有较高的位速率, 很强的抗电磁干扰性, 完善的错误检测机制, 在汽车、制造业以及航空工业领域中得到广泛应用 。由于船舶机舱环境极为恶劣, 且船舶航行过程中维修条件不如陆上, 对CAN 通信的可靠性要求很高, 采取双CAN 冗余总线提高通信可靠性。本文提出一种基于STM32F105微控制器的双CAN 冗余设计方案。

  1 硬件平台组成

  STM32F105是STM icroe lectron ics公司推出的一款基于ARM Co rtex- M3内核的32位微控制器, 其内核是专门设计于满足高性能、低功耗、实时应用的嵌入式领域的要求。由于采用Thumb - 2指令集,与ARM7微控制器相比STM32运行速度最多可快35% 且代码最多节省45% 。较高的主频和代码执行效率使系统在进行CAN 总线数据收发的同时仍可运行总线冗余算法。STM32F105微控制器内部集成2路独立的CAN 控制器, 控制器集成在芯片内部, 避免了总线外扩引入的干扰, 同时简化了电路设计、降低成本。

  系统使用两条完全独立的CAN 总线, 两个CAN 总线收发器和总线控制器, 实现物理层、数据链路层的全面冗余。在初始化时两个控制器被同时激活, 一个作为主CAN, 另一个作为从CAN, 为主控制器的备份。正常运作时, 数据通过主CAN 优先发送; 当主CAN 总线繁忙时, 从CAN 总线分担部分通信流量; 而当主CAN 总线发生故障时, 数据转移至从CAN 控制器传输, 反之亦然。在任一总线发生故障时,数据都能经由另一条总线传输, 而当两条总线都正常时, 使用两总线同时传输, 增加约1倍的通信带宽,这样在保证了通信可靠性的同时提高了实时性。

  CAN 总线接口电路设计如图1所示, 使用T JA1050作为总线收发器, 它完成CAN 控制器与物理总线之间的电平转换和差动收发。尽管TJA1050本身具备一定的保护能力, 但其与总线接口部分还是采用一定的安全和抗干扰措施; T JA1050的CANH 和CANL与地之间并联两只10pF的小电容, 可以滤除总线上的高频干扰; 另外, 为了增强CAN 总线节点的抗干扰能力, 总线输入端与地之间分别接入一只瞬态抑制二极管, 当两输入与地之间出现瞬变干扰时, 收发器输入端电压被钳位在安全范围。

  为防止总线过压造成节点损坏, STM32F105内置CAN 控制器的数据收发引脚并不与TJA1050直接相连, 通过ADuM1201磁隔离器实现信号隔离传输。与传统光耦隔离相比, 磁隔离简化了隔离电路设计, 并且磁隔离芯片的功耗很低, 大约相当于光耦隔离的1 /10。除了将CAN 数据信号隔离外,TJA1050T使用的电源和地也必须与系统完全隔离, 使用5V 隔离输出的开关电源模块IB0505LS提供隔离电源。由于CAN 总线数据传输率较高, 为了提高信号质量, 网络拓扑结构应尽量设计成单线结构以避免信号反射, 同时终端连接120欧姆左右的匹配电阻。

CAN 接口电路设计

图1 CAN 接口电路设计

  2 软件设计

  CAN 协议规范定义的数据链路层和部分物理层并不完整, 双CAN 冗余应用需要实现总线状态监控、网络故障的诊断和标识, 这就要通过添加软件冗余模块来实现。冗余模块在程序主循环中调用, 根据不同总线错误状态执行收发通道切换。CAN 总线错误状态分为3类: 错误激活、错误认可、总线关闭。总线正常工作时处于错误激活状态,控制器检测到错误后将发送/接收错误计数器的值递增, 当值大于127时进入错误认可, 大于255时总线关闭状态, CAN 总线错误检测模块通过读取错误状态寄存器作为总线故障的测试条件, 在错误状态发生改变时调用冗余算法, 执行总线切换操作。

  通过实际调试发现, 总线连接断开且只有1个节点不断发送报文时产生发送错误, 控制器进入错误认可状态, 但不进入总线关闭状态; 其它错误均使错误计数器增加, 依次进入错误认可状态、总线关闭状态, 后两种状态表明总线被严重干扰, 需要采取相应措施。为简化控制逻辑设计将错误认可和总线关闭合并为总线故障。

  冗余算法使用状态机实现发送模式的切换, 根据不同总线故障选择发送使用的总线。状态切换流程图如图2所示, 程序首先读取错误状态寄存器获得总线错误状态, 判断当前总线是否处于错误激活模式, 若检测到总线故障程序置相应标志位向其他程序模块指示错误。为提高报文发送效率, 发送程序一次将多个报文写入发送邮箱由硬件控制自动发送, 在切换总线时, 需先把故障总线发送邮箱中的报文中回读, 通过备份总线优先发送, 这一机制保证报文不会因总线切换而丢失。控制器向故障总线发送数据域为空的测试报文, 每成功发送1报文, 总线发送错误计数器的值递减, 直至其值小于128总线恢复到错误被动状态; 每隔一定时间冗余程序读取错误状态寄存器, 检测故障总线是否恢复正常。

  在2总线同时传输模式, 发送程序优先写入总线1邮箱, 当总线1邮箱满时写入总线2的邮箱, 由于报文按优先级仲裁发送, 若某一路发送邮箱经常为空, 说明该路总线通信流量较小, 发送程序将较多报文转由空闲总线发送, 实现报文的负载均衡。

总线状态切换流程图

图2 总线状态切换流程图。

  3 双总线冗余的可靠性分析与测试

  对双CAN 冗余系统的可靠性进行定量分析, 引入平均无故障运行时间(M ean T ime To Fa ilure, MTTF)的概念。MTTF描述一个系统从开始工作到发生故障的时间间隔, 也即平均寿命。为简化分析作如下假设: 每路CAN总线的故障率相同; CAN 总线的损坏属于物理损坏, 即不可修复的损坏。指数分布可以很好地用来描述电子元器件的寿命, 假设CAN总线的寿命分布服从指数分布, CAN 总线的可靠性模型如图3所示。

CAN 总线可靠性模型图

图3 CAN 总线可靠性模型图

  模型1为单总线的可靠性模型, 因为总线寿命服从指数分布, 根据单一CAN总线无故障运行时间MTTF1 = 1 /λ。模型2为双CAN总线冗余可靠性模型, 系统由两条独立的总线并联而成, 即只有当这2条总线都失效时系统通信才会失败, 于是系统的平均寿命MTTF2 = 3 /2。采用双线冗余设计使CAN 通信的平均无故障时间增加了50%。

  双线CAN 冗余系统的另一关键指标是总线切换时间, 它等于检测错误所需时间与处理故障总线未发送报文所需时间之和, 切换时间越短, 总线故障对报文传输造成的延迟就越小。检测错误所需时间,即从总线错误出现到被冗余程序检测到所需的时间。以总线断开故障为例, 发送器每发送一个报文产生一次应答错误, 错误计数器每次加8, 需连续进行16次发送, 使错误计数器值达到128引起总线切换。在位速率125kbps情况下, 发送最长为128位的报文, 若忽略控制器重发间隔时间, 从故障发生到被检测到的响应时间为:

  为避免在总线切换时丢失报文, 冗余算法需回读故障控制器中未发送报文, 由此产生额外的故障处理时间, 因为每个发送邮箱最多存储3个报文, 假定位速率125kbps不变, 备份总线发送时即取得仲裁,最长故障处理时间为:

  因此总线切换时间为16. 38+ 3. 07= 19. 45m s。

  通过实验测得在125kbps位速率下连续发送不同报文长度的总线切换时间如表1所示:

表1 总线切换时间

总线切换时间

  在125kbps位速率下切换时间为22. 80ms, 比理论计算值稍长, 这是由总线切换时运行冗余算法及读取控制器错误寄存器( ESR)所额外消耗的, 但在实际应用中, 发送报文获取仲裁所需的等待时间远大于切换时间, 总线故障并不频繁发生, 冗余切换算法对系统的运行并无显着影响。

  4 结束语

  与传统单片机总线外扩两片CAN 控制器的冗余方案相比, 本设计充分利用STM32F105微控制器内置的两路CAN 控制器, 简化电路设计, 相对降低了成本, 同时双CAN 冗余通信系统的采用提高了系统整体可靠性。所使用双总线负载均衡技术, 可以提高总线带宽, 平衡通信负荷。系统船舶机舱监控系统的图像和数据信号的传输中取得很好的效果。

参考文献:

[1]. TJA1050 datasheet http://www.dzsc.com/datasheet/TJA1050_649182.html.
[2]. ADuM1201 datasheet http://www.dzsc.com/datasheet/ADuM1201_125006.html.
[3]. TJA1050T datasheet http://www.dzsc.com/datasheet/TJA1050T_649183.html.

关键字:STM32F105  微控制器  双CAN冗余 引用地址:基于STM32F105微控制器的双CAN冗余的方案设计

上一篇:STM32中用printf代替uart打印数据的方法
下一篇:STM32程序添加printf后无法运行的解决方法

推荐阅读最新更新时间:2024-03-16 15:04

51单片机超声波测距程序代码分享
/超声波模块ME007显示程序 //晶振=8M //MCU=STC10F04XE //P0.0-P0.6共阳数码管引脚 //Trig = P1^0 //Echo = P3^2 #include //包括一个52标准内核的头文件 #define uchar unsigned char //定义一下方便使用 #define uint unsigned int #define ulong unsigned long //*********************************************** sfr CLK_DIV = 0x97; //为STC单片机定义,系统时钟分频 //为STC单片机的IO口设置地址定义 sfr
[单片机]
飞思卡尔扩大Kinetis微控制器在安全领域的领导地位
飞思卡尔为市场提供的最安全ARM Cortex M级MCU实现量产,是新一代mPOS应用的新系列节能产品 飞思卡尔半导体(NYSE:FSL)日前宣布在全球批量供货其Kinetis K8x微控制器系列,这是业界基于ARM Cortex -M技术最安全的微控制器。该公司还推出了引脚兼容的Kinetis KL8x系列,该系列保留了许多相同的世界级安全功能,同时利用ARM Cortex -M0 +内核的节能高效,满足POS产品等安全移动应用的需求。 IHS研究院表示:随着消费者支持简单易用和便捷的无现金非接触式支付,全球零售商继续投资电子移动POS(mPOS)解决方案,预计该市场到2018年将增长至超过8000万台
[单片机]
基于MSP430单片机的CCD相机调光电控系统设计
MagTek刷卡器阅读芯片21006450应用广泛,对于它的研究将有助于刷卡器阅读芯片驱动程序在实际中的应用。这里所研究的Android系统架构、芯片工作原理及接口调用是刷卡器阅读芯片驱动程序设计的理论基础,对驱动程序的实现做指导。 0 引言 Google公司在2007年11月5日推出了开源的An-droid操作系统,它是基于Linux内核的开源手机操作系统。目前,Android应用商店Android market已经拥有超过70 万个应用程序,有超过10 万名软件开发人员为Android开发应用程序,Android系统已经广泛运用于便携式移动设备。 移动POS机又称无线POS,是一种RF-SIM卡终端阅读器,通过CDMA,GPR
[电源管理]
基于MSP430<font color='red'>单片机</font>的CCD相机调光电控系统设计
单片机page和bank切换问题
(1) 切换bank 问题 458一共有两个bank,每个都是由20-3f 。 如果需要切换bank来用的话,则需要改变操作寄存器 R4的第6和第7位来实现。我定义一个宏来处理: ;-----------------------macro defination--------------------- bank0 macro bc 0x04,6 bc 0x04,7 endm ;------------------------ bank1 macro bs
[单片机]
基于C167CS微控制器的数字化电梯系统
1 引言 国民经济的飞速发展, 现代化程度日益提高,高层建筑愈来愈多, 电梯也随之增多, 电梯产品在人们物质文化生活中的地位得到了提高,成为重要的运输设备之一。国内传统的电梯控制一是由继电器、接触器构成。它不仅存在着可靠性差、成本高、故障率高等缺点,而且在层数增加时,配线变化给制造及安装带来诸多不变。若用微机来控制电梯具有许多优点,进而数字化电梯控制系统是发展的必然。数字化最大的优点之一是在信号的传输方面, 而且同时也将交换的功能联系在一起, 视频信号、音频信号、计算机数据都利用0、1 二进制代码在同一网络里传输和交换,这种以数字化为共同语言彼此相容和沟通的特性,使各种形式的信息传输速度大大加快,使得整个系统更加有效。本文旨在开
[单片机]
基于C167CS<font color='red'>微控制器</font>的数字化电梯系统
日本知名半导体制造商罗姆 为LED照明打造“综合解决方案”
在现今世界,伴随着环保意识的不断提高、绿色能源备受期待的时代背景下,如何能提高能源使用效率是所面临的课题。在全球范围内,用电设备的“低功耗化”、“智能控制化”已是大势所趋,在围绕能源问题展开的世界规模的巨大浪潮中,特别是照明领域,因其耗电量占据全球用电量的两成左右,所以节能对策刻不容缓。其中,“LED照明”作为节能的王牌,如今已备受瞩目。 对此,已历经50多年成长之路的日本知名半导体制造商罗姆为响应LED照明发展的战略号召,以“LED战略”注*为出发点,扎根于中国市场,凭借自身独具的优势,全力发挥长期以来积累的综合技术实力,研发了迎合本土客户需求的实用型“LED参考设计”、囊括了智能照明技术的“综合解决方案”、“隔离运用方案”、
[电源管理]
日本知名半导体制造商罗姆 为LED照明打造“综合解决方案”
单片机自身的抗干扰措施研制
  为提高单片机本身的可靠性。近年来单片机的制造商在单片机设计上采取了一系列措施以期提高可靠性。这些技术主要体现在以下几方面。 1.降低外时钟频率   外时钟是高频的噪声源,除能引起对本应用系统的干扰之外,还可能产生对外界的干扰,使电磁兼容检测不能达标。在对系统可靠性要求很高的应用系统中,选用频率低的单片机是降低系统噪声的原则之一。以8051单片机为例,最短指令周期1 s时,外时钟是12MHz。而同样速度的Motorola 单片机系统时钟只需4MHz,更适合用于工控系统。近年来,一些生产8051兼容单片机的厂商也采用了一些新技术,在不牺牲运算速度的前提下将对外时钟的需求降至原来的1/3。而Motorola 单片机在新推出的68HC
[单片机]
8051单片机由什么组成 8051单片机有多少管脚
8051单片机介绍 8051单片机是一款广泛应用于嵌入式系统中的8位单片机,由Intel公司在1980年推出,是当时业界最先进的8位单片机之一,也是单片机领域的经典之作。 8051单片机具有较低的功耗、高度集成、强大的功能和易于编程等优点,广泛应用于各种嵌入式系统中,如家电控制、自动化设备、工业控制、仪器仪表、汽车电子、通讯设备、电子游戏等领域。 8051单片机内部包含了CPU、存储器、定时器、串行通信接口、并行输入输出端口等基本模块,同时还具有多种外设和扩展接口,可以根据不同应用需要进行灵活配置和扩展。 在编程方面,8051单片机支持多种编程语言和开发工具,如C语言、汇编语言、BASIC语言等,并且有许多成熟的开源或商业的集
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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