当前位置:首页 > 通信技术 > 通信技术
[导读]摘要:CAN中继器是系统组网的关键,通过中继器可以扩展节点的数量和实现不同波特率之间的通信。本文充分利用STM32F105内部集成双bx CAN控制器的特性,设计出一款基于STM32的单芯片CAN总线中继器,并将其应用到齐玛印

摘要:CAN中继器是系统组网的关键,通过中继器可以扩展节点的数量和实现不同波特率之间的通信。本文充分利用STM32F105内部集成双bx CAN控制器的特性,设计出一款基于STM32的单芯片CAN总线中继器,并将其应用到齐玛印花机上。实践证明该方法有效可行,不仅实现了齐玛印花机的改造,还降低了系统设备的成本。
关键词: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所示。


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


    以往的节点电路,为了降低生产现场的抗干扰能力,保证中继器工作的可靠性,都采用多重的抗干扰措施。例如,大部分的节点电路都是采用在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标志和设置相应的波特率。

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


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

 
    CAN过滤器设置的得当与否是CAN是否能够成功接收信息的关键,尤其在过滤器组位宽和模式设计上,如何将节点的ID号准确地映射到过滤器组位宽设置寄存器上是过滤器的核心。为了过滤出一组标识符,设置过滤器工作在屏蔽位模式下,对标识符的任何一位采用“必须匹配”或“不用关心”的原则处理。
2.2 数据发送模块
    中继器的任务之一就是实现报文的转发。STM32F105内部集成了双bxCAN控制器,它包括3个发送邮箱和2个3级深度的FIFO。结合STM32-F105的特性,采用双FIFO的转发机制,其原理如图3所示。


    依据图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所示。

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

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2025年9月5日 /美通社/ -- 由上海市经济和信息化委员会、上海市发展和改革委员会、上海市商务委员会、上海市教育委员会、上海市科学技术委员会指导,东浩兰生(集团)有限公司主办,东浩兰生会展集团上海工业商务展览有...

关键字: 电子 BSP 芯片 自动驾驶

推进卓越制造,扩大产能并优化布局 苏州2025年9月5日 /美通社/ -- 耐世特汽车系统与苏州工业园区管委会正式签署备忘录,以设立耐世特亚太总部苏州智能制造项目。...

关键字: 智能制造 BSP 汽车系统 线控

慕尼黑和北京2025年9月4日 /美通社/ -- 宝马集团宣布,新世代首款量产车型BMW iX3将于9月5日全球首发,9月8日震撼亮相慕尼黑车展。中国专属版车型也将在年内与大家见面,2026年在国内投产。 宝马集团董事...

关键字: 宝马 慕尼黑 BSP 数字化

北京2025年9月4日 /美通社/ -- 在全球新一轮科技革命与产业变革的澎湃浪潮中,人工智能作为引领创新的核心驱动力,正以前所未有的深度与广度重塑各行业发展格局。体育领域深度融入科技变革浪潮,驶入数字化、智能化转型快车...

关键字: 人工智能 智能体 AI BSP

上海2025年9月2日 /美通社/ -- 近日,由 ABB、Moxa(摩莎科技)等八家企业在上海联合发起并成功举办"2025 Ethernet-APL 技术应用发展大会"。会议以"破界•融合...

关键字: ETHERNET 智能未来 BSP 工业通信

传感器模块能实现便捷无接触的后备箱或侧滑门开启,适配各种车辆架构 该24 GHz雷达传感器可集成于保险杠或底盘上,并通过特定的手势或脚部动作触发响应 已为多家欧洲主流车企启动量产交付 德国布尔2025...

关键字: 传感器 BSP 触发 保险杠

以高效节能方案绘制AI算力绿色未来 上海2025年8月29日 /美通社/ -- 8月28日,台达受邀出席"2025中国智算产业绿色科技大会",全方位分享台达在智算领域的前沿洞见与绿色解决方...

关键字: AI 可持续发展 数据中心 BSP

淄博2025年8月29日 /美通社/ -- 8月26日至27日,TÜV南德意志集团(以下简称"TÜV南德")受邀参加由淄博市...

关键字: BSP 人工智能 信息安全 新加坡

北京2025年8月28日 /美通社/ -- 近日,北京亦庄创新发布消息,北京经济技术开发区(简称北京经开区,又称北京亦庄)以"高效办成一件事"为抓手,围绕企业信用修复的全流程全环节,打造经开区特色的&...

关键字: 数字化 集成 BSP 数据共享

深圳2025年8月27日 /美通社/ -- 2025年8月27日,华测检测认证集团股份有限公司(简称CTI华测检测,股票代码300012)与北京戴纳实验科技股份有限公司(简称戴纳科技)在华测集团上海基地完成战略签约,双方...

关键字: TI AI BSP 智能化
关闭