董文潤,易會磊,黃書成
(天信儀表集團有限公司,浙江 溫州 325800)
目前能源緊張與環境污染問題日趨嚴重,全球正在推進高效、清潔、多元化能源轉型,天然氣作為一種清潔、廉價的能源成為首選,未來將成為全球第一大消費能源。天然氣和水、電能源一樣,在貿易計量結算時,傳統抄表方式往往采用外勤人員上門巡檢、抄表,人工抄表頻次低、效率低、管理成本較高,且對儀表本身來說,儀表狀態、故障反饋的實時監控度差等產生的供銷差問題一直存在。而在非貿易的工業計量、過程監控領域,傳統多采用有線的通信方式,例如RS485總線、4mA~20mA、HART等。有線方式存在架設成本較高、傳輸距離有限、易受外部干擾、可靠性較低等缺點。
隨著互聯網和無線通信技術的不斷發展,物聯網技術成為又一次信息產業的革命,于是基于新一代物聯網技術的智能燃氣表應運而生。應用于智能儀表的物聯網業務的無線通信技術按距離可分為兩類,一種為廣域低功耗的物聯網技術以LoRa、Sigfox、GPRSCDMA、NB-IoT、LTE Cat-m等為代表,一種為短程無線技術以Zigbee、Bluetooth、Wi-Fi、RF射頻等為代表。綜合考慮應用場景和技術特點認為作為新物聯網技術的NB-IoT和BLE低功耗藍牙更符合無線通信修正儀的應用要求?;诖嗽O計了一種基于藍牙的可充電外掛轉換模塊[3-5]。

圖1 藍牙模塊原理框圖Fig.1 Bluetooth module schematic

圖2 指示燈原理圖Fig.2 LED schematic
由于藍牙轉換模塊要求體積小,所以微處理器需為小封裝,再從性價比穩定性方面考慮,PIC24FV32KA301可為不錯的選擇。PIC24FV32KA301是Microchip公司生產的一款具有XLP技術的20腳SSOP封裝通用16位閃存單片機,具備雙串口,FLASH空間32K,SRAM空間2K,并且具有以下一些特點:
1)超低功耗
PIC24FV32K301工作在8MHz時鐘條件下時,休眠模式(CPU、閃存以及外設不工作,SRAM工作)電流為8uA,工作電壓為2.0V~5.5V。
2)模擬特性
最多16路通道的12位模數轉換器,100ksps轉換速率,休眠和空閑期間可進行轉換,可選擇片內參考電壓。
3)其他特殊性能
用于休眠/深度休眠的超低功耗喚醒(ULPWU)功能;標準看門狗定時器(WDT),帶片上低功耗RC振蕩器以便可靠工作;通過兩個引腳進行在線編程(ICSP)和在線調試(ICD)。
藍牙轉換模塊的串口二通過UART接口與藍牙模組相連,串口一通過RS485芯片實現與流量計相連[2]。
選用綠鯨科技有限公司的E66A標準透傳模組,小尺寸(21mm×12.6mm),板載天線,模塊功耗低,支持BLE4.0/4.2通信協議。經過前期的反復測試,最后將模組參數配置確定為2s間隔廣播、100ms間隔連接、19200串口波特率、-12dBm發射功率、TANCY+6個字節設備名稱,模組2s間隔廣播時(一直有信號)功耗為10uA,處于100ms連接狀態時功耗為60uA,該參數模式下藍牙信號覆蓋范圍約為2m。
該藍牙模組具有以下特點:
跳頻:使用所有藍牙規范版本通用的自適應跳頻,最大程度地減少和其他2.4GHz ISM頻段無線技術的串擾。
主控制:更加智能,可以休眠更長時間,只在需要執行動作的時候才喚醒。延遲:最短可在3ms內完成連接設置并開始傳輸數據。健壯性:所有數據包都使用24-bitCRC校驗,確保最大程度抵御干擾。
安全:使用AES-128 CCM加密算法進行數據包加密和認證[4,5]。
藍牙轉換模組在與流量修正儀進行通訊的同時,還需要為流量修正儀提供24V外電源,采用AIC1896升壓芯片將3.7V鋰電池電壓升壓成24V,升壓芯片不使能時輸出電壓等于輸入的鋰電池電壓,鋰電池電壓通過LT1521-3.3穩壓芯片給藍牙芯片和MCU提供電源。TP4056是一款完整的單節鋰電池線性穩壓器,可以通過USB Type-C數據線和電源適配器對電池進行充電。當電池電壓小于3.4V時,就需要用USB Type-C數據線給藍牙模塊充電,2~3個小時即可充滿,充滿電時電池電壓為4.1V[1]。
藍牙轉換模組上面一共有3個模組狀態LED指示燈,D12燈亮起時表示模塊成功連上手機,熄滅時表示與手機斷開;D14燈亮起時表示藍牙模組有數據發給MCU;D13燈亮起時,表示藍牙模組處于喚醒狀態,此時MCU正有數據傳輸給藍牙模組,熄滅時藍牙模組處于休眠模式[5]。
藍牙轉換模組采用低功耗方式進行通信處理,利用串口中斷喚醒MCU。當藍牙轉換模組與手機APP沒有數據通訊時,MCU處于休眠模式,此時藍牙轉換模組有兩種狀態:一種是處于廣播狀態,但未與手機APP連接,整個電路板功耗為100uA;一種是處于廣播狀態,并與手機APP連接,整個電路板功耗為150uA。在沒有與手機APP進行數據通訊狀態下電池可以運行2年。
當MCU檢測到手機APP有報文數據下傳,串口二在接收數據時,MCU同時使能升壓電路輸出24V給修正儀供電,并退出休眠模式,打開內部定時器,喚醒藍牙模組,定時1.5s后通過串口一轉發串口二接收的命令報文數據(例如讀實時數據命令、讀歷史數據命令等),當流量計接收到命令后,回傳數據包給串口一。串口一接收的數據如果超過200個字節,則需要分包發送(藍牙模組單次最多只能發送200個字節,而后需要延時至少5ms,否則會導致藍牙模組擁塞造成數據不能成功發送),即串口一每接收200個字節,串口二就用查詢方式轉發這200個字節,同時串口一持續在接收新的數據,等最后接收到的不大于200個字節的一幀數據接收發送完,則MCU將一些標志字節恢復為初始狀態并執行不使能升壓電路、休眠藍牙模組、定時器關閉、進入Sleep模式等操作以保證低功耗,如果超過3s串口一沒有收到回傳數據,則認為數據掉線,MCU執行以上同樣的操作。軟件使用芯片內部看門狗,2.5s溢出,在主函數中執行喂狗指令,有數據通訊時打開內部看門狗,無數據通訊時MCU處于休眠模式時,關閉內部看門狗[1,2]。

圖3 MCU軟件流程圖Fig.3 MCU Software flowchart

圖4 手機APP界面Fig.4 Mobile APP interface
手機APP是基于安卓系統開發的智能手機應用程序,打開軟件后要先搜索藍牙信號,當搜到藍牙模塊的ID“TANCY +6個字節”時,點擊連接,一個藍牙模塊只能同時被一個手機APP連接,即點對點網絡,手機APP是主機,藍牙模塊是從機。前期經過反復測試,當修正儀上傳的數據量比較大時,例如上傳小時記錄往往有幾十K或者幾百K個字節,這時將藍牙模組的連接間隔設置為100ms就可以完整地將這么多數據發送給手機。連接間隔100ms的意思就是E66藍牙模組每隔100ms將收到的數據發送出去,還有一個MTU參數(Maximum Transmission Unit,最大傳輸單元)以設置為100為最佳,這個參數需要主機手機APP設定。
為了響應國內燃氣計量和儀表智能化、物聯網化的號召,本文設計了一款基于藍牙的可充電外掛轉換模塊。該模塊采用藍牙無線技術,具有低發射功率、低成本和短距離通信以及PIC單片機穩定低功耗的特點,可方便快捷地對氣體流量計修正儀進行參數配置和數據讀取。相信隨著藍牙無線通信和移動互聯技術的普及,該模塊會得到廣泛的應用[2,3,5]。