2. 大连市公安局交通警察支队科技大队,辽宁 大连 116011
2. Science and Technology Brigade of Traffic Police Detachment, Dalian Public Security Bureau, Dalian 116011, China
随着自动化技术的发展进步,对船舶喷水推进器的可靠性和安全性要求也变得越来越高。喷水推进器的控制设备作为喷水推进装置的重要组成部分,其使用环境恶劣,会受到外界环境的各种干扰,可能导致设备出现死机、通信异常、程序跑飞等故障[1],使喷水推进器无法正常完成转向倒车作业及增减转速,造成推进艇无法正常运行。因此喷水推进器有必要采用容错技术,即在关键设备和部件上采用冗余热备份的设计方法,以提高控制系统的可靠性和安全性。目前,双微控制单元(Microcontroller Unit,MCU)冗余技术已广泛应用于船舶、汽车、航天等领域。
在各种工作模式中,双MCU冗余系统中应用最广泛的是热备冗余模式,这种模式相对简单高效[2 − 3]。在热备模式下,2个MCU同时通电并实时交互数据。通常由主MCU执行输出任务,而从MCU负责接收数据并监控主MCU状态,以便在主MCU出现故障时及时切换。为了实现冗余容错功能,必须能够快速检测到主MCU故障并切换。为此,吕聪等[4]提出使用主MCU向从MCU发送“喂狗”信号以监控主MCU状态。徐一凤等[5]则采用了主/从MCU周期性心跳检测方法来监控主MCU状态。然而,这些方法主要关注主MCU的故障情况,未考虑主/从MCU之间通信线路的硬件故障问题。在实际设备中,若主/从MCU之间的通信线路发生硬件故障,则可能误判为主MCU故障,从而导致备用MCU开始执行控制任务,出现“双主机现象”[6]。
为解决此问题,张军永等[7]和秦友伦等[8]提出了双冗余系统双重心跳检测机制,通过2条信号线检测故障状态:若仅一条信号线出现故障,则视为通信故障;仅当2条信号线同时出问题时,才判定为MCU故障。卢月等[6]则引入第三方心跳检测法,通过增加集控台进行监控,主/从MCU之间通过一条心跳检测线路进行通信,主MCU在向从MCU发送心跳信号的同时也与集控台同步心跳状态;当主从MCU通信出现故障时,根据第三方心跳检测结果辅助判定MCU故障。这些方法虽然在一定程度上避免了“双主机现象”,但也额外增加了一条通信线路,提升了系统复杂性和成本。
综上所述,现有的双MCU故障检测方法主要关注MCU是否能通过通信线路正常传递必要的监控信号,以及如何降低通信线路故障对MCU故障判定的影响。因此,为了确保喷水推进器双 MCU冗余控制系统的安全性和稳定性,本文通过整合主/从MCU周期性心跳检测法和上位机监控法,提出一种基于CAN通信的双冗余监控系统检测法,以提高MCU侦测故障的速度和准确性,从而更好地适应喷水推进器恶劣的作业环境。
1 喷水推进器双MCU冗余系统架构设计双机双泵喷水推进艇主要是由2个相同的喷水推进器对称布置在船体左舷和右舷来提供动力,由上位机监控台发出控制信号来实现喷水推进艇的矢量控制、动力定位等功能。本文冗余控制系统研究的喷水推进器转向倒车机构及其液压系统组成如图1所示,其主要功能是通过MCU控制器控制液压系统电磁阀通断,从而实现对转向管和倒车斗的运动控制。
![]() |
图 1 喷水推进器转向倒车机构及其液压系统 Fig. 1 Water jet steering astern mechanism and hydraulic system thereof |
本文设计的双机双泵喷水推进艇喷水推进器双MCU冗余监控系统的整体架构如图2所示,主要由上位机MCU(监控台)和左右2个喷水推进器控制系统组成。上位机监控台主要负责采集舵轮油门手柄、矢量控制手柄和北斗定位系统数据,进行控制计算并通过控制器局域网(Controller Area Network,CAN)总线与左右2个喷水推进器控制器进行数据传输,同时实时将关键数据信息发送到人机交互界面上。喷水推进器转向和倒车系统分别由2个MCU控制器通过互冗余方式组成,其中一个MCU可以发出指令(主MCU),另一个处于备份状态(从MCU),参与故障检测并随时准备故障切换。左右2组喷水推进器的4个MCU均经由一路CAN总线与上位机监控台进行双向通信,实现喷水推进器操舵倒航、检测报警等工作指令的传输功能。考虑成本和通讯信号稳定性等因素,转向和倒车系统的2组主/从MCU控制器之间通过RS232串口进行心跳信息交互。RS232串口使用的较高电平信号,在一定程度上能抵抗电磁干扰、噪声等外部因素的干扰,通讯稳定。同时,RS232串口实现成本低,所需硬件和布线简单,并能实现全双工通信。
![]() |
图 2 双MCU冗余监控系统的整体架构 Fig. 2 The overall architecture of dual MCU redundant monitoring system |
由于喷水推进器与监控台之间的距离较远,为了保证通讯的稳定性和安全性,喷水推进器控制器(下位机)和监控台(上位机)之间使用CAN总线进行数据通讯。CAN总线是一种串行通信网络,在众多子节点的情况下,能够有效支持分布式控制或实时控制,优势显著。此外,CAN总线采用多主控制方式,所有节点均可发送消息,并通过节点标识符确定信号优先级。高优先级消息优先传输,其他节点被动接收,无需区分主/从设备角色,从而简化了系统的设计与扩展。
喷水推进器MCU控制器通过IO口与对应的转向倒车液压系统电磁换向阀进行连接,通过ADC数据采集端口与位移传感器连接。位移传感器实时检测喷水推进装置的转向角度和倒车状态,并将数据传输给相应的MCU控制器。MCU控制器根据接收到的传感器数据,计算出需要的液压阀开度,发送控制信号给电磁换向阀,实现精确的转向和倒车操作。
上位机监控台通过IO口与舵轮油门手柄连接,CAN2口与矢量控制手柄连接,2个UART口分别与HMI串口显示屏及北斗/GPS连接。
正常情况下,喷水推进器转向和倒车系统的2组主/从MCU控制器都可以接收指令和数据,但只有主MCU负责系统的正常运行,可以对电磁换向阀、柴油机等装置发出指令。从MCU处于热备状态,与主MCU进行实时心跳检测,当主MCU发生故障时,从MCU能够迅速接管系统控制权。
2 喷水推进器双MCU冗余系统的系统实现 2.1 上位机监控检测原理传统的心跳检测方法通过单一线路进行故障检测,容易导致“双主机现象”,而上位机监控检测方法能够有效避免这一现象。在喷水推进器本身的通信架构基础上,仅需在主/从MCU之间心跳检测故障时,利用现有的CAN总线通信线路,新增从MCU向上位机监控台发送故障查询讯息和主MCU向上位机监控台发送状态正常讯息这一流程,即可实现上位机监控检测保障功能,如图3所示。
![]() |
图 3 上位机监控台检测示意图 Fig. 3 Schematic diagram of host monitoring console detection |
可知,主/从MCU之间仅有1路心跳检测线路,周期性地向对方发送心跳信号。如果主MCU在规定时间内未收到从MCU发送的心跳信号,将通过CAN总线向上位监控台发送正常信号,以表明自身正常运行。同时,如果从MCU在规定时间内未收到心跳信息,将主动向上位监控台发送查询信号,以确定主MCU是否故障。上位监控台根据收到的主/从MCU信号进行判定,并反馈结果。如果上位监控台判定的结果是主MCU故障,则主/从MCU立即进行功能切换,从MCU接管系统控制权。如果不是,则标记主/从MCU之间通信线路故障,主MCU保持控制权。本方法使用了上位机监控台进行多点、多重检测判定,从而避免了依赖单一通信线路导致的MCU故障误判,提升了故障判断的准确性[6],避免 “双主机现象”,其故障状态判定如表1所示。
![]() |
表 1 MCU故障类型判定 Tab.1 MCU fault type determination |
上位机监控心跳检测法与传统心跳检测法在系统正常运行时的故障检测时间相同,仅在主/从MCU未收到彼此心跳信号时,增加了查询和上位机监控台判定的过程。这个判定过程所需时间很短,不影响系统通信的实时性。同时,使用上位机监控台参与故障检测,可将检测结果第一时间反馈至主驾驶台,并在人机界面显示相应的故障信息。
2.2 上位机监控检测法的系统设计本文设计的上位机监控台故障判定法,相较于传统的心跳检测法以及常规的第三方监控心跳法[5],是基于控制系统已有的上位机与下位机通信的CAN总线,当主/从MCU进行周期性心跳检测时,增加了主MCU向上位机监控台发送状态正常信息和从MCU向上位机发送故障查询信息的步骤,检测流程如图4所示。
![]() |
图 4 上位机监控的双MCU故障检测流程图 Fig. 4 Double MCU fault detection flow chart of host monitoring |
在系统通电后,喷水推进器主控模块上的主/从MCU将同时启动,并开始通过RS232串口周期性地向对方发送心跳信号,相互诊断对方的运行状态。心跳信号包含主/从MCU的状态信息、时间戳等关键数据。若主/从MCU能够定期接收到对方发送的正确心跳数据,则主MCU保持控制权,从MCU继续处于热备状态。如果从MCU连续2个心跳周期未收到或接收了错误的主MCU心跳数据,则从MCU将通过CAN总线向上位机监控台发送故障查询信号,以查询主MCU的工作状态。同时,如果主MCU连续2个心跳周期没有收到或收到错误的从MCU心跳数据,主MCU也将向上位机监控台发送自身正常运行信号。上位机监控台根据收到的主/从MCU信号进行判定,并将判定结果发送至下位主/从MCU。
如果主MCU故障,此时上位机监控台将接收不到主MCU正常信息,从MCU向上位机监控台发送故障查询信息,上位机监控台在2个查询信息周期后仍未收到主MCU状态正常信息,则判定主MCU故障,上位机监控台向CAN总线发送主MCU故障信息,从MCU收到主MCU故障信息之后,立即获得控制权,并复位故障的主MCU。如果故障主MCU恢复故障,则自动切换身份为从MCU,继续保持主/从MCU心跳检测。如果主MCU未故障,则上位机监控台在2个查询信息周期内能接收到主MCU状态正常信息,此时判定主从MCU之间通信线故障,主MCU仍掌握控制权,从MCU保持热备用。
正常情况下,主/从MCU间只通过RS232串口互发心跳信号进行故障检测,而CAN总线只负责传递上位机监控台与下位执行MCU间正常工作的信号。即上位机监控台向下位MCU控制器发送的控制信号和下位MCU向上位机控制台反馈的转向倒车角度等信号。只有当主/从MCU通讯异常时,CAN总线中才有主/从MCU与上位机监控台间MCU故障查询与判定等信号。这相当于CAN总线进行了额外的工作,而这个额外的工作只在主/从MCU间心跳检测故障时才启用。通常情况下,系统故障概率很小,心跳检测异常在作业总执行时间中的占比极小。在大部分时间,CAN总线只负责传输喷水推进器上位机与下位机间正常工作信号。相较于传统冗余系统使用两根心跳检测线路和第三方心跳检测法,这种方式可节省一条通讯线路,降低系统整体的复杂程度并实现现有通讯网络的功能复用。
2.3 CAN总线通信协议设计在本文的喷水推进器双MCU冗余监控系统中,CAN总线不仅传输左右喷水推进器控制模块与上位机监控台间的正常工作信号,还传输控制模块主/从MCU与上位机监控台间故障查询、故障判定等信号,监控系统中CAN总线信号类型较多。为保证系统CAN总线的正常通信,根据实际情况,自定义一个简明易用的通信协议[9],用于喷水推进器控制系统和双MCU冗余的CAN总线通信。
CAN通信帧有标准帧和扩展帧2种形式,标准帧的标识符ID长度为11位,扩展帧的标识符ID长度为29位。相较于标准帧,虽然扩展帧可以挂载更多的设备,但由于其标识符长度较长,在CAN总线上的通信效率不如标准帧[10]。本文喷水推进器的双MCU冗余监控系统CAN网挂载设备数量不多,为提高总线上的通信效率,使用标准数据帧的形式进行通信。
CAN总线是一种基于广播机制的串行通信总线,所有节点在同一时刻接收到的数据是相同的,每个节点根据报文ID来确定是否需要处理该报文。传统的CAN控制器不对接收的报文进行过滤,所有报文都会被接收并传递给控制系统。控制系统在软件层面通过检索报文ID来辨别报文的用途,只有与自身相关的报文才会被保存并处理,其余的则被忽略。这种设计简化了控制系统的设计,只需在程序中对报文进行辨别即可。然而,不进行报文过滤会导致大量无用报文的接收。为了保证通信的实时性,每当CAN控制器接收到报文时,都会触发中断,要求MCU立即处理。如果接收到的报文不是自身所需要的,就浪费了处理器宝贵的中断处理时间,使MCU处理器无法高效地处理重要任务[9]。这不仅会对控制系统的实时性产生影响,而且会降低系统的整体性能。尤其是在高流量的CAN通信网络中,这种影响会更加显著。
为了克服上述方法的缺点,提高系统效率和实时性,本文采用CAN信号接收过滤的方法,并设计适用于本喷水推进器控制系统的CAN帧ID格式和控制器ID过滤设置方法。在STM32系列芯片中,使用bxCAN过滤器可以将不需要接收的报文直接从硬件层面过滤掉[11]。通过在CAN控制器中设置过滤器,只允许特定的CAN帧ID报文进入接收队列,其余报文则被直接忽略,可大幅减少不必要的中断处理,从而节省CPU资源并提高系统的实时响应能力。
表2中ID0~ID10对应CAN通信数据标准帧ID的11位,ID4为主从标识码,用来区分主/从MCU控制芯片。某个CAN信号如果与主MCU有关,则ID4置0,如果与从MCU相关,则ID4置1。ID5为左右标识码,用来区分左右喷水推进装置控制器。某个CAN信号如果左控制器有关,则ID5置1,如果与右控制器有关,则ID5置0。在这样的寻址方式下,控制设备的CAN过滤器设置将变得非常简单。例如:对于左喷水推进装置的主MCU控制器,只要报文的ID4和ID5等于01就接收,不为01就全部过滤;对于右喷水推进装置的从MCU控制器,只要报文的ID4和ID5等于10就接收,不为10则全部过滤。
![]() |
表 2 双冗余监控系统数据帧标识符ID格式 Tab.2 Dual redundant monitoring system data frame identifier ID format |
当主/从MCU间周期性心跳检测故障时,从MCU发送故障查询CAN信号,主MCU发送状态正常CAN信号,这些信号均发送至上位机监控台,上位机监控台在判定故障类型后,将判定结果通过CAN总线发送至下位机。故障检测信号能否及时在上位机与下位机之间传输,对整个监控系统安全性和稳定性十分重要,所以故障检测信号ID优先级应高于任务通讯信号ID。由CAN总线仲裁相关知识可知,数据帧ID值越小,该数据帧的优先级越高。因此,本文取11位标识符ID中最高两位ID9和ID10组成任务状态码,在控制系统正常通讯时置11,当发送故障检测信号时置00。通过这样的设置,可使故障检测信号帧在CAN总线中优先传输。
取ID6~ID8组成功能码,定义报文的种类。例如:1)模拟量报文;2)数字量报文;3)开关量报文;4)查询报文;5)查询反馈报文;6)测试报文;7)测试报文。
“其他设备码”定义的是总线上其余设备的编码,例如左右喷水推进系统上驱动柴油机ECU以及后续添加的设备,最多可添加16个设备。
3 系统功能测试与分析 3.1 冗余系统控制装置介绍喷水推进器双冗余监控系统包括4个硬件完全相同的下位机控制模块、1 个上位机监控模块、2 个冗余的电源模块以及其他功能模块。本文主要针对基于CAN总线的监控系统中上位机和下位机MCU进行设计,底层位移传感器模块、冗余电源模块及CAN收发器等不在此赘述。
上位机监控模块主芯片采用ST公司发行的STM32MP157,这是一款基于Cortex-A7内核的高性能微处理器,集成了双核ARM Cortex-A7和一个ARM Cortex-M4协处理器,支持Linux操作系统,可以实现复杂的操作系统功能和多任务处理,最高主频800 MHz,拥有高效的计算性能。在喷水推进器双冗余监控系统中,STM32MP157作为上位机处理器,通过其双核ARM Cortex-A7提供强大的计算和数据处理能力,确保系统的高效运行。上位机监控台主要功能有操作台控制手柄数据采集及处理、驱动HMI人机界面、下位机通信以及下位机故障检测和处理。
下位机控制系统主控芯片采用ST公司发行的STM32F307RGT6芯片。该芯片使用Cortex-M4内核,主频为144 MHz,具有良好的低功耗性能,适合长时间运行。下位机控制模块主要实现液压油缸位移传感器模拟量数据的采集和处理,CAN总线通信,控制液压系统电磁换向阀等功能。
下位机控制系统由多个硬件模块构成,包括主控芯片模块、电源模块、输入输出模块、存储模块、CAN通信模块、RS232串口模块和ADC采集模块,如图5所示。由于2块MCU主板均需连接相同的外设模块,因此采用了双叠层物理结构。该结构易于维护和装拆,并且2块主板间RS232串口通信线路距离极短,进一步保证了RS232通信稳定性。
![]() |
图 5 双MCU主板原理图 Fig. 5 Dual MCU motherboard schematic |
为了验证本文提出的双MCU冗余监控系统的可靠性,即其是否能及时检测并处理故障,设计了一种故障模拟实验并实时监测系统运行状态。搭建简单实验测试平台,4个下位机MCU和1个上位机MCU通过一条CAN总线连接至计算机,并使用CAN分析仪的PCAN软件对MCU的CAN通信情况进行监测。考虑到该系统的核心在于双MCU冗余设计,因此在系统通电稳定运行一段时间后,将人为断开正常运行的主MCU电源,并根据CAN分析仪读取的结果,来判断测试系统CAN通信是否能继续发送正常的工作信号,以此来判定本系统能够及时对故障MCU进行切换[6]。
根据2.3节设计的CAN总线通信协议,与左喷水推进器主控MCU相关的工作CAN帧ID设为0x623,从MCU设为0x633;与右喷水推进器主控MCU相关的工作CAN帧ID设为0x603,从MCU设为0x613。系统上电之后,上位机监控台开始与左、右喷水推进器的主控MCU交替发送正常工作的CAN数据。如图6所示,在系统运行约23.7 s时手动将左喷水推进器主MCU断电,此时左喷水推进器从MCU接收不到主MCU发送的RS232串口心跳信号,从MCU发送帧ID为0x033的故障检测信号,连续发送2个周期后,上位机断定左喷水推进器主MCU故障,立即向左喷水推进器从MCU发送主MCU故障信号。从MCU接收上位机信号后,立即获得左喷水推进器的控制权,开始发送帧ID为0x633的数据。
![]() |
图 6 冗余系统CAN通信试验测结果 Fig. 6 Redundant system CAN communication test results |
由图6的测试结果可知,在下位机MCU没有故障时,CAN总线只有上位机和下位机正常工作的通讯信号。只有当主/从MCU间心跳检测故障时,CAN总线才有主/从MCU故障检测信号,在极短的检测时间后,系统判定为主MCU故障,此时从MCU掌握系统控制权并开始发送CAN信号,提高了系统的稳定性和安全性。
为了验证本文所提出的双MCU冗余上位机监控检测法的优势,对双MCU冗余心跳检测法和上位机监控检测法的故障检测能力进行了多次测试比较。在同一控制板上,分别烧录2套测试程序进行故障检测,2套测试程序检测周期相同。分别模拟冗余系统在主机故障、从机故障以及RS232线路故障情况下,对这两种检测方法进行120次有效测试,结果如表3所示。
![]() |
表 3 双MCU冗余故障测试结果 Tab.3 Dual MCU redundancy fault test results |
由于双冗余心跳检测法不能检测出主/从MCU间心跳线路故障,所以表3中未显示其线路故障结果。可以看出,相对于双冗余心跳检测法,本文提出的上位机监控检测法比较完善,检测精度也比较高。针对主机故障和从机故障的检测成功率也优于双冗余心跳检测法,故障响应时间也可以接受。本文提出的基于CAN通信的双冗余上位机监控监测系统也适用于其它基于CAN通信网络船舶的双MCU冗余系统故障检测,仅需针对不同检测对象对检测程序稍作修改即可,故障检测方法和原理相同。
4 结 语本文针对某双机双泵喷水推进艇喷水推进器控制系统提出并实现了一种基于CAN通信的双MCU冗余上位机监控系统,来提高喷水推进器控制系统的可靠性和安全性。根据CAN总线通信特点以及喷水推进器控制系统架构组成,设计了CAN总线通信协议来提高双MCU冗余通信效率。在没有增加硬件的情况下,通过主/从MCU的协同工作和上位机监控台的实时监控,采用上位机监控检测法并基于现有CAN通讯网络的功能复用,实现了双MCU冗余系统的双重检测保障。设计喷水推进器双冗余系统控制装置,进行实验测试验证本文提出的上位机监控检测法的可行性,并与传统的双冗余心跳检测法进行多次试验测试对比故障检测效果。试验结果表明,上位机监控检测方法克服了传统故障检测方法仅针对MCU故障而忽视其外围通信故障的缺点,有效避免了“双主机现象”。本文研究结果可为喷水推进器双MCU冗余系统故障检测方法提供一定参考,上位机监控检测法也适用于其它基于CAN通信船舶的双MCU冗余系统故障检测。
[1] |
罗悦, 陶然, 赵明, 等. 双冗余热备份技术的综合控制设备设计与实现[J]. 现代防御技术, 2018, 46(5): 129-134. LUO Y, TAO R, ZHAO M, et al. Design and implementation of integrated control equipment for dual-redundancy thermal backup Technology[J]. Modern Defense Technology, 2018, 46(5): 129-134. DOI:10.3969/j.issn.1009-086x.2018.05.20 |
[2] |
DAI W, LI W H, WAN F Y. Dual redundancy design of brushless DC motor for UAV steering gear[C]//Proceedings of 2018 International Conference on Sensing, Diagnostics, Prognostics, and Control (SDPC). Xi'an: IEEE, 2018.
|
[3] |
WANG S F, GUO J X, /yu LI H B, et al. A method of high reliability board recognition applied to dual redundant architecture[C]//Proceedings of 2019 International Conference on Wireless Communication, Network and Multimedia Engineering (WCNME 2019). [S. l. ]: Atlantis Press, 2019.
|
[4] |
吕聪, 李华旺, 常亮. 星务管理中的双CPU冗余通信设计与实现[J] 电子设计工程, 2017, 25(14): 92–95+100. LV C, LI H W, CHANG L. The design and implementation of redundancy communication of dual-CPU in house-keeping system[J]. Electronic Design Engineering, 2017, 25(14): 92–95+100. |
[5] |
徐一凤, 丰大军, 王皓, 等. 基于麒麟系统的 SCADA 状态诊断系统的设计与实现[J]. 电子技术应用, 2018, 44(5): 134-136+143. XU Y F, FENG D J, WANG H, et al. The design and implementation of SCADA state diagnosis system on Kylin system[J]. Application of Electronic Technique, 2018, 44(5): 134-136+143. |
[6] |
卢月, 李维波, 李巍, 等. 舰船电站控制系统的双CPU混成式故障检测技术[J]. 中国舰船研究, 2021, 16(3): 200-207. LU Y, LI W B, LI W, et al. Dual CPU redundant communication hybrid fault detection technology for shipborne electrical plant control system[J]. Chinese Journal of Ship Research, 2021, 16(3): 200-207. |
[7] |
张军永, 刘荣林, 李翼瀚. 一种基于双机热备份的同步监听值守策略设计[J]. 电子技术应用, 2019, 45(12): 106-109+114. ZHANG J Y, LIU R L, LI Y H. A synchronous and listening guard strategy design based on dual-machine hot standby[J]. Application of Electronic Technique, 2019, 45(12): 106-109+114. |
[8] |
秦友伦, 袁强, 涂炯, 等. 一种基于双机热备系统的仲裁切换方案[J]. 兵工自动化, 2015, 34(8): 56-58. QIN Y L, YUAN Q, TU J, et al. A solution of arbitrary switch-over based on dual-computer hot standby system[J]. Ordnance Industry Automation, 2015, 34(8): 56-58. DOI:10.7690/bgzdh.2015.08.014 |
[9] |
丁超, 濮加佳, 曹丹丹. 船舶控制系统冗余CAN总线网络研究[J]. 中国新技术新产品, 2016, (10): 92−94. DING C, PU J J, CAO D D. Research on redundant CAN bus network of ship control system[J]. New Technology & New Products of China, 2016, (10): 92−94. |
[10] |
TAN L L, YANG L, LI S, et al. Simulation research on redundant mechanism of dual CAN bus[C]//Proceedings of the 2016 4th International Conference on Machinery, Materials and Information Technology Applications, 2017.
|
[11] |
艾学忠, 杜文韬, 徐春博. 基于STM32的船载机械手控制系统设计[J]. 电子制作, 2024, 32(17): 90-93. AI X Z, DU W T, XU C B. Design of shipborne Manipulator Control System based on STM32[J]. Electronic Manufacturing, 2024, 32(17): 90-93. DOI:10.3969/j.issn.1006-5059.2024.17.022 |