一种基于FPGA的手套机机头电磁铁控制方法与流程

文档序号:15694537发布日期:2018-10-19 18:49阅读:550来源:国知局

本发明属于手套机领域,特指是手套机控制器中机头电磁铁的控制方法,具体是一种基于fpga的手套机机头电磁铁控制方法。



背景技术:

在目前的控制策略中,大多是使用单片机为核心来实现对手套机机头电磁铁的控制。而这种方案是用软件的方式来实现控制算法,而在手套机机头中通常会有不同类型的电磁铁,且数量较多。这会导致电磁铁控制算法异常复杂,而且手套机控制器中包含着控制电机等其他的任务,若电磁铁控制任务没有在规定的时间内完成,将会导致电磁铁的烧毁。



技术实现要素:

本发明针对现有技术的不足,提出了一种基于fpga的手套机机头电磁铁控制方法,解决了现有手套机机头电磁铁控制算法复杂,控制实时性差的缺点。

本发明的基于fpga的手套机机头电磁铁控制方法,依赖于如下硬件电路:单片机控制电路、fpga控制电路、译码锁存电路、光耦隔离电路、电磁铁驱动电路,单片机控制电路将电磁铁的控制信号通过fsmc总线传输到fpga控制电路中,fpga并行完成对所有电磁铁状态信号的处理,并将电磁铁的开关信号依次快速传输到译码锁存电路,译码锁存电路的输出连接到光耦隔离电路,光耦隔离电路再将隔离后的信号传送到电磁铁驱动电路。

本发明的控制方法,包括单片机控制方法和fpga控制方法两部分。

单片机控制方法具体步骤包括:

步骤一:电磁铁状态控制信号产生

a1:单片机将fsmc总线上的地址和需控制的电磁铁一一对应并使用fsmc的最低位数据来控制电磁铁的两种不同的状态;

a2:单片机将电磁铁的控制信号通过fsmc发送给fpga。

fpga控制方法具体步骤包括:

步骤二:电磁铁控制信号的处理

b1:fpga的fsmc接收模块将接收到的不同地址的数据信号转换成对应的电磁铁状态信号;

b2:将各个电磁铁状态信号输入到对应的延时计数器模块。

b3:延时计数器模块先判断标志电磁铁导通延时完成的clr信号,若为高电平则执行b5,否则执行b4;

b4:忽略电磁铁状态信号的变化,延时计数器不更新计数值;

b5:刷新保存电磁铁状态信号的寄存器的值,并比较刷新后的值和原寄存器的值,如果两个值不一样则更新为设定的延时计数器的值,更新后延时计数器的值为电磁铁的导通时间;

b6:延时计数器一直并行向下计数,当计数值减小到零时,停止计数;

b7:延时计数器模块将刷新后的电磁铁状态信号和计数器当前计数值输入到循环状态机中;

b8:循环状态机的初始状态为状态a,设置一个标志信号flag,判断flag信号的状态,若flag为低电平,则对译码锁存电路进行复位清零操作,并将flag置高,若为高电平,则不进行任何操作,之后状态转移到第二个状态;

b9:第二个状态为状态b,此状态先判断所有电磁铁的clr信号,若全部为高电平,则对译码锁存电路执行清零操作,状态转移到第三个状态;

b10:第三个状态为状态c,此状态将遍历所有电磁铁,完成对所有电磁铁的控制;

b11:状态循环回到状态a。

步骤三:电磁铁延时关闭的实现

此步骤也是步骤b10中对每一个电磁铁的控制,具体包括以下的步骤:

c1:判断电磁铁对应延时计数模块的计数值,若计数值不为零,则将译码锁存电路的数据位置高,若为零则置低,同时,判断电磁铁状态信号来设置译码锁存电路的地址;

c2:禁止锁存信号;

c3:使能锁存信号,并判断数据位,若数据位为低,则将clr信号置高,若不为低则将clr信号置低;

c4:判断译码锁存电路的数据位,若为低,则将地址设置为与电磁铁的另一种状态信号对应的地址,若不为低,则地址保持不变;

c5:禁止锁存信号;

c6:使能锁存信号。

与现有的技术相比,本发明的有益效果是:本发明降低了手套机机头电磁铁控制算法的复杂度,提高了电磁铁控制的实时性,从硬件的设计角度上减少了电磁铁烧毁的可能。

附图说明

图1是本发明的硬件结构图;

图2是本发明的fpga模块结构图;

图3是fpga的循环状态机具体步骤图。

具体实施方式

本发明的基于fpga的手套机机头电磁铁控制方法,依赖于如下硬件电路:单片机控制电路、fpga控制电路、译码锁存电路、光耦隔离电路、电磁铁驱动电路。如图1所示,单片机控制电路将电磁铁的控制信号通过fsmc总线传输到fpga控制电路中,fpga并行完成对所有电磁铁状态信号的处理,并将电磁铁的开关信号依次快速传输到译码锁存电路,译码锁存电路的输出连接到光耦隔离电路,光耦隔离电路再将隔离后的信号传送到电磁铁驱动电路。

单片机控制方法具体步骤如下:

步骤一:电磁铁状态控制信号产生

a1:单片机将fsmc总线上的地址和需控制的电磁铁一一对应并使用fsmc的最低位数据来控制电磁铁的两种不同的状态;

a2:单片机将电磁铁的控制信号通过fsmc发送给fpga。

若图2所示,fpga控制电路包括fsmc接收模块、延时计数器模块、循环状态机模块,所述电磁铁控制方法具体包括以下步骤:

步骤二:电磁铁控制信号的处理

b1:fpga的fsmc接收模块将接收到的不同地址的数据信号转换成对应的电磁铁状态信号;

b2:将各个电磁铁状态信号输入到对应的延时计数器模块。

b3:延时计数器模块先判断标志电磁铁导通延时完成的clr信号,若为高电平则执行b5,否则执行b4;

b4:忽略电磁铁状态信号的变化,延时计数器不更新计数值;

b5:刷新保存电磁铁状态信号的寄存器的值,并比较刷新后的值和原寄存器的值,如果两个值不一样则更新为设定的延时计数器的值,更新后延时计数器的值为电磁铁的导通时间;

b6:延时计数器一直并行向下计数,当计数值减小到零时,停止计数;

b7:延时计数器模块将刷新后的电磁铁状态信号和计数器当前计数值输入到循环状态机中;

b8:如图3所示,循环状态机的初始状态为状态a,设置一个标志信号flag,判断flag信号的状态,若flag为低电平,则对译码锁存电路进行复位清零操作,并将flag置高,若为高电平,则不进行任何操作,之后状态转移到第二个状态;

b9:第二个状态为状态b,此状态先判断所有电磁铁的clr信号,若全部为高电平,则对译码锁存电路执行清零操作,状态转移到第三个状态;

b10:第三个状态为状态c,此状态将遍历所有电磁铁,完成对所有电磁铁的控制;

b11:状态循环回到状态a。

步骤三:电磁铁延时关闭的实现

此步骤也是步骤b10中对每一个电磁铁的控制,具体包括以下的步骤:

c1:判断电磁铁对应延时计数模块的计数值,若计数值不为零,则将译码锁存电路的数据位置高,若为零则置低,同时,判断电磁铁状态信号来设置译码锁存电路的地址;

c2:禁止锁存信号;

c3:使能锁存信号,并判断数据位,若数据位为低,则将clr信号置高,若不为低则将clr信号置低;

c4:判断译码锁存电路的数据位,若为低,则将地址设置为与电磁铁的另一种状态信号对应的地址,若不为低,则地址保持不变;

c5:禁止锁存信号;

c6:使能锁存信号。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1