- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
EDA培训座
步进电机驱动器可编程片上系统(sopc)的总体设计 FPGA内部设计总框图 模块例化 实例化时钟管理模块、微处理器模块、脉冲发生器模块、接口模块、反馈电流测试模块PI调节模块、PWM发生器模块。 微处理器模块和脉冲发生器模块属于控制器,剩下的模块属于驱动器。 工作过程 用户输入在MicroBlaze微处理器中进行处理,并产生转速和转向信号,转速信号送入CP脉冲发生器产生CP脉冲和细分等级数,同转向信号CCW共同送入正弦表数据接口模块中,通过内部逻辑产生三相相电流给定数据。电流反馈模块采样相电流,产生相电流反馈数据。在PI模块中,通过当前以及此前的给定数据/反馈数据,进行PI调节,并产生控制信号送入PWM发生器中,PWM发生器模块将输出PWM控制信号,控制三相逆变器的6个IGBT通断,实现电机控制 时钟管理模块 模块使用两个DCM,将输入的晶振时钟进行二倍频和四倍频,输出CLK50,CLK100,CLK200三个时钟信号。DCM锁定信号后,三个时钟信号均通过BUFGMUX切换到稳定后的时钟源上去。 本模块输出一个G_Reset信号,在所有时钟都完全稳定后才置G_Reset为无效。为了消除异步Reset导致部分DFF的建立时间不够的现象,模块使用一个DFF在时钟的上升沿同步Reset信号,提供足够的时间裕量 控制器CPU软核的硬件设计 控制器采用Xilinx的32位软CPU核。在Xilinx的嵌入式开发软件包EDK中添加MicroBlaze软核、代码ROM、数据RAM和外部I/O接口。 控制器CPU软核部件说明 microblaze:CPU内核,实现了一个32位RISC CPU。 lmb_bram_if_cntrl:片内存储器控制层逻辑,本设计中使用了两个实例,分别用于数据存储器和指令存储器的实现。 bram_block:片内块RAM,作为指令和数据存储区。 opb_gio:符合IBM的开放总线规范opb的标准I/O口,本设计中使用了多个实例,实现CPU核与外部模块的数据交互。其中DIP_Switches用于拨码按钮的输入,LEDS用于发光二级管的输出,Push_Buttons用于按钮的输入,SpeedSet用于设定CP Pattern模块的速度输入寄存器,ControlPort控制片内关键控制信号,OC_IN来自外部过流信号的输入,Prob_Monitor作为调试的通用预留管脚。 opb_7segled:opb总线兼容的自定义驱动器,用于驱动7段数码管的显示。在程序中通过该驱动器能非常方便地控制数码管显示各类数字和符号。 CPU软核的C++程序设计框图 脉冲发生器模块 实现转速—CP脉冲对应的功能,给定一个转速信号后,通过查表得到对应的计数溢出数据。内部的计数器计数溢出时即产生一个CP脉冲。 查找表输出的数据分为两部分,低位是CP计数器的计数数据,高位是对应转速的最佳细分等级,这两个信号都将输出给接口模块,决定三相地址数据的改变。 接口模块 内部例化了一个单端口只读存储器,存放一个周期的正弦数据表。外部输入CP和CCW信号后,通过顺序的给出三相绕组对应的地址数据,即可查得三相相电流的给定数据,并同时更新三个给定数据寄存器。 转向交换也在本模块实现。输入的CCW信号将控制一个多路选择器,控制更新后的数据是否进行B/C两相交换。三相电机只要交换任意两相信号即可实现换向。 通过输入的细分层次信号和CP脉冲信号共同决定三相绕组的地址数据的每次增量大小,当细分层次最高时,地址计数器每次递增1;当处于非最高细分精度时,地址计数器每次递增2的N次幂,N由当前的细分精度确定。 反馈电流测试模块 本模块的功能实现反馈电流的检测,并将反馈电流送入PI调节模块,与给定电流进行电流闭环调节。电流检测过程由状态机进行控制,由驱动器的顶层模块发出电流检测使能信号,启动电流检测状态机,将控制AD读取与转换的R/C信号的默认输出设定为0,因此启动状态机后AD直接进入转换状态。本模块的驱动时钟为100MHz,而AD的R/C信号的低电平有效时间最小应为50ns,所以状态机在R/C信号为低时要延迟五个时钟周期,保证数据可靠转换后才将R/C信号置高电平,等待读取数据。AD转换结束后,AD_STS信号发出一个低电平,状态机检测到该信号后立即进行数据的读取,同时将读取的数据进行一次寄存。完成一次反馈电流测试后发出一个状态机停止信号,等待下一次的数据读取。 PI调节模块 PI调节模块设计 模块在收到启动信号后,先寄存给定数据/反馈数据,再对二者扩宽符号位做有符号减法,并启动KI乘法器计算KI乘以误差e的结果。对减法的计算结果取绝对值,并与阀值作比较(常数比较器),比较的结果存入寄存器。计算e的误差增量,即E(K)-E(K-1) ,并启动KP乘法器计算KP乘以误差增量
文档评论(0)