版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
緒論1.1課題來源本課題來源于實驗室自選題目。1.2課題研究目的及意義這幾年來,隨著無線通訊技術(shù)的快速發(fā)展以及大數(shù)據(jù)云監(jiān)測技術(shù)的日益完善,信息化與自動化在各行各業(yè)中迅猛發(fā)展,各種領(lǐng)域內(nèi)對遠程智能監(jiān)測通訊系統(tǒng)的需求與日俱增。各種利用物聯(lián)網(wǎng)和大數(shù)據(jù)實現(xiàn)的遠程監(jiān)測、遠程管理和健康診斷通訊系統(tǒng),在醫(yī)學(xué)、農(nóng)業(yè)、工業(yè)等領(lǐng)域都取得了明顯的社會效益和經(jīng)濟效益。如圖1-1所示,一些便攜式監(jiān)測設(shè)備在目前可能無法進行長期供電,需要工人每隔一定的時間就前往更換一次電池,這種設(shè)備在工人無法經(jīng)常進入的糟糕環(huán)境中,具有設(shè)備維護方面的問題;又如圖1-2所示,是有線方式傳輸,這種方式布線多而且雜亂,并且其傳輸距離受到信號衰減幅度的限制,所以它并不是十分可靠,穩(wěn)定性不夠高;上述都是由單一傳感器配備采集及軟件的自成一體的獨立系統(tǒng)。因此開發(fā)出一套遠程智能監(jiān)測通訊系統(tǒng)具有重要意義[1]。圖SEQ圖表\*ARABIC1-1便攜式檢測圖1-2電梯的鋼絲繩檢測在人機交互及遠程網(wǎng)絡(luò)數(shù)據(jù)通訊方面,已有的近、遠程監(jiān)測通訊設(shè)備及系統(tǒng)難以實現(xiàn)人機交互界面的多樣化及遠程監(jiān)測通訊系統(tǒng)模塊的交互,限制了管理人員對監(jiān)測設(shè)備的控制方式[2-3]??偟膩碇v,現(xiàn)有的鋼絲繩檢測設(shè)備都自成一體,自己為一套獨立的系統(tǒng),數(shù)據(jù)來源比較單一。隨著智能化管理趨勢的發(fā)展,需要把自成一體的獨立單機設(shè)備相互連接起來,形成遠程物聯(lián)通訊,建立鋼絲繩檢測的遠程無線通訊系統(tǒng)。為了克服上述傳統(tǒng)方式使用場合有很大限制這一缺陷,本課題需要尋找一種用無線方式穩(wěn)定傳輸監(jiān)測數(shù)據(jù)的方法。本文針對上述系統(tǒng)中存在的問題,提出一種基于4G網(wǎng)絡(luò)的遠程無線監(jiān)測通訊系統(tǒng)。1.3國內(nèi)外研究現(xiàn)狀1.3.14G技術(shù)研究現(xiàn)狀4G通信技術(shù)也被稱為第四代移動通信技術(shù),第四代通信技術(shù)把3G技術(shù)和WLAN整合起來,能夠?qū)崿F(xiàn)各種類型數(shù)據(jù)的快速傳輸,比以往的通用家庭寬帶快幾十倍。我國的4G技術(shù)正式投入使用是在2011年,發(fā)展到現(xiàn)在的階段,已經(jīng)漸趨成熟。4G技術(shù)的優(yōu)勢主要體現(xiàn)在以下數(shù)個方面:首先,4G的數(shù)據(jù)傳輸速率很高,可以達到每秒一百兆比特,是3G技術(shù)數(shù)據(jù)傳輸速率的十多倍。其次,4G技術(shù)的抗干擾能力很高,可以有效防止噪聲對通信造成的干擾。最后,4G技術(shù)的通信覆蓋范圍比較廣泛,具有覆蓋較多用戶區(qū)域的能力??偟膩碇v,4G技術(shù)如今已經(jīng)發(fā)展的比較成熟,本課題需要做的是將其與本課題的系統(tǒng)結(jié)合起來,構(gòu)建一個功能完善的4G遠程監(jiān)測通訊系統(tǒng)。1.3.2遠程監(jiān)測通訊系統(tǒng)研究現(xiàn)狀傳統(tǒng)遠程監(jiān)測通訊系統(tǒng)的通訊方式可以分為兩類,一是采用屏蔽雙絞線或電纜的有線方式,這種方式大多采用RS232、RS485等串口進行通信;二是無線方式,這種方式包括建立自成一體的數(shù)據(jù)監(jiān)測無線傳輸系統(tǒng)、借用他人的遠程服務(wù)器等。傳統(tǒng)遠程無線監(jiān)測的數(shù)據(jù)發(fā)送與接收,大多是是通過數(shù)傳電臺來完成的,數(shù)傳電臺自身具有傳輸距離短、使用方式復(fù)雜、運維費用高等缺陷,所以基于數(shù)傳電臺的無線監(jiān)測通訊系統(tǒng)在工業(yè)領(lǐng)域里的應(yīng)用范圍受到了制約。在早期的工業(yè)生產(chǎn)領(lǐng)域里,生產(chǎn)過程分布范圍不大,相距不遠,上述的檢測通訊系統(tǒng)在這樣的場合比較經(jīng)濟實用[4-5]。但是隨著工業(yè)領(lǐng)域的日趨進步,生產(chǎn)規(guī)模也在漸漸增長,各種設(shè)備增多,各個設(shè)備之間的距離變遠,在這種情況下,有線設(shè)備的建造難度不斷增加,應(yīng)用場所受到限制。比如在石油、煤礦、電力等工業(yè)場所,若還是選擇有線方式進行數(shù)據(jù)監(jiān)測通訊,會導(dǎo)致技術(shù)成本和經(jīng)濟成本大大增加。目前的監(jiān)測通訊系統(tǒng)方案主要分為兩種:一是有線式監(jiān)測系統(tǒng),它基于TCP/IP網(wǎng)絡(luò);二是無線式監(jiān)測系統(tǒng),它基于3G技術(shù)或者4G技術(shù)。無線式系統(tǒng)相比于前者,雖然目前現(xiàn)有的產(chǎn)品功能開發(fā)的不夠多,但是在產(chǎn)品成本、運維和市場前景等各種方面,有著很高的競爭力。隨著3G和4G等技術(shù)的成熟,嵌入式無線監(jiān)測通訊系統(tǒng)成為了新的熱門研究方向?!斑h程無線監(jiān)測通訊系統(tǒng)”正是利用了4G無線網(wǎng)絡(luò),可以實現(xiàn)對遠程地點的綜合監(jiān)測與通訊。它穩(wěn)定性好,成本也比較低,便于進行推廣,有廣闊的前景[6-7]。自從進入信息化時代以來,不同領(lǐng)域內(nèi)的監(jiān)測通訊系統(tǒng)基本呈現(xiàn)出三種發(fā)展趨勢:普遍和智能云平臺結(jié)合、監(jiān)控終端輕量化[10]、基于大數(shù)據(jù)的數(shù)據(jù)分析??梢钥闯觯鞣N監(jiān)測通訊系統(tǒng)都在朝著智能化方向發(fā)展,呈現(xiàn)出多樣化的趨勢。各種不同系統(tǒng)的智能化、信息化水平顯著增強。[10][18-20]圖SEQFigure\*ARABIC1-3國內(nèi)外各種遠程監(jiān)測系統(tǒng)應(yīng)用場景如圖2-1所示,近年來,國內(nèi)外各種遠程監(jiān)測通訊系統(tǒng)層出不窮,迅猛發(fā)展。在很多環(huán)境監(jiān)測和農(nóng)業(yè)監(jiān)測領(lǐng)域,使用了Zigbee協(xié)議將傳感器群和前端設(shè)備進行連接,采集到的數(shù)據(jù)通過GPRS無線移動網(wǎng)發(fā)送到后端的監(jiān)測中心,隨時對被監(jiān)測地點的各種環(huán)境因素進行探測并分析;還有些研究,將RTU、DTU、RS485、RS232等模塊與GPRS結(jié)合起來,基于一個智能芯片,搭建嵌入式智能監(jiān)測系統(tǒng);還有些系統(tǒng)基于物聯(lián)網(wǎng)(IoT)通信技術(shù)和區(qū)塊鏈技術(shù),構(gòu)建遠程實時監(jiān)測系統(tǒng)。這些方法都有其優(yōu)點和弊端,各自都是在特定的場合發(fā)揮最大的監(jiān)測通訊作用,自成一體[8-16]。而且目前并未找到應(yīng)用于鋼絲繩監(jiān)測的遠程監(jiān)測通訊系統(tǒng)。所以本文借鑒這些系統(tǒng)的優(yōu)點和長處,提出一種基于4G網(wǎng)絡(luò)的遠程無線監(jiān)測通訊系統(tǒng),主要用于鋼絲繩的遠程監(jiān)測通訊。該系統(tǒng)使用智能嵌入式系統(tǒng)作為前端,對監(jiān)測得到的數(shù)據(jù)進行數(shù)據(jù)采集、綜合評判和處理,直接通過4G網(wǎng)絡(luò)上傳相關(guān)數(shù)據(jù)到云端,云端再發(fā)送給用戶PC端,即可實現(xiàn)檢測數(shù)據(jù)及狀態(tài)的實時無線傳輸;并且基于4G網(wǎng)絡(luò),將遠程終端與監(jiān)測現(xiàn)場的嵌入式系統(tǒng)建立連接,實現(xiàn)管理人員對設(shè)備的實時控制,建立雙向遠程通訊系統(tǒng)[17][21][23]。1.4論文主要內(nèi)容基于現(xiàn)有的有線和無線式遠程監(jiān)測通訊系統(tǒng)以及一些便攜式監(jiān)測通訊系統(tǒng),綜合它們的優(yōu)缺點,本文提出了一種新型的基于嵌入式系統(tǒng)的4G遠程無線監(jiān)測通訊系統(tǒng)。該系統(tǒng)包括硬件系統(tǒng)和軟件部分,綜合考慮到運算速度、性能、成本等因素,選擇STM32作為整個系統(tǒng)的硬件核心,在開發(fā)中,運用層次化的思想,把軟硬件分別模塊化,進行模塊化設(shè)計。本文主要從以下幾個方面闡述:一、課題簡介與描述本章為緒論部分,簡單闡述了課題來源和課題的研究目的,介紹了目前的鋼絲繩無線和有線監(jiān)測系統(tǒng)的發(fā)展現(xiàn)狀,介紹了其優(yōu)點和缺陷,然后對全文的結(jié)構(gòu)進行了簡要的概括。二、總體方案設(shè)計第二章主要介紹整個系統(tǒng)的整體方案。采用層次化的設(shè)計方法,將整個系統(tǒng)分為硬件層、軟件層、用戶應(yīng)用層。下面的章節(jié)就在此基礎(chǔ)上進行一些展開闡述。三、硬件系統(tǒng)第三章介紹基于嵌入式的硬件系統(tǒng)設(shè)計。首先通過對硬件系統(tǒng)的結(jié)構(gòu)層次化設(shè)計,介紹了硬件系統(tǒng)的整體框架大致可以分為三個組成部分,信號處理電路、數(shù)據(jù)采集電路、STM32核心電路。再對細分的各個硬件電路模塊進行設(shè)計,包括MCU核心電路、電壓轉(zhuǎn)換電路、信號采集電路、信號處理電路、串口、4GDTU等模塊。四、軟件系統(tǒng)第四章介紹軟件系統(tǒng)的設(shè)計。軟件系統(tǒng)設(shè)計也是基于層次化的設(shè)計方法,對軟件的整體結(jié)構(gòu)功能進行了分析,大致分為嵌入式軟件系統(tǒng)和GUI界面設(shè)計兩大部分,然后劃分各模塊的功能任務(wù),依據(jù)問題導(dǎo)向的方法,通過描述代碼來深入介紹各個模塊。主要包括主函數(shù)、自定義功能函數(shù)、數(shù)據(jù)采集函數(shù)、數(shù)據(jù)發(fā)送函數(shù)、GUI界面功能設(shè)計等。五、測試與總結(jié)展望第五章設(shè)計測試方案,對本文設(shè)計的嵌入式遠程監(jiān)測通訊系統(tǒng)進行功能測試,對測試的結(jié)果進行分析,總結(jié)已經(jīng)實現(xiàn)的功能,分析整個系統(tǒng)有缺陷之處,反思有缺陷的原因,再思考并展望未來會如何進行改進,并給出下一步的優(yōu)化方向。
2系統(tǒng)總體方案設(shè)計根據(jù)遠程監(jiān)測通訊系統(tǒng)的原理和功能要求,整個系統(tǒng)總共可以分為三個層次,分別為硬件層、軟件層、用戶應(yīng)用層。如圖2-1所示。最底層是硬件層,基于MCU核心模塊,實現(xiàn)信號采集與信號處理功能,并實現(xiàn)與4G模塊的連接;中間層為軟件層,通過各個驅(qū)動程序?qū)崿F(xiàn)對硬件層各種功能的控制;頂層為用戶應(yīng)用層,在PC上運行,對接收到的數(shù)據(jù)進行顯示,并可通過簡單的數(shù)據(jù)發(fā)送來控制硬件的啟動或關(guān)閉。[25]圖2-1總體系統(tǒng)框架硬件層圍繞MCU,搭建最小系統(tǒng),搭載一些硬件模塊,包括AD轉(zhuǎn)換模塊、電壓轉(zhuǎn)換模塊、信號處理模塊、串口模塊等。還有一些圍繞MCU的核心電路模塊。通過這些硬件模塊來為整個系統(tǒng)提供嵌入式硬件基礎(chǔ),其中涉及到電路的搭建,芯片的選型等。這些電路模塊都在AltiumDesigner環(huán)境里進行繪制。嵌入式軟件層就是利用ARM官方提供的KeiluVision5(MDK)的開發(fā)環(huán)境,根據(jù)自己想要實現(xiàn)的功能,編寫程序代碼。包括一些固件庫的移植,主程序的編寫,各種自定義功能函數(shù)的編寫。要實現(xiàn)的代碼包括數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)發(fā)送、定時器等各個模塊的驅(qū)動程序。用戶應(yīng)用層是在QT5的編譯環(huán)境下進行GUI的界面設(shè)計。此GUI界面需要在電腦上運行,電腦端通過串口連接到4G模塊。需要實現(xiàn)的功能包括通過4G模塊接收單片機發(fā)來的損傷數(shù)據(jù),并將其顯示在固定的區(qū)域內(nèi);還要實現(xiàn)字符串接收與16進制接收之間的轉(zhuǎn)換;還需要能夠通過4G模塊給單片機發(fā)送控制數(shù)據(jù),然后4G模塊發(fā)送給單片機,實現(xiàn)用戶對單片機的控制??偟膩碇v,其實就是自己實現(xiàn)一個簡單的串口調(diào)試助手。
3嵌入式系統(tǒng)設(shè)計3.1硬件系統(tǒng)總體方案設(shè)計3.1.1MCU最小系統(tǒng)方案MCU,叫做微控制單元,也叫做單片機,是一種可編程集成電路。它把中央處理器與外部功能電路進行小型化的集成,用于各種設(shè)備的自動化控制。MCU根據(jù)指令結(jié)構(gòu)又可分為CISC和RISC架構(gòu),而大多數(shù)MCU都采用RISC架構(gòu),其指令集較為簡單,寄存器比較多,效率較高,運行速度較快。ARM處理器就是一種基于RISC架構(gòu)的MCU,廣泛用于嵌入式領(lǐng)域,由于其具有節(jié)能、低成本、高性能等各種優(yōu)點,所以在各種自動控制領(lǐng)域具有非常重要的位置。[26][28]為滿足遠程監(jiān)測通訊系統(tǒng)的總體性能要求,且在硬件方面能夠支持A/D模塊、JTAG、串口等外設(shè),軟件方面能夠方便用戶開發(fā)并實現(xiàn)各種功能,綜合考慮后選擇STM32F407ZGT6作為整個硬件系統(tǒng)的微控制單元。其系統(tǒng)結(jié)構(gòu)如圖3-1所示。圖3-1STM32F407內(nèi)部結(jié)構(gòu)STM32F4系列是意法半導(dǎo)體(ST)公司推出的基于CortexM4內(nèi)核的產(chǎn)品。相比于其之前基于CortexM3的STM32F1/F2系列,STM32F4系列的主頻提高了很多,有168Mhz,所以其模數(shù)轉(zhuǎn)換速度更快,定時器功能增加、IO口復(fù)用等功能增強,串口通信速度更快。[22]STM32F4的模數(shù)轉(zhuǎn)換器在采集數(shù)據(jù)方面的能力很強。它具有12位的精度、轉(zhuǎn)換速度能夠達到一微秒,還有多個獨立的控制器,這表明它可以對多個不同的模擬量同時進行高速采集。[22][27][31]。3.1.2電路系統(tǒng)總體結(jié)構(gòu)方案基于STM32F407單片機,系統(tǒng)總體硬件電路大致可以分為三個組成部分,信號處理電路、數(shù)據(jù)采集電路、STM32核心電路。如圖3-2所示。實驗室現(xiàn)有的前端傳感器為電感傳感器和霍爾傳感器,它們通過檢測鋼絲繩的漏磁信號對其損傷進行檢測,測得的電壓信號先通過信號處理電路進行放大和濾波,之后通過AD轉(zhuǎn)換并進行信號采集,進入單片機進行數(shù)據(jù)處理,最后通過串口發(fā)送給4GDTU模塊,此模塊再遠程傳輸?shù)缴衔粰C進行顯示。圖3-2硬件系統(tǒng)總體方案3.2硬件核心電路基于STM32F407單片機的MCU最小系統(tǒng)電路主要包括:晶振電路、濾波電路、復(fù)位電路、JTAG電路等。如圖3-3至3-7所示。圖3-3復(fù)位電路圖3-4STM32F407最小系統(tǒng)核心電路圖3-5晶振電路圖3-6部分濾波電路圖3-7JTAG電路對STM32F407系列MCU進行復(fù)位的方式是低電平復(fù)位,即RST引腳處于低電平時,CPU會處在復(fù)位狀態(tài)。如圖3-3所示,本文設(shè)計的復(fù)位電路中,是通過按下按鈕進行復(fù)位,C24與R13組成了一個較為簡單的RC復(fù)位電路。RC復(fù)位電路的原理如下:單片機剛剛連接到電源的瞬間,電容兩端的壓差還未變化,仍然為零,此時CPU處于復(fù)位的狀態(tài);系統(tǒng)接電運行后,電源通過電阻R13給電容C24充電,當電容C24的充電量超過STM32的高電平閾值時,RST引腳變?yōu)楦唠娖?,CPU由復(fù)位狀態(tài)啟動,開始工作。當按鍵SW1被按下時,電容被短路,RST就接地并變?yōu)榈碗娖剑@樣就實現(xiàn)了通過按鍵進行復(fù)位。此電路中,電阻R13的值和電容C24的值會影響RST的低電平持續(xù)時間,所以要合理選擇它們的值,保證CPU復(fù)位所需的脈沖時間能夠與RST低電平持續(xù)時間相匹配。[33]如圖3-5所示,晶振電路是整個系統(tǒng)的關(guān)鍵,它為整個系統(tǒng)提供時鐘信號,是CPU的“脈搏”,如同人的心跳一樣。為了整個系統(tǒng)能夠正常工作,電路采用了一個32.768kHz的低頻晶振和一個8MHz的高頻無源晶振。晶振兩端與GND之間接的電容,是為了使其能夠正常起振并工作在穩(wěn)定狀態(tài)。系統(tǒng)中大部分外設(shè)所用的時鐘源都是8MHz的高頻晶振,即高頻晶振就是主時鐘;而低頻晶振為獨立看門狗、自動喚醒單元、RTC時鐘等提供時鐘信號。[34]如圖3-6所示,濾波電路是為了對電路的電源進行濾波,并同時起到去耦合的作用。因為外界電源在使用過程中可能會出現(xiàn)一些抖動,如果不進行濾波,這種抖動可能會導(dǎo)致單片機異常復(fù)位。所以濾波電路能夠提高系統(tǒng)的穩(wěn)定性和可靠性。如圖3-7所示是JTAG接口電路。JTAG是一個國際標準協(xié)議,可以用于調(diào)試ARM類型的芯片。其接口電路主要為用戶提供在線調(diào)試的功能。[35]用戶在編程后,利用JTAG,可以將編寫好的程序?qū)崟r下載到開發(fā)板上進行在線調(diào)試,比起串口下載,速度更快,效率更高,可以縮短程序的開發(fā)時間。3.3電壓轉(zhuǎn)換模塊設(shè)計在整個STM32F4嵌入式硬件控制系統(tǒng)中,采用的是外部電源進行供電,各個模塊大多需要5V或3.3V直流電源進行供電。本文選擇的電壓轉(zhuǎn)化芯片為AMS1117,并起到穩(wěn)壓的作用。因為AMS1117雖然在同類型產(chǎn)品中不是性能最好的,卻是比較穩(wěn)定的,并且它價格便宜,管腳定義比較簡單,對于本系統(tǒng)來說是比較理想的芯片。電路設(shè)計如圖3-8所示。圖3-8AMS1117穩(wěn)壓電路AMS1117是一個低漏失壓調(diào)整器,是一個三端線性穩(wěn)壓電路,它有多種固定電壓版本,也有可調(diào)輸出版本。其固定電壓版本外圍電路的搭建比較簡單,輸入部分和輸出部分各連接兩個電容就可以工作。而芯片內(nèi)部,有各種模塊,包括啟動模塊、電壓基準源模塊、偏置模塊、驅(qū)動模塊以及各種保護模塊等。其最簡單的封裝以及引腳定義如圖3-9及表3-1所示。圖3-9AMS1117引腳圖表3-1AMS1117引腳定義引腳名稱引腳標號引腳定義ADJ/GND1可調(diào)端/接地端VOUT2電壓輸出VIN3電壓輸入3.4信號處理模塊設(shè)計實驗室現(xiàn)有的前端傳感器為電感傳感器和霍爾傳感器,它們通過檢測鋼絲繩的漏磁信號對其損傷進行檢測,最后產(chǎn)生的電壓信號比較微弱,是低頻的小信號,而且還很容易被外界其他無用信號干擾。[35]所以不能對其進行直接采集,需要先對其進行放大。另外,信號采集過程中,外界環(huán)境還可能存在一些噪聲干擾,這些干擾信號大多都是高頻信號,若不進行處理,很容易就會造成測得的缺陷信號失真。所以為了提高所得信號的信噪比,需要對傳感器測得的信號進行低通濾波處理,盡量濾除那些高頻的無用信息和噪聲。[29]圖3-10信號處理電路如圖3-10所示為信號處理電路原理圖。傳感器測得的某一路電壓信號通過CH1端進入兩個級聯(lián)的運算放大器進行放大并濾波。因為共有16路電壓信號,所以如圖2-11所示的電路在實際使用中共有16個,它們對16路電壓信號進行濾波。兩級放大電路中,第一級對信號進行放大處理,其放大倍數(shù)為A1=R1/R3=100;第二級除了有相同倍數(shù)的放大功能以外,還是一個帶通濾波器,它的下截至頻率為fL=1/(2πR4C4)=15.9Hz,上截止頻率為fH=159Hz。一、二級之間有一個10uF的電容,作用是隔絕兩級放大電路之間的干擾,并且與第二級放大電路構(gòu)成帶通濾波器。據(jù)實驗室已有數(shù)據(jù)可知,前端傳感器測得的有效信號的頻率在50Hz左右,此通帶的濾波范圍滿足濾除噪聲的要求。兩級運算放大電路的總放大倍數(shù)為A=A1×A2=100×100=10000運算放大器芯片的選型中,選擇了TLC2262AI作為要使用的運放芯片。它是一個雙運放芯片,具有功耗小、噪聲小、干擾小、輸入阻抗大等優(yōu)點,輸出電壓的幅值可以達到STM32ADC輸入電壓的需求。其引腳定義如圖3-11所示。圖3-11芯片TLC2262AI引腳定義3.5信號采集模塊設(shè)計信號采集電路,其實就是采用的STM32F407中內(nèi)置的逐次逼近型A/D轉(zhuǎn)換器,它是12位的,內(nèi)部有數(shù)個獨立的A/D轉(zhuǎn)換器,有可復(fù)用的16個轉(zhuǎn)換通道,轉(zhuǎn)換模式可以有單次轉(zhuǎn)換、連續(xù)轉(zhuǎn)換等模式,對于通道有單通道轉(zhuǎn)換、多通道掃描模式,還支持外部觸發(fā)轉(zhuǎn)換、定時器觸發(fā)轉(zhuǎn)換、軟件觸發(fā)轉(zhuǎn)換,支持DMA存儲。其采樣頻率最高能有2.4MHz。[22]與STM32的ADC相關(guān)的引腳如表3-2所示。表3-2ADC相關(guān)引腳引腳名稱引腳信號引腳定義VREF+模擬參考電壓正極正極參考電壓最大值為1.8V~VDDAVREF-模擬參考電壓負極負極參考電壓最小值為VSSAVSSAVDDA模擬負電壓模擬正電壓工作電源負極工作電源正極EXTI_11/EXTI_15外部觸發(fā)信號兩路外部觸發(fā)信號ADCX_IN[15:0]模擬信號輸入16通道模擬信號輸入如圖3-12所示,用一個2×10的接插件來連接ADC的16個通道對應(yīng)的引腳。在20針的IO口接插件中,除了有16針是用于連接ADC的16路通道以外,另外還有兩個接口是定時器的外部接口,用來連接編碼器,配合STM32定時器的編碼器模式來使用;最后兩個接口連接電源和GND,用于電路軟硬件的調(diào)試。圖3-1220針接插件(IO口)3.6串口模塊設(shè)計串口,全稱為串行接口,顧名思義,它的傳輸原理就是數(shù)據(jù)一位一位地按順序傳送,比較簡單,適用于遠距離通信,成本較低,但是傳輸速率不高。它是一種物理接口形式,但是有許多電平標準協(xié)議。串口按照電平標準協(xié)議可劃分為TTL、RS232、RS485、RS422等串口。[37]這里我們使用的是STM32的TTL串口,它可以進行異步接收、發(fā)送,只需要四個引腳,其電平標準為:低電平為0,高電平為1,是標準的數(shù)字電路邏輯。如圖3-13所示,是串口模塊。串口模塊其實就是一個四腳的插針。四個腳分別接到電源、GND、單片機的RXD1(單片機數(shù)據(jù)接收腳)、單片機的TXD1(單片機數(shù)據(jù)發(fā)送腳)。圖3-13串口模塊此串口模塊,是用來與4GDTU模塊進行通信的。其簡要工作原理如圖3-14所示。如圖3-15為市面上常見的4GDTU模塊,圖3-16為其自帶的一些串行接口。這些4G模塊大多都是通過串行接口與前端的嵌入式數(shù)據(jù)采集設(shè)備進行連接,再通過手機卡連接上4G網(wǎng)絡(luò),與廠商搭建的服務(wù)器建立雙向連接,設(shè)置好數(shù)據(jù)透傳模式,就可以上傳數(shù)據(jù)到服務(wù)器,然后服務(wù)器可以把數(shù)據(jù)發(fā)送給另一個連接到PC機上的4G模塊,兩個4G模塊這樣進行數(shù)據(jù)傳輸,就叫做數(shù)據(jù)透傳。[24]圖3-144GDTU模塊的簡要工作原理圖3-154GDTU模塊圖3-164GDTU模塊接口單片機串口與此4G模塊的硬件連接,就是連接到它的RS232串口上。單片機與4G模塊串口都有TX、RX腳,把它們互接,再將G腳接到GND即可。通過串口方式實現(xiàn)數(shù)據(jù)互相發(fā)送與接收。因為串口的傳輸速率較低,制約了整個系統(tǒng)的整體傳輸速率,即使4G模塊與服務(wù)器之間的無線傳輸速率很高,也無法提高整個系統(tǒng)的傳輸速率。所以目前還無法進行數(shù)據(jù)的大批量快速完整傳輸,僅能夠發(fā)送損傷部位的數(shù)據(jù)。3.7本章小結(jié)本章節(jié)的主要內(nèi)容為嵌入式硬件系統(tǒng)的設(shè)計。包括硬件總體結(jié)構(gòu)的設(shè)計以及各細分模塊的硬件電路設(shè)計。在硬件總體結(jié)構(gòu)的設(shè)計中,選擇了STM32F407單片機平臺作為硬件系統(tǒng)的平臺方案,運用了層次化的設(shè)計方法,將其細分為了數(shù)個層次,包括硬件核心電路、電壓轉(zhuǎn)換電路、信號處理電路、信號采集電路、串口等,然后再對各個層次進行了模塊化描述,介紹了其各自的實現(xiàn)過程,也對要用到的4G模塊進行了簡要介紹。
4軟件系統(tǒng)設(shè)計4.1軟件總體結(jié)構(gòu)設(shè)計如圖4-1所示,軟件的總體結(jié)構(gòu)以層次化的方法來劃分,可以包括嵌入式軟件系統(tǒng)設(shè)計和GUI界面設(shè)計兩大部分。嵌入式軟件系統(tǒng)設(shè)計是在MDK(KEIL5)的編譯環(huán)境中進行編寫的;而GUI界面設(shè)計則是選擇了QT5作為編譯環(huán)境。嵌入式軟件設(shè)計要實現(xiàn)的功能包括模數(shù)轉(zhuǎn)換數(shù)據(jù)采集、數(shù)據(jù)處理、損傷數(shù)據(jù)的發(fā)送、各模塊底層驅(qū)動、與4GDTU模塊的串口通信等;GUI界面設(shè)計除了設(shè)計用戶交互界面以外,要實現(xiàn)的功能還包括與4GDTU模塊的通信、指令發(fā)送、損傷數(shù)據(jù)顯示等功能。[32]圖4-1軟件系統(tǒng)總體結(jié)構(gòu)4.2嵌入式軟件系統(tǒng)設(shè)計要進行嵌入式軟件的編寫,首先是在電腦上安裝好MDK的編譯環(huán)境。MDK全稱為MicrocontrollerDevelopmentKit,它基于KeiluVision5的集成開發(fā)環(huán)境,為基于Cortex-M系列等各種處理器的設(shè)備提供開發(fā)平臺,專門用于單片機的開發(fā),能夠滿足嵌入式設(shè)計的各種需求。[22]安裝好編譯環(huán)境之后,仍不能馬上編寫程序,還要添加一些固件庫。官方為了方便用戶進行開發(fā),提供了一套標準固件庫。建立自己的工程時,需要根據(jù)自己所用到的硬件添加對應(yīng)的標準固件庫。如圖4-2所示,這些固件庫能夠作為中間層,實現(xiàn)軟件與硬件的連接,為上層軟件系統(tǒng)對硬件的操作提供支持,并且對硬件設(shè)備進行初始化與自檢操作。還可以為用戶編寫代碼提供便利,比如將一些難以記憶的寄存器操作封裝成函數(shù),增加代碼的可讀性。圖4-3為系統(tǒng)包含的一些固件庫。圖4-2固件庫在程序中的作用圖4-3系統(tǒng)包含的一些固件庫最后,編譯環(huán)境搭建完成,編寫代碼時,主要編寫方法為功能導(dǎo)向、問題導(dǎo)向。把要實現(xiàn)的功能、要解決的問題羅列出來,再由程序來實現(xiàn)這些功能,并解決問題。4.2.1主函數(shù)設(shè)計軟件系統(tǒng)主函數(shù)部分,主要實現(xiàn)的功能為根據(jù)串口接收到數(shù)據(jù)的不同來調(diào)用功能函數(shù)。具體流程圖如圖4-4所示。主函數(shù)在進入while循環(huán)之前,先進行了各個模塊的初始化,包括LED設(shè)置、串口設(shè)置、定時器設(shè)置、中斷優(yōu)先級分組設(shè)置等,然后進入循環(huán)檢測,若檢測到串口接收到數(shù)據(jù),則判斷此數(shù)據(jù)是否符合條件,若符合條件,則根據(jù)相應(yīng)的條件調(diào)用自定義功能函數(shù)。圖4-4主函數(shù)的流程圖main函數(shù)核心代碼與注釋如下:intmain(void){ u16s; u8t=0; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//系統(tǒng)中斷優(yōu)先級的設(shè)置 delay_init(168);//初始化延時函數(shù) uart_init(115200); //初始化串口波特率為115200 KEY_Init();//初始化按鍵 LED_Init(); //初始化LEDs=0; while(1)//循環(huán)檢測 { if((USART_RX_STA&0x8000)!=0) { t=USART_RX_BUF[0]; }//如果檢測到串口有數(shù)據(jù)接收完畢,則將接收到的數(shù)據(jù)保存至t中 else continue;//如果未檢測到串口數(shù)據(jù)接收,則直接跳過本次循環(huán) if(t!=s)//如果接收到的值相較于上次的值發(fā)生變化 { flag=1;//全局變量,初次調(diào)用標志位置為1 s=t;//s記錄下接收到的數(shù)據(jù) App_Call(t,1.5);//調(diào)用功能函數(shù) } elseif(t==0)//如果接收到的值相較于上次的值無變化,且為0 { //空過這輪循環(huán) } elseif(t==1)//如果接收到的值相較于上次的值無變化,且為1 { flag=0;//初次調(diào)用標志位置為0 App_Call(t,1.5);//維持功能函數(shù)的調(diào)用 } }}4.2.2自定義功能函數(shù)設(shè)計軟件系統(tǒng)的自定義功能函數(shù)包括App_Call函數(shù)、Check_Data函數(shù)以及Send函數(shù)。它們的功能分別為:App_Call函數(shù)根據(jù)從串口接收到數(shù)據(jù)的不同,執(zhí)行開啟數(shù)據(jù)采集或關(guān)閉數(shù)據(jù)采集的操作,串口接收到1,則啟動各功能,串口接收到0,則關(guān)閉各功能;Check_Data函數(shù)檢測接收到的數(shù)據(jù),與設(shè)定好的閾值進行比較,如果大于設(shè)定的閾值,說明此數(shù)據(jù)可能為損傷數(shù)據(jù),則進行發(fā)送操作;Send函數(shù)是執(zhí)行將數(shù)據(jù)發(fā)送到串口的操作。(1)App_Call函數(shù)沒有返回值,在函數(shù)體內(nèi)完成開啟數(shù)據(jù)采集或關(guān)閉數(shù)據(jù)采集的功能,需要傳進來兩個參數(shù)t和y,t為從串口接收到的數(shù)據(jù),y為設(shè)定的檢測電壓閾值,其功能流程圖如圖4-5所示。圖4-5App_Call函數(shù)流程圖其核心代碼與注釋如下:voidApp_Call(u8t,floaty)//功能函數(shù),有兩個傳入?yún)?shù)t和y{ intdata_remain;//記錄接收緩沖數(shù)組空余的數(shù)據(jù)量 intdata_now;//記錄本次調(diào)用時數(shù)據(jù)采集到接收緩沖區(qū)的哪個位置 if(t==0) {//t為函數(shù)的傳入?yún)?shù),若為0,則說明需要關(guān)閉所有數(shù)據(jù)采集與傳輸 ADC_Cmd(ADC1,DISABLE); DMA_Cmd(DMA2_Stream0,DISABLE); DMA_Cmd(DMA2_Stream7,DISABLE); TIM_Cmd(TIM4,DISABLE);//關(guān)閉所有數(shù)據(jù)采集與傳輸功能 } if(t==1) {//t為函數(shù)的傳入?yún)?shù),若為1,則說明需要開啟所有數(shù)據(jù)采集與傳輸 if(flag==1) {//全局變量flag為1,表明此次為初次調(diào)用,則需要對各數(shù)據(jù)采集模塊進行啟動;flag不為1時,說明已經(jīng)啟動過,直接執(zhí)行下面的操作 data_last=0; Encoder_Init(); Adc_Dma_Init();//啟動編碼器、adc的數(shù)據(jù)采集 } data_remain=DMA_GetCurrDataCounter(DMA2_Stream0);//得到接收緩沖區(qū)當前有多少個數(shù)據(jù)空余data_now=SAMPLE_COUNT-data_remain;//得到本次調(diào)用時數(shù)據(jù)采集到接收緩沖區(qū)的哪個位置 if(data_now>data_last) { Check_Data(data_last,data_now,y);//Check_Data函數(shù)功能為逐個檢測接收到的電壓值是否有超出設(shè)定的閾值y,如果有,就發(fā)送此數(shù)據(jù),沒有就不發(fā)送 } if(data_now<data_last) { Check_Data(data_last,SAMPLE_COUNT,y); Check_Data(0,data_now,y); } //根據(jù)采集到的數(shù)據(jù)位置與上次的數(shù)據(jù)位置來檢測數(shù)據(jù) data_last=data_now; }}(2)軟件系統(tǒng)啟動后,Check_Data函數(shù)會被App_Call函數(shù)調(diào)用,用來檢測接收到的電壓數(shù)據(jù)的大小是否超過閾值,如果其超過了閾值,則調(diào)用Send函數(shù),將損傷部位的電壓數(shù)據(jù)與同時采集到的位置數(shù)據(jù)一同發(fā)送出去,給上位機提供損傷部位的位置信號和電壓幅值信號。其核心代碼和注釋如下:voidCheck_Data(inta,intb,floaty)/*Check_Data函數(shù)有三個參數(shù),分別為a,b,y,函數(shù)檢測的時候檢測的范圍就是接收緩沖數(shù)組里a到b之間的值,檢測的電壓閾值就是y*/{ inti; for(i=a;i<b;i++)//循環(huán)檢測接收緩沖數(shù)組里的電壓值 { temp=(float)dma_buf.ADCConvertedValue[i]/4096*3.3f; if(temp>y)//如果超過了設(shè)定的閾值,則視為損傷數(shù)據(jù),發(fā)送損傷的位置和幅值 { Send_Buf[0]=Read_Position(); Send_Buf[1]=temp; Send(0); // printf("CH1value=%fV\r\n",temp);//printf為調(diào)試用,把某個通道的數(shù)據(jù)顯示到串口,方便觀察數(shù)據(jù) } } }(3)Send函數(shù)功能則較為簡單,就是啟動DMA,對需要發(fā)送的數(shù)據(jù)進行DMA發(fā)送。其代碼和注釋如下:voidSend(void){ dma_Init();//對dma進行初始化配置,并啟動 while(!DMA_GetFlagStatus(DMA2_Stream7,DMA_FLAG_TCIF7));//等待傳輸完成標志位置位,標志位置位時表示此次傳輸完成,跳出循環(huán) DMA_Cmd(DMA2_Stream7,DISABLE);//傳輸完成,關(guān)閉本次dma傳輸 DMA_ClearFlag(DMA2_Stream7,DMA_FLAG_TCIF7);//清楚傳輸完成標志位}4.2.3DMA傳輸任務(wù)設(shè)計DMA全稱為DirectMemoryAccess,即直接存儲器訪問。顧名思義,它對存儲器的訪問不需要CPU來進行直接控制傳輸,CPU只需要對DMA進行初始化,后續(xù)的數(shù)據(jù)傳輸工作就交給DMA來完成。它沒有復(fù)雜的工作,而是在硬件部分為內(nèi)存與外設(shè)之間開辟一條直接傳送數(shù)據(jù)的通路,這樣能使CPU分配更多時間到其他工作上。[22]在STM32F407中,DMA控制器共有2個,每個DMA控制器都可以控制數(shù)個數(shù)據(jù)流。每個數(shù)據(jù)流與硬件相連接,可以用來實現(xiàn)外設(shè)與內(nèi)存之間的數(shù)據(jù)傳輸。STM32F4的DMA支持的傳輸類型有外設(shè)到存儲器的傳輸、存儲器到外設(shè)的傳輸、存儲器到存儲器的傳輸,并可以設(shè)置單次發(fā)送和連續(xù)發(fā)送模式。還有許多的模式配置,在這里不再贅述,見下面的DMA配置核心代碼。本文有兩個地方需要用到DMA傳輸。一是ADC數(shù)據(jù)采集,數(shù)據(jù)采集要搭配DMA來使用,把外設(shè)采集到的數(shù)據(jù)通過DMA直接發(fā)送到設(shè)置好的數(shù)據(jù)接收緩沖數(shù)組中;二是數(shù)據(jù)發(fā)送函數(shù),需要用到DMA將損傷數(shù)據(jù)從內(nèi)存發(fā)送到串口,即發(fā)送給串口上連接的4G模塊。開啟DMA之前,要對其進行初始化配置,先使能與DMA有關(guān)的時鐘,對相應(yīng)的數(shù)據(jù)流、通道進行具體化配置。內(nèi)存發(fā)送到串口所用的數(shù)據(jù)流是DMA2_Stream7的Channel_4通道。具體配置如圖4-6所示:圖4-6DMA配置代碼及注釋4.2.4ADC傳輸任務(wù)的設(shè)計在啟動ADC進行數(shù)據(jù)采集之前,要先通過程序?qū)DC進行初始化配置,這種程序就叫做驅(qū)動程序。STM32的ADC支持的觸發(fā)模式為:軟件觸發(fā)、外部事件觸發(fā)、定時器觸發(fā)??梢栽O(shè)置單次采樣或連續(xù)采樣模式,對于ADC的16個通道來說,有單通道模式和多通道掃描模式。因為ADC是從外設(shè)采集數(shù)據(jù),經(jīng)模數(shù)轉(zhuǎn)換存放到內(nèi)存中,所以一般都搭配DMA傳輸來使用。本文對ADC的模式配置采用的是定時器觸發(fā),多通道掃描模式,關(guān)閉連續(xù)轉(zhuǎn)換。采用定時器觸發(fā)就意味著等時間采樣。初始化配置時,首先需要使能用到的GPIO口、ADC、DMA相關(guān)的時鐘,然后配置相應(yīng)的GPIO口為模擬輸入模式。本系統(tǒng)使用的是ADC1,控制STM32ADC1的DMA數(shù)據(jù)流為DMA2_Stream0,通道0,其具體配置與上一小節(jié)用于發(fā)送數(shù)據(jù)的DMA2_Stream7相差不大,僅僅是發(fā)送方向反過來,外設(shè)地址為ADC1的數(shù)據(jù)寄存器地址,內(nèi)存地址為自己設(shè)定的數(shù)組的地址。其他DMA2_Stream0的配置不再贅述。本系統(tǒng)采用定時器觸發(fā),STM32的ADC雖然有連續(xù)轉(zhuǎn)換模式加掃描模式,但是這樣的話采樣頻率就比較固定,不能由開發(fā)者進行配置。所以就采用了定時器對ADC進行觸發(fā),這樣就可以通過編寫程序來改變定時器的計數(shù)周期,進而改變采樣頻率,方便開發(fā)者的操作。設(shè)置ADC為獨立模式,禁止連續(xù)轉(zhuǎn)換,開啟多通道掃描模式,觸發(fā)方式選擇為定時器1的上升沿觸發(fā),在每次計數(shù)的上升沿,就會觸發(fā)模數(shù)轉(zhuǎn)換。其部分核心代碼如圖4-7所示:圖4-7ADC部分核心代碼及注釋4.2.5編碼器數(shù)據(jù)采集任務(wù)的設(shè)計編碼器,簡單來講就是一種能夠探測位移信號,然后將其轉(zhuǎn)化為電信號的一種傳感器。編碼器可以分為許多種類,本系統(tǒng)使用的是其中的一種——增量式編碼器。增量式編碼器能夠?qū)⑽灰妻D(zhuǎn)化為周期性的電信號,然后把這個電信號轉(zhuǎn)化為計數(shù)脈沖,用脈沖個數(shù)來表示位移的大小。這種編碼器一般都有三相輸出信號:通常為A相、B相、Z相輸出。其中A、B兩相輸出的脈沖有一定的先后,由這兩相的先后關(guān)系可以判斷編碼器的正反轉(zhuǎn);Z相則是每轉(zhuǎn)一圈發(fā)出一個脈沖。而STM32F407為了方便用戶使用,專門提供了一種編碼器接口模式。定時器1、2、3、4、5、8都能夠提供這種模式。這種模式提供了單項計數(shù)模式和雙項計數(shù)模式,其中單項計數(shù)只能測量位移,而雙項計數(shù)模式可以測量方向和位移,并且能夠很好地消除一些毛刺的干擾。本系統(tǒng)雖然不用得到位移的方向,但是為了消除毛刺干擾,還是使用雙項計數(shù)。在進行定時器初始化之前,要初始化用到的各個時鐘,還要對所用定時器對應(yīng)的通道GPIO口進行初始化。本系統(tǒng)選擇的是定時器TIM4,對應(yīng)的IO口為PB6和PB7,要注意將其設(shè)置為復(fù)用模式。用STM32定時器TIM4配置編碼器接口模式的部分核心代碼如圖4-8所示:圖4-8編碼器模式的配置及注釋定時器的EncoderMode有三種模式,TI1,TI2和TI12,因為增量式編碼器有AB兩相,分別接入了定時器的通道1和通道2,TI1和TI2模式意思是只在通道1的上升沿或者通道2的上升沿計數(shù),TI12是在通道1和通道2的上升沿都計數(shù),得到的結(jié)果是位移量的兩倍;如果再把模式選擇為通道1和通道2的上升沿和下降沿均計數(shù),則為編碼器位移量的四倍。因為本系統(tǒng)用的是TI12模式,設(shè)置此模式在兩個輸入通道的上升沿進行計數(shù),所以得到的結(jié)果會是位移量的兩倍。最后再編寫一個簡單的函數(shù),對定時器TIM4的計數(shù)值進行讀取,再除以2就是位移量。當需要讀取位移量的時候,調(diào)用此函數(shù)即可。4.3GUI界面設(shè)計GUI界面采用QT5的編譯環(huán)境進行開發(fā)。其界面如圖4-9所示。主要實現(xiàn)的功能包括:(1)創(chuàng)建串口,并搜索電腦上的可用串口,對其功能和參數(shù)進行配置;(2)創(chuàng)建信號槽函數(shù),由按鈕開啟或關(guān)閉串口,同時也由這個按鈕發(fā)送開啟或關(guān)閉的指令;(3)創(chuàng)建兩個文本顯示窗口,一個用來顯示串口接收到的數(shù)據(jù),另一個用來顯示串口開啟或關(guān)閉的狀態(tài);(4)創(chuàng)建另一個按鈕,此按鈕也連接信號槽函數(shù),功能為清除文本窗口目前顯示的所有信息;(5)創(chuàng)建一個選擇框,用來實現(xiàn)16進制顯示的功能。勾選上時,文本框以16進制顯示串口接收到的數(shù)據(jù);未勾選時,文本框以字符串方式顯示串口接收到的數(shù)據(jù);(6)創(chuàng)建一個輸入窗口,限制其只能輸入數(shù)字,輸入完成后用戶可以點擊“輸入完成”按鈕來發(fā)送這個數(shù)據(jù)到單片機,從而設(shè)置單片機檢測損傷信號的電壓閾值。圖4-9GUI界面設(shè)計4.4本章小結(jié)本章主要介紹了系統(tǒng)的軟件設(shè)計部分。其主要分為嵌入式軟件設(shè)計和GUI界面的設(shè)計。其中,在嵌入式軟件設(shè)計的部分,先介紹了開發(fā)環(huán)境的一些準備操作,然后介紹了主函數(shù)、自定義功能函數(shù)、ADC和DMA的配置、定時器的編碼器接口模式的配置等具體實現(xiàn)細節(jié)和部分核心代碼及注釋;最后,介紹了GUI界面設(shè)計所實現(xiàn)的一些具體功能。
5測試與總結(jié)展望5.1系統(tǒng)測試由于時間和水平有限,本系統(tǒng)并未自己做出實物,用的是實驗室?guī)熜脂F(xiàn)有的單片機學(xué)習(xí)板來進行測試。此學(xué)習(xí)板的MCU也是STM32F407,它搭載的各個模塊和本系統(tǒng)的都很相似,多了一些引出GPIO口,多了一些高級外設(shè)。它的MCU是STM32F4系列,也保證了添加固件庫和燒寫軟件時不會遇到無法適配的問題,所以可以用它來模擬本系統(tǒng)的測試。首先要把4G模塊與單片機通過串口連接起來,為數(shù)據(jù)發(fā)送端。如圖5-1所示。圖5-14G模塊與單片機串口的連接然后將另一4G模塊也通過串口連接至電腦端,用于接收數(shù)據(jù)。如圖5-2所示。圖5-2另一4G模塊連接至PC端本測試中,ADC共有16個通道,采用單片機自帶的3.3V電源對這些通道進行測試,每次只把一個通道置為3.3V,其他通道都接GND,再把檢測電壓的閾值設(shè)置為3V,以此來測試每個通道的可用性。如圖5-3所示,是通過串口對ADC通道1的測試,其他各個通道的測試方法與之相同。測試時用的是字符串顯示,單片機以字符串方式發(fā)送數(shù)據(jù)到串口。圖5-3ADC通道1測試經(jīng)測試,得出的結(jié)果為ADC的16個通道都能夠很好地采集到正確數(shù)據(jù);DMA也能夠正常工作,把數(shù)據(jù)發(fā)送到上位機;還有檢測電壓閾值的算法,也能夠很好地檢測到超過閾值的數(shù)據(jù)并發(fā)送出來,不會發(fā)送低于閾值的電壓數(shù)據(jù)。5.2總結(jié)與展望5.2.1系統(tǒng)設(shè)計總結(jié)在本次畢業(yè)設(shè)計任務(wù)中,針對現(xiàn)有的有線式或便攜式監(jiān)測通訊系統(tǒng)存在的一些問題,提出了一套基于嵌入式系統(tǒng)的4G遠程無線監(jiān)測通訊系統(tǒng)。利用層次化設(shè)計的方法,完成了嵌入式硬件方案設(shè)計、嵌入式軟件設(shè)計和GUI界面設(shè)計,最后經(jīng)過測試,驗證了上述基于STM32F407的嵌入式硬件方案、基于MDK的軟件設(shè)計以及基于QT5的GUI界面設(shè)計的可行性。硬件啟動后,把軟件燒寫進去,目的是通過軟件實現(xiàn)數(shù)據(jù)采集、數(shù)據(jù)接收、數(shù)據(jù)發(fā)送的功能,經(jīng)測試后發(fā)現(xiàn)這些預(yù)設(shè)的功能都能夠正常實現(xiàn);GUI界面設(shè)計了一個簡單的串口調(diào)試助手,經(jīng)測試,其發(fā)送數(shù)據(jù)、接收數(shù)據(jù)、顯示數(shù)據(jù)、清除顯示、16進制顯示的功能都有效,能夠合理地實現(xiàn),驗證了其可靠性。5.2.2展望在本次設(shè)計中,由于時間有限和自身水平不夠高的原因,整個設(shè)計也存在有很多缺陷,所以還有很大的完善空間,正式進入實驗室后,計劃開展進一步的工作,逐步改善改系統(tǒng)。系統(tǒng)存在的缺陷以及以后要進一步開展的工作包括以下方面:(1)未能實現(xiàn)大批量的數(shù)據(jù)傳輸。因為4G模塊與外部設(shè)備只能通過串口連接,而串口是一種低速的接口,限制了整個系統(tǒng)的數(shù)據(jù)傳輸速度。所以本系統(tǒng)還沒有實現(xiàn)大批量的數(shù)據(jù)快速進行傳輸,只是采集數(shù)據(jù)后對數(shù)據(jù)進行評判,找出損傷數(shù)據(jù),只傳輸損傷數(shù)據(jù)的信息。所以,對于這個問題,后續(xù)我還要繼續(xù)深入開展下去,繼續(xù)深入學(xué)習(xí)嵌入式的知識,找到解決大批量數(shù)據(jù)傳輸問題的方法。(2)實踐部分不夠充分。因為自身能力不夠高還有時間有限的原因,本系統(tǒng)硬件雖然畫出了電路圖和PCB圖,但未做出實物,只能用實驗室相似的STM32F407開發(fā)板來代替本系統(tǒng)的硬件。所以我以后要加強自身的實踐方面能力,讓自己在規(guī)定的時間內(nèi)能夠做出東西,進行實踐操作。(3)軟件功能不夠完善。本系統(tǒng)的軟件雖然有實現(xiàn)了數(shù)據(jù)采集、數(shù)據(jù)評判、數(shù)據(jù)接收、數(shù)據(jù)發(fā)送等各種功能,但是仍然有一些缺陷:邏輯功能不夠完整、代碼冗雜等。今后我必須提高自身編寫代碼的水平,做到快速高效地用代碼實現(xiàn)各種功能。(4)自研度不夠高。在系統(tǒng)中,因為4G這方面設(shè)計的原理較為復(fù)雜,所以4G遠程傳輸采用的是別人研發(fā)的4G模塊來進行的,之后要在4G模塊這方面進行深入,弄懂其原理。在本任務(wù)的設(shè)計過程和論文撰寫過程中,由于本人的水平有限,出現(xiàn)的錯誤、缺陷以及疏漏的地方,懇請各位老師批評指正!
參考文獻[1]江鵬程,李志浩,齊曉輝.4G網(wǎng)絡(luò)裝備車輛遠程監(jiān)控系統(tǒng)[J].兵工自動化,2020,39(02):24-27.[2]李廣毅.無線數(shù)據(jù)傳輸技術(shù)在通信電源監(jiān)控系統(tǒng)中的應(yīng)用[J].通信電源技術(shù),2018,35(11):157-158.[3]王德麾,馮軍帥,宋海亮,謝志梅.基于無線傳感器網(wǎng)絡(luò)和3G/4G的遠程環(huán)境監(jiān)測系統(tǒng)研究[J].物聯(lián)網(wǎng)技術(shù),2015,5(03):17-18.[4]王東,穆武第,張廣政.基于3G網(wǎng)絡(luò)的遠程無線監(jiān)控系統(tǒng)設(shè)計[J].電視技術(shù),2012,36(05):106-109.[5]劉景鋒,沈駿,李炎亮.基于i.MX6UL平臺的重型車輛遠程監(jiān)控系統(tǒng)研究[J].上海工程技術(shù)大學(xué)學(xué)報,2020,34(03):232-237.[6]王銘,倪平,王冬,李道德.基于3G網(wǎng)絡(luò)的遠程無線綜合監(jiān)控系統(tǒng)[J].電子技術(shù)應(yīng)用,2011,37(01):114-116+119.[7]李雙喜,徐識溥,劉勇,鄭憲清,王運圣,呂衛(wèi)光.基于4G無線傳感網(wǎng)絡(luò)的大田土壤環(huán)境遠程監(jiān)測系統(tǒng)設(shè)計與實現(xiàn)[J].上海農(nóng)業(yè)學(xué)報,2018,34(05):105-110.[8]WangS,HouY,GaoF,etal.AnovelIoTaccessarchitectureforvehiclemonitoringsystem[C]//2016IEEE3rdWorldForumonInternetofThings(WF-IoT).IEEE,2016:639-642.[9]LeeHC,KeKH.Monitoringoflarge-areaIoTsensorsusingaLoRawirelessmeshnetworksystem:Designandevaluation[J].IEEETransactionsonInstrumentationandMeasurement,2018,67(9):2177-2187.[10]XiaK,NiJ,YeY,etal.Areal-timemonitoringsystembasedonZigBeeand4Gcommunicationsforphotovoltaicgeneration[J].CSEEJournalofPowerandEnergySystems,2020,6(1):52-63.[11]GarbhapuVV,GopalanS.IoTbasedlowcostsinglesensornoderemotehealthmonitoringsystem[J].Procediacomputerscience,2017,113:408-415.[12]VijayalakshmiMM.IoTBasedSmartFarminginaAgriculture[J].[13]HuhS,ChoS,KimS.ManagingIoTdevicesusingblockchainplatform[C]//201719thinternationalconferenceonadvancedcommunicationtechnology(ICACT).IEEE,2017:464-467.[14]ZhangJ.ResearchonRemoteMonitoringSystemofLocomotiveSignalBasedon4GNetwork[C]//20183rdInternationalConferenceonAutomation,MechanicalControlandComputationalEngineering(AMCCE2018).AtlantisPress,2018.[15]AhmadNizarHarun,NorlizaMohamed,RobiahAhmad,etal.ImprovedInternetofThings(IoT)monitoringsystemforgrowthoptimizationofBrassicachinensis.2019,164[16]ChienLee,Yu-JenWang.Developmentofacloud-basedIoTmonitoringsystemforFishmetabolismandactivityinaquaponics.2020,90(C)[17]李錦龍,李曉根,于運淥,鄧小寶.基于ZigBee和4G的空氣質(zhì)量遠程監(jiān)測系統(tǒng)設(shè)計[J].自動化與儀表,2019,34(02):99-102.[18]李義斌.淺談工程機械遠程監(jiān)控系統(tǒng)的發(fā)展趨勢[J].南方農(nóng)機,2020,51(05):124.[19]余紅波.淺談智能化遠程監(jiān)控及其機房的配電系統(tǒng)發(fā)展趨勢[J].中國設(shè)備工程,2019(04):211-212.[20]陳經(jīng)緯.物聯(lián)網(wǎng)通信技術(shù)發(fā)展現(xiàn)狀及趨勢研究[J].中小企業(yè)管理與科技(中旬刊),2020(11):193-194.[21]路榮坤,陳忠孝,秦剛,叱嬋娟.基于4G-DTU水質(zhì)監(jiān)測系統(tǒng)的設(shè)計[J].機械與電子,2018,36(01):58-61.[22]張洋,劉軍,嚴漢宇,左忠凱.原子教你玩STM32庫函數(shù)版[M],北京:北京航空航天大學(xué)出版社,2015.[23]李文瀚,林海,閆茂德,楊盼盼,朱旭.基于4G的徑流泥沙遠程監(jiān)測云平臺設(shè)計[J].電子測量技術(shù),2020,43(02):33-37.[24]錢建鋒.TCP/IP嵌入式單片機網(wǎng)絡(luò)智能監(jiān)控系統(tǒng)的開發(fā)與實現(xiàn)[J].輕工科技,2019,35(07):82-83.[25]張中前.基于STM32單片機的uC/OS-Ⅱ操作系統(tǒng)移植[J].機電元件,2020,40(06):57-61.[26]王博思,黃子恒,趙雅,巫濤江,張帥,曾卿卿,鎮(zhèn)鑫羽,王渝.基于STM32F103的鋼絲繩漏磁檢測數(shù)據(jù)采集實驗研究[J].自動化與儀器儀表,2020(09):108-110.[27]玄兆燕,洪健俊,趙欣.基于STM32的下肢康復(fù)機器人控制系統(tǒng)設(shè)計[J].機械工程與自動化,2020(06):145-147.[28]馬文家.基于STM32F1的鋼絲繩無損檢測系統(tǒng)[J].機電工程技術(shù),2020,49(06):28-30.[29]王星.基于DSP的鋼絲繩在線檢測系統(tǒng)設(shè)計[D].河南科技大學(xué),2013.[30]孫佳勝.基于DSP的提升機鋼絲繩損傷檢測裝置研究[D].中國礦業(yè)大學(xué),2015.[31]孫燕華,馬文家,田曉賀,謝菲,姜宵園,康宜華.基于STM32F4嵌入式的鋼絲繩漏磁檢測數(shù)據(jù)采集系統(tǒng)[J].無損檢測,2018,40(09):56-59+67.[32]劉志輝.基于漏磁原理的鋼絲繩斷絲損傷定量識別研究[D].江西理工大學(xué),2020.[33]董文琪.基于嵌入式系統(tǒng)的手持鋼絲繩漏磁檢測儀[D].華中科技大學(xué),2019.[34]劉志斌,張持健.嵌入式系統(tǒng)中高精度晶體振蕩器及其應(yīng)用分析[J].計算機系統(tǒng)應(yīng)用,2014,23(05):222-226.[35]趙振宇.基于Hi3519的360°無線全景監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[D].東北師范大學(xué),2018.
附錄MCU核心電路圖GUI設(shè)計部分核心代碼:MainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(newUi::MainWindow){ui->setupUi(this);connect(ui->pushButton,&QPushButton::clicked,this,[=]()//按鈕1的信號-槽函數(shù),按下按鈕,可以實現(xiàn)一些功能{if(ui->pushButton->text()=="啟動")//如果按鈕1上的文字為“啟動”,則按下此按鈕時執(zhí)行開啟串口的操作,再將串口上的文字重置為“關(guān)閉”{serial->setBaudRate(QSerialPort::Baud115200);serial->setDataBits(QSerialPort::Data8);serial->setParity(QSerialPort::NoParity);serial->setStopBits(QSerialPort::OneStop);serial->setFlowControl(QSerialPort::NoFlowControl);ui->pushButton->setText("關(guān)閉");//串口參數(shù)配置,波特率設(shè)置為115200,數(shù)據(jù)位為八位,無停止位,無奇偶校驗位,無硬件數(shù)據(jù)流控制foreach(constQSerialPortInfo&Info,QSerialPortInfo::availablePorts()){serial->setPort(Info);QStringportName=serial->portName();ui->StatusInfo->append(portName);}//搜索電腦目前可用的串口,供用戶使用if(serial->open(QIODevice::ReadWrite))/*串口可讀可寫地打開,判斷其返回值,如果返回值為1,表示串口已經(jīng)打開,則在textedit上輸出“串口已經(jīng)打開”,并通過串口向單片機發(fā)送啟動指令*/{QByteArraysendBuf0;sendBuf0="1";sendBuf0+='\r';sendBuf0+='\n';//發(fā)送的數(shù)據(jù)后面加上換行符,即\r\n,發(fā)送新行,這樣單片機才能準確接收ui->StatusInfo->append("串口已打開");//在textEdit上顯示“串口已打開”serial->write(sendBuf0);//向串口發(fā)送字符串}else//若返回值不為1,則表明串口打開失敗{ui->StatusInfo->append("串口打開失敗");}}elseif(ui->pushButton->text()=="關(guān)閉")/*如果按鈕1上的文字為“關(guān)閉”,則按下此按鈕時執(zhí)行關(guān)閉串口的操作,再將串口上的文字重置為“啟動”,并通過串口向單片機發(fā)送關(guān)閉的指令*/{QByteArraysendBuf1;sendBuf1="0";sendBuf1+='\r';sendBuf1+='\n';ui->pushButton->setText("啟動");serial->close();//串口關(guān)閉serial->write(sendBuf1);ui->StatusInfo->append("串口已關(guān)閉");}});connect(serial,&QSerialPort::readyRead,this,[=](){this->receiveData();}//連接信號槽,每當檢測到串口有數(shù)據(jù)準備好被讀取時,就調(diào)用讀取函數(shù));connect(ui->pushButton_2,&QPushButton::clicked,this,[=](){ui->ReceiveInfo->clear();ui->StatusInfo->clear();temp="";});//按鈕2的功能為清空所有textedit上的信息,并把中間變量temp清空connect(ui->pushButton_3,&QPushButton::clicked,this,[=](){QStringnum;num=ui->lineEdit->text();QByteArraysendData;StringToHex(num,sendData);serial->write(sendData);});//按鈕3的功能為提取lineEdit中的信息,并通過串口發(fā)送給單片機connect(ui->checkBox,&QCheckBox::stateChanged,this,[=](intstate)//checkbox是勾選框,當勾選上時,實現(xiàn)16進制接收的功能,未勾選時,以字符串方式接收{(diào)QStringreceive=QString(temp);//temp里儲存的是上次接收到的數(shù)據(jù)ui->ReceiveInfo->clear();//每次顯示時先清楚上次textEdit的數(shù)據(jù)if(state==0)//state為0時,是未勾選的狀況,直接以字符串方式接收{(diào)a=0;ui->ReceiveInfo->append(receive);}if(state==2)//state為2時,是勾選上的狀況,以16進制方式接收{(diào)a=1;QStringstrDis;QStringstr2=temp.toHex().data();str2=str2.toUpper();for(inti=0;i<str2.length();i+=2){
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 急救設(shè)備操作與維護護理
- 中職護理護理技術(shù)操作規(guī)范
- 人工智能助力護理質(zhì)量提升
- 崇義中學(xué)高二下學(xué)期第二次月考物理試題
- 2025年并購重組承銷補充協(xié)議
- 2025年搬家服務(wù)合同協(xié)議
- 2025年AI煤礦安全監(jiān)測系統(tǒng)中傳感器漂移實時校正
- 破陣子·為陳同甫賦壯詞以寄之 課件 2025-2026學(xué)年語文九年級下冊統(tǒng)編版
- 疫情防控宣傳試題及答案
- 2026 年中職酒店管理(酒店基礎(chǔ))試題及答案
- 紡織業(yè)賬務(wù)知識培訓(xùn)課件
- 1688采購合同范本
- 購買鐵精粉居間合同范本
- GB/T 29730-2025冷熱水用分集水器
- 污水廠安全知識培訓(xùn)
- (2025年標準)存單轉(zhuǎn)讓協(xié)議書
- 醫(yī)學(xué)科研誠信專項培訓(xùn)
- 電力通信培訓(xùn)課件
- 第五版FMEA控制程序文件編制
- 藥物致癌性試驗必要性指導(dǎo)原則
- 軟骨肉瘤護理查房
評論
0/150
提交評論