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技術的無線通信系統,并對通信過程中用到的加密算法進行了研究。實測結果證明了該技術方案的可行性。該技術方案可以為需要無線通信特別是通信數據需要加密的應用場景提供有益的參考。

主站蜘蛛池模板: 成人精品视频一区二区在线| 久久99久久无码毛片一区二区| 91视频99| 无遮挡一级毛片呦女视频| 欧美人人干| 国产精品一老牛影视频| 国产成人三级| 亚洲乱码视频| 凹凸国产熟女精品视频| 超清无码一区二区三区| 日本一区二区不卡视频| 呦视频在线一区二区三区| 91高清在线视频| 天天摸夜夜操| 天堂成人在线| 91系列在线观看| 2021国产在线视频| 爱做久久久久久| 99视频全部免费| 久久频这里精品99香蕉久网址| 一本综合久久| 精品国产自| 国产波多野结衣中文在线播放| 国产精欧美一区二区三区| 97久久超碰极品视觉盛宴| 人妻丰满熟妇αv无码| 亚洲欧美日韩久久精品| 久久久久九九精品影院| 亚洲人成影院午夜网站| 在线观看免费AV网| 久久精品国产在热久久2019| 日本精品视频一区二区| 欧美日韩在线国产| 国产超薄肉色丝袜网站| 国产白丝av| 免费人成网站在线观看欧美| 国产精品一区二区在线播放| 日韩A∨精品日韩精品无码| 国产Av无码精品色午夜| 尤物午夜福利视频| 国产精品无码AⅤ在线观看播放| 亚洲娇小与黑人巨大交| 日本在线国产| 91福利在线看| 久久网综合| 欧美不卡在线视频| 91区国产福利在线观看午夜| 99精品伊人久久久大香线蕉| 99成人在线观看| www.99精品视频在线播放| 日韩欧美中文字幕一本| 日本一本在线视频| 欧美日一级片| 国产美女91视频| 91美女视频在线观看| 国产精品亚洲片在线va| 亚洲精品国产综合99久久夜夜嗨| 日韩欧美视频第一区在线观看| 原味小视频在线www国产| 日韩欧美高清视频| 亚洲三级成人| 亚洲综合一区国产精品| 久久影院一区二区h| 亚洲资源站av无码网址| 国产香蕉在线| 国产微拍一区二区三区四区| 亚洲AV无码一区二区三区牲色| 中国美女**毛片录像在线| 天天综合网在线| 在线观看av永久| 在线播放精品一区二区啪视频| 色哟哟国产成人精品| 中文字幕首页系列人妻| 日韩东京热无码人妻| 区国产精品搜索视频| 国禁国产you女视频网站| 中文字幕伦视频| 手机精品视频在线观看免费| 激情亚洲天堂| 国产一国产一有一级毛片视频| 国模沟沟一区二区三区| 三上悠亚精品二区在线观看|