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

        ?

        基于STM32的樣品運輸環(huán)境可信監(jiān)測方案研究與實現

        2022-12-01 06:00:48張學軍周寅峰谷群遠張自峰游增輝
        電子設計工程 2022年23期
        關鍵詞:系統(tǒng)

        張學軍,周寅峰,谷群遠,張自峰,游增輝

        (1.鹽城市質量技術監(jiān)督綜合檢驗檢測中心電子電器檢驗部,江蘇 鹽城 224056;2.上海天俁可信物聯網科技有限公司,上海 201210)

        隨著國家對產品安全問題的重視,市場監(jiān)督領域對檢驗檢測過程的真實性與準確性要求愈發(fā)嚴格。在樣品的運輸環(huán)節(jié)發(fā)生存儲環(huán)境異常,會使樣品性狀發(fā)生改變,進行導致樣品檢驗檢測結果失去公正性、科學性。針對以上問題,文獻[1-4]提出了基于物聯網傳感器技術的低功耗實時監(jiān)測方案。近年來區(qū)塊鏈在物聯網領域中逐漸得到了應用[5-9],由區(qū)塊鏈節(jié)點實現數據上鏈,保證了已上鏈數據的安全性[10-11]。

        該文將STM32 單片機、物聯網傳感器與區(qū)塊鏈結合,在嵌入式系統(tǒng)上運行SHA-256 算法,計算樣品環(huán)境數據的哈希值,實現檢驗樣品環(huán)境數據從采集至上鏈之間是否被篡改,有效規(guī)范了質量監(jiān)督管理流程,提升了樣品運輸的安全性。

        1 系統(tǒng)框架設計

        系統(tǒng)由硬件層、通信層、服務層、應用層組成,系統(tǒng)框圖如圖1 所示。硬件層的嵌入式硬件設備采集數據,即溫度、濕度與加速度。采集完畢后將數據進行哈希映射,分別將數據與哈希值上傳至數據存儲平臺與區(qū)塊鏈網絡。通信層采用無線通信的方式實現硬件層與服務層之間的通信。服務層由區(qū)塊鏈網絡與數據存儲平臺組成。區(qū)塊鏈網絡提供上鏈接口與哈希檢索接口,硬件層調用上鏈接口將哈希值上傳至區(qū)塊鏈,用戶調用區(qū)塊鏈檢索接口查看數據的哈希值。應用層中用戶通過數據存儲平臺獲取數據,在區(qū)塊鏈網絡接口檢索數據的哈希值,并判斷其是否匹配,實現對數據的溯源。

        圖1 系統(tǒng)框圖

        2 嵌入式硬件系統(tǒng)設計

        一般情況下,檢驗檢測樣品常溫存儲的溫度要求低于30 ℃,冷藏存儲的溫度變化區(qū)間在-10~0 ℃[12]。為使硬件設備在樣品保存環(huán)境中穩(wěn)定工作,各器件均需適應樣品存儲環(huán)境,結合實際工作情況,該文系統(tǒng)的硬件應具備在-20~55 ℃范圍內工作的能力。

        2.1 數據采集模塊

        2.1.1 溫濕度采集

        樣品運輸過程需保持環(huán)境溫度、濕度的穩(wěn)定,以免引起樣品腐敗、霉變等問題,導致檢驗檢測結果不準確。因此需對樣品保存環(huán)境的溫度、濕度進行實時監(jiān)測。

        SHT20 溫濕度采集芯片的外殼由環(huán)氧樹脂制成,該芯片采用I2C 通信方式,電壓輸入范圍為2.1~3.6 V。溫度測量范圍為-40~120 ℃,測量精度為0.01。濕度測量范圍為0%RH~100%RH,測量精度為0.04。該芯片適用于樣品運輸過程的環(huán)境,滿足對樣品的溫濕度采集的范圍要求,且成本低廉。故該文采用SHT20 芯片作為系統(tǒng)的溫濕度傳感器芯片。SHT20 傳感器連接硬件系統(tǒng)中MCU 的IIC 總線,PB6、PB7 引腳對應IIC 總線中的SCL 與SDA。

        2.1.2 加速度采集

        運輸車輛的碰撞或意外情況的發(fā)生,將造成車內存儲環(huán)境的變化,嚴重可直接導致樣品包裝的破損、車內樣品存儲設備的損壞,最終造成檢驗檢測結果的失真。為監(jiān)測運輸車輛的運行狀態(tài),將加速度采集納入硬件系統(tǒng)。BMA400 芯片的加速度采集范圍從±2g 至±16g,可反映車輛運行狀態(tài),芯片工作溫度為-40~85 ℃,適用于樣品運輸工作環(huán)境。電壓輸入為2.1~3.6 V,芯片兼容SPI、I2C 兩種通信方式。MCU 可發(fā)送指令控制芯片的工作模式,便于程序的研發(fā)與系統(tǒng)的功耗控制。故該文選擇BMA400 芯片作為加速度傳感采集模塊的核心芯片。

        該芯片存在三種工作模式,分別為睡眠模式、低功耗模式、正常模式。睡眠模式下芯片停止工作,低功耗電流為200 nA。低功耗模式下,模塊處于低速運行狀態(tài),電流消耗小于1 200 nA。正常模式下,模塊噪聲性能與電流消耗可通過寄存器配置進行調整。該芯片兼容SPI 與I2C 兩種連接方式,為使硬件電路設計更加簡潔,該文選擇I2C 連接方式,將BMA400 芯片連接在STM32 的I2C 總線上,該模塊連接兩根數據線SDA、SCL。

        2.2 主控模塊

        微控制單元(Microcontroller Unit,MCU)是硬件系統(tǒng)的核心器件,是控制數據采集、數據處理與無線傳輸的功能中樞。STM32F103C8T6 芯片可達到最高主頻72 MHz,電壓范圍2.0~3.6 V,64 kB Flash,20 kB SRAM;具有兩個I2C 端口,三個USART 端口;具有Stanby 模式,保證系統(tǒng)的低功耗設計,在Stanby模式下芯片電流可降低至μA 級,帶有RTC 鬧鐘,具有事件定時喚醒功能,該模式下RTC 鬧鐘喚醒則系統(tǒng)自動重啟。該芯片在-40~80 ℃下可正常工作,適應運輸中樣品的保存環(huán)境,且成本低廉。該系列芯片兼容性強,應用范圍較廣,技術支持相對較多,采用該型號芯片可減少研發(fā)周期??紤]到系統(tǒng)的設計與規(guī)劃,平衡MCU 的性能與成本,故該文采用STM32F103C8T6 芯片作為MCU。

        硬件系統(tǒng)核心電路圖如圖2 所示,電路上主要集成了STM32F103C8T6 單片機,外部高速時鐘(HSE)8 MHz 晶振、外部低速時鐘(LSE)32.768 kHz 晶振,外部低速時鐘主要用作系統(tǒng)在低功耗模式下的RTC 時鐘源。

        圖2 硬件系統(tǒng)核心電路圖

        2.3 電源穩(wěn)壓模塊

        硬件系統(tǒng)的運行需要電源提供能量,電源信號的穩(wěn)定性直接影響各器件的工作。電源穩(wěn)壓模塊用于維持硬件系統(tǒng)輸入電壓的穩(wěn)定,降低電源電壓的異常波動,提升硬件系統(tǒng)的穩(wěn)定性、信號完整性。穩(wěn)壓芯片作為電源穩(wěn)壓模塊的核心器件,芯片的電壓輸入范圍需包含電源提供的電壓,也需兼容硬件系統(tǒng)上各模塊、芯片的電氣參數。RT8009-33G 芯片的電壓輸入范圍為2.5~5.5 V,通過電路設計可輸出3.3 V 電壓,提供的最大工作電流IMAX=600 mA,該芯片是轉換效率較高的DC/DC 降壓芯片,轉換效率為95%,且成本相對低廉。故該文采用RT8009-33G 作為硬件電源模塊的芯片,電源設計如圖3 所示。

        圖3 電源設計圖

        2.4 無線通信模塊

        有線通信方式不適用于運輸過程。在無線通信方式中,藍牙通信功耗低,但是其距離近。Lora 通信待機功耗低、通信距離遠、抗干擾性強,但需要部署通信節(jié)點,成本高。WiFi 模塊待機功耗低,通信距離近,可通過手機熱點連接至蜂窩移動網絡,無需部署節(jié)點,成本較低,也便于維護。綜合考慮以上因素,該文采用嵌入式硬件集成WiFi 模塊,通過WiFi 模塊連接手機熱點,建立與互聯網的通信。

        ESP8266 系列模塊集成了TCP/IP 協議棧,該模塊的輸入電壓范圍為3~5 V,可在-20~85 ℃的環(huán)境下工作,適應于樣品運輸環(huán)境;模塊成本相對低廉,應用范圍廣,具有低功耗模式,在低功耗模式下可定時喚醒也可外部中斷喚醒,便于系統(tǒng)整體的功耗設計,且該模塊集成AT 固件,易于操作,能夠縮短設備的研發(fā)周期。故該文采用ESP8266-12F 模塊作為系統(tǒng)中WiFi 通信模塊。模塊連接硬件系統(tǒng)中的四個引腳,分別為VCC、GND、TX、RX。其中RX、TX 分別接STM32F103C8T6 的PA2、PA3。

        3 嵌入式軟件設計

        3.1 系統(tǒng)流程

        系統(tǒng)程序流程如圖4 所示,啟動設備硬件,執(zhí)行系統(tǒng)初始化。系統(tǒng)初始化完畢,MCU 對各數據采集模塊進行輪詢,得到傳感器數據。數據處理模塊使用SHA-256 算法將傳感器數據映射出對應的哈希值。硬件層采用異步處理方式,先后將采集的數據與哈希值分別發(fā)送給數據存儲平臺與區(qū)塊鏈節(jié)點。嵌入式硬件設備先建立與服務層區(qū)塊鏈節(jié)點的通信連接,嵌入式硬件系統(tǒng)向區(qū)塊鏈服務器發(fā)送哈希值,并等待服務器返回通信成功的標識。若系統(tǒng)收到成功標識,則硬件設備斷開與服務器的連接,通信成功。如未收到成功標識,硬件設備立即結束通信,進入休眠模式。與區(qū)塊鏈服務器通信成功后,硬件系統(tǒng)再發(fā)送傳感器數據至數據存儲平臺。至此,硬件層通信結束,系統(tǒng)進入睡眠模式,等待定時喚醒。

        圖4 系統(tǒng)程序流程圖

        3.2 哈希算法

        SHA 哈希算法作為哈希算法中的一個系列,又分為四種系列算法,分別為SHA-0、SHA-1、SHA-2和SHA-3[13]。其中SHA-0 與SHA-1 已被碰撞攻擊破解。SHA-3 算法采用的結構與SHA-1、SHA-2 算法不同,在應用上并未取代SHA-2 系列算法[14]。在SHA-2 系列算法中,SHA-256 和SHA-512 是原始哈希函數,SHA-224 和SHA-384 分別為SHA-256 和SHA-512 的截斷函數[15]。當下廣泛應用于區(qū)塊鏈中的是SHA-256 算法[16]。

        SHA-256 算法作為安全散列算法的一種,由美國國家安全局(NSA)與美國國家標準與技術研究院(NIST)于2002 年公布。其主要作用是實現任意長度(長度小于264 位)數據的輸入,該算法均輸出長度為256 位的消息摘要,這個過程叫數據抽樣,也叫哈希映射。該算法具有單向性,算法輸出結果無法逆推輸入數據。輸入數據不同,輸出的哈希值也不相同。該算法作為實現區(qū)塊鏈概念的技術手段,廣泛應用于區(qū)塊鏈項目中[17]。

        經計算,當前SHA-256 算法在嵌入式芯片中所占的Flash 為1.441 kB,所占RAM 空間為0.718 kB。而STM32F103C8T6 芯片具有64 kB 的Flash 空間、20 kB 的SRAM 空間、MCU 的存儲空間足以存儲該算法,且所占存儲空間比例相對較低。當前MCU 足以支持該算法的正常運行,且留有空間拓展。SHA-2系列算法輸出的哈希值越長,哈希碰撞幾率越低,數據的安全性越高,但需提供的算力越高??紤]當前區(qū)塊鏈應用的算法,平衡哈希算法的安全性與所需算力,結合MCU 所能提供的存儲量與算力,該文采用SHA-256 算法作為嵌入式系統(tǒng)中的哈希算法。

        3.2.1 數據預處理

        先將輸入數據以長度為512 位的獨立單位分割,對余下長度不足的余數進行補位,最終輸出長度為512 位的n個消息塊數組Mj。

        3.2.2 數據擴展

        以長度為32 位為單位將Mj分割為16 組數據塊(Mj0,Mj1,…Mj15),通過擴展算法,得到64 組長度為32位的數據塊(W0,W1…W63)

        擴展算法如下:

        3.2.3 哈希計算

        初始8 維哈希常數(a0,b0,c0,d0,e0,f0,g0,h0)作為數組H(a,b,c,d,e,f,g,h)的初始值。通過擴展算法得到64 組數據塊Wt后,將64 組常數Kt代入輪換函數中執(zhí)行,輪換函數流程如圖5 所示。輪換函數循環(huán)迭代64 次,最終在數組H(a,b,c,d,e,f,g,h)中輸出結果。

        圖5 輪換函數流程圖

        每個Mj數據塊執(zhí)行一次輪換函數,共執(zhí)行n次輪換函數。將Mj在H(a,b,c,d,e,f,g,h)中輸出的結果,作為輪換函數計數下一個消息塊Mj+1的H數組初始值,當最后一個消息塊計算完畢后,最終在數組H(a,b,c,d,e,f,g,h)中輸出結果,通過將其拼合,即得出哈希值。

        輪換函數所需公式如下:

        該文根據該算法原理,編寫SHA-256 算法中的輪換函數,偽代碼如下:

        3.3 驅動函數

        I2C 通信是MCU 與傳感器的通信方式之一,連接線少,操作簡單,通信速率高[18],MCU 通過地址尋址方式定位傳感器,控制地址對應的傳感器,I2C 總線上可并聯多組傳感器。該文采用I2C 通信方式擴展傳感器。對多組傳感器輪詢,可單獨運行一個傳感器,其他傳感器處于低功耗模式,錯開傳感器的運行狀態(tài),降低系統(tǒng)運行的峰值電流,提高系統(tǒng)的穩(wěn)定性。

        USART 通信作為MCU 與功能模塊的通信方式中的一種重要方式,可設置波特率,得到一個寬廣的通信速率變化范圍,既用于MCU 與功能模塊間的通信,也用在PC 端對硬件設備進行系統(tǒng)調試。MCU 通過發(fā)送該功能模塊上已集成的指令對其進行控制。系統(tǒng)采用USART2 端口連接WiFi模塊ESP8266。

        RTC(Real_Time Clock)實時時鐘獨立于STM32系統(tǒng),在Stanby 低功耗模式下獨立運行。RTC 可產生鬧鐘事件中斷喚醒STM32,使STM32 退出低功耗模式。硬件系統(tǒng)進入休眠模式時,需靠RTC 時鐘喚醒。

        RTC時鐘配置函數RTC_INIT(),將RTC配置為采用外部低速時鐘(LSE)信號,RTC鬧鐘中斷設置為5 min。系統(tǒng)進入休眠模式,RTC 時鐘開始計時,當休眠時間達到5 min,觸發(fā)鬧鐘事件中斷,系統(tǒng)恢復工作。

        3.4 邏輯函數

        系統(tǒng)按照模塊劃分功能,邏輯函數用于實現系統(tǒng)各模塊的具體功能,并且使得系統(tǒng)的功能層次分明,主程序的邏輯更加簡潔明了,既便于理解又便于調試。各邏輯函數及其功能如表1 所示。

        表1 邏輯函數及其功能

        3.4.1 數據采集函數

        sht20_get()函數的功能是讀取溫濕度值。首先,MCU 通過I2C 總線與溫濕度傳感器建立I2C 通信連接,再給SHT20 發(fā)送測量命令,等待讀取來自SHT20芯片反饋的溫濕度數值。將讀取的溫度值與濕度值分別存儲在變量TEMP 與變量HUMI 中。

        gcc_get()函數的功能為讀取加速度值,以記錄車輛的運行狀態(tài)。首先,MCU 通過I2C 總線建立與BMA400 芯片的通信連接,再向BMA400 發(fā)送讀取模塊ID 號的指令,MCU 等待返回,如芯片返回值正確,則芯片啟動成功。該芯片啟動成功后自動進入睡眠模式,此時芯片不能讀取加速度數據。MCU 發(fā)送指令讓該芯片進入正常模式,讀取加速度值,等讀取完畢,MCU 再發(fā)送指令使模塊進入睡眠模式。

        3.4.2 數據處理函數

        sha256_count()函數是根據SHA-256 算法原理編寫的,其功能是將輸入數據哈希映射出對應的哈希值,輸出類型為字符串。

        HASH_POST_config()函數將哈希值按照HTTP協議POST 請求方式組成HTTP 請求消息,即POST報文。報文內容包含區(qū)塊鏈節(jié)點的聯盟鏈密鑰,聯盟鏈密鑰給予了硬件設備調用上鏈接口的權限,無密鑰,則不能將哈希值上傳至聯盟鏈。

        DATA_POST_config()函數的功能是將傳感器數據生成HTTP 協議的POST 請求報文。該報文與上傳區(qū)塊鏈節(jié)點的POST 報文雖原理相同,但在內容上有較大差異,故寫成兩個函數。

        3.4.3 無線通信函數

        upload_HASH()函數的功能是將由HASH_POST_config()函數生成的POST 請求報文上傳至區(qū)塊鏈節(jié)點。首先建立硬件設備與區(qū)塊鏈節(jié)點的通信,然后向區(qū)塊鏈節(jié)點服務器上傳報文。發(fā)送報文后,硬件設備等待服務器返回成功標識,如返回成功,則硬件設備斷開與區(qū)塊鏈節(jié)點的通信,該函數流程結束,系統(tǒng)程序繼續(xù)向下執(zhí)行,將該哈希值對應的傳感器數據上傳至數據存儲平臺;如返回失敗,則哈希值未上傳至區(qū)塊鏈,該樣品環(huán)境數據無法在區(qū)塊鏈上溯源,即為無效數據,故系統(tǒng)不上傳該傳感器數據,直接結束程序,硬件設備進入休眠狀態(tài)。

        upload_DATA()函數的功能是將由傳感器數據生成的POST 請求報文上傳至數據存儲平臺,數據上傳后,硬件設備進入休眠模式,等候下一次喚醒。

        4 實驗結果

        搭建網絡環(huán)境,將程序編譯后,使用仿真下載器燒錄進STM32 芯片。啟動硬件系統(tǒng),硬件設備將樣品運輸環(huán)境監(jiān)測數據上傳至數據存儲平臺后,在該平臺的網頁獲取上傳的環(huán)境數據。測得硬件系統(tǒng)處于工作狀態(tài)的平均電流為43.1 mA,休眠模式下平均電流為112.3 μA。系統(tǒng)每6 min 采集一次環(huán)境數據,環(huán)境數據由5 維參數組成,temp 表示溫度,humi 表示濕度,acc_x,y,z三組數據分別表示三維加速度。

        為校驗上傳的環(huán)境數據是否被篡改,選取平臺中的一組數據進行校驗。將該組數據在第三方平臺提供的SHA-256 算法中進行運算,得出對應的哈希值,如圖6 所示。再調用區(qū)塊鏈網絡的檢索接口檢索該哈希值,檢索結果表明該數據的哈希值已在區(qū)塊鏈上,結果如圖7 所示。根據SHA-256 算法特性,原數據一經篡改,對應的哈希值就大不相同,故不能在區(qū)塊鏈上檢索出相應結果。該組環(huán)境數據對應的哈希值能夠在區(qū)塊鏈上檢索出結果,證明環(huán)境數據本身未被篡改,同理檢驗其他組環(huán)境數據也未被篡改。實驗表明,可通過硬件上的SHA-256 算法在嵌入式系統(tǒng)上映射數據的哈希值,結合區(qū)塊鏈技術驗證環(huán)境數據在上鏈之前是否被篡改。

        圖6 環(huán)境數據計算哈希值

        圖7 上鏈哈希值檢索結果

        5 結束語

        該文將SHA-256 算法寫入嵌入式硬件系統(tǒng)中,在嵌入式系統(tǒng)上實現SHA-256 算法對環(huán)境數據的哈希映射。環(huán)境數據采集完畢,系統(tǒng)即刻生成對應的哈希值,而后將數據及其對應的哈希值分別上傳至數據存儲平臺與區(qū)塊鏈網絡,最終用戶通過哈希值校驗數據。通過嵌入式硬件設備上生成的哈希值校驗數據,提升了所采用環(huán)境數據的可信度,使得環(huán)境數據的檢測與溯源從服務層延伸至硬件層。從而采用的樣品監(jiān)測數據更加可靠,樣品檢驗檢測結果準確性與可信度更高。由于上傳至區(qū)塊鏈的是哈希值,而非完整的環(huán)境數據,故降低了區(qū)塊鏈需提供的數據存儲量。為適應更多的應用場景,可嵌入具有能夠準確控制時序的操作系統(tǒng),使得系統(tǒng)對時間的控制更加準確。

        猜你喜歡
        系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統(tǒng)
        基于UG的發(fā)射箱自動化虛擬裝配系統(tǒng)開發(fā)
        半沸制皂系統(tǒng)(下)
        FAO系統(tǒng)特有功能分析及互聯互通探討
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        一德系統(tǒng) 德行天下
        PLC在多段調速系統(tǒng)中的應用
        50岁熟妇的呻吟声对白| 久久综合伊人有码一区中文字幕| baoyu网址国产最新| 91人妻一区二区三区蜜臀| 人妻中文字幕在线中文字幕| 日本一本之道高清不卡免费| 精品国产乱码久久久久久口爆网站| 国产夫妻av| 国产日产亚洲系列av| 91九色国产老熟女视频| 欧美大片aaaaa免费观看| 无码国产精品一区二区vr老人| 亚洲国产成人精品激情| 日本在线综合一区二区| 一区二区和激情视频| 麻豆一区二区99久久久久| 不卡国产视频| 97人妻精品一区二区三区免费| 99久久精品免费看国产一区二区三区| 国产丝袜无码一区二区三区视频| 国产自产c区| 久久久精品国产三级精品| 97精品国产一区二区三区| 人人妻人人澡人人爽曰本| 香蕉久久夜色精品国产| 美女脱了内裤洗澡视频| 伊人色综合久久天天五月婷| 精品国产亚洲AⅤ麻豆| 在线视频一区二区在线观看| 午夜国产精品视频在线观看| 熟妇激情内射com| 日韩AV有码无码一区二区三区| 亚洲福利网站在线一区不卡| 人人超碰人人爱超碰国产| 精品国精品无码自拍自在线 | 一区二区三区免费视频网站| 国产69精品麻豆久久| 免费黄色影片| 国产小视频网址| 国产一区二三区中文字幕| 边添小泬边狠狠躁视频|