当前位置:首页 > 通信技术 > 通信技术
[导读]摘要: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中继器完成了各项设计指标,符合工程的要求,在齐玛印花机系统中能够有效的完成数据的转发和网络的拓展,具有较高的性价比。
 

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

台北2024年5月21日 /美通社/ -- 提供针对AMD WRX90和TRX50主板优化的DDR5 OC R-DIMM 提供容量128GB(16GBx8)到768GB(96GBx8),速度5600MHz到8...

关键字: AMD 内存 BSP GB

上海2024年5月20日 /美通社/ -- 2024年5月16日,世界知名的生命科学公司 Eppendorf 集团于第二十三届生物制品年会上成功举办了"疫路超越 推流出新"的产品发布会,正式推出大规模...

关键字: RF PEN BSP IMAC

北京2024年5月20日 /美通社/ -- 过去五年里,支付和收款方式日新月异,其发展和变化比过去五十年都要迅猛。从嵌入式数字商务的出现,到"一拍即付"的...

关键字: VI BSP PAY COM

华钦科技集团(纳斯达克代码: CLPS ,以下简称"华钦科技"或"集团")近日宣布致敬 IBM 大型机 60 载辉煌历程,并将继续实施集团大型机人才培养计划。

关键字: IBM BSP 研发中心 PS

助力科研与检测新突破 上海2024年5月15日 /美通社/ -- 全球知名的科学仪器和服务提供商珀金埃尔默公司今日在上海举办了主题为"创新不止,探索无界"的新品发布会,集中展示了其在分析仪器领域的最...

关键字: 质谱仪 BSP DSC 气相色谱

上海2024年5月16日 /美通社/ -- 2024年5月10日至5月13日,富士胶片(中国)投资有限公司携旗下影像产品创新力作亮相北京P&E 2024。在数码相机展览区域,全新制定的集团使命"为世界绽...

关键字: 富士 数码相机 影像 BSP

贝克曼库尔特目前已成为MeMed Key免疫分析平台和MeMed BV检测技术的授权经销商 在原有合作的基础上,继续开发适用于贝克曼库尔特免疫分析仪的MeMed BV检测 加州布瑞亚和以色列海法2024年5月16日...

关键字: BSP IO 检测技术 免疫分析仪

英国英泰力能的燃料电池是可产业化的产品解决方案 英国首个专为乘用车市场开发的燃料电池系统 在 157kW 功率下,此燃料电池比乘用车的其他发动机更为强大 &...

关键字: ENERGY INTELLIGENT 氢燃料电池 BSP

深爱人才,共赴"芯"程 深圳2024年5月15日 /美通社/ -- 5月11日,深圳国资国企"博士人才荟"半导体与集成电路产业专场活动在深圳市重投天科半导体有限公司(简...

关键字: 半导体 集成电路产业 BSP 人工智能

武汉2024年5月15日 /美通社/ -- 北京时间4月26日-5月4日,2024 VEX 机器人世界锦标赛于美国得克萨斯州达拉斯市举办。本届 VEX 世锦赛为期九天,设有 VIQRC 小学组/初中组、V5RC 初中组/...

关键字: 机器人 BSP RC POWERED
关闭
关闭