基于STM32多维腰椎牵引装置控制系统设计与实现
2022-05-05杜妍辰喻洪流
杜妍辰,周 琦,喻洪流
(1上海理工大学 健康科学与工程学院,上海 200093;2上海理工大学 康复工程与技术研究所,上海 200093)
0 引 言
腰椎牵引作为椎间盘突出症的治疗方法,是治疗背痛和腿痛患者的常见方式。根据腰椎牵引原理,已有大量牵引设备出现在市面上。如:机械式牵引床、电动式牵引床、自重式牵引床等。但是,该类设备普遍存在牵引维度单一,牵引力不足的劣势,由于运动维度的限制,无法实现手法牵引。为解决这些问题,本设备实现了多维的牵引,包括成角牵引、摆角牵引、旋角牵引和手法牵引。另外,用液压驱动代替传统的电机驱动,能方便地实现无级调速,而且输出推力转矩更大。
本文基于STM32F103ZET6芯片,针对多维腰椎牵引装置,设计了相关牵引装置的控制系统。该系统由软硬件两部分组成。底层硬件包括RS485通讯电路、液压电磁阀控制电路、液压调节电路以及传感器信号变送电路。软件方面采用RT-THREAD实时操作系统,以及多线程架构。为了提高控制精度,系统中包含多个传感器,实时提供位置信号和拉压力数据,形成闭环控制。另外,还配备了移动端上位机,通过WIFI与设备通讯,实现无线操作。
1 硬件设计
系统控制主板主要由电源模块、液压电磁阀控制模块、通讯模块、传感器采集模块和液压调节模块构成,其结构如图1所示。
1.1 单片机选型
STM32F103ZET6单片机,是32位基于Arm的Cortex-M3微控制器,具有全面的外设选择。该芯片同时保持完全集成和易于开发两种特点,其MCU的最大系统时钟可达72 MHz,可在外围搭建IO控制电路、模拟量采集电路以及RS485通讯电路,能够满足本系统的设计需求。而且该单片机引脚数充足,体积小,既能够满足功能又能够减小控制主板的整体大小,其具有强大的实时功能,也可对数字信号进行相关处理。
图1 控制主板结构图Fig.1 Control board structure diagram
1.2 RS485通讯电路设计
RS485(TIA-485(-A)/EIA-485)采用2线通讯,允许半双工数据传输,数据可以在两个方向上一次向一个方向往返于设备;RS485能够在长距离和电噪声环境中有效使用。
设计中采用MAX485芯片,搭建了能够自收发的RS485电路,如图2所示。本电路能够最小化EMI,减少不良终端对电路产生的干扰,其传输频率最高可达2.5 Mbps。
1.3 液压控制电路设计
控制系统液压调节模块中使用了24 V的直流有刷电机,作为压力调节电机。通过对电机的控制,改变内部阀口的开合大小,控制内部压力,进而控制运动速度。
图2 RS485电路原理图Fig.2 RS485 circuit schematic diagram
该模块基于全集成、大电流半桥BTS7970,设计的电机驱动电路如图3所示。由于p通道高压侧开关无需电荷泵,从而将EMI降至最低。集成驱动IC易于与微控制器接口,具有逻辑电平输入、电流检测诊断、转换率调整、死区时间生成功能。在过热、过压、欠压、过流和短路的情况下,能够对电路起到保护作用。当电机驱动需要大电流驱动时选择BTS7970,能够优化电路、降低电路板空间消耗。
图3 BTS7970驱动电路图Fig.3 BTS7970 driving circuit diagram
另外,电磁阀控制模块主要实现对液压回路中电磁换向阀的控制,从而控制整个设备的成角、摆角、旋角以及牵引运动。电路中主要采用ULN2803达灵顿晶体管阵列,每一对达林顿集的电极电流额定值为500 ma,足以驱动30 ma继电器。达林顿(复合)管原理如图4所示。其中,COM端是为了连接感性负载时所需续流而用;钳位二极管具有电路保护作用。
图4 达林顿(复合)管原理图Fig.4 Darlington(composite)tube schematic diagram
1.4 传感器采集模块
系统所用传感器包括光电式编码器和拉压力传感器。其中,光电式编码器主要用于检测设备进行成角、摆角和旋角运动时的位置信息,从而实现对运动位置的精准控制;拉压力传感器用于观察牵引过程中牵引力的变化情况。基于拉压力传感器的反馈信息,可以实现牵引力的闭环控制。
光电式编码器利用的是光电转换原理,通过内部光电传感器产生电信号,输出3组方波脉冲。其中,A、B相输出脉冲相位之间相差90°,脉冲的先后可以用于判断旋转方向,Z相脉冲的一个周期对应电机旋转一圈。STM32内部自带通用定时器的编码器模式,可以直接连接编码器,对其输出脉冲计数,从而直接获取旋转角度值。
由于拉压力传感器的输出形式为电压差分信号,单片机无法通过内部AD转换直接读取信号值,因此需要相关的仪表放大电路进行信号处理。INA128芯片是常用的仪表放大器芯片,能够保护输入电路,具有输入缓冲放大器,起到差动放大作用。使用INA128芯片时,不需要对输入阻抗进行特意匹配,放大倍数可以根据公式(1)计算,使其放大器特别适用于测量和测试设备。
其中,为放大倍数,为外部增益设置电阻器,控制实际放大倍数,具体电路如图5所示。
图5 INA128仪表放大器电路图Fig.5 INA128 instrumentation amplifier circuit diagram
2 软件设计
2.1 RS485通讯程序设计
控制系统使用RS485,通过WIFI串口服务器连接,实现与上位机的无线通讯。对RS485通讯的相关基础配置在程序初始化中完成,保证通讯的正常启动。通讯初始化包括单片机对应引脚的配置、内部时钟使能、相关标志位设置、接收中断优先级以及RS485的工作模式设置。RS485正常工作模式下,波特率为115200,采用自拟的通讯协议格式。
RS485处于接收状态时,先在中断函数内完成上位机下发的指令报文接收,并验证报文是否符合正常报文格式。符合则进入报文解析函数,对报文进行解析,其中包括头帧、ID号、功能码、数据帧以及16位的CRC校验;否则返回错误报文信息。当RS485处于发送状态时,会对数据信息进行打包处理,报文格式与接收报文格式相同。协议格式见表1。
表1 通讯协议表Tab.1 Communication protocol table
2.2 位置反馈液压控制方案
根据输入指令,确定设备所需要进行的动作,通过控制继电器驱动电磁阀开合,实现设备具体动作(如成角、旋角、摆角等牵引);在动作进行过程中,能够通过编码器实时采集位置角度信息,不断更新实际位置与预定位置的误差值θ,控制运动速度,使其能更精准的到达设定角度或是牵引位置。位置控制框架如图6所示。
图6 PID控制框图Fig.6 PID control block diagram
由于PID算法具有简单实用、响应快、对静态误差有抑制效果等优势,所以采用PID算法进行控制器设计。为了便于程序实现,将公式离散化。控制器的实现形式为:
式中,K为比例增益;K为积分时间常数;K为微分时间常数;()是当前周期位置偏差;(1)为上周期的位置偏差。
2.3 系统程序工作流程
本控制程序采用RT-Thread实时操作系统,搭建了多线程的架构。其中包括:RS485通讯线程、传感器数据采集线程、调压电机控制线程,以及继电器控制线程。线程之间通过消息队列进行通信,发送线程将消息发送到消息队列控制模块中,从而唤醒被挂起的线程接收并处理消息。
系统启动后,先对线程初始化并创建消息队列。RS485通讯线程最先启动,保持接收状态。当接收到上位机发来报文时,对报文进行处理,提取其中的功能指令和数据信息,将其放入消息队列;继电器控制线程获取功能指令,控制对应继电器;传感器数据采集线程获取数据信息,不断更新当前传感器的数据;调压电机控制线程根据实时运动位置信息变化,对调压电机进行控制,调整系统内部压力,从而控制运动速度。系统控制流程如图7所示。
图7 系统程序控制流程图Fig.7 System program control flow chart
3 实验及结果分析
控制系统搭建安装完成后,对整机进行了功能试验。图8的电路安装在设备侧面的门板上,占用极少的设备内部空间。
图8 控制系统主板和样机实物图Fig.8 The physical diagram of the control system
在实验过程中,上位机发送指令,控制设备进行成角、摆角、旋角以及牵引动作的实现。实时采集编码器反馈的位置信号,并通过最后停止位置与设定位置进行比较。经5次检测实验,最终结果数据见表2。
由表中数据可知,各个角度和牵引动作的误差基本保持在1%左右,验证了该控制系统能够准确控制装置进行三维牵引。另外,也表明控制系统对整体的液压控制是可行的。
表2 实验数据表Tab.2 Experimental data table
4 结束语
本文针对多维腰椎牵引装置,设计了基于STM32的液压控制系统。采用RS485实现了与上位机的通信,配合电磁阀驱动电路、液压调节模块与传感器采集模块,构成多维腰椎牵引装置的硬件系统。软件系统方面,采用了实时操作系统,多线程的程序架构。控制器使用了PID算法,通过编码器获取位置偏差,对内部液压进行调整,提高装置的精确度。经多次实验,验证了控制系统的可行性。