基于nRF24L01的无线手轮设计
2014/9/3 10:25:06
手轮,即手摇脉冲发生器。在数控系统中,刀具微动、工件对刀、工作台的随动、机床原点的修正等这些功能通常是通过手轮操作来实现的[1]。手轮主要由光电编码器、坐标轴选择开关和增量倍率选择开关组成,用于手摇方式控制数控机床相应坐标轴的移动。但传统的有线手轮的连接线的接头处容易断裂,使用时间长了容易出现连接不可靠的问题,同时因为受到连接线的影响,用户无法围绕机床自由移动。如今无线通信技术越来越成熟,无线产品也越来越多,由此可见,可以基于无线技术研发一种新型无线手轮来改善现有手轮的性能。本次设计了一种基于工业级内置硬件链路层协议的低成本无线芯片nRF24L01的无线手轮。手轮使用无线传输后,杜绝了连线断裂的问题,能提高手轮的使用寿命。摆脱有线连接的束缚,使用者可以移动自由,操作方便,能提高工作效率。
1 设计原理
本次设计的无线手轮,由手持发射端和机床接收端两部分构成。发射端由单片机控制器采集手轮产生的差分信号和按键产生的控制信号,经过编码后通过无线方式发送出去。接收端则由单片机控制nRF24L01接收由手持发送端发过来的信号。经过解码后还原成差分脉冲信号和按键控制信号并输出用于控制机床移动。
2 硬件设计
2.1 控制信号的采集信号的采集由Atmel公司的Atmega16单片机来完成。ATmega16单片机采用Harvard结构,内置WDT,具有高速、低功耗,可直接驱动LED、SSR或继电器等特点[2],具有很高的性价比,故选用该单片机。发送端需要采集的信号有4路差分脉冲信号和按键控制信号。当手轮上的光电编码器转动时,将会产生4路脉冲信号(A+,A-,B+,B-),其中A+和A-、B+和B-分别是极性相反两路信号。在手持端,使用四重差分线接收器AM26C32将这四路脉冲信号转变成两路差分脉冲信号(A,B),从而方便MCU对信号进行处理。脉冲A和脉冲B不仅能反映光电编码器转动的格数,同时还能反映光电编码器转动的方向[3]。当光电编码器正转时,A相超前B相90°,反转时,B相超前A相90°。
2.2 nRF24L01无线收发无线收发部分的核心芯片采用nRF24L01芯片。nRF24L01是一款工作在2.4~2.5GHz世界通用ISM频段的单片无线收发器芯片。输出功率、频道选择和协议的设置可以通过SPI接口进行设置。具有极低的电流消耗。该芯片支持多点间通信,最高传输速率达2Mb/s。该器件采用GFSK调制,128个频点可供选择,片内自己生成报头和CRC校验码,具有出错自动重发功能[4]。这些特性使得由nRF24L01构建的无线设备具有成本低、速率高、传输可靠等优点。由于nRF24L01工作在2.4GHz这个国际规定的免费频段,不需要向国际相关组织缴纳任何费用,这就为2.4GHz技术可发展性提供了有利条件[5]。
nRF24L01支持多点间通信,最高传输速率达2Mb/s。嵌入的链路层控制减少了MCU的复杂性和成本,并且提高了数据传输的可靠性,它采用SOC方法设计只需要少量的外围元件便可组成射频收发[6]。
通过SPI接口,MCU可以很方便地控制nRF24L01无线模块。SPI接口是一种同步串行通信接口,CSN是芯片选择管脚,当该管脚为低电平时,SPI接口可以通信,反之不能通信。MOSI和MISO为数据传输管脚,MOSI用于数据输入,MISO用于数据输出。SCK为同步时钟,在时钟的上升沿或下降沿数字数据被写入或读出[7⁃8]。ATmega16内部有一个可工作于主机/从机模式的硬件SPI串行接口[9],但由于ATmega16的工作电压为5V,而nRF24L01的工作电压为1.9~3.6V,因此ATmega16的SPI接口与nRF24L01的SPI接口间应串接一个2kΩ左右的限流电阻,以免烧毁芯片。
2.3 控制信号的还原机床接收端收到由手持端发送过来的信号后,需要将其还原成相应的控制信号。接收到的两路差分脉冲信号只需要经过差分信号输出器AM26C31便可还原成4路脉冲信号。而坐标轴选择信号和增量倍率选择信号的逻辑高电平为24V,因此需要将控制信号的电平进行转换,本次设计中通过光耦来实现。为了增强驱动能力,将控制信号经过大功率达林顿管后再输出。
3 软件设计
3.1 手持发送端软件设计
发送端控制器完成初始化后,把nRF24L01配置成PTX工作模式。然后不断检测按键是否按下,若有按键按下,则执行相应的操作。同时启动定时器,每隔一段时间读取一次差分信号状态并向机床接收端发送一次数据,将手持端的状态发送给接收端。
nRF24L01的数据传输模式有ShockBurst和EnhancedShockBurst两种数据包。后者比前者多了一个确认数据传输的信号,保证数据传输的可靠性。现按后一种模式初始化,nRF24L01发送数据包后,自动切换到接收模式以接收返回的确认信号,当收到确认信号后,IRQ引脚产生中断信号,如果没收到返回信号,则自动重新发送,如果重新发送的次数超过在设定值时,也会在IRQ引脚产生中断信号,MCU通过查询STATUS寄存器的值,即可判断是发送完成中断,还是重发次数超限中断。
3.2 机床接收端软件设计
机床接收端控制器完成初始化后,把nRF24L01配置成PRX工作模式。接收到数据包后,由硬件解析地址数据和信息数据,当接收到有效信息数据后,在IRQ引脚产生中断通知处理器读取数据[10]。控制器首先核对数据中识别码部分是否有效,若有效则将控制信号还原。否则,丢弃该数据包。4设备对码由于2.4GHz频段没有使用授权限制,目前家用电器、手机、无线网络都集中在此频段,干扰问题难以避免。为了避开干扰,采用了设备对码技术。在发送端和接收端同时按下对码键后,发送端随机生成一个8位的识别码发送给接收端,机床接收端收到后发送确认对码成功信号给手持发送端,并将该识别码保存在E2PROM中。在正常工作状态下,发送端在发送数据时将识别码作为数据的一部分,一起发送。接收端在接收到信号时核对识别码,若相同则进行相应处理,否则不作出响应。这样做可以在很大程度上减少干扰。
5 结语
本文介绍了基于nRF24L01的数控机床无线手轮的硬软件设计要点。由于考虑到工控场合的特殊性,在设计时着重考虑了系统的稳定性。本次设计的无线手轮在其正常工作距离内能够稳定的将手持端产生的差分脉冲信号和按键控制信号发送给接收端,从而正常控制机床的移动。在信号传输不稳定时也不会造成机床误操作。手轮的最大工作距离主要取决于天线在选择。经测试,使用PCB板载天线,空旷直线传播距离在15m左右,而在有障碍物的环境下,其传输距离也可达5~10m。如果使用功放和外置天线,传输距离可达几百米。
1 设计原理
本次设计的无线手轮,由手持发射端和机床接收端两部分构成。发射端由单片机控制器采集手轮产生的差分信号和按键产生的控制信号,经过编码后通过无线方式发送出去。接收端则由单片机控制nRF24L01接收由手持发送端发过来的信号。经过解码后还原成差分脉冲信号和按键控制信号并输出用于控制机床移动。
2 硬件设计
2.1 控制信号的采集信号的采集由Atmel公司的Atmega16单片机来完成。ATmega16单片机采用Harvard结构,内置WDT,具有高速、低功耗,可直接驱动LED、SSR或继电器等特点[2],具有很高的性价比,故选用该单片机。发送端需要采集的信号有4路差分脉冲信号和按键控制信号。当手轮上的光电编码器转动时,将会产生4路脉冲信号(A+,A-,B+,B-),其中A+和A-、B+和B-分别是极性相反两路信号。在手持端,使用四重差分线接收器AM26C32将这四路脉冲信号转变成两路差分脉冲信号(A,B),从而方便MCU对信号进行处理。脉冲A和脉冲B不仅能反映光电编码器转动的格数,同时还能反映光电编码器转动的方向[3]。当光电编码器正转时,A相超前B相90°,反转时,B相超前A相90°。
2.2 nRF24L01无线收发无线收发部分的核心芯片采用nRF24L01芯片。nRF24L01是一款工作在2.4~2.5GHz世界通用ISM频段的单片无线收发器芯片。输出功率、频道选择和协议的设置可以通过SPI接口进行设置。具有极低的电流消耗。该芯片支持多点间通信,最高传输速率达2Mb/s。该器件采用GFSK调制,128个频点可供选择,片内自己生成报头和CRC校验码,具有出错自动重发功能[4]。这些特性使得由nRF24L01构建的无线设备具有成本低、速率高、传输可靠等优点。由于nRF24L01工作在2.4GHz这个国际规定的免费频段,不需要向国际相关组织缴纳任何费用,这就为2.4GHz技术可发展性提供了有利条件[5]。
nRF24L01支持多点间通信,最高传输速率达2Mb/s。嵌入的链路层控制减少了MCU的复杂性和成本,并且提高了数据传输的可靠性,它采用SOC方法设计只需要少量的外围元件便可组成射频收发[6]。
通过SPI接口,MCU可以很方便地控制nRF24L01无线模块。SPI接口是一种同步串行通信接口,CSN是芯片选择管脚,当该管脚为低电平时,SPI接口可以通信,反之不能通信。MOSI和MISO为数据传输管脚,MOSI用于数据输入,MISO用于数据输出。SCK为同步时钟,在时钟的上升沿或下降沿数字数据被写入或读出[7⁃8]。ATmega16内部有一个可工作于主机/从机模式的硬件SPI串行接口[9],但由于ATmega16的工作电压为5V,而nRF24L01的工作电压为1.9~3.6V,因此ATmega16的SPI接口与nRF24L01的SPI接口间应串接一个2kΩ左右的限流电阻,以免烧毁芯片。
2.3 控制信号的还原机床接收端收到由手持端发送过来的信号后,需要将其还原成相应的控制信号。接收到的两路差分脉冲信号只需要经过差分信号输出器AM26C31便可还原成4路脉冲信号。而坐标轴选择信号和增量倍率选择信号的逻辑高电平为24V,因此需要将控制信号的电平进行转换,本次设计中通过光耦来实现。为了增强驱动能力,将控制信号经过大功率达林顿管后再输出。
3 软件设计
3.1 手持发送端软件设计
发送端控制器完成初始化后,把nRF24L01配置成PTX工作模式。然后不断检测按键是否按下,若有按键按下,则执行相应的操作。同时启动定时器,每隔一段时间读取一次差分信号状态并向机床接收端发送一次数据,将手持端的状态发送给接收端。
nRF24L01的数据传输模式有ShockBurst和EnhancedShockBurst两种数据包。后者比前者多了一个确认数据传输的信号,保证数据传输的可靠性。现按后一种模式初始化,nRF24L01发送数据包后,自动切换到接收模式以接收返回的确认信号,当收到确认信号后,IRQ引脚产生中断信号,如果没收到返回信号,则自动重新发送,如果重新发送的次数超过在设定值时,也会在IRQ引脚产生中断信号,MCU通过查询STATUS寄存器的值,即可判断是发送完成中断,还是重发次数超限中断。
3.2 机床接收端软件设计
机床接收端控制器完成初始化后,把nRF24L01配置成PRX工作模式。接收到数据包后,由硬件解析地址数据和信息数据,当接收到有效信息数据后,在IRQ引脚产生中断通知处理器读取数据[10]。控制器首先核对数据中识别码部分是否有效,若有效则将控制信号还原。否则,丢弃该数据包。4设备对码由于2.4GHz频段没有使用授权限制,目前家用电器、手机、无线网络都集中在此频段,干扰问题难以避免。为了避开干扰,采用了设备对码技术。在发送端和接收端同时按下对码键后,发送端随机生成一个8位的识别码发送给接收端,机床接收端收到后发送确认对码成功信号给手持发送端,并将该识别码保存在E2PROM中。在正常工作状态下,发送端在发送数据时将识别码作为数据的一部分,一起发送。接收端在接收到信号时核对识别码,若相同则进行相应处理,否则不作出响应。这样做可以在很大程度上减少干扰。
5 结语
本文介绍了基于nRF24L01的数控机床无线手轮的硬软件设计要点。由于考虑到工控场合的特殊性,在设计时着重考虑了系统的稳定性。本次设计的无线手轮在其正常工作距离内能够稳定的将手持端产生的差分脉冲信号和按键控制信号发送给接收端,从而正常控制机床的移动。在信号传输不稳定时也不会造成机床误操作。手轮的最大工作距离主要取决于天线在选择。经测试,使用PCB板载天线,空旷直线传播距离在15m左右,而在有障碍物的环境下,其传输距离也可达5~10m。如果使用功放和外置天线,传输距离可达几百米。
-
- HL.A004 固定调节支撑脚
- 材质:
-
- HL.41137 铰链
- 材质:锌合金