◎冉菲帆 曹涌 郭建巍
科技和創新是促使一個國家向前邁進的重要因素。工業和農業一直是國家發展的重要產業,而提到農業,首先要考慮的就是植被的灌溉問題,目前常見的灌溉方式主要是人工灌溉和噴灑式灌溉,然而,在現代化的今天,傳統的灌溉方式存在的弊端日益明顯,因此,只有將科學技術與農業結合起來,才能進行更加高效的灌溉。在整個校園智能灌溉系統中,最為重要且關鍵的模塊,就是實現主機和從機的無線通信,在經過實際測試之后,我們發現nRF24L01 芯片無疑是最適合的。
nRF24L01 的輸入地址、輸出功率和通信頻道都可以通過程序來進行設置,提供了可控性和多樣性,并且適合多個設備之間進行通信。它的溫度范圍和工作濕度跨度非常大,這使它可以很輕松的保證在各種惡劣天氣環境下運行,它最高工作速率能達到2Mbps,且具有超強的抗干擾能力,不用擔心在工作時被其他信號所干擾。它的內部設有專門的穩壓電路,再加上具有自動應答機制和CRC 校驗功能,使其不會因為電源和信號的波動而影響通信效果,保證了數據通信高效穩定的進行。
八引腳接口的設計使它功能十分的全面,其中除了GND 和VCC 外,共有四個接口負責數字輸入,兩個接口負責數字輸出,此芯片對于單片機的要求比較低,即使是沒有集成SPI 功能的單片機也可以很容易的控制本模塊,用普通的單片I0 口模擬SPI 時序進行讀寫操作就可以。負責數字輸入的管腳 CE、CSN、SCK、MOSI 分別代表的是收發模式切換控制端口、SPI 片選使能端,且對低電平有效、SPI 時鐘、SPI 從設備數據輸入;負責輸出的管腳MISO、IRQ分別代表SPI 從設備數據輸出以及工作狀態指示。
nRF24L01主要有四種工作狀態,分別為發送狀態、接收狀態、空閑狀態和掉電狀態。
CE、PRIM_RX register、PWR_UP register 這三種組合來決定當前所處的工作狀態。其中收發模式是四種模式中的核心模式,在增強ShockBurstTM 收發模式下,要使用到先入先出算法,使用此堆棧區,可以把數據從微控制器中以一個較低的速度送出,之后用較高的速度發射,這樣做的好處,一是系統費用低,因為不管是高速射頻還是低速射頻都可以使用低速的微處理器,這樣就大大節省了費用;二是抗干擾性強,由于發射出去的數據的速度是較高的,這也就代表數據在空中停留較短的時間,越短的時間,數據被干擾的可能性就越小,同時在很大程度上減少了整個灌溉系統的平均電流。
1.發送模式。
首先,為了可以使它的工作模式為發射模式,要對CONFIG 寄存器進行相應的配置,然后把數據和接收節點的地址依次按時序寫入緩沖區,通過MCU 把CE 置1并保持至少10us,在發射的過程中首先需要給射頻前端提供電量,然后對需要發送的數據(射頻數據)進行打包,也就是前面提到的添加字頭和CRC 校驗碼,最后利用其高速發射的特點把打包好的數據以較快的速度發射出去。
2.接收模式。
總體來說,接收數據的流程與發送數據的流程是類似的,先對CONFIG 寄存器和地址及數據進行相應的配置,將地址和數據寫入緩沖區,之后把CE 置為1 并保持大約130us,之后將會進入監視狀態以等待數據包的到來,一旦接受到數據包,通過對字頭、地址、CRC 的檢測來判斷接受到的數據包是否正確,在正確的情況下nRF24L01 會自動把它們移除,接下來nRF24L01 會將狀態寄存器置位來通知MCU,此時的微控制器就會產生中斷,把輸入的數據從芯片內讀出,最后當所有的數據都已經讀出來以后,它可以清除掉STATUS 寄存器,并使得nRF24L01 進入之前介紹過的四種工作模式之一,以此循環。
3.待機模式和關機模式。
待機模式最大的特點就是通過減小平均工作電流來降低功耗,這種狀態下為22uA,這在一定程度上極大地減少了能源的損耗,并且能夠縮短芯片的啟動時間,在這種模式下晶體振蕩器依然是工作的。需要注意的是,在待機狀態下,它會對所有的配置字進行保留,不會丟失。關機狀態下的電流損耗是最小的,此時它雖然不工作,但是所有配置寄存器的值也是保留的。
nRF24L01 是先通過同步串行外設接口(SPI)來訪問配置寄存器,然后通過配置寄存器來進行配置字的定義的,這些配置寄存器可通過SPI 口訪問,一共有8 個與其有關的控制指令,nRF 芯片的MOS(IMaster Input Slave Output)輸入來進行使用,然后把數據輸出給微控制單元。它是采用先傳送低比特位,再傳送高比特位的方式來進行數據的傳輸,傳輸速率最大能達到10 Mb/s,但是對于單個字節而言是不同的,它對單個字節的傳輸要先送高比特位。
nRF24L0 共有25 個配置寄存器,其中較為常用的如下表所示:

?
其主要的配置參數分別有:數據寬度、地址寬度、接收通道、CRC 校驗、工作頻率、發射頻率和通信頻率等。數據寬度:也就是數據包中的數據所占用的位數,它的存在可以讓芯片很清晰的分出來數據包中的數據和CRC 校驗碼,使得數據的傳輸更具有目的性;地址寬度:我們都知道,在傳輸的數據包中,一定會帶有源地址,而地址寬度的存在就可以讓芯片很輕松的把地址和數據發開來;接收通道:顧名思義,接受通道也就是接受地址,即數據即將到達的地址,通常情況下,有通道0 到通道5 的地址;CRC 校驗:這個參數的存在目的就是為了使芯片學會如何生成和接觸CRC 校驗碼,使用此技術時,一定要保證配置字,也就是 CONFIG 中的 EN_CRC 中的 CRC 校驗被使能,并且還有比較重要的一點就是,發送和接收使用的協議必須一致;工作效率:常規的工作頻率間隔為1M 赫茲,所以建議設置在2.4 到2.5G 赫茲這個范圍內;發射功率:發射功率也就是數據以高速發出時的速率,它的大小對于通信的距離以及整套系統的耗能起到了決定性的作用;通信速率:主機與從機之間進行通信的功率,基本上有兩種情況可以選擇設置,分別為1Mbps 和2Mbps。當把這一系列的參數都按照工作情況設置完成后,nRF24L01+就可以進入收發模式,從而進行整個系統的流程暢通。
在校園自動灌溉系統中,nRF24L01 芯片的主要作用是實現主機和從機之間的無線通信。前面我們已經從芯片特性、芯片內部結構、芯片工作模式及配置方法等多個方面介紹了nRF24L01,從功能特性上,它具備高效的GFSK 調制,抗干擾能力強,且滿足多點通信和跳頻通信的需要。從使用者的角度,它簡單易操作性也是給用戶提供了便利的服務,可以通過軟件設置地址,在收到本機地址時會輸出數據(提供中斷指示),而且,可以直接接各種單片機使用,軟件編程十分方便。

圖1.主機

圖2.從機

