登錄  |  注冊
河北華利機械配件有限公司

基于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兩種數據包。后者比前者多了一個確認數據傳輸的信號,保證數據傳輸的可靠性?,F按后一種模式初始化,nRF24L01發送數據包后,自動切換到接收模式以接收返回的確認信號,當收到確認信號后,IRQ引腳產生中斷信號,如果沒收到返回信號,則自動重新發送,如果重新發送的次數超過在設定值時,也會在IRQ引腳產生中斷信號,MCU通過查詢STATUS寄存器的值,即可判斷是發送完成中斷,還是重發次數超限中斷。
3.2    機床接收端軟件設計
        機床接收端控制器完成初始化后,把nRF24L01配置成PRX工作模式。接收到數據包后,由硬件解析地址數據和信息數據,當接收到有效信息數據后,在IRQ引腳產生中斷通知處理器讀取數據[10]??刂破魇紫群藢祿凶R別碼部分是否有效,若有效則將控制信號還原。否則,丟棄該數據包。4設備對碼由于2.4GHz頻段沒有使用授權限制,目前家用電器、手機、無線網絡都集中在此頻段,干擾問題難以避免。為了避開干擾,采用了設備對碼技術。在發送端和接收端同時按下對碼鍵后,發送端隨機生成一個8位的識別碼發送給接收端,機床接收端收到后發送確認對碼成功信號給手持發送端,并將該識別碼保存在E2PROM中。在正常工作狀態下,發送端在發送數據時將識別碼作為數據的一部分,一起發送。接收端在接收到信號時核對識別碼,若相同則進行相應處理,否則不作出響應。這樣做可以在很大程度上減少干擾。
5    結語
        本文介紹了基于nRF24L01的數控機床無線手輪的硬軟件設計要點。由于考慮到工控場合的特殊性,在設計時著重考慮了系統的穩定性。本次設計的無線手輪在其正常工作距離內能夠穩定的將手持端產生的差分脈沖信號和按鍵控制信號發送給接收端,從而正??刂茩C床的移動。在信號傳輸不穩定時也不會造成機床誤操作。手輪的最大工作距離主要取決于天線在選擇。經測試,使用PCB板載天線,空曠直線傳播距離在15m左右,而在有障礙物的環境下,其傳輸距離也可達5~10m。如果使用功放和外置天線,傳輸距離可達幾百米。
華利膠木手輪