999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于LoRa技術的加密無線通信系統設計

2019-12-20 07:55:58趙二剛郭天勇
自動化與儀表 2019年11期

趙二剛,郭天勇

(1.南開大學 電子信息與光學工程學院,天津 300071;2.南開大學 計算機學院,天津 300071)

物聯網技術已經越來越多地融入人們生產生活的各個方面,由于無線通信具有不必鋪設電纜,擴展性、靈活性強等優勢,物聯網中子節點間及子節點和中心節點間的通信一般采用無線的形式。常見的無線通信技術包括Zig-Bee,藍牙(Bluetooth),無線寬帶(Wi-Fi),LoRa等[1-3]。 遠距離無線電 LoRa(long range radio)技術與上述幾種無線通信技術相比具有功耗低、傳輸距離遠、信號穿透性強等優勢[4-6]。鑒于上述原因在此研究了一種基于LoRa技術的無線通信方法,并在通信過程中加入加密機制。所研究的技術方案,可以為物聯網節點間的通信特別是需要數據加密通信的應用場景,提供有益的參考。

1 系統整體方案設計

系統的硬件結構包括無線發送端及無線接收端2個部分。待傳輸的數據以bin文件的形式存儲于發送端的SD卡中。發送端的處理器通過檢測按鍵來觸發一次bin文件的傳輸過程,如果按鍵有效則首先生成密鑰數組,然后開始通過LoRa模塊與接收端進行握手通信,如果握手成功則通過LoRa模塊傳送bin文件,在傳送過程中加入加密機制、拆幀機制、CRC校驗機制[7-10]、錯誤重傳機制及接收超時退出機制。接收端處理器對收到的數據幀進行解密、校驗,最終將數據以bin文件格式存入SD卡中。基于LoRa技術的加密無線通信系統的結構如圖1所示。

圖1 基于LoRa技術的加密無線通信系統框圖Fig.1 Block diagram of encrypted wireless communication system based on LoRa technology

2 系統設計實現

由圖1可見,無線發送端和接收端的硬件結構是一樣的,均利用處理器與LoRa模塊進行通信及利用SD卡實現bin文件的存儲。

2.1 系統硬件設計

2.1.1 嵌入式處理器及SD卡接口

在此,采用意法半導體公司的基于ARM Cortex-M7 32位RISC內核的STM32F767IGT6處理器作為無線收、發端的主控芯片,該處理器工作頻率可達216 MHz,內置1 MB的閃存,512 kB SRAM及多種外設和通信接口。利用該處理器內置的SDIO接口驅動SD卡,SD卡接口部分的電路原理如圖2所示。

2.1.2 LoRa模塊

LoRa無線通信模塊采用安信可公司的LoRa擴頻無線模塊Ra-02。該模塊基于SEMTECH公司的無線收發芯片SX1278設計開發,SX1278芯片采用SEMTECH的LoRaTM專利調制技術,接收靈敏度高達-148 dBm,功率輸出可達+20 dBm,傳輸距離遠,可靠性高。Ra-02模塊采用SPI總線與處理器進行通信,3.3 V供電,該部分的電路原理如圖3所示。

2.2 系統軟件設計

發送、接收端的STM32F767IGT6處理器利用SPI總線和LoRa模塊進行通信。首先初始化該模塊,設置其載波頻率、擴頻因子SF(spreading factor)、編碼率 CR(code rate)、校驗模式、帶寬 BW(bandwidth)等,然后利用LoRa模塊實現數據的無線收發。

圖2 SD卡接口電路Fig.2 SD card interface circuit

圖3 LoRa模塊接口電路Fig.3 LoRa module interface circuit

2.2.1 加密算法

加密主要采用異或及換序算法。假定有randomA、randomB及randomC三個數組,這3個數組的元素均為8位無符號類型(取值范圍0~255)。randomA為收、發端公共密鑰;randomB為換序密鑰;randomC為異或密鑰。

randomA數組共有256個元素,數組中每個元素的值都不相同,并且以常量數組的形式預先存儲在發送及接收端的程序中。假定無線傳輸每幀數據的長度為SEND_LEN個字節,則令RandomB,randomC數組元素的個數為SEND_LEN。

STM32F767IGT6處理器內部集成了硬件隨機數發生器 RNG(random number generator),發生器以連續模擬噪聲為基礎產生32位的隨機數。利用該發生器產生randomB數組。首先,在程序中使能RNG的時鐘,并配置RRNG_CR寄存器來初始化RNG,待RNG準備就緒后就可以調用STM32F7處理器HAL庫的HAL_RNG_GetRandomNumber函數產生隨機數;對所產生的隨機數進行取模處理,可以產生指定范圍的隨機數,即RNG產生的隨機數對SEND_LEN進行取模,就可以產生0~SEND_LEN-1范圍內的隨機數。令randomB數組每個元素的初始值均為0,把利用所述方法產生的隨機數填充到該數組中,同時地址下標加1。其填充規則是每次產生的隨機數與數組中已經填充的所有元素都不相等才能填充。這樣當地址下標加到SEND_LEN時,randomB數組中的元素即為互不相等的隨機數且取值范圍為0~SEND_LEN-1。

randomC數組由數組randomA與randomB按照式(1)異或得到。即:

式中:randomC[i]為randomC數組中的第i個元素。發送端在傳輸bin文件時,將文件拆分成若干幀,每幀SEND_LEN-4個字節,最后一幀(“尾幀”)長度可能少于SEND_LEN-4。然后對每一幀加入幀序(2 B)及CRC16校驗值(2 B),這樣每一幀的總長度仍為SEND_LEN個字節。另外,將bin文件的長度(4 B)、文件內容的CRC32校驗值(4 B)及randomB數組整合成一幀,再加入幀序及CRC16校驗值最終封裝成“首幀”。在傳輸文件時,“首幀”和“尾幀”采用與randomA數組異或的方式加密,其他幀的加密方式為先異或再換序:先與randomC數組異或得到buf數組,然后buf數組再根據randomB數組換序最終得到buf_chv數組。異或的方法同式(1),換序方法為

式中:buf_chv數組為最終發送給接收端的加密數據,buf_chv[i]為buf_chv 數組中的第 i個元素。根據發送端的加密算法及異或運算的特性,接收端對“首幀”和“尾幀”采用與randomA數組異或的方式即可進行解密,然后就可以得到randomB數組,再根據式(1)進而得到randomC數組。其他幀先根據式(2)換序然后再與randomC數組異或進行解密。

2.2.2 發送端和接收端的程序流程

發送端的STM32F767IGT6處理器在上電或復位后,首先初始化LoRa模塊,然后檢測按鍵。如果按鍵被按下,則生成randomB及randomC數組,讀取SD卡中的bin文件,并通過所述拆幀機制和加密算法,將bin文件通過LoRa模塊發送給接收端。在傳送過程中加入CRC校驗機制、錯誤重傳機制及接收超時退出機制,如果收到接收端回應的“ok”則傳送下一幀,如果收到“error”或1 s內均未收到回應則重傳該幀,如果重傳超過10次則中斷發送并給出錯誤提示。如果所有幀均發送完畢,則給出bin文件發送成功提示,并重新檢測按鍵,等待下次發送新的bin文件。發送端的程序流程如圖4所示。

圖4 無線發送端程序流程Fig.4 Flow chart of wireless sender

接收端的STM32F767IGT6處理器上電后,首先初始化LoRa模塊,然后查詢LoRa模塊是否接收到數據,如果接收到“首幀”則進行異或解密,再CRC16校驗,校驗通過則回復給發送端“ok”,同時提取文件長度、文件內容的CRC32校驗值及randomB數組,并進入數據幀接收流程,否則回復給發送端“error”。

在數據幀接收流程中,對每一幀都以先換序再異或的方式解密(“尾幀”只進行異或解密),解密后進行CRC16校驗,如果校驗通過則回應給主機“ok”,并按照幀序將數據存入內部RAM,如果校驗失敗則回應給主機“error”,如果10 s內均未收到數據或連續10次收到的數據CRC16校驗都不通過,則退出整個bin文件的接收,重新等待發送端下次發送新的bin文件。如果所有的數據幀都接收完畢,則對存入RAM的所有數據進行CRC32校驗,如果校驗值和“首幀”的CRC32校驗值一致,則將上述數據寫入bin文件并保存在SD卡中,然后重新等待“首幀”,準備接收新的bin文件。接收端的程序流程如圖5所示。

圖5 無線接收端程序流程Fig.5 Flow chart of wireless receiver

3 系統測試

將不同大小的bin文件存入SD卡中,測試加密無線通信的效果。測試條件:無線發送、接收端距離50 m左右(樓宇內)。將bin文件拆分成64 B每幀,設置LoRa模塊的帶寬wb=500 kHz,擴頻因子fs=7,編碼率 rc=4/6,則求得數據速率(Data Rate)為

在實際傳輸數據幀時考慮到收發握手機制、加密解密及LCD顯示等時間消耗,每傳輸1幀數據(64 B)大概耗時0.07 s。利用3個bin進行測試,測試結果數據見表1,系統實物及LCD顯示的測試結果如圖6所示。

表1 加密無線通信系統測試結果Tab.1 Encrypted wireless communication system test result

圖6 無線加密通信系統實物Fig.6 Actual picture of encrypted wireless communication system

多次試驗結果表明,無線傳輸bin文件的耗時與理論計算時間基本一致,發送、接收端SD卡中的bin文件內容完全一致。

4 結語

本文設計了一種基于LoRa技術的無線通信系統,并對通信過程中用到的加密算法進行了研究。實測結果證明了該技術方案的可行性。該技術方案可以為需要無線通信特別是通信數據需要加密的應用場景提供有益的參考。

主站蜘蛛池模板: 欧美国产菊爆免费观看| 国产精品网址你懂的| 国产精品亚洲αv天堂无码| 欧日韩在线不卡视频| 最近最新中文字幕在线第一页| 久久综合丝袜日本网| 亚洲永久色| 99无码中文字幕视频| 99久久婷婷国产综合精| 亚洲无码精品在线播放| 污污网站在线观看| 精品一区国产精品| 午夜a视频| 色网站免费在线观看| 国产丝袜无码精品| 人人澡人人爽欧美一区| 亚洲伊人电影| 日韩成人午夜| 极品尤物av美乳在线观看| 亚洲a免费| 无码网站免费观看| 国产高清在线精品一区二区三区 | 欧美成人手机在线视频| 日本精品αv中文字幕| 国产精品一区二区久久精品无码| 99视频全部免费| 天堂成人av| 亚洲欧美人成人让影院| 亚洲黄网在线| 亚洲永久精品ww47国产| 在线欧美一区| av天堂最新版在线| 最新亚洲人成网站在线观看| 青青青国产视频| 国产精品私拍99pans大尺度| 午夜人性色福利无码视频在线观看| 97人人做人人爽香蕉精品| 欧美色99| 拍国产真实乱人偷精品| 狠狠五月天中文字幕| 国产黄视频网站| 欧美不卡二区| 中文字幕久久精品波多野结| 亚洲第一页在线观看| 亚洲国产成人久久77| 亚洲第一成年网| 1769国产精品视频免费观看| 白浆免费视频国产精品视频| 国产成人喷潮在线观看| 亚洲综合香蕉| 免费在线观看av| 特级做a爰片毛片免费69| 亚洲综合二区| 亚洲天堂视频在线观看免费| 毛片基地视频| 欧美成一级| 国产高清色视频免费看的网址| 亚洲高清在线播放| 丁香综合在线| 伊伊人成亚洲综合人网7777| 强奷白丝美女在线观看| 免费毛片a| yjizz国产在线视频网| 日韩激情成人| 欧美性精品| 国产在线专区| 国产一在线观看| 97在线免费| 日本欧美视频在线观看| 久久午夜夜伦鲁鲁片无码免费| 青草91视频免费观看| 在线观看无码a∨| 亚洲美女一区二区三区| 国产免费久久精品99re丫丫一| 思思热在线视频精品| 国产精品一老牛影视频| 伊人久久福利中文字幕| 国产在线一二三区| 大乳丰满人妻中文字幕日本| 国产精品页| 久久久精品国产亚洲AV日韩| 91破解版在线亚洲|