发明名称 一种基于FPGA平台的舵伺服实时正弦扫描驱动方法
摘要 一种基于FPGA平台的舵伺服实时正弦扫描驱动方法。一种基于FPGA平台的舵伺服适时正弦扫描驱动方法,包括如下步骤:根据试验相关参数要求,在PC端上位机程序进行配置,然后生成指令信号;程序运行,首先向FPGA内部的FIFO中填一组指令数据,并在FPGA内部通过串口总线循环发送一帧信号到舵伺服系统,然后判断有无反馈信号,若有则可以正式开始扫描试验,若无则排查故障;开始正式试验后,实时控制器通过定时循环向FPGA循环加载指令;FPGA循环读取FIFO内指令数据并按照舵伺服系统协议将其转化为一帧信号发送到串口模块,串口模块将信号发送到舵伺服系统,与此同时串口模块同步高速循环读取舵伺服系统的反馈信号,并将作动器的反馈数据读取出来;将数字指令数据和反馈数据同步经D/A转化后输出。
申请公布号 CN106020172A 申请公布日期 2016.10.12
申请号 CN201610543407.8 申请日期 2016.07.11
申请人 北京强度环境研究所;中国运载火箭技术研究院 发明人 边学鹏;苏华昌;付玮;陈贵龄;张鹏飞
分类号 G05B23/02(2006.01)I 主分类号 G05B23/02(2006.01)I
代理机构 代理人
主权项 一种基于FPGA平台的舵伺服实时正弦扫描驱动方法,包括如下步骤:步骤401:在PC(101)端上位机程序配置正弦扫描范围、幅值、倍频程、扫描周期、电压/度转换关系、选择要控制的作动器以及作动器预偏执角度,然后执行步骤402;步骤402:根据步骤401配置信息生成数字指令信号,并图形显示指令信号和计算指令数据的个数NUM,然后执行步骤403;步骤403:实时控制器(102)向FPGA的FIFO中加载1000个数据,然后执行步骤404和步骤405;步骤404:串口模块(104)以500ms速率循环向舵伺服系统发送同一帧信号并接收反馈信号,然后执行步骤405步骤405:检查有无反馈信号,若有反馈信号执行407步骤,若无反馈信号执行步骤406;步骤406:排查故障;步骤407:开始正式扫描试验,然后执行步骤408,以及步骤410和415;步骤408:实时控制器(102)进入定时循环,并判断FIFO中数据个数,当小于半满500个时,加载500个指令数据到FIFO中,然后执行步骤409;步骤409:判断指令信号是否全部加载完毕,若加载完毕则退出定时循环,若没有则继续执行步骤408;步骤410:FPGA以扫描周期为周期循环读取FIFO内部一个指令数据,并将代表已发送数据个数的变量A加1,然后执行步骤411;步骤411:按照舵伺服系统控制器(107)协议,FPGA将这个指令数据转化为一帧信号发送到串口模块(104),并将指令数据与电压/度相乘,再经D/A转换,然后执行步骤412;步骤412:串口模块(104)接收到数字指令信号后发送到舵伺服系统控制器(107),然后执行步骤413;步骤413:判断A是否等于NUM,若等于则执行步骤414,否则继续执行步骤410;步骤414:将停止变量Abort赋值为1,同时停止发送指令循环;步骤415:串口模块(104)以50us为周期循环读取舵伺服系统控制器(107)反馈的信号,并将其依次与协议中帧头帧尾相比对齐,确定无误后,读取反馈信号并将变量B加一,变量B代表已接收数据个数,然后执行步骤416;步骤416:按照舵伺服系统控制器协议,FPGA从反馈帧信号解读出舵伺服系统反馈的数据,并将其与电压/度相乘,再经D/A转换,再执行步骤417;步骤417:判断停止变量是否为真,若为真则执行步骤418,若为假则继续执行步骤415;步骤418:停止接收循环,扫描试验结束。
地址 100076 北京市丰台区南大红门路1号