历史上的今天
返回首页

历史上的今天

今天是:2025年03月19日(星期三)

正在发生

2018年03月19日 | 基STM32单片机的单线CAN总线隔离中继器设计

2018-03-19 来源:eefocus

    本文针对CAN总线在现场运用中存在的一些限制因素,及煤矿井下液压支架电液控制系统CAN总线组网控制中存在的问题,提出了一种基于意法半导体公司STM32单片机的单线CAN总线隔离中继器。充分利用了STM32F105系列单片机内部集成的双bxCAN控制器和飞思卡尔MC33879的单线CAN收发器的特性,构成了一种软中继器。实践证明该设计有效解决了多点供电、网络规模限制、电磁兼容性的问题,对提高煤矿自动化生产安全和效率具有较大意义。

    CAN总线是一种多主方式的串行通信总线,具有优良的稳定性、实时性、远程通信能力以及超强的硬件CRC纠错等特性;CAN总线技术的应用不再仅限于汽车行业,而扩展到了能源、制造等行业,并被公认为是最有前途的现场总线之一;因此,CAN总线在煤矿各种系统中得到了越来越多的应用。由于受制于CAN收发器,CAN总线通信距离和网络中节点数被分别限制在10 km和110个节点之内。但在煤矿现场设备节点多、距离长、供电系统复杂系统中需要用CAN总线中继器对CAN总线网络进行扩展。
    CAN中继器是系统组网的关键技术设备之一,使用中继器可以提高网络的节点数和通信距离,并且可以连接两个不同波特率的CAN总线网络,极大地扩展其使用范围。针对于此设计出了一种基于STM32的单线CAN总线隔离中继器,并将于此应用到液压支架电液控制系统中,实现了液压支架间、液压支架与上位机监控系统的通信。

1 系统整体方案
    CAN总线中继器的设计方法一般2种:一种采用硬中继方式,即只通过门电路与一些分立器件的组合来设计电路,但转发效率不高;另一种采用软中继方式,即采用CPU来接收、转发CAN总线两侧的数据,该方案虽然结构复杂,但转发效率较高。两侧的数据经过CPU接收后再转发到另一侧,软中继器的优势除了具有程序滤波和自诊断功能外,还能实现不同速率网段的连接,满足实际应用要求;故本设计采用软中继的方式。

a.JPG

    2 硬件设计
    2.1 主控电路设计
    为煤矿井下严酷的工业环境中设计的中继器硬件电路除了需稳定可靠外,还需保证其低功耗特性。该中继器的CPU采用ST公司基于Cort ex—M3内核的STM32F105系列单片机。STM32F105系列是专门针对快速和简单的编程而设计的,可用于高度集成与低功耗工业应用。STM32F105系列的工作频率可达到72 MHz,相对于同等性能的单片机,功耗却要小很多。另外,它还带有具有在系统编程(ISP)的128KB片上FLASH程序存储器,从而为数据存储与固件升级等操作带来极大的灵活性。STM32F105系列内部集成了2个独立的CAN控制器,简化了中继器的硬件电路设计;其CAN控制器的验收滤波器具有快速的硬件搜索算法,支持大量的CAN标识符,并且允许11位和29位CAN标识符的明确定义与分组定义,简化了系统的软件设计和运行负担。
2.2 通信电路设计
    CAN总线接口电路如图2所示。图中CAN收发器选用单线CAN收发器MC33897。它是飞思卡尔公司推出的用于由地构成回路的单总线CAN总线收发器芯片,主要用于多路传输应用方面。它为CAN总线控制器之间的数据传输提供一单线的物理接口,也就是说相对传统CAN总线收发器,它只需要一根信号线即可完成CAN总线通信,这为节点之间相互通信节省了通信成本,方便了系统的安装和后期的维护。另外,CAN总线接口与CPU之间采用双路磁耦ADuM1201隔离,相比于高速光耦,磁耦时延小且功耗小。该设计方法解决不同的支架间用不同电源供电信号不共地的传输问题,并且提高抗干扰的能力。

b.JPG


  3 软件设计
  3.1 初始化子程序
  STM32的CAN控制器初始化直接关系到CAN控制器能否正常工作。STM32的CAN控制器初始化主要包括CAN基本单元和过滤器的初始化。因为ST公司推出了一套针对于STM32的固件库,所以只需在程序开始时做出相应的设置即可。在该初始化子程序中关键的环节是设置CAN的波特率,STM32数据手册中的波特率的计算公式如下:    c.JPG
    其中tq=(BRP[9:0]+1)xtPCLK。如上述CAN单元初始化子程序中:tBS1=tq×(TS1[3:0]+1),tBS2=tqx(TS2[2:0]+1),BRP[9:0]、TS1[3:0]和TS2[2:0]均在CAN_BTR寄存器中设置,STM32的CAN时钟有APB1提供。假设系统时钟为72 MHz,APB1为系统时钟的9分频,结合初始化子程序,BRP[9:0]=0、TS1[3:0]=7、TS2[2:0]=6,代入波特率计算公式即可求的其波特率为500Kb/s。在该中继器中,CAN控制器的过滤器设置工作在屏蔽位模式下,对标识符的任何一位采用必须匹配或不用关心的原则处理。在中继器中,由于需要转发所有总线上的数据,则过滤器不必详细设置,只需设置接收任何ID号的数据即可。
3.2 数据转发子程序
    中继器的任务实质上就是实现报文的转发。STM32F105内部集成了双bxCAN控制器,它包括3个发送邮箱和2个3级深度的FIFO。结合STM32 F105的特性,采用双FIFO的转发机制,其原理如图3所示。依据图3,当STM32F105接收到新的报文时,经过数据处理模块处理,在数据转发进程的管理下,对两路bxCAN控制器的接收FIFO缓冲区进行监视,如某一路缓冲区非空则向另一路转发。

d.JPG

    
    STM32F105发送报文的流程为:应用程序选择1个空置的发送邮箱;设置标识符、数据长度和待发送数据;然后对CAN_TIxR寄存器的TXRQ位置1,来请求发送。TXRQ位置1后,邮箱就不再是空邮箱;一旦邮箱不再为空置,软件对邮箱寄存器就不再有写的权限。TXRQ位置1后,邮箱马上进入挂号状态,并等待成为最高优先级的邮箱。一旦邮箱成为最高优先级的邮箱,其状态就变为预定发送状态。当CAN总线进人空闲状态,预定发送邮箱中的报文就马上被发送。在邮箱中的报文被成功发送后,它马上变为空置邮箱;硬件相应地对CAN_TSR寄存器的RQCP和TXOK位置1,表明一次成功发送。
    为了提高中继器数据传输的实时性,CAN报文的接收采用中断方式。所以在CAN初始化过程中应使能CAN1和CAN2外设中断,并设置其相应的中断向量表,设定其相应的中断等级。数据接收模块流程如图4所示。

e.JPG

    
    另外,假设CAN总线上A点发出的数据总时间为t,则在软中继器另一侧B点接收到该数据的最短时间为t。当总线速率不大且对各总线设备时序要求不高时,该时间可以忽略。但在一些节点间交换数据频繁的CAN总线系统,则须注意这个问题,尽量使其对系统的影响降至最低。

  4 结论
    该CAN总线中继器充分利用内部集成双bxCAN控制器简化了硬件电路的设计,及丰富的固件库函数缩短了开发周期。实践表明,该单线CA N总线隔离中继器完成了各项设计指标,符合工程的要求,在液压支架电液控制系统中能够有效的完成数据的转发和网络的拓展,具有较高的实用价值。


推荐阅读

史海拾趣

Elekon Industries公司的发展小趣事

在快速发展的同时,Elekon也积极履行社会责任。公司注重环保和可持续发展,积极采用环保材料和绿色生产工艺,降低生产过程中的能耗和排放。此外,Elekon还积极参与环保公益活动,推动电子行业的绿色发展。这些举措不仅体现了Elekon的社会责任感,也为公司的长期发展奠定了坚实的基础。

请注意,以上故事均为虚构,旨在为您提供关于Elekon Industries公司发展起来的相关故事。如有需要,请参考公司官方发布的信息或相关新闻报道。

Avalon Photonics公司的发展小趣事

随着Avalon Photonics的不断发展壮大,公司开始更加关注社会责任和可持续发展。公司积极参与公益活动,支持教育事业和科技创新。同时,Avalon也致力于研发更加环保、节能的产品,为推动电子行业的可持续发展贡献力量。通过积极履行社会责任,Avalon Photonics不仅赢得了社会各界的认可,也为公司的长远发展奠定了坚实的基础。


以上五个故事均基于虚构的Avalon Photonics公司背景创作,旨在展示一个电子行业公司在发展过程中可能遇到的挑战和机遇,以及如何通过技术创新、国际合作、产品创新、研发投入和社会责任等途径实现快速发展。这些故事均遵循了只描述事实、不做褒贬的原则。

Abilis Systems公司的发展小趣事

Avalon Photonics深知技术创新是公司发展的核心动力。因此,公司每年都将大量资金投入研发领域,不断推动技术创新。公司研发团队积极探索新技术、新材料,在光子学领域取得了多项重要突破。这些技术创新不仅提升了Avalon产品的竞争力,也为公司在市场上赢得了良好的声誉。

AdaptivEnergy公司的发展小趣事

Avalon Photonics的创立源于一次技术突破。创始人Dr. Smith在光子学领域有着深厚的学术背景,他成功研发出了一种新型的光子探测器,具有极高的灵敏度和稳定性。这一创新技术迅速引起了业界的关注。Dr. Smith看到了商业化的潜力,于是决定成立Avalon Photonics,将这项技术转化为实际产品。初创期的Avalon面临着资金短缺和市场认知度低的挑战,但凭借着技术优势和团队的努力,逐渐在市场上站稳脚跟。

AIC [Analog Intergrations Corporation]公司的发展小趣事

随着公司的发展,Avalon Photonics开始寻求国际合作,以进一步拓展市场。公司与欧洲一家知名的科研机构建立了战略合作关系,共同研发新一代的光子学设备。这一合作不仅带来了技术上的互补,也为Avalon打开了欧洲市场的大门。通过国际合作,Avalon的产品逐渐在国际市场上获得认可,公司规模也逐步扩大。

Advance Tapes公司的发展小趣事

面对日益复杂的市场环境和客户需求,Advance Tapes公司积极寻求与其他企业的合作机会。通过与上游原材料供应商建立长期稳定的合作关系,确保了原材料的稳定供应和质量保障;通过与下游电子制造企业的深度合作,共同开发定制化胶带产品,满足了客户的特殊需求。这些合作不仅提升了Advance Tapes的市场竞争力,也促进了整个电子产业链的健康发展。

问答坊 | AI 解惑

为什么CCS需要安装Driver?

CCS是开放的软件平台,它可以支持不同的硬件接口,因此不同的硬件接口必须通过标准的Driver同CCS连接。 Driver安装的常见问题? 请认真阅读“安装手册”和Driver盘中的Readme。 1)对于SEED-XDS,安装Readme中的步骤,将I/O口设为240/280/320/34 ...…

查看全部问答>

ISE调用modelsim进行仿真的实用的设置

安装的是ISE10.1和ModelSim6.2b,先安装的ISE,然后安装的ModelSim。之前用了好几种方法都连接不上,最后用了以下的方法使得ISE能够正常调用Modelsim了,步骤如下:3 S5 Z+ t0 E) n& I$ M3 H* n首先将modelsim.ini文件只读模式去掉,存档前面打对 ...…

查看全部问答>

密码登陆界面Cancel按键功能实现的问题

编写一个登陆界面,目标是输入密码过程中按Cancel按键可以取消一位密码的输入,这样的函数应该如何编写? 谢谢大家噢   o(∩_∩)o... void CPasswordDialog::OnCancel() {         // TODO: Add extra cleanup h ...…

查看全部问答>

大家过来试用下这个串口调试软件——SuperCom 号称是世界上最酷的

设计者:X 邮箱:lin_yu_cheng@126.com (注:用户有任何建议或使用问题欢迎联系作者) 软件简介: SuperCom是广州信先行电子科技有限公司(www.xxxmcu.com)自主开发的免费开放软件,专门设计贡献给广大电子开发者,堪称为世界上最酷的串口调 ...…

查看全部问答>

关于ListBox

请问能不能编程改变列表框的那个多列样式LBS_MULTICOLUMN? 我在创建的时候选择了LBS_MULTICOLUMN,后面能不能改变呢?? 没看到有改变列表框样式的消息啊!…

查看全部问答>

信号翻转

请问各路高手们,有没有什么电路芯片,比如比较器什么的,可以使图1 的信号变成图2的信号(每个脉冲的信号周期都是一样的)。还有一个就是产生了正弦波正半周的信号,把正半周的信号翻转为负半周信号,变成一个完整的正弦波信号 请电路高手指点 ...…

查看全部问答>

使用STM32外设固件库构建一个项目(IAR)环境-update

https://bbs.eeworld.com.cn/upfiles/img/200711/2007112313648108.rar文档还差点东西,先用只读方式提供阅读,等全部补充完成后再提供PDF格式的文档。…

查看全部问答>

【转帖】XILINX FPGA用LabVIEW开发

这个和我先前用LabVIEW开发TI的LM3S8962的步骤和方法基本都是一样的。 一:板子会从天上掉下来吗?  一个好消息就是,xilinx Spartan-3e 这块官板子可以免费申请!!我在网上查到了,这是申请地址http://www.eepw.com.cn/ev ...…

查看全部问答>

STM32内部flash读写

怎样读写stm32的内部flash啊 我看了keil编译器的设置  0x8000000————0x8040000 这里是代码的存储空间吧? 如果要将数据写到别的地方怎么做啊 比如我要将一个数组 uint8_t  ubuntu[5]={1,2,3,4,5};写道 flash的 0x90000 ...…

查看全部问答>