亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于LoRa技術(shù)的加密無(wú)線通信系統(tǒng)設(shè)計(jì)

        2019-12-20 07:55:58趙二剛郭天勇
        自動(dòng)化與儀表 2019年11期
        關(guān)鍵詞:數(shù)組接收端解密

        趙二剛,郭天勇

        (1.南開(kāi)大學(xué) 電子信息與光學(xué)工程學(xué)院,天津 300071;2.南開(kāi)大學(xué) 計(jì)算機(jī)學(xué)院,天津 300071)

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

        1 系統(tǒng)整體方案設(shè)計(jì)

        系統(tǒng)的硬件結(jié)構(gòu)包括無(wú)線發(fā)送端及無(wú)線接收端2個(gè)部分。待傳輸?shù)臄?shù)據(jù)以bin文件的形式存儲(chǔ)于發(fā)送端的SD卡中。發(fā)送端的處理器通過(guò)檢測(cè)按鍵來(lái)觸發(fā)一次bin文件的傳輸過(guò)程,如果按鍵有效則首先生成密鑰數(shù)組,然后開(kāi)始通過(guò)LoRa模塊與接收端進(jìn)行握手通信,如果握手成功則通過(guò)LoRa模塊傳送bin文件,在傳送過(guò)程中加入加密機(jī)制、拆幀機(jī)制、CRC校驗(yàn)機(jī)制[7-10]、錯(cuò)誤重傳機(jī)制及接收超時(shí)退出機(jī)制。接收端處理器對(duì)收到的數(shù)據(jù)幀進(jìn)行解密、校驗(yàn),最終將數(shù)據(jù)以bin文件格式存入SD卡中?;贚oRa技術(shù)的加密無(wú)線通信系統(tǒng)的結(jié)構(gòu)如圖1所示。

        圖1 基于LoRa技術(shù)的加密無(wú)線通信系統(tǒng)框圖Fig.1 Block diagram of encrypted wireless communication system based on LoRa technology

        2 系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)

        由圖1可見(jiàn),無(wú)線發(fā)送端和接收端的硬件結(jié)構(gòu)是一樣的,均利用處理器與LoRa模塊進(jìn)行通信及利用SD卡實(shí)現(xiàn)bin文件的存儲(chǔ)。

        2.1 系統(tǒng)硬件設(shè)計(jì)

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

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

        2.1.2 LoRa模塊

        LoRa無(wú)線通信模塊采用安信可公司的LoRa擴(kuò)頻無(wú)線模塊Ra-02。該模塊基于SEMTECH公司的無(wú)線收發(fā)芯片SX1278設(shè)計(jì)開(kāi)發(fā),SX1278芯片采用SEMTECH的LoRaTM專利調(diào)制技術(shù),接收靈敏度高達(dá)-148 dBm,功率輸出可達(dá)+20 dBm,傳輸距離遠(yuǎn),可靠性高。Ra-02模塊采用SPI總線與處理器進(jìn)行通信,3.3 V供電,該部分的電路原理如圖3所示。

        2.2 系統(tǒng)軟件設(shè)計(jì)

        發(fā)送、接收端的STM32F767IGT6處理器利用SPI總線和LoRa模塊進(jìn)行通信。首先初始化該模塊,設(shè)置其載波頻率、擴(kuò)頻因子SF(spreading factor)、編碼率 CR(code rate)、校驗(yàn)?zāi)J?、帶?BW(bandwidth)等,然后利用LoRa模塊實(shí)現(xiàn)數(shù)據(jù)的無(wú)線收發(fā)。

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

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

        2.2.1 加密算法

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

        randomA數(shù)組共有256個(gè)元素,數(shù)組中每個(gè)元素的值都不相同,并且以常量數(shù)組的形式預(yù)先存儲(chǔ)在發(fā)送及接收端的程序中。假定無(wú)線傳輸每幀數(shù)據(jù)的長(zhǎng)度為SEND_LEN個(gè)字節(jié),則令RandomB,randomC數(shù)組元素的個(gè)數(shù)為SEND_LEN。

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

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

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

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

        2.2.2 發(fā)送端和接收端的程序流程

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

        圖4 無(wú)線發(fā)送端程序流程Fig.4 Flow chart of wireless sender

        接收端的STM32F767IGT6處理器上電后,首先初始化LoRa模塊,然后查詢LoRa模塊是否接收到數(shù)據(jù),如果接收到“首幀”則進(jìn)行異或解密,再CRC16校驗(yàn),校驗(yàn)通過(guò)則回復(fù)給發(fā)送端“ok”,同時(shí)提取文件長(zhǎng)度、文件內(nèi)容的CRC32校驗(yàn)值及randomB數(shù)組,并進(jìn)入數(shù)據(jù)幀接收流程,否則回復(fù)給發(fā)送端“error”。

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

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

        3 系統(tǒng)測(cè)試

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

        在實(shí)際傳輸數(shù)據(jù)幀時(shí)考慮到收發(fā)握手機(jī)制、加密解密及LCD顯示等時(shí)間消耗,每傳輸1幀數(shù)據(jù)(64 B)大概耗時(shí)0.07 s。利用3個(gè)bin進(jìn)行測(cè)試,測(cè)試結(jié)果數(shù)據(jù)見(jiàn)表1,系統(tǒng)實(shí)物及LCD顯示的測(cè)試結(jié)果如圖6所示。

        表1 加密無(wú)線通信系統(tǒng)測(cè)試結(jié)果Tab.1 Encrypted wireless communication system test result

        圖6 無(wú)線加密通信系統(tǒng)實(shí)物Fig.6 Actual picture of encrypted wireless communication system

        多次試驗(yàn)結(jié)果表明,無(wú)線傳輸bin文件的耗時(shí)與理論計(jì)算時(shí)間基本一致,發(fā)送、接收端SD卡中的bin文件內(nèi)容完全一致。

        4 結(jié)語(yǔ)

        本文設(shè)計(jì)了一種基于LoRa技術(shù)的無(wú)線通信系統(tǒng),并對(duì)通信過(guò)程中用到的加密算法進(jìn)行了研究。實(shí)測(cè)結(jié)果證明了該技術(shù)方案的可行性。該技術(shù)方案可以為需要無(wú)線通信特別是通信數(shù)據(jù)需要加密的應(yīng)用場(chǎng)景提供有益的參考。

        猜你喜歡
        數(shù)組接收端解密
        解密“熱脹冷縮”
        JAVA稀疏矩陣算法
        基于擾動(dòng)觀察法的光通信接收端優(yōu)化策略
        頂管接收端脫殼及混凝土澆筑關(guān)鍵技術(shù)
        一種設(shè)置在密閉結(jié)構(gòu)中的無(wú)線電能傳輸系統(tǒng)
        新能源科技(2021年6期)2021-04-02 22:43:34
        基于多接收線圈的無(wú)線電能傳輸系統(tǒng)優(yōu)化研究
        解密“一包三改”
        JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
        炫詞解密
        尋找勾股數(shù)組的歷程
        国产精品露脸视频观看| 日本一区二区三区视频在线观看| 国产va免费精品观看精品| 亚洲欧美日韩中文在线制服| 国产91色在线|亚洲| 日韩美女人妻一区二区三区| 人妻久久一区二区三区蜜桃| 少妇av射精精品蜜桃专区| 日本VA欧美VA精品发布| 成在线人免费视频播放| 久久精品国产亚洲av不卡国产| 国产aⅴ无码专区亚洲av麻豆| 国产一区视频在线免费观看| 在线观看中文字幕一区二区三区| 久久人妻一区二区三区免费| 亚洲日韩一区精品射精| 国产成人精品三级91在线影院 | 中文字幕一区二区人妻秘书 | 粉嫩极品国产在线观看免费一区| 三年中文在线观看免费大全| 国产精品毛片无遮挡高清| 婷婷色在线视频中文字幕| 亚洲中文久久精品字幕| 好屌草这里只有精品 | 成人黄网站免费永久在线观看| 国产精品午夜夜伦鲁鲁| 亚洲爆乳精品无码一区二区| 亚洲AV综合A∨一区二区| 国产一区二区三区在线影院| 国产黄大片在线观看画质优化| 亚洲av无码久久寂寞少妇| 成美女黄网站18禁免费| 精品在线视频在线视频在线视频| 日韩人妻无码精品-专区| 国产精品九九久久一区hh| 久久国产精品国语对白| 牛牛在线视频| 欧美理论在线| 亚洲精品国产第一区三区| 亚洲三区在线观看内射后入| 国产内射合集颜射|