基于CAN通信的步进电机驱动器的远程键控方法及装置转让专利

申请号 : CN201010179976.1

文献号 : CN102262400B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 许骜王洪民张俊昌李志张文峦

申请人 : 北京北广科技股份有限公司

摘要 :

本发明涉及一种步进电机驱动器的远程按键控制,特别是基于CAN通信的步进电机驱动器的远程键控方法及装置,所述装置包括按键、控制端信号处理器、CAN通信网络及受控端信号处理器,所述按键连接所述控制端信号处理器,所述控制端信号处理器将按键信号处理成“按下”或“抬起”的编码信号送CAN通信网络,所述受控端信号处理器接受由CAN通信网络传来的“按下”或“抬起”的编码信号进行解码、合成还原为按键信号并生成控制信号送步进电机驱动器。本发明成功地实现了大功率长波发信机的天线手动远程键控,控制距离长达数公里,完全满足大功率长波发信机的天线调配手动远程键控的需要;并保证在大功率高频场强干扰环境中稳定使用,效果良好。

权利要求 :

1.一种基于CAN通信的步进电机驱动器的远程键控装置,其特征在于包括按键K、控制端信号处理器、CAN通信网络及受控端信号处理器,所述控制端信号处理器包括控制端现场可编程门阵列,所述控制端现场可编程门阵列中设有按键分解模块、脉冲展宽模块、计数器及通信模块,其中所述计数器接所述按键信号分解模块,按键信号分解模块的输出接所述脉冲展宽模块,所述脉冲展宽模块的输出接通信模块;所述按键连接所述控制端信号处理器中的控制端现场可编程门阵列,所述现场可编程门阵列以25MHz的时钟对按键动作进行采样,所接受到的信号经按键分解模块,所述按键连接所述控制端信号处理器并与所述计数器设定值进行分解、对比,将真正的正、反转按键信号处理成一个“按下”或“抬起”的脉冲信号送CAN通信网络,所述控制端信号处理器将按键信号处理成“按下”或“抬起”的编码信号送CAN通信网络,所述受控端信号处理器接受由CAN通信网络传来的“按下”或“抬起”的编码信号进行解码、合成还原为按键信号并生成控制信号送步进电机驱动器。

2.根据权利要求1所述的基于CAN通信的步进电机驱动器的远程键控装置,其特征在于所述按键K包括正转按键和反转按键,所述控制端信号处理器除包括控制端现场可编程门阵列外还包括控制端单片机、光电隔离器,控制端数字隔离器和控制端CAN通信接口,所述受控端信号处理器包括受控端单片机和受控端现场可编程门阵列,所述受控端信号处理器内还设有受控端CAN通信接口、受控端数字隔离器及受控端输出数字隔离器;所述正、反按键通过所述光电隔离器连接所述控制端信号处理器中的控制端现场可编程门阵列,通过所述控制端信号处理器中的控制端单片机将正、反转按键信号处理成“按下”或“抬起”的编码信号,经数字隔离器及控制端CAN通信接口送CAN通信网络,所述受控端CAN通信接口接受由CAN通信网络传来的所述“按下”或“抬起”的编码信号,经受控端数字隔离器送所述受控端信号处理器中的受控端单片机,通过所述受控端现场可编程门阵列将所述“按下”或“抬起”的编码信号进行解码、合成还原为按键信号并生成控制信号由受控端输出数字隔离器送步进电机驱动器。

3.根据权利要求2所述的基于CAN通信的步进电机驱动器的远程键控装置,其特征在于所述控制端现场可编程门阵列中的按键分解模块的输入为现场可编程门阵列的输入I/O口,通过所述光电隔离器接按键;所述控制端单片机中设有通信模块、编码模块及CAN通信模块,其中,所述控制端单片机中的通信模块的输入端,即控制端单片机的P6、P7两个8位的I/O口与现场可编程门阵列的I/O口,即控制端现场可编程门阵列中的通信模块相连,所述控制端单片机中的通信模块的输出端连接编码模块,所述编码模块的输出接控制端单片机中的CAN通信模块;所述正、反转按键通过所述光电隔离器分别连接所述现场可编程门阵列的I/O口138管脚及139管脚,所述现场可编程门阵列将真正的正、反转按键信号处理成一个“按下”或“抬起”的脉冲信号送控制端单片机的通信模块,所述控制端单片机的通信模块将所接受到“按下”或“抬起”的脉冲信号送编码模块进行编码,并将编码通过CAN通信模块的CANARX和CANTX端口经数字隔离器送控制端CAN通信接口;

所述受控端单片机中设有CAN通信模块、解码模块及受控端单片机的通信模块,所述受控单片机中的CAN通信模块通过数字隔离器接所述受控端CAN的通信接口,其输出接解码模块的输入,所述解码模块的输出接所述受控端单片机的通信模块;所述受控端现场可编程门阵列中设有受控端现场可编程门阵列的通信模块、命令合成模块及驱动脉冲形成模块;所述受控端现场可编程门阵列的通信模块连接所述受控端单片机的通信模块,其输出接所述命令合成模块的输入,所述命令合成模块的输出接驱动脉冲形成模块;所述单片机的CANARX和CANTX端口,即受控端单片机中的CAN通信模块的输入端接受数字隔离器传送来的控制端的编码信号,所述单片机将接受到的编码信号经解码模块解码成命令,并将所述命令通过受控端单片机的通信模块送现场可编程门阵列的I/O端口,即受控端现场可编程门阵列的通信模块,所述受控端现场可编程门阵列的通信模块将接受到的命令送命令合成模块进行合成,还原为按键信号,并将所还原按键信号送驱动脉冲形成模块产生驱动脉冲送步进电机驱动器。

4.据权利要求2所述的基于CAN通信的步进电机驱动器的远程键控装置,其特征在于所述控制端信号处理器中的现场可编程门阵列、单片机与受控端信号处理器中的现场可编程门阵列、单片机的型号相同,所述现场可编程门阵列的型号为XC2S200,所述单片机的型号为集成了一个CAN通信模块的C8051F040,所述单片机通过P6、P7两个8位的I/O口与现场可编程门阵列的I/O口相连,共16根线,其中8路作为输入,8路作为输出,通过预定协议与现场可编程门阵列进行通信。

5.一种基于权利要求1所述远程键控装置的CAN通信的步进电机驱动器的远程键控方法,其特征在于包括以下步骤:

(1)按键信号输入控制端的现场可编程门阵列以工作的时钟频率对按键动作进行采样,按键处于按下位置为高电平,按键处于抬起位置为低电平;

(2)按键信号分解

(2-1)判断是否为真实信号?控制端的现场可编程门阵列根据按键一次动作过程中所产生的多个抖动脉冲的最终状态与原始状态进行比较,如果状态相同则为误触发,否则为真实信号,以避免误触发;

(2-2)产生“按下”或“抬起”脉冲将按键按下或抬起的一次动作过程中的多个抖动脉冲进行分解,仅生成一个宽度为一个现场可编程门阵列时钟周期的“按下”或“抬起”脉冲;

(3)脉冲延时展宽控制端的现场可编程门阵列将宽度为一个现场可编程门阵列时钟周期的“按下”或“抬起”的脉冲展宽为超过单片机主程序的循环周期,并通过预定协议将其传送给控制端的单片机;

(4)脉冲编码控制端的单片机对按键的“按下”或“抬起”动作进行编码,并经CAN通信接口将编码信号通过CAN通信网络传送到受控端;

(5)受控端解码生成控制命令受控端信号处理器中的单片机通过通信接口接受编码信号,解码并生成控制命令送受控端信号处理器中的现场可编程门阵列;

(6)将命令合成还原为按键信号受控端信号处理器中的现场可编程门阵列将接受到的命令合成并还原为按键信号;

(7)生成驱动信号受控端信号处理器中的现场可编程门阵列根据按键信号生成驱动脉冲送步进电机驱动器。

6.根据权利要求5所述的远程键控方法,其特征在于所述步骤(2)按键信号分解的具体方法是:预先测定按键一次“按下”或“抬起”过程中所产生的多个抖动脉冲中最宽脉冲的持续时间,在现场可编程门阵列内设置一个计数器,其计数时间大于最宽脉冲的持续时间;对按键一次动作过程中,包括误动作和真实动作,所产生的每一个抖动脉冲与按键的原始状态进行比较,若不同则启动计数器,计数期间出现按键状态与原始状态相同,则计数器重置,不给出脉冲,以此来判断是误动作还是真实信号;计数期间不出现按键状态与原始状态相同,直到计数器溢出,则给出一个代表按键“按下”或“抬起”的脉冲。

7.根据权利要求5所述的远程键控方法,其特征在于所述步骤(3)将脉冲延时展宽是在现场可编程门阵列内设置一个脉冲展宽模块将将宽度为一个现场可编程门阵列时钟周期的“按下”或“抬起”的脉冲展宽为超过单片机主程序的循环周期;

所述通过预定协议将“按下”或“抬起”的脉冲信号传送给单片机,具体是:单片机通过它的P6、P7两个8位的I/O口与现场可编程门阵列的I/O口相连,共16根线,其中8路作为输入,8路作为输出,通过订定好的协议与现场可编程门阵列进行通信;所述协议如下;

其中:C3C2C1C0为命令字,S2S1S0为地址位;

单片机要数据时通过S2S1S0三位地址位向现场可编程门阵列寻址8个字节,现场可编程门阵列将各按键的状态通过各个字节回传给单片机;单片机通过查询的方式逐一对现场可编程门阵列传回的按键状态进行识别,当判断按键有“按下”或“抬起”动作时对其进行编码。

8.根据权利要求5所述的远程键控方法,其特征在于所述步骤(5)受控端解码生成控制命令,具体是:受控端接收到由CAN通信网络送来的按键编码,根据按键编码协议区分实际的按键动作,通过C3C2C1C0四位命令字将按键的“按下”或“抬起”命令下达给现场可编程门阵列。

9.根据权利要求5所述的远程键控方法,其特征在于所述步骤(6)将命令合成还原为按键信号,具体是现场可编程门阵列中的命令合成模块相当于一个RS触发器,所述“按下”与“抬起”命令分别送命令合成模块的两个输入端in1和in2,命令合成模块输出即为“真实”的按键信号:当in1“按下”和in2“抬起”脉冲信号均为“0”时,说明按键无动作,保持原状态;当in1“按下”脉冲信号为“0”,“抬起”脉冲信号为“1”时,表明有“抬起”脉冲信号,说明原来按下的按键已被抬起,应该控制步进电机驱动器不给出驱动脉冲,此时按键信号应为“0”;当“按下”脉冲信号为“1”,而“抬起”脉冲信号为“0”时,表明按键被按下,此时步进电机应工作,按键信号应为“1”;当“按下”和“抬起”脉冲信号均为“1”时,表明按键被“按下”又被“抬起”或被“抬起”又被“按下”,因此保持原状态。

10.根据权利要求5所述的远程键控方法,其特征在于所述步骤(7)生成驱动信号包括步进脉冲信号CP和方向电平信号DIR,现场可编程门阵列通过分频生成一个固定频率的脉冲信号,利用此频率信号和由受控端还原的按键信号做“与”运算,即生成步进脉冲信号CP;而方向电平信号利用命令合成模块的方法进行处理,将正转、反转两个按键信号作为两个输入信号分别送命令合成模块的in1和in2两个输入端,命令合成模块的输出即改变方向电平信号的高低变化,进而控制步进电机正反转。

说明书 :

基于CAN通信的步进电机驱动器的远程键控方法及装置

技术领域

[0001] 本发明涉及一种步进电机驱动器的远程按键控制,特别是基于CAN通信的步进电机驱动器的远程键控方法及装置。

背景技术

[0002] 大功率长波发信机由于工作频率的关系,调谐、滤波电路中的可变电感线圈体积很大,开机工作时,需要调机人员根据观察各种类型且不同输出位置的电表(包括电压、电流、相位等,这些电表在信号流向的各级都有指示),综合考虑后确定可变电感线圈的调谐位置(通过改变短路接点的位置或改变调谐线圈耦合角度)。早期的可变电感线圈是通过手工旋转连接短路接点或调谐线圈的机械装置(蜗轮蜗杆)的输入端(蜗杆)来实现调谐,这种人工调谐方法需要工作人员进入天线调配室内进行调节,而各种指示电表设于机房内的机箱控制面板上,对于大功率发信机,为减小大功率高频损耗,天线调配室一般设于天线塔附近,而机房与天线塔之间通常有几十米甚至几千米的距离,只能通过对讲机通信联系,进行调节,不仅调节不便,而且存在人身安全隐患。作为改进,采用普通交流或直流电机,通过设于控制台上的按键进行远程控制,由于控制线路长,普通交直流电机的转动惯性,很难一次到位,通常需要多次反复调节。
[0003] 步进电机可以实现旋转角度的精确控制,设定其想要到达的位置,通过实际位置与预置位置的比较形成驱动脉冲从而进行控制,由于大功率长波发信机调整时是通过人为的按键信号控制步进电机驱动器工作,通过观察各种类型且不同输出位置的电表(包括电压、电流、相位等),综合考虑后确定其停止转动时的位置,而且由于天线阵列的缘故,其位置状态受环境影响较大,即使利用调整好的位置进行预置,不同天气环境下仍需手动按键调整。
[0004] 步进电机的使用要求:形成控制脉冲的控制器到步进电机驱动器的最远距离为10至15米,而步进电机驱动器到步进电机的最远距离也只有10多米,而大功率长波发信机的控制端到步进电机的距离有时会达到50多米,甚至更远;同时由于大功率环境下的高频场强干扰,对于控制器产生的低电压的脉冲信号会造成很强的干扰。所以这种情况下不能将控制器(按键)直接连接到步进电机驱动器实现对步进电机的控制。
[0005] 控制器局部网(CAN-CONTROLLER AREA NETWORK)是一种多主机局部网,具有高性能、高可靠性、实时性及远程控制等优点,在多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门得到广泛应用。对于长波发信机,需要控制的,除线圈调整外还包括开关控制及状态显示、发信机开关机程序的逻辑互锁及各阶段的状态显示、安全保障的逻辑控制以及各种模拟量的采集及数字转换等很多部分,而且每一部分都有几十甚至上百个需要监控的节点,按照功能可分为多个受控端进行分散控制,同时考虑到大功率环境下的抗干扰性,选用CAN通信作为桥梁,监控各个受控端是一种最佳选择,然而如何利用CAN通信实现大功率长波发信机的天线调配控制,特别是手动远程键控,目前尚无成功经验可供借鉴,该技术已成为解决大功率长波发信机天线调配远程键控的关键。其中最主要的需要克服的技术难点是如何对按键的“按下”和“抬起”的动作进行采样及处理使成为单片机能识别的信号。这是因为作为采样芯片的现场可编程门阵列是以25MHz的时钟频率对按键动作进行采样的,任何不真实的人为动作都会被采到。按键是机械触点,当接触点断开或闭合的瞬间会在接触点出现来回弹跳的现象。在这种灵敏度比较高的电路中,这种弹跳现象引起的信号抖动就会影响到控制信号的产生,就系统而言,按键的一次动作只能产生一个“按下”与一个“抬起”信号,若不对按键信号进行去抖处理就对其进行分解,则抖动信号也会生成“按下”或“抬起”脉冲,导致设备动作不正常,而且由于受控端要想还原出原始按键信号,“按下”与“抬起”信号必须成对出现,由于抖动的不确定性,很有可能造成只有“按下”信号没有“抬起”信号的情况,造成受控端不停的驱动步进电机动作。

发明内容

[0006] 本发明所要解决的技术问题是,针对现有技术的上述不足,而提供一种基于CAN通信的步进电机驱动器的远程键控方法及装置。
[0007] 本发明的目的及解决其技术问题是采用以下的技术方案来实现的。依据本发明提出的一种基于CAN通信的步进电机驱动器的远程键控装置,其中包括按键、控制端信号处理器、CAN通信网络及受控端信号处理器,所述按键连接所述控制端信号处理器,所述控制端信号处理器将按键信号处理成“按下”或“抬起”的编码信号送CAN通信网络,所述受控端信号处理器接受由CAN通信网络传来的所述“按下”或“抬起”的编码信号进行解码、合成还原为按键信号并生成控制信号送步进电机驱动器。
[0008] 本发明的目的以及解决其技术问题还可以采用以下的技术措施来进一步实现。
[0009] 前述的基于CAN通信的步进电机驱动器的远程键控装置,其中所述控制端中的按键K包括正转按键和反转按键,所述控制端信号处理器包括控制端现场可编程门阵列和控制端单片机,所述控制端信号处理器内还设有光电隔离器,控制端数字隔离器和控制端CAN通信接口,所述受控端信号处理器包括受控端单片机和受控端现场可编程门阵列,所述受控端信号处理器内还设有受控端CAN通信接口、受控端数字隔离器及受控端输出数字隔离器;所述正、反按键通过所述光电隔离器连接所述控制端信号处理器中的控制端现场可编程门阵列,通过所述控制端信号处理器中的控制端单片机将正、反转按键信号处理成“按下”或“抬起”的编码信号,经数字隔离器及控制端CAN通信接口送CAN通信网络,所述受控端CAN通信接口接受由CAN通信网络传来的所述“按下”或“抬起”的编码信号,经受控端数字隔离器送所述受控端信号处理器中的受控端单片机,通过所述受控端现场可编程门阵列将所述“按下”或“抬起”的编码信号进行解码、合成还原为按键信号并生成控制信号由受控端输出数字隔离器送步进电机驱动器。
[0010] 前述的基于CAN通信的步进电机驱动器的远程键控装置,其中所述控制端现场可编程门阵列中设有按键分解模块、脉冲展宽模块、计数器及通信模块,其中所述计数器接所述按键信号分解模块,所述按键信号分解模块的输入,即现场可编程门阵列的输入I/O口,通过所述光电隔离器接按键,按键信号分解模块的输出接所述脉冲展宽模块,所述脉冲展宽模块的输出接通信模块;所述控制端单片机中设有通信模块、编码模块及CAN通信模块,其中,所述控制端单片机中的通信模块的输入端,即控制端单片机的P6、P7两个8位的I/O口与现场可编程门阵列的I/O口,即控制端现场可编程门阵列中的通信模块相连,所述控制端单片机中的通信模块的输出端连接编码模块,所述编码模块的输出接控制端单片机中的CAN通信模块;所述正、反转按键通过所述光电隔离器分别连接所述现场可编程门阵列的I/O口138管脚及139管脚,所述现场可编程门阵列以25MHz的时钟对按键动作进行采样,所接受到的信号首先经现场可编程门阵列中的按键分解模块经与所述计数器设定值进行对比、分解,将真正的正、反转按键信号处理成一个“按下”或“抬起”的脉冲信号送控制端单片机的通信模块,所述控制端单片机的通信模块将所接受到“按下”或“抬起”的脉冲信号送编码模块进行编码,并将编码通过CAN通信模块的CANARX和CANTX端口经数字隔离器送控制端CAN通信接口;
[0011] 所述受控端单片机中设有CAN通信模块、解码模块及受控端单片机的通信模块,所述受控单片机中的CAN通信模块通过数字隔离器接所述受控端CAN的通信接口,其输出接解码模块的输入,所述解码模块的输出接所述受控端单片机的通信模块;所述受控端现场可编程门阵列中设有受控端现场可编程门阵列的通信模块、命令合成模块及驱动脉冲形成模块;所述受控端现场可编程门阵列的通信模块连接所述受控端单片机的通信模块,其输出接所述命令合成模块的输入,所述命令合成模块的输出接驱动脉冲形成模块;所述单片机的CANARX和CANTX端口,即受控端单片机中的CAN通信模块的输入端接受数字隔离器传送来的控制端的编码信号,所述单片机将接受到的编码信号经解码模块解码成命令,并将所述命令通过受控端单片机的通信模块送现场可编程门阵列的I/O端口,即受控端现场可编程门阵列的通信模块,所述受控端现场可编程门阵列的通信模块将接受到的命令送命令合成模块进行合成,还原为按键信号,并将所还原按键信号送驱动脉冲形成模块产生驱动脉冲送步进电机驱动器。
[0012] 前述的基于CAN通信的步进电机驱动器的远程键控装置,其中所述控制端信号处理器中的现场可编程门阵列、单片机与受控端信号处理器中的现场可编程门阵列、单片机的型号相同,所述现场可编程门阵列的型号为XC2S200,所述单片机的型号为集成了一个CAN通信模块的C8051F040,所述单片机通过P6、P7两个8位的I/O口与现场可编程门阵列的I/O口相连共16根线,其中8路作为输入,8路作为输出,通过预定协议与现场可编程门阵列进行通信。
[0013] 本发明还提供一种基于前述装置的CAN通信的步进电机驱动器的远程键控方法,包括以下步骤:
[0014] (1)按键信号输入控制端的现场可编程门阵列以工作的时钟频率对按键动作进行采样,按键处于按下位置为高电平,按键处于抬起位置为低电平;
[0015] (2)按键信号分解
[0016] (2-1)判断是否为真实信号?控制端的现场可编程门阵列根据按键一次动作过程中所产生的多个抖动脉冲的最终状态与原始状态进行比较,如果状态相同则为误触发,否则为真实信号,以避免误触发;
[0017] (2-2)产生“按下”或“抬起”脉冲将按键按下或抬起的一次动作过程中的多个抖动脉冲进行分解,仅生成一个宽度为一个现场可编程门阵列时钟周期的“按下”或“抬起”脉冲;
[0018] (3)脉冲延时展宽控制端的现场可编程门阵列将宽度为一个现场可编程门阵列时钟周期的“按下”或“抬起”的脉冲展宽为超过单片机主程序的循环周期,并通过预定协议将其传送给控制端的单片机;
[0019] (4)脉冲编码控制端的单片机对按键的“按下”或“抬起”动作进行编码,并经CAN通信接口将编码信号通过CAN通信网络传送到受控端;
[0020] (5)受控端解码生成控制命令受控端信号处理器中的单片机通过通信接口接受编码信号,解码并生成控制命令送受控端信号处理器中的现场可编程门阵列;
[0021] (6)将命令合成还原为按键信号受控端信号处理器中的现场可编程门阵列将接受到的命令合成并还原为按键信号;
[0022] (7)生成驱动信号受控端信号处理器中的现场可编程门阵列根据按键信号生成驱动脉冲送步进电机驱动器。
[0023] 前述装置的CAN通信的步进电机驱动器的远程键控方法,其中所述步骤(2)按键信号分解的具体方法是:预先测定按键一次“按下”或“抬起”过程中所产生的多个抖动脉冲中最宽脉冲的持续时间,在现场可编程门阵列内设置一个计数器,其计数时间大于最宽脉冲的持续时间;对按键一次动作过程中,包括误动作和真实动作,所产生的每一个抖动脉冲与按键的原始状态进行比较,若不同则启动计数器,计数期间出现按键状态与原始状态相同,则计数器重置,不给出脉冲,以此来判断是误动作还是真实信号;计数期间不出现按键状态与原始状态相同,直到计数器溢出,则给出一个代表按键“按下”或“抬起”的脉冲。
[0024] 前述装置的CAN通信的步进电机驱动器的远程键控方法,其中所述步骤(3)将脉冲延时展宽是在现场可编程门阵列内设置一个脉冲展宽模块将将宽度为一个现场可编程门阵列时钟周期的“按下”或“抬起”的脉冲展宽为超过单片机主程序的循环周期;
[0025] 所述通过预定协议将“按下”或“抬起”的脉冲信号传送给单片机,具体是:单片机通过它的P6、P7两个8位的I/O口与现场可编程门阵列的I/O口相连,共16根线,其中8路作为输入,8路作为输出,通过订定好的协议与现场可编程门阵列进行通信;所述协议如下;
[0026] 7 6 5 4 3 2 1 0[0027]有效位 C3 C2 C1 C0 S2 S1 S0
[0028] 其中:C3C2C1C0为命令字,S2S1S0为地址位;
[0029] 单片机要数据时通过S2S1S0三位地址位向现场可编程门阵列寻址8个字节,现场可编程门阵列将各按键的状态通过各个字节回传给单片机;单片机通过查询的方式逐一对现场可编程门阵列传回的按键状态进行识别,当判断按键有“按下”或“抬起”动作时对其进行编码。
[0030] 前述装置的CAN通信的步进电机驱动器的远程键控方法,其中所述步骤(5)受控端解码生成控制命令,具体是:受控端接收到由CAN通信网络送来的按键编码,根据按键编码协议区分实际的按键动作,通过C3C2C1C0四位命令字将按键的“按下”或“抬起”命令下达给现场可编程门阵列。
[0031] 前述装置的CAN通信的步进电机驱动器的远程键控方法,其中所述步骤(6)将命令合成还原为按键信号,具体是现场可编程门阵列中的命令合成模块相当于一个RS触发器,所述“按下”与“抬起”命令分别送命令合成模块的两个输入端in1和in2,命令合成模块输出即为“真实”的按键信号:当in1“按下”和in2“抬起”脉冲信号均为“0”时,说明按键无动作,保持原状态;当in1“按下”脉冲信号为“0”,“抬起”脉冲信号为“1”时,表明有“抬起”脉冲信号,说明原来按下的按键已被抬起,应该控制步进电机驱动器不给出驱动脉冲,此时按键信号应为“0”;当“按下”脉冲信号为“1”,而“抬起”脉冲信号为“0”时,表明按键被按下,此时步进电机应工作,按键信号应为“1”;当“按下”和“抬起”脉冲信号均为“1”时,表明按键被“按下”又被“抬起”或被“抬起”又被“按下”,因此保持原状态。
[0032] 前述装置的CAN通信的步进电机驱动器的远程键控方法,其中所述步骤(7)生成驱动信号包括步进脉冲信号CP和方向电平信号DIR,现场可编程门阵列通过分频生成一个固定频率的脉冲信号,利用此频率信号和由受控端还原的按键信号做“与”运算,即生成步进脉冲信号CP;而方向电平信号利用命令合成模块的方法进行处理,将正转、反转两个按键信号作为两个输入信号分别送命令合成模块的in1和in2两个输入端,命令合成模块的输出即改变方向电平信号的高低变化,进而控制步进电机正反转。
[0033] 本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明基于CAN通信的步进电机驱动器的远程键控方法及装置可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有下列优点:
[0034] 1、本发明的基于CAN通信的步进电机驱动器的远程键控方法及装置利用CAN通信成功地实现了大功率长波发信机的天线调配控制,特别是手动远程键控,控制距离长达数公里,完全满足大功率长波发信机的天线调配手动远程键控的需要;并保证在大功率高频场强干扰环境中稳定使用,效果良好。
[0035] 2、本发明的基于CAN通信的步进电机驱动器的远程键控方法及装置成功解决了按键的“按下”和“抬起”的动作进行采样及处理使成为单片机能识别的信号,其中包括按键误动作和真实动作的识别、按键动作过程所产生的机械弹跳的处理,从而确保编码、通信及合成的完成。
[0036] 3、本发明结构简单,在CAN通信网络多节点远程控制的基础上,用少量芯片,实现了步进电机天调远程键控,成本较低,解决了现有技术在使用上所存在的不足,在使用的实用性及成本效益上,确实完全符合产业发展所需,相当具有产业利用价值。
[0037] 4、本发明的结构确比现有的天调手工调节、一般的电机键控更具技术进步性,且其独特的结构特征及功能亦远非现有的控制可比拟,较现有的控制方法具有增进的多项功效,而具有技术上的进步性。
[0038] 综上所述,本发明基于CAN通信的步进电机驱动器的远程键控方法及装置具有上述诸多优点及实用价值,其不论在产品的结构或功能上皆有较大改进,在技术上有显著的进步,并产生了好用及实用的效果,且较现有的控制方法具有增进的突出多项功效,从而更加适于实用,并具有产业的广泛利用价值,诚为一新颖、进步、实用的新设计。
[0039] 上述说明仅是本发明技术方案的概述,为能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。

附图说明

[0040] 图1是本发明基于CAN通信的步进电机驱动器的远程键控装置的原理框图。
[0041] 图2是本发明基于CAN通信的步进电机驱动器的远程键控方法及装置的电路图。
[0042] 图3是本发明基于CAN通信的步进电机驱动器的远程键控方法的步骤图。
[0043] 图4是本发明方法中去除按键抖动波形图。
[0044] 图5是本发明方法中脉冲展宽处理波形图。
[0045] 图6时驱动信号形成波形图。

具体实施方式

[0046] 有关本发明的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实施例的详细说明中将可清楚的呈现。通过具体实施方式的说明,当可对本发明为达成预定目的所采取的技术手段及功效得一更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。
[0047] 请参阅图1、图2所示,本发明所提供的一种基于CAN通信的步进电机驱动器的远程键控装置,其中包括按键K、控制端信号处理器1、CAN通信网络2及受控端信号处理器3,所述按键K连接所述控制端信号处理器1,所述控制端信号处理器1将按键信号处理成“按下”或“抬起”的编码信号送CAN通信网络2,所述受控端信号处理器3接受由CAN通信网络2传来的所述“按下”或“抬起”的编码信号进行解码、合成还原按键信号并生成控制信号送步进电机驱动器。
[0048] 如图2所示,所述控制端中的按键K包括正转按键K1和反转按键K2,所述控制端信号处理器1包括控制端现场可编程门阵列1-1和控制端单片机1-2,所述控制端信号处理器1内还设有光电隔离器4,控制端数字隔离器5和控制端CAN通信接口6,所述受控端信号处理器3包括受控端单片机3-1和受控端现场可编程门阵列3-2,所述受控端信号处理器3内还设有受控端CAN通信接口7、受控端数字隔离器8及受控端输出数字隔离器9;所述正、反按键K1、K2通过所述光电隔离器4连接所述控制端信号处理器1中的控制端现场可编程门阵列1-1,通过所述控制端信号处理器1中的控制端单片机1-2将正、反转按键信号处理成“按下”或“抬起”的编码信号,经数字隔离器5及控制端CAN通信接口6送CAN通信网络2,所述受控端CAN通信接口7接受由CAN通信网络2传来的所述“按下”或“抬起”的编码信号,经受控端数字隔离器8送所述受控端信号处理器3中的受控端单片机3-1,通过所述受控端现场可编程门阵列3-2将所述“按下”或“抬起”的编码信号进行解码、合成还原按键信号并生成控制信号由受控端输出数字隔离器9送步进电机驱动器,用以控制步进电机,实现步进电机与按键动作同步的正转、反转及停止。
[0049] 所述控制端现场可编程门阵列1-1中设有按键分解模块11、脉冲展宽模块12、计数器13、及通信模块14,其中所述计数器13接所述按键信号分解模块11,所述按键信号分解模块11的输入,即现场可编程门阵列的输入I/O口(图2所示),通过所述光电隔离器4接按键K1、K2,图2中采用两个型号为TLP521-1的光电隔离器分别连接正、反转按键K1、K2;现场可编程门阵列中的按键信号分解模块11的输出接所述脉冲展宽模块12,所述脉冲展宽模块12的输出接通信模块14;所述控制端单片机1-2中设有通信模块15、编码模块
16及CAN通信模块17,其中,所述控制端单片机1-2中的通信模块15的输入端,即控制端单片机的P6、P7两个8位的I/O口与现场可编程门阵列1-1的I/O口,即控制端现场可编程门阵列中的通信模块14相连,所述控制端单片机1-2中的通信模块15的输出端连接编码模块16,所述编码模块16的输出接控制端单片机中的CAN通信模块17;所述正、反转按键K1、K2通过所述光电隔离器4分别连接所述现场可编程门阵列1-1的I/O口138管脚及
139管脚,所述现场可编程门阵列以25MHz的时钟对按键动作进行采样,所接受到的信号首先经现场可编程门阵列中的按键分解模块11与所述计数器13设定值进行对比、分解,将真正的正、反转按键信号处理成一个“按下”或“抬起”的脉冲信号送控制端单片机1-2的通信模块15,所述控制端单片机1-2的通信模块15将所接受到“按下”或“抬起”的脉冲信号送编码模块16进行编码,并将编码通过CAN通信模块17的CANARX和CANTX端口经数字隔离器5送控制端CAN通信接口6。
[0050] 所述受控端单片机3-1中设有CAN通信模块31、解码模块32及受控端单片机的通信模块33,所述受控单片机3-1中的CAN通信模块31通过数字隔离器8接所述受控端CAN的通信接口7,其输出接解码模块32的输入,所述解码模块32的输出接所述受控端单片机的通信模块33;所述受控端现场可编程门阵列3-2中设有受控端现场可编程门阵列的通信模块34、命令合成模块35及驱动脉冲形成模块36;所述受控端现场可编程门阵列3-2的通信模块34连接所述受控端单片机的通信模块33,其输出接所述命令合成模块35的输入,所述命令合成模块35的输出接驱动脉冲形成模块36;所述受控端单片机3-1的CANARX和CANTX端口,即受控端单片机中的CAN通信模块31的输入端接受数字隔离器8传送来的控制端的编码信号,所述单片机3-1将接受到的编码信号经解码模块32解码成命令,并将所述命令通过受控端单片机的通信模块33送现场可编程门阵列3-2的I/O端口,即受控端现场可编程门阵列3-2的通信模块34,所述受控端现场可编程门阵列的通信模块34将接受到的命令送命令合成模块35进行合成,还原为按键信号,并将所还原的按键信号送驱动脉冲形成模块36产生驱动脉冲送步进电机驱动器。
[0051] 所述控制端信号处理器1中的现场可编程门阵列1-1、单片机1-2与受控端信号处理器3中的现场可编程门阵列3-2、单片机3-1的型号相同,所述现场可编程门阵列的型号为XC2S200,所述单片机的型号为集成了一个用作CAN通信模块的CAN2.0B控制器的C8051F040,所述单片机通过P6、P7两个8位的I/O口与现场可编程门阵列的I/O口相连,共16根线,其中8路作为输入,8路作为输出,通过预定协议与现场可编程门阵列进行通信。
[0052] 如图3、图4、图5、图6所示,本发明所提供的一种基于前述装置的CAN通信的步进电机驱动器的远程键控方法,包括以下步骤:
[0053] (1)按键信号输入控制端的现场可编程门阵列1-1以工作的时钟频率对按键动作进行采样,按键处于按下位置为高电平,按键处于抬起位置为低电平;
[0054] (2-1)判断是否为真实信号?控制端的现场可编程门阵列根据按键一次动作过程中所产生的多个抖动脉冲的最终状态与原始状态进行比较,如果状态相同则为误触发,否则为真实信号,以避免误触发;
[0055] (2-2)产生“按下”或“抬起”脉冲将按键按下或抬起的一次动作过程中的多个抖动脉冲进行分解,仅生成一个宽度为一个现场可编程门阵列时钟周期的“按下”或“抬起”脉冲;
[0056] (3)脉冲延时展宽现场可编程门阵列将宽度为一个现场可编程门阵列时钟周期的“按下”或“抬起”的脉冲展宽为超过单片机主程序的循环周期,并通过预定协议将其传送给单片机;
[0057] (4)脉冲编码单片机对按键的“按下”或“抬起”动作进行编码,并经CAN通信接口将编码信号通过CAN通信网络传送到受控端;
[0058] (5)受控端解码生成控制命令受控端信号处理器中的单片机通过通信接口接受编码信号,解码并生成控制命令送受控端信号处理器中的现场可编程门阵列;
[0059] (6)将命令合成还原为按键信号受控端信号处理器中的现场可编程门阵列将接受到的命令合成并还原为按键信号;
[0060] (7)生成驱动信号受控端信号处理器中的现场可编程门阵列根据按键信号生成驱动脉冲送步进电机驱动器。
[0061] 图4示出步骤(2)按键信号分解方法的波形图,其中clk为系统的时钟信号,PB为按键输入信号,state为去抖后的按键信号(所述state仅为说明用,并不是现场可编程门阵列中的按键分解模块的输出信号),PB_down为按键分解模块输出的按键“按下”的信号,PB_up为按键分解模块输出的按键“抬起”的信号。在PB按键信号中,PB1为按键误触发过程所产生的多个抖动脉冲,PB2为真实动作的“按下”过程所产生的多个抖动脉冲,PB3为真实动作的“抬起”过程所产生的多个抖动脉冲,所有上述过程中所产生的多个抖动脉冲的宽度不一定相等。
[0062] 结合图4说明步骤(2)按键信号分解的具体方法:预先测定按键一次“按下”或“抬起”过程中所产生的多个抖动脉冲中最宽脉冲的持续时间Δta,在现场可编程门阵列内设置一个计数器,其计数时间Δt大于最宽脉冲的持续时间Δta;对按键一次动作(包括误动作PB1和真实动作的“按下”PB2或“抬起”PB3)过程中所产生的每一个抖动脉冲均与按键的原始状态进行比较,若不同则启动计数器,计数期间出现按键状态与原始状态相同,则计数器重置,不给出脉冲,以此来判断是误动作还是真实信号;如图4中的PB1,在时间t1抖动脉冲由“0”变为“1”,原始状态为“0”,因此计数器开始计数,在未达到计数时间Δt之前,t1-1时,该抖动脉冲所反映的按键状态由“1”变为“0”,与按键的原始状态相同,计数器重置;到t1-2时,抖动脉冲又由“0”变为“1”,计数器又开始计数,如此不断重置、计数直到时间t2,此时,抖动脉冲所反映的按键状态由“0”变为“1”,与按键的原始状态不同,计数器再次开始计数,直到溢出后,按键状态与原始状态相同,不给出代表按键动作的脉冲PB_down或PB_up,即反映PB1为误动作,按键分解模块11不产生脉冲信号PB_down或PB_up,state保持原状,以此判断是否为真实信号。
[0063] 当到达时间t3时,出现抖动脉冲PB2,由“0”变为“1”,原始状态为“0”,因此计数器开始计数;在未达到计数时间Δt之前,计数期间不断出现按键状态与原始状态相同,计数器反复重置、计数,直到时间t4,抖动脉冲PB2,由“0”变为“1”,计数器开始计数,经设定计数时间Δt,即在t4到t4+Δt的时间范围内,未出现按键状态与原始状态相同,计数器溢出,按键分解模块11给出一个代表按键“按下”的脉冲PB_down,state由“0”变为“1”,代表按键被“按下”。
[0064] 当到达时间t5时,出现抖动脉冲PB3,由“1”变为“0”,原始状态为“1”,因此计数器开始计数;在未达到计数时间Δt之前,计数期间不断出现按键状态与原始状态相同,计数器反复重置、计数,直到时间t6,抖动脉冲PB3,由“1”变为“0”,计数器开始计数,经设定计数时间Δt,即在t6到t6+Δt的时间范围内,未出现按键状态与原始状态相同,计数器溢出,按键分解模块11给出一个代表按键“抬起”的脉冲PB_up,state由“1”变为“0”,代表按键被“抬起”。
[0065] 步骤(3)所述将脉冲延时展宽是在现场可编程门阵列内设置一个脉冲展宽模块将将宽度为一个现场可编程门阵列时钟周期的“按下”或“抬起”的脉冲展宽为超过单片机主程序的循环周期。
[0066] 请参阅图5所示波形图,图中clk为系统的时钟信号,rst为复位信号即计数器设定的初始值,trig为按键分解模块去抖后的真实“按下”与“抬起”脉冲信号,out为脉冲展宽后输出的信号。
[0067] 由于本系统的CAN通信采用单片机编码,而“按下”与“抬起”的脉冲信号(图中5中的trig)仅为一个现场可编程门阵列时钟周期的脉冲,单片机本身的串行工作方式不可能捕捉到这种响应速度的信号,考虑到其有限的资源,利用单片机本身的中断资源不适用于大量按键的处理。所以为了对脉冲信号编码,通过现场可编程门阵列中设置脉冲展宽模块对脉冲信号进行展宽,展宽宽度根据单片机一个主循环的周期进行调整,保证其超过单片机主程序的循环周期。这样单片机利用每次主程序的循环向现场可编程门阵列查询各按键是否有“按下”或“抬起”的动作,从而对动作进行编码。
[0068] 将去经按键分解模块去抖后的真实“按下”与“抬起”两个脉冲信号trig1和trig2进行脉冲展宽,利用脉冲展宽模块对输入的触发脉冲进行展宽,超过一个时钟周期,就输出两个相对应的脉冲out扩张1和out扩张2,在输出一个完整的脉冲过程中,不论输入多少个触发脉冲,都只会输出一个脉冲。如图所示,在trig2所扩张的输出out扩张2脉冲周期中,又出现一个trig3,此时,不会因trig3的出现,再输出一个扩张脉冲。输出此展宽脉冲的方法宽度稳定、准确。因为无外接R、C定时器件,其脉冲宽度仅与所采用的时钟频率和现场可编程门阵列器件的性能有关。
[0069] 步骤(3)所述通过预定协议将“按下”或“抬起”的脉冲信号传送给单片机,具体是:单片机通过它的P6、P7两个8位的I/O口与现场可编程门阵列的I/O口相连,共16根线,其中8路作为输入,8路作为输出,通过订定好的协议与现场可编程门阵列进行通信;所述协议如下;
[0070] 7 6 5 4 3 2 1 0[0071]有效位 C3 C2 C1 C0 S2 S1 S0
[0072] 其中:C3C2C1C0为命令字,S2S1S0为地址位;
[0073] 单片机要数据时通过S2S1S0三位地址位向现场可编程门阵列寻址8个字节,现场可编程门阵列将各按键的状态通过各个字节回传给单片机;单片机通过查询的方式逐一对现场可编程门阵列传回的按键状态进行识别,当判断有按键有“按下”或“抬起”动作时对其进行编码。
[0074] 步骤(4)所述单片机对按键的“按下”或“抬起”动作进行编码,如:单片机判断“按下”,则编码为0x22;单片机判断“抬起”,则编码为0x11,再有其他按键编的命令和它不同就可以了,然后把这个命令通过CAN发送程序发出去
[0075] 步骤(5)所述受控端解码生成控制命令,具体是:受控端接收到由CAN通信网络送来的按键编码,根据按键编码协议区分实际的按键动作,通过C3C2C1C0四位命令字将按键的“按下”或“抬起”命令下达给现场可编程门阵列。
[0076] 步骤(6)所述将命令合成还原为按键信号,具体是现场可编程门阵列中的命令合成模块相当于一个RS触发器,受控端现场可编程门阵列3-2中的通信模块34将所接受到的前述经扩张后的“按下”与“抬起”命令分别送命令合成模块的两个输入端in1和in2(参见表1及图6),命令合成模块35输出即为“真实”的按键信号out键,clock为系统的时钟信号;当两个输入端in1“按下”和in2“抬起”脉冲信号均为“0”时,如图6中的t2、t4、t6、t8时间,说明按键无动作,保持原状态,其中t2、t6保持输出为“1”,即按键处于“按下”状态,t4、t8保持输出为“0”,即“按键”处于“抬起”状态;当in1“按下”脉冲信号为“0”,in2“抬起”脉冲信号为“1”时,图中t3、t7表明有“抬起”脉冲信号,说明原来按下的按键已被抬起,应该控制步进电机驱动器不给出驱动脉冲,此时按键信号out键应为“0”;当in1“按下”脉冲信号为“1”,而in2“抬起”脉冲信号为“0”时,图中t1、t5,表明按键被按下,此时步进电机应工作,信号out键应为“1”;当in1“按下”和in2“抬起”脉冲信号均为“1”时,图中t9,表明按键被“按下”又被“抬起”或被“抬起”又被“按下”,因此out键保持原状态。
[0077] 表1
[0078]按下 抬起 按键信号
In1 In2 Out键
0 0 保持原状态
0 1 0
1 1 0
1 1 保持原状态
[0079] 步骤(7)所述生成驱动信号,所述驱动信号包括步进脉冲信号CP和方向电平信号DIR,由于步进电机驱动器(选用的是SH-2H090M),它的驱动信号主要为步进脉冲信号CP和方向电平信号DIR。由于本系统对转速的要求及手动的控制方式,不用进行步进电机升降速设计,只需利用现场可编程门阵列通过分频生成一个固定脉冲的频率信号即可满足要求。利用此频率信号和由受控端还原的按键信号做“与”的运算,即可生成步进电机脉冲信号。
[0080] 而方向电平信号,利用命令合成模块的方法进行处理,将正转、反转两个按键信号分别作为in1和in2两个输入,既可以改变方向电平信号的高低变化,功而控制步进电机正反转。
[0081] 由于电机换向时,一定要在电机停止转动后再换向,及在前一个方向的最后一个CP脉冲结束后以及下一个方向的第一个CP脉冲前发出,所以通过现场可编程门阵列做一个短暂的延时控制程序来约束CP脉冲的形成,及DIR信号一旦改变就延时几个系统时钟周期后再输出CP脉冲。
[0082] 以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。