STM32的CAN总线中继器设计及应用

发布者:数字探险家最新更新时间:2012-08-04 来源: 现代电子技术 关键字:CAN总线  中继器  STM32F105  齐玛印花机 手机看文章 扫描二维码
随时随地手机看文章

引言
    CAN总线是一种多主方式的串行通信总线,具有优良的稳定性、实时性、远程通信能力以及超强的硬件CRC纠错等特性;CAN总线技术的应用不再仅限于汽车行业,而是扩展到了机械、纺织、控制等行业,并被公认为是最有前途的现场总线之一。然而由于受制于CAN收发器,CAN总线通信距离和网络中节点数被分别限制在10 km和110个之内。但是在稍大型的CAN总线系统中,这往往是不够的,这时就需要用CAN总线中继器对CAN总线网络进行扩展。
    CAN中继器是系统组网的关键技术设备之一,使用中继器可以提高网络设计的灵活性,并且通过中继器还可以连接两个不同波特率的CAN总线网络;在两个网络间进行数据转发,极大地扩展其使用范围。基于此,本文设计出一款基于STM32的CAN总线中继器,并将其应用到齐玛印花机上,完成圆网印花机通信系统的工程改造。

1 系统整体方案及硬件实现
    以往的CAN中继器设计大多采用MCU加CAN控制器的双芯片或多芯片解决方案。例如,参考文献使用1片MCU加2路CAN控制器的结构实现中继器;参考文献使用双MCU结构设计CAN总线中继器;参考文献使用独立双CAN控制器作为2路CAN接口的控制器来设计CAN中继器。上述方案电路复杂,MCU与CAN控制器通过外部总线连接,数据吞吐速度慢,整体可靠性也比较差。
    意法半导体的STM32是以ARM Cortex-M3为内核的32位微处理器,主频可高达72 MHz,内置Flash和SRAM,其容量可分别高达512 KB和64 KB;内部集成双bxCAN控制器。它支持CAN协议V2.0A和V2.OB,波特率最高可达1 Mb/s,具有3个发送邮箱和2个3级深度的FIFO,能够以最小的CPU负荷来高效处理大量收到的报文。基于此,选用STM32F105作为主控制器,设计出一款基于STM32的CAN总线中继器。其整体方案如
图1所示。

a.JPG
    由于STM32F105内部集成了双路CAN控制器,CAN中继器的节点电路变得十分简单,其硬件电路如图2所示。

b.JPG
    以往的节点电路,为了降低生产现场的抗干扰能力,保证中继器工作的可靠性,都采用多重的抗干扰措施。例如,大部分的节点电路都是采用在CAN控制器和收发器之间加入光电隔离器6N137来实现CAN节点之间的电气隔离,采用外加DC/DC电源模块的方法切断系统电源的干扰。同样着眼于提高系统的抗干扰能力和可靠性的问题,本设计中一反常规的设计方法,直接采用广州致远电子有限公司生产的CAN通用收发器CTM8251。
    CTM8251是一款带隔离的通用CAN收发器芯片,该芯片内部集成了所有必需的CAN隔离及CAN收发器件,这些都被集成在不到3 cm2的芯片上。芯片的主要功能是将CAN控制器的逻辑电平转换为CAN总线的差分电平,并且具有DC 2500 V的隔离功能。该芯片符合ISO11898标准,因此,它可以和其他遵从ISO11898标准的CAN收发器产品互操作。
    实践证明采用CTM8251不仅使系统真正与外接隔离开,抑制了干扰的串入提高系统的可靠性,简化了CAN节点外围电路的复杂度,还降低了成本,有较高的性价比。
    图2中120 Ω为可选用的终端匹配电阻,如果网络中已经有一对匹配电阻,则不使用该电阻。另外,电路中设计有相应的拨码开关电路用于CAN网络的ID标志和设置相应的波特率。[page]

2 中继器的软件实现
    CAN中继器的主要任务是在两个网络中进行数据的过滤和转发。其软件主要包括以下模块:初始化模块、数据发送模块和接收模块等。
2.1 初始化模块
    CAN初始化直接关系到CAN控制器能否正常工作,在很多情况下,软件不能正常工作并不是CAN的收发程序有问题,往往是初始化配置不正确造成的。STM32的CAN初始化主要包括CAN寄存器初始化、CAN单元初始化(包括CAN模式和波特率的设置)、CAN过滤器的初始化。由于STM32开发商提供了大量的固件库函数,所以只需在调用的时间作出相应的设置即可。初始化子程序如下所示:
    ①CAN单元初始化子程序。

c.JPG
    在该初始化子程序中最关键的环节是怎么设置CAN的波特率,STM32数据手册给出了波特率的计算公式:
    d.JPG
    其中tq为CAN时钟周期。如上述CAN单元初始化子程序中:SJW=tq,BS1=8tq,BS2=7tq,STM32的CAN时钟有APB1提供。假设系统时钟为72 MHz,APB1为系统时钟的9分频,结合初始化子程序,CAN_Prescaler=1,带入波特率计算公式即可求的其波特率为500 kb/s。
    ②CAN过滤器的初始化子程序。

 f.JPG
    CAN过滤器设置的得当与否是CAN是否能够成功接收信息的关键,尤其在过滤器组位宽和模式设计上,如何将节点的ID号准确地映射到过滤器组位宽设置寄存器上是过滤器的核心。为了过滤出一组标识符,设置过滤器工作在屏蔽位模式下,对标识符的任何一位采用“必须匹配”或“不用关心”的原则处理。

[page]

2.2 数据发送模块
    中继器的任务之一就是实现报文的转发。STM32F105内部集成了双bxCAN控制器,它包括3个发送邮箱和2个3级深度的FIFO。结合STM32-F105的特性,采用双FIFO的转发机制,其原理如图3所示。

g.JPG
    依据图3,当STM32F105接收到新的报文时,经过数据处理模块处理,在主监控程序负责下,对两路bxCAN控制器的接收FIFO缓冲区进行监视,如某一路缓冲区非空则向另一路转发。
    STM32F105发送报文的流程为:应用程序选择1个空置的发送邮箱;设置标识符,数据长度和待发送数据;然后对CAN_TIxR寄存器的TXRQ位置1,来请求发送。TXRQ位置1后,邮箱就不再是空邮箱;而一旦邮箱不再为空置,软件对邮箱寄存器就不再有写的权限。TXRQ位置1后,邮箱马上进入挂号状态,并等待成为最高优先级的邮箱。一旦邮箱成为最高优先级的邮箱,其状态就变为预定发送状态。当CAN总线进入空闲状态,预定发送邮箱中的报文就马上被发送(进入发送状态)。在邮箱中的报文被成功发送后,它马上变为空置邮箱;硬件相应地对CAN_TSR寄存器的RQCP和TXOK位置1,来表明一次成功发送。
2.3 数据接收模块
    为了提高中继器数据传输的实时性,CAN报文的接收采用中断方式。所以在CAN初始化过程中应该通过调用STM32固件库函数voidCAN_IT-Config(CAN_TypeDef*CANx,uint32_t CAN_IT,FunctionalState Newstate)来开启CAN1和CAN2的中断。在接收时通过判断其标志位来确定是CAN1还是CAN2产生的中断,以此进入中断函数void CAN1_RX0_IRQHandler(void)和voidCAN2 RX0_IRQHandler(void)对收到的报文进行处理。即:在接收一个报文时,其标识符首先与配置在标识符列表模式下的过滤器相比较。如果匹配上,报文就被存放到相关联的FIFO中,并且所匹配的过滤器的序号被存入过滤器匹配序号中;如果没有匹配,报文标识符接着与配置在屏蔽位模式下的过滤器进行比较;如果报文标识符没有跟过滤器中的任何标识符相匹配,那么硬件就丢弃该报文,且不会对软件有任何打扰。数据接收模块流程如图4所示。

i.JPG

3 系统在齐玛印花机上的应用
    在齐玛印花机CAN通信系统中,CF101板是控制主板,上面具有CAN中继器的功能,其他3个操作板是从节点。系统利用中继器将整个网络的通信系统分为两层,由中继器对主节点和从节点之间的报文进行转发。为了完成对工程的改造,将笔者所设计的CAN中继器代替CF101主板,另外3个节点电路同样采用STM32来设计。
    笔者所设计的CAN中继器现在绍兴某公司进行测试。在实际应用中,将中继器的一端和网络主干线连接,另一端和操作板及显示板连接。就最近3个月的测试结果表明:该系统能够和原设备正常通信,保证印花机的正常工作且性能稳定可靠;维护和扩容方便,大大提高了印花机工作效率,并更大程度地降低了设备成本。

4 结论
    本文所设计的CAN总线中继器,充分利用以Cortex-M3为内核的STM32的优势,内部集成双bxCAN控制器简化了硬件电路的设计;丰富的固件库函数缩短了开发周期。实践表明,基于STM32的CAN中继器完成了各项设计指标,符合工程的要求,在齐玛印花机系统中能够有效的完成数据的转发和网络的拓展,具有较高的性价比。

关键字:CAN总线  中继器  STM32F105  齐玛印花机 引用地址:STM32的CAN总线中继器设计及应用

上一篇:基于STM32的RA8806控制器LCD设计
下一篇:基于STM32F103和nRF24L01的近程无线数传系统设计

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

OPC服务器的研究及其在CAN总线系统中的实现
1 OPC技术简介   1.1 什么是OPC   OPC(OLE for Process Control),即用于过程控制的对象链接与嵌入技术,是一种规范,是在工业控制和生产自动化领域中使用的硬件和软件的接口标准。OPC以组件对象模型和分布式组件对象模型(COM/DCOM)技术为基础,采用客户/服务器(Client/Server)的模式,定义了一组COM对象及其接口标准。   OPC规范是由世界范围内自动化领域中处于领导地位的硬件和软件开发商,在微软的协作下制定的,并且已经得到越来越多的客户和硬件制造商的认可。   1.2 OPC的意义   在传统的控制系统中,针对同一个硬件设备,每个应用软件都要根据自己的需求开发一套硬
[工业控制]
OPC服务器的研究及其在<font color='red'>CAN总线</font>系统中的实现
基于CAN总线控制器SJA1000的自动络筒机通信系统方案
  1、 引言   随着纺织工业技术进步,纺织机械日益趋向成套化、自动化和系统化。自动络筒机是纺织工业上档次的关键设备,起着承上启下、改善纱线性能的重要作用,它是纺部的整理设备和织部的准备设备,机电气一体化,自动化程度高,速度快,生产效率高。自动络筒机是一种具有高速、高产、高效、高质和高自动化功能,并综合了最新机械、电子、材料、仪表及计算机信息处理和控制等技术的机电一体化产品。自动络筒机的出现,从根本上改变了普通络筒机的面貌,其生产的筒子卷装大,络纱速度高,对纱线的络纱全过程自动化控制程度和劳动生产率高,从而成为机械、电子、气动、仪表和计算机信息处理相结合的高新技术产品。自动络筒机是科技含量最高的纺织机械设备,有“纺织机械皇冠上的
[嵌入式]
无缝5G网络,实现C-V2X,Movandi推出车载中继器
日前,Movandi通过车载BeamXR技术,成功演示了其在车联网中提供无缝5G网络实现C-V2X的可行性,首席执行官兼联合创始人Maryam Rofougaran表示:“通过在真实环境下对Movandi中继器进行车载测试,证明毫米波技术可为扩展5G覆盖范围提供现成的解决方案。我们的技术已准备好在互联汽车中进行大规模部署。 通过将5G无线电定制为一个完整的系统、共同设计的RF芯片组、DSP功能、波束成形和算法,我们对BeamX 毫米波中继器的性能也进行了优化,从而满足汽车应用。此外,我们还与5G软件创新者Airfide Networks合作开发了切换算法,使基于BeamXR的中继器在快速信号传输中更加高效。
[汽车电子]
无缝5G网络,实现C-V2X,Movandi推出车载<font color='red'>中继器</font>
CAN总线与MSP430红外检测系统电路
  本文介绍的是一种新的检测系统,选用红外CO传感器和MSP430单片机作为核心信号处理电路,结合数字滤波、温度补偿运算.具有检测浓度范围宽、使用寿命长等优点。   系统组成及硬件设计   该系统由红外CO气体传感器、MSP430单片机、CAN总线接口及远程监控系统组成。该系统在检测现场通过单片机处理检测的数据、控制 LCD显示、声光报警,同时还配备CAN总线控制器,可以轻松获取浓度、温度以及报警记录等相关信息,实现了智能化的工业现场、远程同时监控功能。系统的组成框图如图1所示。      CAN总线接口设计   该系统CAN接口由独立的CAN总线控制器SJA1000、CAN数据收发器TJA1050组成。SJA1000是独立
[单片机]
<font color='red'>CAN总线</font>与MSP430红外检测系统电路
基于蓝牙技术的汽车驾驶盘控制系统设计
1 引言 高科技应用改变了人的生活,汽车作为基本的运载工具的同时人们更希望汽车的驾驶操作更加简单方便,而且在车内能及时与外界进行信息沟通与交流。 蓝牙技术可为实现这种新型汽车电子信息系统提供技术支撑,利用蓝牙技术可以将汽车上的各种电子设备以无线的方式连成一体,形成“车域网”,这些设备包括汽车电气控制设备、音响和视频设备、车辆定位与监控设备、各种传感器及其控制系统、车辆保安系统和车辆导航系统等。 蓝牙作为一种新型短距离无线扩频通信技术,具有体积小、功耗低、开放性和互操作性等特点。与传统的以电缆和红外方式传输数据相比,具有以下优点: (1)抗干扰能力强;无线上网的手提电脑、手机等各种具有无线通信功能的电子设备工作时,对车内的其它电子
[嵌入式]
基于ARM的CAN总线智能节点的设计
CAN(Controller Area Network)即控制器局域网,CAN总线是国际上应用最广泛的现场总线之一。它最早是由德国Bosch公司推出的,CAN通信协议是一种用于汽车内部测量与执行部件之间的数据通信协议。 作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,CAN总线已被广泛应用于各个自动化控制系统中。例如,在汽车电子、自动控制、智能大厦、电子系统、安防监控等各领域中,CAN总线具有不可比拟的优越性。本设计给出CAN总线节点方案。它采用内置多路CAN总线控制器PLC2294作为主控制器,使得该节点体积小、功耗低、抗干扰性好,因而特别适用于汽车、工业控制以及医疗系统和容错维护总线中。 1 硬件
[网络通信]
如何解决CAN总线超强干扰?
摘要:CAN总线系统由一系列的网络节点通过总线相互连接组成,在实际应用中网络节点既是干扰源又是被干扰对象,尤其在超强干扰的情况下,如何使系统可靠运行成为一大难题。 前段时间有个用户反馈说自己的设备启动后多个节点处于失控状态,用CANScope测试全是错误帧如图1所示。 图1 强干扰下的报文 随后让客户把测试的波形发来一看,是环境干扰惹的祸,如图2所示。 图2 强干扰下的波形 这种强干扰导致了帧错误增加,重发频繁,正确数据无法及时到达。所以如何解决CAN总线超强干扰呢,下面给您介绍一种方案。 将CAN转为光纤传输 怎么能彻底解决强干扰带来的隐患呢?只要数据的传输不依赖电信号就能完全隔离掉干扰。
[汽车电子]
如何解决<font color='red'>CAN总线</font>超强干扰?
基于MC9S08DZ60的CAN总线振动传感器设计
1 引言 随着人们安全意识的不断提高设备的安全监测显得越发重要。各种在线监测设备层出不穷,但大多都受到传统总线速率较低,传输精度不高的限制。CAN总线以其在汽车行业内实时、可靠、灵活的应用而备受瞩目,进而不断有其他领域的CAN总线应用产品出现,基于CAN 总线的振动传感器正是其中一种,组网后的传感器能够很好地实现大型装置的在线监测,为企业的安全生产奠定了基础。 2 器件简介 2.1 MC9S08DZ60单片机 飞思卡尔公司的MC9S08DZ系列单机片内嵌 CAN的微控制器,并将内嵌的CAN、EPROM和片上仿真/调试模块组合在一起,集成了所有的功能,设计人员可以便捷地转向其设计流程。 MC9S08DZ60型单机片可提供60
[单片机]
基于MC9S08DZ60的<font color='red'>CAN总线</font>振动传感器设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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