DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1519|回复: 0
打印 上一主题 下一主题

[工仪] 基于C8051F040的跆拳道综合模拟训练仪控制系统设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 19:49:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  
         
    摘 要: 介绍了基于C8051F040 单片机的跆拳道综合模拟训练仪控制系统的硬件和软件设计,系统在交付使用后,证明控制系统是稳定可靠的。
关键词: C8051F040 传感器 CAN总线 RS232

  跆拳道综合模拟训练仪研制课题属于科技部重点攻关项目,由中科院合肥智能机械研究所承担。该课题的研制目标为:研制适用于跆拳道强化技战术训练的模拟训练仪,可按教练员要求,模拟运动员前进、后退及转体,引导运动员击打指定部位,达到训练目的;并可对击打动作的相关技术参数进行测量与综合分析,给出量化评价结果。该系统自2005年12月投入国家跆拳道队使用至今,大幅度提升了科学训练水平,得到了拳跆中心领导、教练员、运动员的认可与高度评价,填补了该项目科学训练的空白。
1 系统原理与主要功能
  该系统的主要机械结构如图 1 所示。控制系统部分采用伺服电机控制靶体前后运动,由步进电机控制靶体转身运动;在靶体左肋、胸部、右肋部位各装有一个单维力传感器,在头部装有一个三维力传感器,可以测量运动员击打四个击打部位的力量;在地面上铺设了2m×3m的柔性阵列传感器,可以测量运动员在传感器上的位置,进而计算出运动员与靶体的实时距离;控制系统与工作于上位机的综合模拟训练指导系统通讯,接收上位机的指令。系统总体设计如图 2 所示。








2 硬件设计
  由于跆拳道综合模拟训练控制系统要求系统的响应速度快、鲁棒性好、通信距离长、通信稳定性好,因此本文选用C8051F040单片机为控制系统的中央处理器。该单片机集成了CAN2.0B总线控制器。指令执行速率最高可达25MIPS。
  该控制系统主要由CPU模块、伺服电机控制模块、步进电机控制模块、力传感器信号采集模块、柔性阵列传感器信号采集模块、通信转发模块、电源模块等组成。下面介绍主要模块的实现。
2.1 CPU 模块
  CPU模块主要由振荡器、I/O端口、CAN总线、串口模块、存储器扩展、JTAG接口单元等组成。
  振荡器采用外部晶体振荡器,频率为11.0592MHz。采用该频率晶体振荡器是为了串口通讯波特率的误差能够最小。
  由于Silicon Labs CAN 是一个协议控制器,不提供物理层驱动器(即收发器),因此要实现与CAN总线的接口,还需要接口控制器,例如82C250、TJA1050等。这里选用TJA1050,CAN总线硬件电路如图3 所示。




  RS-232C标准电平采用负逻辑,规定3V"15V之间的任意电平为逻辑“0”电平, -3V"-15V之间的任意电平为逻辑“1”电平,而C8051F040 输出为TTL电平,所以在通讯时,必须进行电平转换,以便与RS-232C标准电平匹配。在此,电平转换芯片选用MAX232 芯片。
2.2 伺服电机控制模块
  系统的伺服电机选用华中数控伺服电机,电机的最大力矩为55Nm。伺服电机的工作方式采用内部速度方式,通过串口通讯设置电机的转动速度、加减速时间常数等参数;通过 CPU 输出信号控制伺服电机驱动器使能信号和电机抱闸信号以启停电机。伺服电机驱动器采用24V电源,而C8051F040 的输出电平为3.3V,故需要电平转换芯片,在此选用ULN2803 芯片。由于伺服电机的抱闸器会存在比较大的反灌电流,因此需要通过继电器将其与ULN2803 相隔离以保护芯片。伺服电机驱动电路原理图如图 4 所示。




  对于伺服电机驱动器的工作状态,可以通过读取伺服电机驱动器状态输出信号来获得。
2.3 柔性阵列传感器信号采集
  测距系统的主要功能就是测量出运动击打时在点阵式阵列传感器上的位置信息,并将位置信息传送给上位机。测距系统原理:点阵式阵列传感器为 3M(75行)×2M(50列),行线之间及列线之间的间隔均为4cm ,可以根据运动所处的行线和列线的值来确定运动员在柔性阵列传感器上的位置。
  硬件设计原理:将行线作为扫描线,依次对每条行线输出高电平信号,每输出一次读取一次列线的信息,如果在阵列上的一点导通,则在该点的行线输出高电平时,该点所处列线输出电平会有变化,根据这个原理就可以确定所处的列线和行线。扫描电路采用74HC164 移位寄存器依次对每条行线输出高电平,MCU通过74HC244 以选通方式扩展 I/O口直接读取列线的状态。
2.4 电源模块
  CPU 模块MCU 需要3.3V的直流电源供电,且每个端口可以承受的电压为5V,串口电平转换芯片MAX202以及光耦隔离芯片6N137 均需要5V直流电源驱动,故在设计CPU 模块电源时必须提供5V和3.3V的直流电源。考虑到对电源模块的兼容性(直流电源或交流电源均可以供电),在设计CPU模块电源电路时加入了整流桥和稳压模块。采用电源隔离器B0505S将输入电源和CPU模块的电源相隔离,以屏蔽电源冲击影响MCU的执行。电源模块电路图如图5所示。




2.5 通讯转发模块
  通讯转发模块主要作用就是实现 CAN 总线协议与 RS232协议之间的转换。硬件设计采用独立的C8051F040作为MCU的CPU模块,硬件电路主要包括 CAN总线电路和串口电路,转换协议由控制软件完成。
3 软件设计
  控制系统软件采用模块化结构,主要包括主程序、伺服电机控制程序、步进电机控制程序、ADC 采集程序、柔性阵列传感器信号采集程序、串口通讯程序、CAN 通讯程序、通讯转发模块程序等。下面将介绍主要模块的软件结构设计。
3.1 主程序
  控制系统主程序主要完成MCU 的配置(看门狗配置、交叉开关配置、端口输入输出方式配置、时钟源配置)、CAN总线初始化、串口工作方式初始化、12位A/D 转换器初始化、伺服电机状态检测、等待上位机指令并跳转到相应模块执行等功能。其程序框图如图 6 所示。




3.2 柔性阵列传感器采集程序
  该程序算法为:依次对行线置高电平,同时读取列线的状态信息,如果列线不全为0,则说明测量到位置,退出本次扫描,清除行线信息,并发送位置信息给上位机;如果列线全为0,则继续对行线依次置高电平直至本次扫描结束。该扫描算法在实际应用中测量的是压力中心点。
3.3 通讯转发模块程序
  通讯转发模块的软件设计主要是实现协议的转换。其程序结构框图如图 7 所示。




  CAN总线协议与RS232协议转换的算法:CAN总线发送数据包有8个数据,接收到CAN数据包后提取数据并将其压栈到串口发送缓冲区,然后关闭CAN中断,等待串口发送完毕;接收上位机的指令后,转发模块将接收到的数据依次压栈到CAN总线发送缓冲区,等待发送结束标志 EE,然后调用CAN总线发送函数。上位机指令字节数最大为3。
  通讯转发模块与上位机串口的通讯协议:上位机发送数据以 EE 为起始标志;下位机发送数据以EE为结束标志。
  本文设计跆拳道综合模拟训练仪的控制系统,并实现了靶人前后运动、靶人转身运动、测量运动员击打力度、测量运动员击打位置与靶人之间的距离、测量运动员的反应时间等功能。目前,该系统已通过科技部验收,交付给国家跆拳道队使用,得到了教练员和运动员的一致好评。
参考文献
1 童长飞. C8051F系列单片机开发与C语言编程. 北京:北京航空航天大学出版社,2005:50"341
2 方 立,孙怡宁. 新型三维力传感器的研制与应用. 传感技术,2002;21(7):49"51
         
          [/td]
        [/tr]
      
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-5-5 09:09 , 耗时 0.086905 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表