原创 结合FPGA与DSP的仿人假手控制系统设计

2019-9-26 15:40 1890 6 2 分类: MCU/ 嵌入式 文集: 程序设计
文采用模块化设计方案,以FPGA作为核心芯片,运动控制、肌电信号采集、电刺激等模块独立设计,通过通用接口连接。在此基础上,进行多模式的多指抓取实验。

  仿人假手作为肢残患者重获人手功能的主要对象,具有重大的社会需求。理想的假手应具有人手的仿生特征,主要体现在假手构造、控制方式与环境感知3个方面,但由于其有限的体积和复杂的传感器系统,对控制系统提出了更高的要求。

  现有的控制系统有外置式和内置式两种。外置式控制系统多用于研究型假手,如Cyber Hand,Tokyo Hand,Vanderbilt Hand等,这种控制系统主要用于算法、方案的验证,在残疾人应用上推广意义较小。内置式控制系统在研究型假手和商业型假手上均有应用,其中研究型假手控制系统,在环境感知和双向信息交互上投入大量研究,如Smart Hand,DARPA hand;而商业型假手控制系统虽然也有部分集成有外部传感器,但传感器系统简单,双向信息交互上也有较大欠缺,如i-Limb,BeBionic Hand.

  HIT IV代假手控制系统采用DSP作为主控芯片,集成有位置传感器和力矩传感器,可对肌电信号采样。但控制系统为一个整体,且体积较大,只适用于HIT IV代假手。DSP芯片在功能拓展上弱于FPGA,不利于二次开发。

  本文采用模块化设计方案,以FPGA作为核心芯片,运动控制、肌电信号采集、电刺激等模块独立设计,通过通用接口连接。在此基础上,进行多模式的多指抓取实验。

  1仿人假手系统介绍

  本文所设计的控制系统以HIT V代手为控制对象。该手略小于成年人人手,具有5根手指,每根手指2个指节,大拇指还另有一个内旋/外展关节,共有11个活动关节,整个手由6个直流电机驱动,每根手指安装有力矩传感器、位置传感器、指尖六维力传感器。

  控制系统采用模块化设计思想,将整个系统分割成几个模块,通过通用接口建立相互连接,使整个控制系统可以放置在仿人假手内部,实现机电一体化。

  2基于FPGA的控制系统设计

  仿人假手电气控制系统用于实现假手各手指的驱动控制、多种传感器信息的采集以及与上位机( PC或PCI控制卡)之间的通信。该控制系统由10个模块组成,分别为:由FPGA组成的主控芯片模块、USB接口模块、拇指控制电路模块、食指控制电路模块、中指控制电路模块、无名指控制电路模块、小指控制电路模块、肌电信号采集模块、电池管理系统模块、电刺激反馈模块。模块化设计方法增加了控制系统的灵活性与独立性,便于对模块单独进行调试与修改。电气系统总体功能框图如图1.

  

  图1 电气系统功能框图

  2.1 FPGA主控芯片模块设计

  FPGA主控芯片模块采用Altera公司CycloneⅢ系FPGA芯片EP3C25F25617作为控制核心,负责肌电信号和多种传感器信号的处理、与手指电路的通信、USB通信、CAN通信接口等功能。同时,主控芯片模块还负责大拇指内旋/外展自由度驱动电机的控制。各个功能通过VHDL语言进行编写,FPGA中嵌入双NIOS核构成双核处理器,其中一个NIOS核用于肌电信号处理,另一个NIOS核用于通信;双核通过2M的EEPROM进行通信。FPGA功能框图如图2.

  

  图2 FPGA功能框图

  RS—485通信通过在NIOS核内自定义元件AutoSCI控制RS—485收发接口芯片MAX3362实现。MAX3362收发芯片可通过3.3 V低压实现高速数据传送。CAN与LVDS通信采用复用电路设计(图3),通过更换接收发送接口芯片完成功能转换。CAN通信采用TI公司的CAN收发器SN65HVD230QD作为接口芯片。LVDS通信采用TI公司的半双工LVDS收发接口芯片SN65LVDM176,构成PPSeCo高速串行通信系统与PCI控制卡通信,通信速率可达25 Mbps,保证控制信息与传感器信息传送的及时性。

  

  图3 CAN通信/LVDS通信复用电路

  拇指内旋/外展自由度驱动电机由NIOS核中自定义元件PWM控制。元件功能通过VHDL语言编写,PWM波周期和占空比均可调。电机驱动芯片采用MPC17531A,其内部集成双H桥,可直接控制直流有刷电机。

  2.2手指运动控制模块设计

  五根手指的运动控制模块采用相同的设计方案,增强系统的互换性与通用性。该模块由DSP作为控制核心,直流有刷电机驱动芯片MPC17531A作为电机驱动芯片,负责手指电机的驱动,力矩传感器、位置传感器、电机电流传感器信号的采集与处理,以及与触觉传感器系统的通信,最后各项数据通过RS—485通信接口与主控芯片模块通信。控制模块如图4.

  

  图4 手指运动控制模块功能框图

  该模块采用的DSP TMS320F28027运行速率高,封装小。内部集成的16通道12位A/D转换器可实现对力矩、位置、电机电流信号的采样。串行异步通信接口通过RS —485收发接口芯片实现与主控芯片模块通信。EPWM模块可直接控制直流有刷电机驱动芯片MPC17531A.

  如图5,关节力矩传感器信号采集系统包括力矩传感器、处理放大电路、滤波电路和A/D转换电路。力矩传感器基于应变原理,采用仪表放大器INA337组成半桥电路对力矩信号进行放大后通过RC滤波电路进入A/D转换芯片。

  

  图5 力矩传感器信号采集系统

  如图6,关节位置传感器信号采集系统包括位置传感器、处理放大电路、滤波电路和A/D转换电路。位置传感器基于旋转电位器原理,采用集成运放MAX9618对电位器信号进行放大后通过RC滤波电路进入A/D转换芯片。

  

  图6 位置传感器信号采集系统

  2.3肌电信号采集模块设计

  肌电信号采集模块用来采集肌电电极的信号以及对信号的滤波和D/A转换后存储在CPU中,包括RC电路组成的滤波电路、D/A转换电路和电压转换电路。数字信号通过电压转换芯片转换为3.3 V电压,通过SPI接口输入到CPU中央处理器。

  2.4电池管理系统模块设计

  电池管理模块包括电池、电流传感器、蜂鸣器电路、LED显示电路。电流传感器实时监测电池输出电流大小,通过LED显示电路和蜂鸣器电路显示充电状态和电池电量过低报警。

  3软件实现

  在FPGA控制器程序设计中主要完成各系统参数的初始化与控制算法的实现,具体由如下几部分构成:

  1)与上位机通信部分:通过3种方式与上位机通信,获得控制指令,分别为USB通信、LVDS通信、CAN通信,其中LVDS通信与CAN通信不能同时使用;

  2)肌电信号采集部分:通过A/D转换芯片将肌电电极信号转换为数字量,并经过运算处理得到控制指令;

  3)与手指运动控制模块通信部分:通过SCI接口实现与手指运动控制模块的RS—485通信;

  4)生成驱动电机控制参数部分:运算处理控制指令,生成电机运动参数(方向与占空比)。

  控制流程图如图7所示。

  

  图7 FPGA控制流程图

  DSP控制程序主要完成DSP各参数的初始化,控制流程图如图8.

  

  图8 DSP控制流程图

  4假手抓取实验

  基于上述设计,研制出HIT V假手样机,进行抓取实验(图9),可实现多种动作模式的抓取,分别为:两指捏取、三指捏取、圆柱抓取、球形抓取、单指指向、胡克抓取、侧边捏取、五指端取。控制过程中,系统工作稳定,满足仿人假手运动控制和传感器信息采集要求。

  

  图9 多指抓取实验

  5结论

  本文介绍了结合FPGA与DSP的仿人假手控制系统的设计组成与工作流程。该控制系统体积小巧,可完全安装于假手内部。实验证明:该系统运行可靠、控制灵活,使用效果良好。

标签:
PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

curton 2019-9-26 21:56

学习了
电子发烧友的文章
相关推荐阅读
minicaihong 2020-10-22 16:44
场效应管放大电路的直流偏置电路详解
什么是偏置电路晶体管构成的放大器要做到不失真地将信号电压放大,就必须保证晶体管的发射结正偏、集电结反偏。即应该设置它的工作点。所谓工作点就是通过外部电路的设置使晶体管的基极、发射极和集电极处于所要求的...
minicaihong 2020-10-22 16:37
场效应管偏置电路-场效应管偏置电路的工作原理及作用分析
什么是偏置电路晶体管构成的放大器要做到不失真地将信号电压放大,就必须保证晶体管的发射结正偏、集电结反偏。即应该设置它的工作点。所谓工作点就是通过外部电路的设置使晶体管的基极、发射极和集电极处于所要求的...
minicaihong 2020-10-22 16:27
MOS管偏置电路-MOS管直流、恒流等偏置电路图文及方程详解
MOS管偏置电路MOS管直流偏置电路MOS管的单电源直流偏置电路有两种:1、只能用于结型和耗尽型MOS管的自给偏置电路。2、可用于各种MOS管的分压式偏置电路自给MOS管偏置电路(1)图解法根据图中电...
minicaihong 2020-05-27 09:50
sprintf 格式化字符串
sprintf 格式化字符串好久没写博客了,又遇到自己觉得很傻的问题,格式化字符串还要找下定义和用法sprintf() 函数把格式化的字符串写入变量中。arg1、arg2、++ 参数将被插入...
minicaihong 2020-05-25 15:07
12T和1T的单片机
标准51是12T的,就是说12个时钟周期(晶振周期,例如12M的,周期是1/12M,单位秒),机器做一个指令度周期,刚好就是1/12M*12=1uS,常见指令例如nop就是一个周期,刚好1uS,其他的...
minicaihong 2020-05-23 16:22
4HC595驱动8*8点阵屏
74HC595驱动8*8点阵屏置顶 菜袅1号 2020-05-19 10:00:03   52   收藏展开该项目使用国产M0核单片机,驱动方式类似于stm32平台;点阵驱动芯片:...
EE直播间
更多
我要评论
1
6
关闭 站长推荐上一条 /3 下一条