引言
手輪,即手搖脈沖發(fā)生器.在數(shù)控系統(tǒng)中,刀具微動(dòng).工件對(duì)刀.工作臺(tái)的隨動(dòng).機(jī)床原點(diǎn)的修正等這些功能通常是通過(guò)手輪操作來(lái)實(shí)現(xiàn)的.手輪主要由光電編碼器.坐標(biāo)軸選擇開關(guān)和增量倍率選擇開關(guān)組成,用于手搖方式控制數(shù)控機(jī)床相應(yīng)坐標(biāo)軸的移動(dòng).但傳統(tǒng)的有線手輪的連接線的接頭處容易斷裂,使用時(shí)間長(zhǎng)了容易出現(xiàn)連接不可靠的問(wèn)題,同時(shí)因?yàn)槭艿竭B接線的影響,用戶無(wú)法圍繞機(jī)床自由移動(dòng).如今無(wú)線通信技術(shù)越來(lái)越成熟,無(wú)線產(chǎn)品也越來(lái)越多,由此可見,可以基于無(wú)線技術(shù)研發(fā)一種新型無(wú)線手輪來(lái)改善現(xiàn)有手輪的性能.本次設(shè)計(jì)了一種基于工業(yè)級(jí)內(nèi)置硬件鏈路層協(xié)議的低成本無(wú)線芯片nRF24L01的無(wú)線手輪.手輪使用無(wú)線傳輸后,杜絕了連線斷裂的問(wèn)題,能提高手輪的使用壽命.擺脫有線連接的束縛,使用者可以移動(dòng)自由,操作方便,能提高工作效率.
1 設(shè)計(jì)原理
本次設(shè)計(jì)的無(wú)線手輪,由手持發(fā)射端和機(jī)床接收端兩部分構(gòu)成,工作原理如圖1所示.發(fā)射端由單片機(jī)控制器采集手輪產(chǎn)生的差分信號(hào)和按鍵產(chǎn)生的控制信號(hào),經(jīng)過(guò)編碼后通過(guò)無(wú)線方式發(fā)送出去.接收端則由單片機(jī)控制nRF24L01接收由手持發(fā)送端發(fā)過(guò)來(lái)的信號(hào).經(jīng)過(guò)解碼后還原成差分脈沖信號(hào)和按鍵控制信號(hào)并輸出用于控制機(jī)床移動(dòng).
2 硬件設(shè)計(jì)
2.1 控制信號(hào)的采集
信號(hào)的采集由Atmel公司的Atmega16單片機(jī)來(lái)完成.
ATmega16單片機(jī)采用Harvard結(jié)構(gòu),內(nèi)置WDT,具有高速.低功耗,可直接驅(qū)動(dòng)LED.SSR或繼電器等特點(diǎn),具有很高的性價(jià)比,故選用該單片機(jī).發(fā)送端需要采集的信號(hào)有4路差分脈沖信號(hào)和按鍵控制信號(hào).當(dāng)手輪上的光電編碼器轉(zhuǎn)動(dòng)時(shí),將會(huì)產(chǎn)生4路脈沖信號(hào)(A+,A-,B+,B-),其中A+和A-.B+和B-分別是極性相反兩路信號(hào).在手持端,使用四重差分線接收器AM26C32 將這四路脈沖信號(hào)轉(zhuǎn)變成兩路差分脈沖信號(hào)(A,B),從而方便MCU對(duì)信號(hào)進(jìn)行處理.脈沖A和脈沖B不僅能反映光電編碼器轉(zhuǎn)動(dòng)的格數(shù),同時(shí)還能反映光電編碼器轉(zhuǎn)動(dòng)的方向.當(dāng)光電編碼器正轉(zhuǎn)時(shí),A 相超前B相90°,反轉(zhuǎn)時(shí),B 相超前A 相90°.圖2 給出正轉(zhuǎn)時(shí)脈沖A.B 的波形圖.
2.2 nRF24L01無(wú)線收發(fā)
無(wú)線收發(fā)部分的核心芯片采用nRF24L01 芯片.
nRF24L01 是一款工作在2.4~2.5 GHz 世界通用ISM 頻段的單片無(wú)線收發(fā)器芯片.輸出功率.頻道選擇和協(xié)議的設(shè)置可以通過(guò)SPI接口進(jìn)行設(shè)置.具有極低的電流消耗.該芯片支持多點(diǎn)間通信,最高傳輸速率達(dá)2 Mb/s.
該器件采用GFSK調(diào)制,128個(gè)頻點(diǎn)可供選擇,片內(nèi)自己生成報(bào)頭和CRC校驗(yàn)碼,具有出錯(cuò)自動(dòng)重發(fā)功能.這些特性使得由nRF24L01構(gòu)建的無(wú)線設(shè)備具有成本低.速率高.傳輸可靠等優(yōu)點(diǎn).由于nRF24L01工作在2.4 GHz這個(gè)國(guó)際規(guī)定的免費(fèi)頻段,不需要向國(guó)際相關(guān)組織繳納任何費(fèi)用,這就為2.4 GHz技術(shù)可發(fā)展性提供了有利條件.
nRF24L01支持多點(diǎn)間通信,最高傳輸速率達(dá)2 Mb/s.
嵌入的鏈路層控制減少了MCU 的復(fù)雜性和成本,并且提高了數(shù)據(jù)傳輸?shù)目煽啃?,它采用SOC方法設(shè)計(jì)只需要少量的外圍元件便可組成射頻收發(fā).nRF24L01及外圍電路原理圖如圖3所示.
通過(guò)SPI 接口,MCU 可以很方便地控制nRF24L01無(wú)線模塊.SPI接口是一種同步串行通信接口,CSN 是芯片選擇管腳,當(dāng)該管腳為低電平時(shí),SPI 接口可以通信,反之不能通信.MOSI 和MISO 為數(shù)據(jù)傳輸管腳,MOSI用于數(shù)據(jù)輸入,MISO用于數(shù)據(jù)輸出.SCK為同步時(shí)鐘,在時(shí)鐘的上升沿或下降沿?cái)?shù)字?jǐn)?shù)據(jù)被寫入或讀出.
ATmega16 內(nèi)部有一個(gè)可工作于主機(jī)/從機(jī)模式的硬件SPI串行接口,但由于ATmega16的工作電壓為5 V,而nRF24L01 的工作電壓為1.9~3.6 V,因此ATmega16 的SPI接口與nRF24L01 的SPI接口間應(yīng)串接一個(gè)2 kΩ左右的限流電阻,以免燒毀芯片.
2.3 控制信號(hào)的還原
機(jī)床接收端收到由手持端發(fā)送過(guò)來(lái)的信號(hào)后,需要將其還原成相應(yīng)的控制信號(hào).接收到的兩路差分脈沖信號(hào)只需要經(jīng)過(guò)差分信號(hào)輸出器AM26C31便可還原成4 路脈沖信號(hào).而坐標(biāo)軸選擇信號(hào)和增量倍率選擇信號(hào)的邏輯高電平為24 V,因此需要將控制信號(hào)的電平進(jìn)行轉(zhuǎn)換,本次設(shè)計(jì)中通過(guò)光耦來(lái)實(shí)現(xiàn).為了增強(qiáng)驅(qū)動(dòng)能力,將控制信號(hào)經(jīng)過(guò)大功率達(dá)林頓管后再輸出.該部分電路原理圖如圖4所示.
3 軟件設(shè)計(jì)
3.1 手持發(fā)送端軟件設(shè)計(jì)
發(fā)送端控制器完成初始化后,把nRF24L01配置成PTX工作模式.然后不斷檢測(cè)按鍵是否按下,若有按鍵按下,則執(zhí)行相應(yīng)的操作.同時(shí)啟動(dòng)定時(shí)器,每隔一段時(shí)間讀取一次差分信號(hào)狀態(tài)并向機(jī)床接收端發(fā)送一次數(shù)據(jù),將手持端的狀態(tài)發(fā)送給接收端.發(fā)送端軟件流程圖如圖5所示.
nRF24L01的數(shù)據(jù)傳輸模式有ShockBurst和EnhancedShockBurst 兩種數(shù)據(jù)包.后者比前者多了一個(gè)確認(rèn)數(shù)據(jù)傳輸?shù)男盘?hào),保證數(shù)據(jù)傳輸?shù)目煽啃?現(xiàn)按后一種模式初始化,nRF24L01發(fā)送數(shù)據(jù)包后,自動(dòng)切換到接收模式以接收返回的確認(rèn)信號(hào),當(dāng)收到確認(rèn)信號(hào)后,IRQ 引腳產(chǎn)生中斷信號(hào),如果沒(méi)收到返回信號(hào),則自動(dòng)重新發(fā)送,如果重新發(fā)送的次數(shù)超過(guò)在設(shè)定值時(shí),也會(huì)在IRQ引腳產(chǎn)生中斷信號(hào),MCU通過(guò)查詢STATUS寄存器的值,即可判斷是發(fā)送完成中斷,還是重發(fā)次數(shù)超限中斷.
3.2 機(jī)床接收端軟件設(shè)計(jì)
機(jī)床接收端軟件流程圖如圖6 所示.接收端控制器完成初始化后,把nRF24L01 配置成PRX 工作模式.
接收到數(shù)據(jù)包后,由硬件解析地址數(shù)據(jù)和信息數(shù)據(jù),當(dāng)接收到有效信息數(shù)據(jù)后,在IRQ引腳產(chǎn)生中斷通知處理器讀取數(shù)據(jù).控制器首先核對(duì)數(shù)據(jù)中識(shí)別碼部分是否有效,若有效則將控制信號(hào)還原.否則,丟棄該數(shù)據(jù)包.
4 設(shè)備對(duì)碼
由于2.4 GHz頻段沒(méi)有使用授權(quán)限制,目前家用電器.手機(jī).無(wú)線網(wǎng)絡(luò)都集中在此頻段,干擾問(wèn)題難以避免.
為了避開干擾,采用了設(shè)備對(duì)碼技術(shù).在發(fā)送端和接收端同時(shí)按下對(duì)碼鍵后,發(fā)送端隨機(jī)生成一個(gè)8位的識(shí)別碼發(fā)送給接收端,機(jī)床接收端收到后發(fā)送確認(rèn)對(duì)碼成功信號(hào)給手持發(fā)送端,并將該識(shí)別碼保存在E2PROM中.在正常工作狀態(tài)下,發(fā)送端在發(fā)送數(shù)據(jù)時(shí)將識(shí)別碼作為數(shù)據(jù)的一部分,一起發(fā)送.接收端在接收到信號(hào)時(shí)核對(duì)識(shí)別碼,若相同則進(jìn)行相應(yīng)處理,否則不作出響應(yīng).這樣做可以在很大程度上減少干擾.
5 結(jié)語(yǔ)
本文介紹了基于nRF24L01的數(shù)控機(jī)床無(wú)線手輪的硬軟件設(shè)計(jì)要點(diǎn).由于考慮到工控場(chǎng)合的特殊性,在設(shè)計(jì)時(shí)著重考慮了系統(tǒng)的穩(wěn)定性.本次設(shè)計(jì)的無(wú)線手輪在其正常工作距離內(nèi)能夠穩(wěn)定的將手持端產(chǎn)生的差分脈沖信號(hào)和按鍵控制信號(hào)發(fā)送給接收端,從而正??刂茩C(jī)床的移動(dòng).在信號(hào)傳輸不穩(wěn)定時(shí)也不會(huì)造成機(jī)床誤操作.手輪的最大工作距離主要取決于天線在選擇.經(jīng)測(cè)試,使用PCB板載天線,空曠直線傳播距離在15 m左右,而在有障礙物的環(huán)境下,其傳輸距離也可達(dá)5~10 m.如果使用功放和外置天線,傳輸距離可達(dá)幾百米。
-
單片機(jī)
+關(guān)注
關(guān)注
6067文章
44991瀏覽量
650389 -
控制器
+關(guān)注
關(guān)注
114文章
17105瀏覽量
184249 -
無(wú)線
+關(guān)注
關(guān)注
31文章
5555瀏覽量
176019
發(fā)布評(píng)論請(qǐng)先 登錄
nrf24l01無(wú)線模塊的特點(diǎn)分析
NRF24L01無(wú)線模塊的相關(guān)資料分享
高速無(wú)線射頻芯片nRF24L01及其應(yīng)用
NRF24L01 無(wú)線通信芯片資料

基于nRF24L01的數(shù)據(jù)無(wú)線傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
NRF24L01無(wú)線模塊_2.4G無(wú)線通信模塊_24L01+升級(jí)
nrf24l01無(wú)線模塊傳輸距離分析
nRF24L01無(wú)線模塊使用教程之經(jīng)典使用程序詳細(xì)資料合集免費(fèi)下載
微雪電子NRF24L01 RF Board 2.4G無(wú)線模塊簡(jiǎn)介

nRF24L01無(wú)線通信模塊使用簡(jiǎn)介

NRF24L01無(wú)線通信介紹

評(píng)論