基于DSP+FPGA的多轴运动控制平台(一)硬件设计

2 实验平台总体方案与硬件设计
2.1.1 实验平台的功能需求分析
针对便于多轴运动控制技术的研究,培养此方面技术的人才,实验平台应能
对多轴运动实现高速高精度的控制效果,同时保证系统开放性和兼容多种算法及
参数的运行。
实验过程契合实际工作过程,完成控制系统设计前应先进行软件仿真以验证
其有效性。深入研究控制平台核心控制算法,能够完成经典常用的插补算法、加
减速算法运行,同时与较新的速度前瞻算法与曲线拟合预处理算法结合,对比试
验结果。
同时在硬件选用层面,实验平台及其中选用的器件应成本较低且广泛的应用。
这样的器件会在各个领域被行业大量的使用,相关开发的资料非常丰富,因此会
大大降低学习与实验的门槛。
2.1.2 实验平台的总体方案
针对实验平台功能与性能要求,基于模拟电路型、采用微处理器( MCU )作
为控制核心、采用可编程控制器型( PLC )作为控制核心、基于专用集成电路
ASIC )硬件结构等方案都很常见。针对运动控制实验平台研究算法与便于硬
件重构的目的。本文的运动控制实验平台的主要功能是进行多种控制方法、算法
和参数的验证,达到插补运算、位置控制、速度控制、伺服电机的控制以及反馈
信息的处理比对。
本文设计的多轴运动控制实验平台方案,是以 DSP FPGA 为基础,将二
者进行有效结合,同时使用 I/O 接口进行连接,在 I/O 的接口上,使用到的是光
电耦合的方式,并且能够满足 A/D 和电平的转换,在数据传输方面使用到的是
PC104Plus 总线的方式与 PC 进行信号的通讯,在使用 FPGA 后能够将原来总线
控制芯片和双端口 RAM 芯片用总线控制器的 IP 核进行设计,在多轴运动控制
实验平台各模块与 I/O 端口进行信息通信的接口是并行接口,输入信号主要包含
Z 脉冲信号、 12 路编码器信号、 12 路限位开关量信号、 6 路驱动报警器信号、 32
路通用 I/O 信号等,在运动控制部分,运动控制实验平台主要控制的是输出 12
路差分信号、 6 路驱动器使能信号以及 24 路通用输出信号等 [49-50] 。在整个运动
控制的组成部分中,可以将其分为 DSP 数据处理模块, FPGA 模块以及供电模
块,整个硬件部分的电路结构如图 2-1 所示。
2.2 DSP 数据处理模块的研究与设计( Research and design of DSP
data processing module
2.2.1 TMS320C6713 DSP 处理器的特点
TI 公司设计的 C6000 系列的 DSP 的优点主要如下 [51] :
1 )在哈弗结构的基础上实现数据与程序部分的分开存储,在数据总线部
分使用的是独立的模式;
(2)在指令部分,可以实现并行处理的过程,而且能够在不同的功能单元
内对数据进行取值、译码、取操作;
(3)在使用辅助寄存器的基础上采用多总线的方式实现自主的增加地址操
作,并且能够并发实现对数据空间进行很多次的访问;
(4)为了提高片内的工作频率采用的方式是数字锁相电路;
(5)内部配有专用的累加器用于硬件乘法模式;
(6)为了保证系统的稳定性要求,采用的是超长的指令字模式,在 8 个并
行处理单元的基础上拥有 256 位的总字长,再这样的条件下能够实现的是
2400M/PS
(7)采用二级缓冲处理,其中包括一级程序和数据缓冲部分,该缓冲部分
的大小都是 4KByte ,并且还拥有 256Kbyte 的二级额外匹配内存 [52]

 (8)为了实现与 SDRAMFlash ROM 以及异步存储器能够进行快速的通讯功能,使用的是 EDMA 丰富外设总线模式. TMS320C6713 结构如图 2-2 所示。

 

2.2.2 TMS320C6713 DSP 数据处理模块的结构分析
C60000 系列中,比较典型的 DSP 芯片型号为 TMS320C6713 ,本文选用
此型号此构成了实验平台。 DSP 功能模块主要实现的功能主要为多轴运动数据
信息采集、存储以及传输、自动与手动恢复等。在数据处理模块中还需要其他设
备才能完成相应的功能,其中就包括:供电模块、时钟模块、复位模块、 JTAG
块、外扩 Flash ROM 和外扩 SDRAM 模块 [53] 。其结构图如图 2-3 所示 :
1 )电源模块
为了满足 TMS320C6713 的工作需求,需要配备相应的供电模块,在
TMS320C6713 中使用的是 2 级供电的模式,其中内部的供电使用的是 1.26V
电压,在外部使用的是 3.3V 的电压,因此在本电源模块中就需要使用从外部引
5V 直流电压的模式,并且通过特定的芯片将其转换成需要的电压,电路设计
图如图 2-4 2-5 所示。
(5)伺服控制模块的实现
伺服控制模块主要完成的工作如下 :
①在输入输出开关量接口的部分,该接口包括 HOME LIMIT ALM
分,这些部分的信号能够对 SVON 输出信号进行相应的处理工作。对于伺服信
号的功能就是为了控制机器人的电机部分, HOME 信号的目的是为了能够让电
机在运动过程中根据实际的需求进行回零操作,限位信号的目的就是在电机运动
过程中个,不至于超出事先设定好的位置,报警信号就是当电机发生意外的时候
能够让电机及时停止工作的目的。
②在 PWM 脉冲输出控制电路部分,为了获得相应的 CW CCW 信号,可
以通过 FPGA 的分频产生相应的频率,当进行两项的脉冲信号控制时, CW 信号
就表示正向转动, CCW 则表示反向转动,在 FPGA 中输出的信号是需要进行电
平的转换操作,然后进行光耦隔离的操作,最后需要做的是差分处理,通过对信
号进行处理后再将其输入到伺服系统中。
③在反馈脉冲处理电路中,首先需要依靠编码器的反馈信号来判断各个电机
的状态,编码器的信号需要进行差分运算才能转换为单路的信号,然后通过光耦
隔离的操作,最后进行电平转换将信号重新反馈给 FPGA 进行处理,单轴的伺服
控制结构如图 2-14 所示 :
2.4 DSP FPGA 通讯方式设计( Research and design of FPGA
peripheral circuit module
为了进一步充分利用 FPGA ,通过在 DSP 芯片内部的 EMIF 端口来与 FPGA
进行连接,其中, FPGA TMS320C6713 连接方式如图 2-15 所示。
如图 2-15 所示。以 DSP 为核心处理器,其数据总线用 DO-D15 来表示,地
址总线用 A2-A17 来表示,其中用来控制 FPGA 的操作的是 TSDRAS, TSDCAS
TSDWE 作为控制总线,提供给 FPGA 时钟信号的是 ECLKOUT ,组合编码是
通过 TCE2 DSP 中的 A2-A17 进行的,如果地址为 OxA000 0000 时,则会生
成一个片选的信号,该片选信号的目的是用来选择 FPGA 中的模块。在 FPGA
DSP 进行数据通信的时候,中断信号使得 NT4 由低电平变成了高电平, DSP
FPGA 的方式是通过数据总线的方式。
2.5 本章小结( Summary
本章的内容主要是介绍多轴运动控制实验平台的硬件部分,然后对硬件部分
的各个模块进行划分工作,其中包括 DSP 模块、 FPGA 模块和电源模块,然后介
绍了各个模块的设计过程与方案,本文在硬件部分的特点就是使用的 FPGA
代替分立元件部分,通过这种方式来进行数据逻辑的连接工作和运动控制,提高
平台的开放性用以不同算法的实验,同时提升多轴运动控制的性能。

 信迈提供基于DSP+FPGA多轴运动控制器解闷方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/12439.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TCP/IP协议及配置

文章目录 一、TCP/IP概述1. TCP/IP协议族2. 主机与主机之间通信的三个要素 二、什么是IP地址1. 用来标识一个网络节点的互联网地址(如同电话的号码)2. IPv4地址组成 三、IP地址分类1. 常用的IP地址2. 组播及科研专用 四、IP地址分类(续&#…

wait 和 notify

wait 和 notify 7. wait 和 notify7.1 wait()方法7.2 notify()方法★★★wait和notify代码wait 需要搭配 synchronized 7.3 notifyAll()方法7.4 wait 和 sleep 的对比(面试题) 7. wait 和 notify 保证其他线程可以正常进行 由于线程之间是抢占式执行的, …

为什么你这么累,销量还不如那些轻松工作的同行?

管理混乱 忙碌却不见成效 在工业品行业做了10多年的小张,最近向我吐槽:每天忙得团团转,结果销售业绩还不如那些整天轻松工作的同行。几番沟通下来,发现小张每天要做这么多的工作,不忙才怪! 管理员工&#x…

系统安全及应用

目录 一、账号安全控制 1)系统账号清理 2)密码安全控制 chage命令 示例 3)命令历史限制 4)终端自动注销 总结 账号安全 密码安全 二、系统引导和登录控制 1)使用su命令切换用户 用途及用…

生产管理系统是什么?它有哪些功能模块?

阅读本文您将了解:1.企业生产管理的问题;2.生产管理系统模块有哪些;3.如何利用生产管理系统模块解决问题。 一、企业生产管理会遇到哪些问题? 生产管理是有计划、组织、指挥、监督调节的生产活动。以最少的资源损耗,…

风电的Weibull分布及光电的Beta分布组合研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

九龙证券|服务器龙头获资金连续抢筹,尾盘主力抢筹前期大热门股

今天,核算机职业取得主力大手笔抢筹。 今天主力资金净流出53.89亿元,其间创业板净流出3.19亿元,沪深300成份股净流出7.61亿元。 申万一级职业中,今天有19个职业上涨,传媒职业接连两日均涨近5%,居首位&…

OA系统的功能和作用是什么(OA系统百科)

OA系统的功能和作用是什么(OA系统百科)。OA系统是一种非常实用的企业内部管理系统,它可以帮助公司实现各项管理工作,可以说是整个公司和团队的纽带,有助于提高工作效率和管理水平。 具体来说,OA系统的作用…

换电脑 NoteExpress 数据备份迁移

前言 主要操作是跟着这篇博客做的:NoteExpress数据库备份和转移。但也有一些不一样的地方 旧电脑NoteExpress(NE)版本3.7,新电脑版本3.8 旧电脑 导出配置文件 桌面找到图标,打开位置,点击配置备份(绿色的图标&#…

wordpres漏洞扫描器——wpscan

WordPress 使用PHP语言开发的博客平台 WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。 WordPress是一款个人博客系统&#xff0c…

SpringBoot 整合 RabbitMQ (四十一)

二八佳人体似酥,腰间仗剑斩愚夫。虽然不见人头落,暗里教君骨髓枯。 上一章简单介绍了SpringBoot 实现 Web 版本控制 (四十),如果没有看过,请观看上一章 关于消息中间件 RabbitMQ, 可以看老蝴蝶之前的文章: https://blog.csdn.net/yjltx1234csdn/categor…

小红书热词速看 | 古茗有何营销动作?

【导语】 据古茗官方数据,新系列推出当日即售空,单店最高出杯420杯,最快24小时内卖断货;上架3天,销量突破100万杯;10天,就售出了343万杯,其中2款牛油果奶昔用掉了40万斤牛油果&…

【Java基础】迷宫问题的Java代码实现

迷宫问题通常是指在给定的迷宫中,找到从起点到终点的路径的问题。迷宫通常由障碍物和自由空间组成,其中障碍物是不可穿越的区域,自由空间可以穿越。解决迷宫问题的方法有很多种,本文使用递归算法来解决迷宫问题。 一、使用递归算法…

vLive带你走进虚拟直播世界

虚拟直播是什么? 虚拟直播是基于5G实时渲染技术,在绿幕环境下拍摄画面,通过实时抠像、渲染与合成,再推流到直播平台的一种直播技术。尽管这种技术早已被影视工业所采用,但在全民化进程中却是困难重重,面临…

【状态估计】基于增强数值稳定性的无迹卡尔曼滤波多机电力系统动态状态估计(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

TeeChart Pro ActiveX 2023.3.20 Crack

TeeChart Pro ActiveX 图表组件库提供数百种 2D 和 3D 图形样式、56 种数学和统计函数供您选择,以及无限数量的轴和 14 个工具箱组件。图表控件可以有效地用于创建多任务仪表板。 插件的多功能性 ActiveX 图表控件作为服务器端库中的 Web 图表、脚本化 ASP 图表或桌…

Docker应用部署

文章目录 Docker 应用部署一、部署MySQL二、部署Tomcat三、部署Nginx四、部署Redis Docker 应用部署 一、部署MySQL 搜索mysql镜像 docker search mysql拉取mysql镜像 docker pull mysql:5.6创建容器,设置端口映射、目录映射 # 在/root目录下创建mysql目录用于…

缩短客户响应时间的 5 种方法

在当今竞争激烈的世界中,客户服务就是确保卓越的客户体验。这意味着顶级品牌必须竞争为客户提供最好的客户服务,而且提供最快的响应时间。 改善客户服务响应时间的 5种方法 1.使用正确的客户服务软件 客户服务软件是您可以为提高客户服务而进行的最佳…

【JVM】常量池

常量池(Runtime Constant Poo) 常量池Java中可以分为三种:字符串常量池(堆)、Class文件常量池、运行时常量池(堆)。 1.字符串常量池(String Pool) 为了提升性能和减少…

C++ 23 实用工具(二)绑定工具

C 23 实用工具(二)绑定工具 Adaptors for Functions std::bind、std::bind_front、std::bind_back和std::function这四个函数非常适合一起使用。 其中,std::bind、std::bind_front和std::bind_back可以让您即时创建新的函数对象&#xff0c…