鄧昊 彭鋮 張楊 張紹陽 馮興樂
摘 要:針對(duì)智慧航道中多設(shè)備接入、數(shù)據(jù)處理量大的實(shí)際問題,文中設(shè)計(jì)了一種數(shù)據(jù)統(tǒng)一的多源接入節(jié)點(diǎn)。該節(jié)點(diǎn)在多源接入方面能夠滿足智慧航道的傳感器接入,同時(shí)設(shè)計(jì)物聯(lián)網(wǎng)領(lǐng)域常見的接入信號(hào)類型,并將各類信號(hào)統(tǒng)一為RS 485信號(hào)輸出,在邊緣側(cè)屏蔽底層數(shù)據(jù)差異,為上層提供統(tǒng)一格式的數(shù)據(jù)傳輸服務(wù)。同時(shí)節(jié)點(diǎn)還可對(duì)數(shù)據(jù)進(jìn)行邊緣管理,實(shí)現(xiàn)了數(shù)據(jù)濾波和數(shù)據(jù)方向控制。經(jīng)實(shí)際測試,證明該節(jié)點(diǎn)實(shí)現(xiàn)了多源信號(hào)數(shù)據(jù)的統(tǒng)一、采集、處理、管理功能,能夠應(yīng)對(duì)復(fù)雜的現(xiàn)代物聯(lián)網(wǎng)環(huán)境挑戰(zhàn)。
關(guān)鍵詞:物聯(lián)網(wǎng);智慧航道;數(shù)據(jù)統(tǒng)一;感知節(jié)點(diǎn);RS 485;單片機(jī)
0 引 言
物聯(lián)網(wǎng)是指由各種不同物理設(shè)備連接而成的網(wǎng)絡(luò),幫助人們實(shí)現(xiàn)對(duì)事物的智能化管理與控制。物聯(lián)網(wǎng)應(yīng)用場景廣泛,包括智慧城市、智慧農(nóng)業(yè)、智慧航道、智能家居等[1-2]。物聯(lián)網(wǎng)技術(shù)的快速發(fā)展為世界帶來了革命性的變革。但在日益復(fù)雜的物聯(lián)網(wǎng)環(huán)境下,傳統(tǒng)的物聯(lián)網(wǎng)架構(gòu)已出現(xiàn)了一些不可忽視的問題。
首先,作為物聯(lián)網(wǎng)體系中的前端感知節(jié)點(diǎn),存在多源、多類型情況,市面上的傳感器類型紛繁復(fù)雜,其輸出的數(shù)據(jù)格式不盡相同。隨即帶來感知數(shù)據(jù)異構(gòu)問題,接入設(shè)備在不同的邏輯層次存在差異。多源感知節(jié)點(diǎn)數(shù)據(jù)如何統(tǒng)一是未來物聯(lián)網(wǎng)系統(tǒng)面臨的主要問題之一,以智慧航道背景為例,會(huì)牽扯到各式各樣的設(shè)備接入,例如水情信息輸入、霧情信息輸入等,如何將各類傳感信號(hào)統(tǒng)一到一個(gè)層面,實(shí)現(xiàn)高效管理,是本文研究的出發(fā)點(diǎn)之一。
其次,根據(jù)互聯(lián)網(wǎng)數(shù)據(jù)中心IDC(Internet Data Center)的統(tǒng)計(jì)數(shù)據(jù)顯示,到2020年全球?qū)⒂谐^500億的終端和設(shè)備聯(lián)網(wǎng)[3]。萬物互聯(lián)必然會(huì)產(chǎn)生大量數(shù)據(jù),隨著數(shù)據(jù)量劇增,出現(xiàn)了計(jì)算集中化帶來的數(shù)據(jù)中心計(jì)算壓力問題。而且在一些對(duì)系統(tǒng)時(shí)延有特殊要求的應(yīng)用場景下,網(wǎng)絡(luò)傳輸帶寬增加和時(shí)延增加也會(huì)影響物聯(lián)網(wǎng)系統(tǒng)的性能。若節(jié)點(diǎn)能在邊緣側(cè)對(duì)數(shù)據(jù)進(jìn)行管理,不僅能夠減輕云端壓力,更能進(jìn)一步提升系統(tǒng)的響應(yīng)能力。
針對(duì)復(fù)雜物聯(lián)網(wǎng)環(huán)境下感知數(shù)據(jù)多源多類型以及緩解中心云數(shù)據(jù)處理壓力的現(xiàn)實(shí)需要,研究一種具有數(shù)據(jù)統(tǒng)一能力、數(shù)據(jù)邊緣管理的感知節(jié)點(diǎn)尤為重要。本文以智慧航道為應(yīng)用背景,重點(diǎn)解決復(fù)雜物聯(lián)網(wǎng)環(huán)境下的多源設(shè)備數(shù)據(jù)統(tǒng)一和數(shù)據(jù)邊緣管理這兩大問題,改進(jìn)現(xiàn)存的物聯(lián)網(wǎng)系統(tǒng)弊端。
1 系統(tǒng)功能設(shè)計(jì)
1.1 多源類型信號(hào)統(tǒng)一
在以智慧航道為背景的環(huán)境下,本文選取模擬信號(hào)、數(shù)字信號(hào)作為接入系統(tǒng)的輸入,模擬信號(hào)又可細(xì)分為4~20 mA電流型信號(hào)和電壓型信號(hào)。選擇RS 485信號(hào)作為統(tǒng)一后的數(shù)據(jù)格式,其具有以下優(yōu)點(diǎn)。
(1)抗干擾能力強(qiáng)。RS 485信號(hào)傳輸時(shí)會(huì)在接收端將兩根信號(hào)線上的電壓差值作為判斷其邏輯狀態(tài)的依據(jù)。當(dāng)存在外界噪聲干擾時(shí),噪聲會(huì)同時(shí)疊加到兩根信號(hào)線上,信號(hào)在接收端做差解調(diào)時(shí),噪聲影響會(huì)相互抵消,從而高度還原原始信號(hào)。這種特有的優(yōu)點(diǎn),使得RS 485信號(hào)在電磁環(huán)境復(fù)雜的應(yīng)用場景下?lián)碛袠O大的發(fā)揮空間[4]。
(2)RS 485能夠利用Modbus協(xié)議進(jìn)行簡單組網(wǎng),使用靈活方便。主從模式的訪問機(jī)制能使主設(shè)備更好采集、管理各個(gè)子節(jié)點(diǎn)的數(shù)據(jù)。且該類型信號(hào)市場應(yīng)用廣泛,例如在智慧航道需要采集的信息中,水位信息、能見度信息、光照強(qiáng)度信息等均能利用RS 485信號(hào)進(jìn)行輸出。
在本系統(tǒng)中,以模擬信號(hào)、數(shù)字信號(hào)為輸入,設(shè)計(jì)相應(yīng)的轉(zhuǎn)化電路,將這些多源多類型信號(hào)全部轉(zhuǎn)化為RS 485信號(hào)進(jìn)行傳輸,使數(shù)據(jù)在感知層面實(shí)現(xiàn)盡早統(tǒng)一。系統(tǒng)整體框架如圖1所示。
1.1.1 模擬信號(hào)統(tǒng)一
自然界中最常見的信號(hào)形式為模擬信號(hào),其特點(diǎn)在于具有連續(xù)變化的物理量所表達(dá)的信息,故通常又把模擬信號(hào)稱為連續(xù)信號(hào),它在一定的時(shí)間范圍內(nèi)可以擁有無限多個(gè)不同的取值[5]。模擬信號(hào)波形如圖2所示。
在物聯(lián)網(wǎng)領(lǐng)域,傳感器輸出的模擬信號(hào)包括電流信號(hào)與電壓信號(hào)。相較于電壓信號(hào),電流信號(hào)應(yīng)用更為廣泛。原因在于電壓信號(hào)在長距離傳輸時(shí),會(huì)在傳輸線上產(chǎn)生壓降,導(dǎo)致部分電壓損耗在傳輸線上,且距離越遠(yuǎn)壓降越大,最終影響信號(hào)的傳輸效果。電流信號(hào)避免了壓降現(xiàn)象,在電流信號(hào)傳輸時(shí),不論傳輸距離長短都可在接收端利用分壓電阻解調(diào)出未大幅失真的信號(hào)。
本文在系統(tǒng)設(shè)計(jì)時(shí),既考慮了適合遠(yuǎn)距離傳輸?shù)?~20 mA電流型模擬信號(hào)接入,也設(shè)置了短距離電壓型模擬信號(hào)接入,包括信號(hào)接入、信號(hào)調(diào)理、單片機(jī)模數(shù)轉(zhuǎn)換、TTL轉(zhuǎn)RS 485等。
電壓電流信號(hào)接口均設(shè)計(jì)為四線制接口,分別為供電、信號(hào)+、信號(hào)-、地。模擬信號(hào)輸入后會(huì)經(jīng)過LM358運(yùn)放芯片進(jìn)行信號(hào)調(diào)理。LM358為雙運(yùn)算放大器,內(nèi)部包括2個(gè)獨(dú)立、高增益、內(nèi)部頻率補(bǔ)償?shù)倪\(yùn)算放大器,信號(hào)調(diào)理電路利用其雙運(yùn)放特點(diǎn),將一路作為電壓運(yùn)放,一路作為電流運(yùn)放,信號(hào)接入及信號(hào)調(diào)理如圖3所示。
經(jīng)過信號(hào)調(diào)理后的模擬信號(hào)送至單片機(jī)內(nèi)部的模/數(shù)轉(zhuǎn)換模塊進(jìn)行數(shù)據(jù)預(yù)處理。單片機(jī)選擇MSP430F149,其具有豐富的接口,且具備低功耗模式,利用C語言編程。圖4所示為MSP430單片機(jī)的最小系統(tǒng)電路。
由單片機(jī)處理后的TTL電平信號(hào)經(jīng)SP3485芯片整合為RS 485信號(hào)格式,統(tǒng)一進(jìn)行下一步處理。圖5所示為SP3485芯片引腳圖,SP3485的1引腳為接收器輸出,4引腳為驅(qū)動(dòng)器輸入。6,7引腳分別表示RS 485信號(hào)的A和B。
5,8引腳分別接地和電源。TTL電平信號(hào)由4引腳輸入,若輸入為邏輯0,表示A和B間的電壓差較小;若TTL端輸入為邏輯1,表示A和B間的電壓差較大。TTL轉(zhuǎn)RS 485電路如圖6所示。
A,B兩線間電阻的作用是提高RS 485總線的帶負(fù)載能力。當(dāng)RS 485總線傳輸距離超過一定長度時(shí),其抗干擾能力會(huì)下降。為解決這一問題,在RS 485總線上接120 Ω的終端匹配電阻,使得電源輸出電阻和外部電阻達(dá)到阻抗匹配。
D5,D6是兩個(gè)鉗位二極管,強(qiáng)制A與地、B與地之間的電壓最大壓降為0.7 V(根據(jù)二極管材料而定,硅二極管導(dǎo)通正向?yàn)殡妷?.7 V,鍺二極管為0.3 V)。此處的鉗位二極管正極接地,負(fù)極分別連接RS 485信號(hào)的A,B兩線。保證A或B線上的輸出電壓(相對(duì)地)最低為-0.7 V,若相對(duì)地電壓低于此值,二極管導(dǎo)通,將其電壓拉回到-0.7 V,以確保A,B線上對(duì)地電壓處于合理范圍,保護(hù)后級(jí)電路。
1.1.2 數(shù)字信號(hào)統(tǒng)一
雖然模擬信號(hào)是自然界中最常見的一種信號(hào)類型,但其亦有自身缺陷,如受噪聲影響大等。噪聲效應(yīng)會(huì)使信號(hào)產(chǎn)生有損,有損后的模擬信號(hào)幾乎無法再次被還原。因此,在噪聲作用下,雖然模擬信號(hào)理論上具有極高的分辨率,但難以確定其精確度相比數(shù)字信號(hào)更優(yōu)。模擬信號(hào)數(shù)字化如圖7所示。
數(shù)字信號(hào)是模擬信號(hào)經(jīng)過抽樣、量化、編碼等一系列步驟得來。盡管數(shù)字信號(hào)處理過程相對(duì)復(fù)雜,但現(xiàn)有的數(shù)字信號(hào)處理器可以快速完成這一任務(wù)。另外,在計(jì)算機(jī)等系統(tǒng)普及的今天,數(shù)字信號(hào)的傳播、處理都變得更加便捷。模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)后,更方便計(jì)算機(jī)進(jìn)行處理,或通過互聯(lián)網(wǎng)傳輸[6]。RS 232轉(zhuǎn)RS 485模塊實(shí)物如圖8所示。
本系統(tǒng)利用RS 232轉(zhuǎn)RS 485模塊將RS 232數(shù)字信號(hào)統(tǒng)一到RS 485信號(hào)上。
1.2 數(shù)據(jù)邊緣管理
1.2.1 數(shù)據(jù)濾波
智慧航道下的物聯(lián)網(wǎng)系統(tǒng)會(huì)在前端產(chǎn)生海量數(shù)據(jù)。經(jīng)過信號(hào)調(diào)理及單片機(jī)處理后的電壓電流傳感器數(shù)據(jù)若直接上傳,會(huì)因其數(shù)據(jù)量過于龐大而對(duì)系統(tǒng)后級(jí)的云端帶來壓力,所以本文在軟件設(shè)計(jì)中再一次進(jìn)行了數(shù)據(jù)濾波操作。
在本文所設(shè)計(jì)的系統(tǒng)中,MSP430單片機(jī)主要負(fù)責(zé)模擬信號(hào)的模數(shù)轉(zhuǎn)換及數(shù)據(jù)濾波處理。由于平均濾波實(shí)現(xiàn)簡單[7],因此選擇平均濾波方法。具體做法:將單片機(jī)內(nèi)部A/D模塊采集到的數(shù)據(jù)每32組取平均值作為代表進(jìn)行上傳。該部分代碼實(shí)現(xiàn)如下:
MSP430單片機(jī)使用C語言編程,在C語言中“>>”運(yùn)算符代表右移操作。將AD_Temp的數(shù)據(jù)右移5位,即將其數(shù)據(jù)除以25等于32。節(jié)點(diǎn)將32次A/D轉(zhuǎn)換的結(jié)果取平均后作為代表值上傳,有效降低了上傳的數(shù)據(jù)量級(jí)。
1.2.2 數(shù)據(jù)方向控制
統(tǒng)一后的RS 485信號(hào)在收發(fā)數(shù)據(jù)時(shí)對(duì)時(shí)序要求極高,一旦發(fā)送方和接收方時(shí)序基準(zhǔn)未一一對(duì)應(yīng),將導(dǎo)致數(shù)據(jù)收發(fā)的不可預(yù)知性,因此需對(duì)統(tǒng)一后的RS 485數(shù)據(jù)進(jìn)行邊緣側(cè)管理。本文利用中斷標(biāo)志位檢測方法對(duì)RS 485信號(hào)方向轉(zhuǎn)換進(jìn)行自動(dòng)控制,避免手動(dòng)調(diào)節(jié)收發(fā)時(shí)序的復(fù)雜性和不確定性,確保節(jié)點(diǎn)的穩(wěn)定通信。
利用單片機(jī)的I/O口輸出高低電平來控制RS 485芯片轉(zhuǎn)換方向,通過對(duì)單片機(jī)內(nèi)部中斷寄存器標(biāo)志位的檢測判斷數(shù)據(jù)發(fā)送情況,達(dá)到RS 485半雙工信號(hào)方向自動(dòng)控制的要求。當(dāng)RS 485總線傳輸數(shù)據(jù)給單片機(jī)后,將特定的I/O口置高電平,控制RS 485芯片進(jìn)入發(fā)送狀態(tài),同時(shí)單片機(jī)通過訪問內(nèi)部中斷寄存器標(biāo)志位判斷數(shù)據(jù)是否全部發(fā)完。當(dāng)數(shù)據(jù)發(fā)送完成,單片機(jī)檢測到標(biāo)志位置位后將I/O口電平反轉(zhuǎn),使
RS 485總線進(jìn)入接收狀態(tài)。
圖9所示為控制方案電路??刂撇呗裕?85Control是由單片機(jī)引出的控制信號(hào),連接RS 485芯片的DE/RE使能端,當(dāng)485Control為低電平時(shí),RS 485總線處于接收狀態(tài);當(dāng)485Control為高電平時(shí),RS 485總線處于發(fā)送狀態(tài)。485Control的高低變化由中斷寄存器標(biāo)志位決定,若RS 485總線數(shù)據(jù)未發(fā)送完成,該標(biāo)志位不置位,軟件設(shè)置485Control仍保持高電平;若RS 485總線已完成數(shù)據(jù)發(fā)送,則寄存器標(biāo)志位置位,軟件將485Control變?yōu)榈碗娖?,結(jié)束數(shù)據(jù)發(fā)送。
MSP430單片機(jī)為RS 485方向控制的MCU,P3.3口為控制I/O口。代碼分為三部分,首先對(duì)P3.3口方向寄存器進(jìn)行設(shè)置,設(shè)置其為輸出;再對(duì)DE,RE使能端宏定義,方便程序直接調(diào)用;最后為SendChar函數(shù)和SendBuffer函數(shù),SendChar函數(shù)完成以字節(jié)為單位的數(shù)據(jù)發(fā)送,其內(nèi)部有判斷中斷寄存器標(biāo)志位的步驟,SendBuffer函數(shù)完成以幀結(jié)構(gòu)形式的數(shù)據(jù)發(fā)送,各部分程序如下:
IFG1是單片機(jī)內(nèi)部的中斷標(biāo)志寄存器1,共有8位,最高位為發(fā)送中斷標(biāo)志位UTXIFG0。表1為該寄存器的詳細(xì)信息。UTXIFG0位上電后為1,表示可以向發(fā)送寄存器TXBUF0進(jìn)行寫操作。第一個(gè)while語句用來排除上次可能余留在發(fā)送寄存器中的數(shù)據(jù)對(duì)本次數(shù)據(jù)發(fā)送的影響;第二個(gè)while語句用來自適應(yīng)外部RS 485傳感器數(shù)據(jù)情況,如果數(shù)據(jù)發(fā)送完成,立即將RS 485芯片調(diào)整為接收狀態(tài)。
2 系統(tǒng)實(shí)際測試
設(shè)計(jì)好的節(jié)點(diǎn)如圖10所示,它不僅能夠接入多源類型的數(shù)據(jù)信號(hào),而且能在邊緣側(cè)實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)一,為上層提供統(tǒng)一的數(shù)據(jù)格式,在物聯(lián)網(wǎng)架構(gòu)中的最底層屏蔽差異,并且具有數(shù)據(jù)濾波和數(shù)據(jù)方向控制管理功能。
針對(duì)統(tǒng)一后的RS 485數(shù)據(jù),利用示波器觀察RS 485信號(hào)及485Control信號(hào)波形,并進(jìn)行測試:由單片機(jī)發(fā)送數(shù)據(jù)0x01,經(jīng)SP3485芯片轉(zhuǎn)換為RS 485信號(hào),觀察發(fā)送數(shù)據(jù)期間485Control信號(hào)與RS 485總線上信號(hào)之間的關(guān)系,具體情況如圖11所示。
圖11中1號(hào)線為485Control信號(hào),當(dāng)總線上無數(shù)據(jù)發(fā)送時(shí),該信號(hào)處于低電平狀態(tài),RE使能有效,即RS 485總線處于接收狀態(tài);當(dāng)總線上有數(shù)據(jù)發(fā)送時(shí),該信號(hào)處于高電平狀態(tài),DE使能有效,即RS 485總線處于發(fā)送狀態(tài)。2號(hào)線反映RS 485總線上A-B的波形,發(fā)送0x01按照低電平起始位、數(shù)據(jù)位、高電平停止位的順序排列,其中發(fā)送數(shù)據(jù)位時(shí)先發(fā)低位后發(fā)高位。從圖中能觀察到此時(shí)RS 485總線上正在發(fā)送0x01數(shù)據(jù),且DE使能信號(hào)與數(shù)據(jù)長度保持一致,確保不會(huì)出現(xiàn)控制信號(hào)過長或過短造成接收數(shù)據(jù)錯(cuò)誤的現(xiàn)象。當(dāng)數(shù)據(jù)發(fā)送完成時(shí),控制信號(hào)也隨數(shù)據(jù)結(jié)束而轉(zhuǎn)為低電平,使RS 485總線轉(zhuǎn)為接收狀態(tài)。
3 結(jié) 語
本文以解決傳統(tǒng)物聯(lián)網(wǎng)架構(gòu)中多源接入問題和提供數(shù)據(jù)邊緣管理為切入點(diǎn),設(shè)計(jì)智慧航道感知節(jié)點(diǎn)。在物聯(lián)網(wǎng)架構(gòu)中的最底層實(shí)現(xiàn)數(shù)據(jù)統(tǒng)一,屏蔽數(shù)據(jù)格式、協(xié)議等差異,為上層提供一致的數(shù)據(jù)形式,方便上層管理前端各類節(jié)點(diǎn),提升系統(tǒng)效率。同時(shí)在邊緣側(cè)實(shí)現(xiàn)數(shù)據(jù)管理,減輕云端壓力,提升節(jié)點(diǎn)響應(yīng)能力。
參考文獻(xiàn)
[1]李波.溫州豪格率先走進(jìn)防偽標(biāo)簽新紀(jì)元[J].數(shù)字印刷,2017(6):41-43.
[2]任偉.基于云計(jì)算的物聯(lián)網(wǎng)數(shù)據(jù)挖掘模型研究[J].軟件,2017,38(12):229-232.
[3]郭濤.邊緣計(jì)算期待“井噴”[N].中國計(jì)算機(jī)報(bào),2016-12-26(006).
[4] LI Xiaoyan,ZHAO Xiaohui,ZHANG Peng,et al. BER performance of FSOC system with differential signaling over partially correlated atmospheric turbulence fading and partially correlated pointing errors [J]. Optics communications,2020.
[5]李寧.模擬電路[M].北京:清華大學(xué)出版社,2011.
[6]周應(yīng)全,王良智.數(shù)字電路對(duì)模擬信號(hào)的轉(zhuǎn)化[J].西部廣播電視,2017(6):205.
[7] METIA S,HA Q P,DUC H N,et al. Urban air pollution estimation using unscented Kalman filtered inverse modeling with scaled monitoring data [J]. Sustainable cities and society,2020,54(5).
[8]任曉琨,荊立雄.基于MEMS技術(shù)的智能感知節(jié)點(diǎn)單元設(shè)計(jì)[J].物聯(lián)網(wǎng)技術(shù),2019,9(4):16-18.
[9]崔海亮.智能感知節(jié)點(diǎn)的設(shè)計(jì)與實(shí)現(xiàn)[D].上海:復(fù)旦大學(xué),2014.
[10]趙東輝.基于物聯(lián)網(wǎng)的智慧園區(qū)信息平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].石家莊:河北科技大學(xué),2018.