創客和專業工程師都越來越多地采用無線連接來增強項目功能,并將其連接到物聯網 (IoT)。此類項目所用的單板計算機 (SBC) 通常集成了藍牙和 Wi-Fi,但對于更遠的距離,蜂窩接口是一種很好的替代方案。
盡管蜂窩調制解調器能夠提供更遠的距離,但缺點是增加了項目的復雜性、尺寸、成本和功耗,而且還必須滿足授權頻譜分配方面的監管法規。
本文探討將蜂窩模塊用于創客項目無線連接的優勢,并介紹在實施過程中出現的硬件、軟件和法規方面的挑戰。
之后,本文還給出了解決方案,幫助克服創客和設計人員在利用基于蜂窩的遠距離射頻連接時所面臨的挑戰。
蜂窩連接的優勢(和缺點)
當今的低功耗藍牙和 Wi-Fi 技術雖然也在醞釀變化,但目前還不支持直接連接到物聯網。相比之下,智能手機則可以與低功耗藍牙、Wi-Fi 和(蜂窩)物聯網進行互操作。因此,可將其用作創客項目 SBC 等以無線方式連接的設備與云之間的網關。類似地,Wi-Fi 路由器和電纜調制解調器也能構成適用于支持 Wi-Fi 的 SBC 的網關(圖 1)。
圖 1: 低功耗藍牙(之前稱為智能藍牙)和 Wi-Fi 等無線技術需要路由器或網關才能訪問互聯網,因而限制了傳感器的移動性和距離。蜂窩模塊可直接連接到其他支持 IP 的設備,因此不需要路由器或網關。(圖片來源: Nordic Semiconductor)
對許多創客應用而言,通過網關進行的物聯網連接是一種令人滿意的解決方案。但如果傳感器移到網關的無線范圍以外(對于低功耗藍牙和 Wi-Fi,超過 30 到 100 米之外),連接將會中斷。這一限制導致創客無法開發置于遠程位置或持續移動的項目。蜂窩模塊提供了一種解決方案。
蜂窩模塊并非什么新事物。圍繞該技術已發展出一個提供機對機 (M2M) 應用的龐大產業。例如,處于遠程位置的自動售貨機通常通過蜂窩鏈路連接到公司的計算機。鑒于從頭設計蜂窩調制解調器的難度極大,該解決方案以經過測試、驗證和認證的即插即用模塊的形式提供。
蜂窩模塊制造商現在提供專門面向創客的產品,能夠兼容 Microchip Technology、Arduino 和 Adafruit 等供應商提供的常用 SBC。利用蜂窩模塊,創客項目 SBC 無需使用網關,便可以將數據直接發送到另一臺通過互聯網連接的遠程設備,例如創客的智能手機(當其遠離 SBC 時)或云服務器。而且,蜂窩調制解調器還能提供遠達數十千米的距離,從而將無線創客項目的范圍擴大至遠遠超過家庭范圍。而且,使用蜂窩調制解調器,在將無線設備添加到 LAN 時不需要極不方便的密碼輸入過程。
蜂窩通信使用授權頻率。盡管存在一定的使用費用,但優點是這些頻率得到了嚴格的控制,相對而言避免了困擾 2.4 Ghz 等免授權頻段的擁塞問題和相關干擾。獲取網絡訪問權限的過程與手機采用的過程相同;用戶需要訂閱本地運營商的服務。之后,他們將獲得一個用戶標識模塊 (SIM),插入此模塊時將會進行驗證,從而根據合同條款實現一定數量的數據上傳和下載。
除了許可證費用之外,蜂窩連接還存在一些其他缺點。相對而言,這些模塊的體積和重量較大,價格比較昂貴,功耗也遠大于低功耗藍牙和 Wi-Fi。而且,直接連接到蜂窩網絡要比連接到智能手機或路由器更為復雜。
此外,商用領域存在多種蜂窩技術(例如 GSM、GPRS 和 CDMA),每種技術又有多代(2G、2.5G、3G 和 4G),全球范圍內有數十個蜂窩頻帶。因此,針對特定地點選擇蜂窩模塊需要慎之又慎。
請注意,2G 模塊的價格通常最低,但需要注意的是,運營商正在逐步淘汰這種較舊的技術,雖然這一過程可能需要多年的時間。
蜂窩模塊在創客項目中隨處可見
有了蜂窩模塊,現在創客需要做的只是確保模塊的物理接口與目標 SBC 的物理接口匹配,簽訂運營商合同,插入 SIM,然后選擇相應的天線。
蜂窩模塊制造商爭先恐后地進入迅猛發展的創客市場,并提供通過針座引腳或電纜直接連接常用 SBC 的單元。例如,MikroElektronika 在其 Click Board 系列提供了大量蜂窩模塊,可通過機械連接器直接連接 Microchip 的 Curiosity SBC。
這些 SBC 使用 Microchip 的 8 位、16 位或 32 位 PIC 微控制器,并包含帶 USB 接口的集成編程器/調試器;mTouch 按鈕、模擬電位計、開關和 RGB LED;最關鍵的是,支持 MikroElektronika 的 mikroBUS 接口(圖 2)。
這些 SBC 可使用 Microchip 的 MPLAB X 集成開發環境 (IDE) 進行編程,而 8 位和 16 位微控制器版本則可使用 MPLAB Xpress IDE 進行編程,后者適合不太熟悉 PIC 微控制器的創客。
圖 2: Microchip 的 Curiosity SBC 使用 mikroBUS 接口,因而能夠輕松地連接一個 2.5G GSM/GPRS Click Board 蜂窩模塊。(圖片來源: Microchip Technology)
MikroElektronika 的 GSM 4 click 通過針座引腳連接到 Curiosity SBC,并直接從該 SBC 獲取 3.3 伏或 5 伏電壓。該蜂窩模塊基于 u-blox SARA-G3 系列 2.5G GSM/GPRS 調制解調器,該調制解調器集成了一個射頻收發器和一個功率放大器以實現更遠的應用距離(圖 3)。SARA-G3 專為 M2M 應用而設計,因此非常適合只需要跨蜂窩物聯網發送較少傳感器數據的創客。
該蜂窩調制解調器包含 Ipv4 和 Ipv6 通信協議,因此可與互聯網上任何其他支持 IP 協議的設備進行互操作。四頻版本的 SARA-G3 已經面市,可以在北美、南美和中美地區所用的 850 和 1900 Mhz 頻段,以及歐洲、非洲、中東和亞洲地區所用的 900 和 1800 Mhz 頻段運行。
圖 3: MikroElektronika 的 GSM 4 click 基于此處顯示的 u-blox SARA-G3 調制解調器。該調制解調器集成了功率放大器 (PA) 以擴大應用范圍。(圖片來源:u-blox)
除了發送和接收數據之外,GSM 4 click 還能對電話呼叫或信息做出響應和反應。它包含一個天線連接器(但不含天線)和一個 SIM 卡插座。與 PIC 微控制器的通信是通過 UART 連接或 USB 端口進行的。
MikroElektronika 針對其 Click Board 產品提供了 mikroC IDE。其中包括 Visual TFT,一個“所見即所得”的圖形用戶界面設計工具,和一個功能完備的 C 編譯器。
對于熟悉使用 UART 連接、通過 3 到 5 伏電源運行的 Arduino SBC 的創客而言,Adafruit 的 FONA 808 蜂窩 + GPS 分線提供了一種很好的選擇(但它也能與幾乎所有微控制器配合使用)。該模塊是一個具備 GPS 和 GPRS 數據發送與接收功能的四頻 (850/900/1800/1900 Mhz) GSM 2G 無線電。例如,必須將一個 16 針針座焊接到分線引腳孔,才能將該模塊連接到 Arduino SBC。
圖 4: Adafruit 的 FONA 808 非常適合與 Arduino SBC 配合使用。與其他蜂窩調制解調器一樣,它也需要 SIM 卡和天線。(圖片來源:Adafruit)
如果開發人員想要利用 3G 的速度和帶寬優勢,SparkFun Electronics 的 Particle Electron 3G 套件不失為一個很好的選擇。該套件提供兩個版本:一個適用于 850/1900 Mhz 工作頻段,另一個適用于 900/1800 Mhz 工作頻段。
套件中不僅包含蜂窩模塊(另一個 u-blox SARA 供電單元),還集成了一個 STMicroelectronics STM32 ARM? Cortex?-M3 微控制器,如果愿意,可以獨立于 SBC 工作。Electron 套件附帶了用于設備編程的 Particle IDE 和云平臺。Particle IDE 類似于 Arduino 開發平臺。
與一些其他面向創客應用的蜂窩模塊不同,Particle Electron 套件非常完整,附帶了 SIM 卡、為期 3 個月的 1 MB/月的數據計劃、2000 mAh 鋰電池(該器件也可通過外部電源供電)、天線,以及用于原型開發的試驗板。
與蜂窩調制解調器通信
連接蜂窩模塊并收發數據需要一定的編碼技能,但這些技能不會超過熟悉 Arduino 等 IDE 的創客為微控制器編程所需的技能范圍。
SBC 通常與使用 UART 串行鏈路的蜂窩模塊通信。AT 命令是控制蜂窩調制解調器的標準方法。該命令包含一系列短文本字符串,可以將這些字符串進行組合,以生成撥號、掛斷和更改連接參數等操作。
有兩種類型的 AT 命令: 基本命令是不以“+”開頭的命令。“D”(撥號)、“A”(應答)、“H”(勾控制)和“O”(恢復在線數據狀態)都是基本命令的示例(列表 1)。
void gsm4_init( void )
{
engine_init( gsm4_evn_default );
at_cmd_save( "RING", 1000, NULL, NULL, NULL, gsm4_ev_ring );
at_cmd( "AT" );
at_cmd( "AT+CSCS="GSM"" );
at_cmd( "AT+CMGF=1" );
}
列表 1: 此代碼示例在測試例程中使用 AT 命令拒絕蜂窩模塊所接到的通話。(代碼來源: MikroElektronika)
擴展命令是以“+”開頭的命令。例如,“+CMGS”(發送 SMS 信息)、“+CMGL”(列出 SMS 信息)和“+CMGR”(讀取 SMS 信息)。請注意,GSM 僅使用擴展命令。
“最終結果”代碼標記 AT 命令響應的結束。它表明 GSM 模塊已完成命令行的執行。“OK”和“ERROR”是兩個經常用到的最終結果代碼?!癘K”代碼表示命令行已成功執行。“ERROR”代碼表示在蜂窩模塊嘗試執行命令行時出現錯誤。發生錯誤后,蜂窩模塊將不會處理命令行字符串中剩余的 AT 命令。
AT 命令的語法因模塊制造商而異。此外,模塊可能只能響應 AT 命令的子集,但專為無線應用設計的蜂窩模塊對 AT 命令的支持通常要優于普通手機。創客應該從各個模塊制造商的 AT 命令參考指南中尋求建議,而且這些指南還能告知創客如何對 AT 命令進行格式化,以及如何解釋蜂窩模塊的響應。
但每個調制解調器都能響應四條基本 AT 命令:
“設置”命令 [At+<參數>=<值>] 用于存儲值。
例如, AT+CREG=1 // Set Command
“提取”命令 [AT+<參數>?] 用于讀取存儲的值。
例如,AT+CREG? // Get Command
測試命令 [At+<命令>=?] 用于確定支持的值范圍。
例如,AT+CREG=? // Test Command
執行命令 [At+<參數>] 用于調用蜂窩調制解調器的特定功能。
例如,AT+CREG // Execution Command
其他通用(和實用)AT 命令包括:
-
移動網絡注冊狀態 (AT+CREG)
-
無線電信號強度 (AT+CSQ)
-
電池電量水平和電池充電狀態 (AT+CBC)
-
與遠程調制解調器建立數據連接(ATA、ATD 等)
-
執行安全相關的任務,例如更改密碼 (AT+CPWD)
-
獲取或更改蜂窩模塊的配置。例如,更改 GSM 網絡 (AT+COPS) 或無線電鏈路協議參數 (AT+CRLP)
AT 命令的發送和接收均由特定的 SBC、IDE 和所選的編程語言通過串行通信鏈路實現。蜂窩模塊不知道串行鏈路的另一端是什么,而只是響應跨鏈路發送的 AT 命令。(類似地,SBC 也不知道其連接的是蜂窩模塊)。
蜂窩模塊通常具有多個 UART I/O,其中一些具有專用功能。例如 GSM 4 click 的引腳 14 是專門的數據發送輸出,而引腳 13 是專門的數據接收(圖 5)。
圖 5: 蜂窩調制解調器通常采用多個 UART I/O,其中一些具有特定功能。(表格來源: MikroElektronika)
例如,當采用 Curiosity SBC 和 GSM 4 click 蜂窩模塊時,借助 AT 命令的不可知性,開發人員可以采用 Microchip MPLAB X、MPLAB Xpress 或 MikroElektronika mikroC IDE。在用戶從 GitHub 存儲庫下載 Adafruit FONA 庫并將其移到 Arduino 庫文件夾后,FONA 808 便可以使用 Arduino IDE 進行編程。
在制造商的開源代碼庫中通??梢哉业綆缀跛蟹涓C模塊操作的 AT 命令。MikroElektronika 的 AT 命令可以在 libstock.mikroe.com 找到,而 Adafruit 的 AT 命令則位于 GitHub 存儲庫中。其他 AT 命令源來自蜂窩調制解調器的制造商。例如,u-blox 撰寫了一篇應用說明,提供了幾乎涵蓋所有使用場景的 AT 命令示例(參考資料 1),而 Adafruit 則提供了一本列有 SIM Tech AT 命令的手冊。
總結
蜂窩模塊為所有場景下需要物聯網連接的創客項目提供了“插件式”解決方案(前提是項目在蜂窩基站范圍以內)。市場上有一系列成熟的 2G、2.5G 和 3G 蜂窩模塊能夠與流行的創客 SBC 完美匹配,而硬件考慮范圍僅限于選擇和匹配相應的天線、機械連接器及電池。由于蜂窩網絡需要授權,因此還需要使用 SIM 卡并簽訂數據合同。
-
低功耗
+關注
關注
10文章
2362瀏覽量
103607 -
智能藍牙
+關注
關注
9文章
130瀏覽量
32758 -
蜂窩模塊
+關注
關注
0文章
6瀏覽量
3394
發布評論請先 登錄
相關推薦
評論