以
無(wú)線模組公司遠(yuǎn)距離WiFi模組為核心的無(wú)線數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)哪些領域,無(wú)線電數(shù)據(jù)采集是現(xiàn)代信息通信研究的重要內(nèi)容支撐能力。對(duì)于許多領(lǐng)域,如人難以到達(dá)的偏遠(yuǎn)環(huán)境像一棵樹、高腐蝕和對(duì)現(xiàn)場(chǎng)無(wú)法可循的有線連接環(huán)境協同控製,選擇有線數(shù)據(jù)采集傳輸系統(tǒng)顯然已無(wú)法滿足數(shù)據(jù)采集和傳輸?shù)男枰_@種無(wú)線數(shù)據(jù)采集方式已成為一種有效的替代方法高效利用,它作為現(xiàn)代數(shù)據(jù)監(jiān)測(cè)控制的基礎(chǔ)技術(shù)體驗區,已被越來(lái)越多地應(yīng)用于物聯(lián)網(wǎng)更高效、工業(yè)控制、環(huán)境監(jiān)測(cè)等領(lǐng)域探索。CV520是系統(tǒng)級(jí)芯片,它結(jié)合了Wifi功能,以CV520強(qiáng)大的處理能力重要作用、低功耗和高速穩(wěn)定的Wifi通訊等為特征堅持先行。采用CV520主控芯片設(shè)計(jì)一套無(wú)線數(shù)據(jù)采集系統(tǒng),采用CV520連接芯片S進(jìn)行數(shù)據(jù)采集增幅最大,并用無(wú)線模組公司遠(yuǎn)距離WiFi模組連接指定網(wǎng)絡(luò)具體而言,利用Socket接口與上位機(jī)通信,將采集到的數(shù)據(jù)傳送到上位計(jì)算機(jī)系統(tǒng)系統。
該無(wú)線數(shù)據(jù)采集系統(tǒng)的硬件結(jié)構(gòu)主要由數(shù)據(jù)源模塊十分落實、CV520模塊和上位機(jī)三部分組成。通過(guò)SPI接口連接CV520和數(shù)據(jù)源模塊逐步顯現,CV520模塊在本設(shè)計(jì)中稱為SPISlave(被動(dòng)SPI設(shè)備)作用,SPIActivity(SPIActivity);CV520通過(guò)AP(無(wú)線接入點(diǎn));建立以太網(wǎng)絡(luò)與主機(jī)連接近年來。在系統(tǒng)運(yùn)行過(guò)程中銘記囑托,數(shù)據(jù)源模塊定期向CV520模塊發(fā)送數(shù)據(jù),CV520系統(tǒng)則在其中緩存數(shù)據(jù)交流等;數(shù)據(jù)采集通過(guò)WiFi網(wǎng)絡(luò)製造業,在與主機(jī)連接時(shí),仍能與主機(jī)保持連接自動化裝置。由上位機(jī)實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)和實(shí)時(shí)顯示狀態。當(dāng)CV520用于SPISlave時(shí),SPIMaster只能等待SPIMaster啟動(dòng)通信連接關規定,并基于主機(jī)提供的時(shí)鐘信號(hào)接收數(shù)據(jù)更多的合作機會。ST是ST(意法半導(dǎo)體)開(kāi)發(fā)的高性能微處理器,作為SPIMaster應(yīng)用時(shí)穩定發展,每個(gè)SPI控制器都能利用多個(gè)片選信號(hào)(CS0~CS2)連接多個(gè)被動(dòng)SPI設(shè)備方便。在CV520和ST設(shè)備中,CS為片選信號(hào)更好,SCK為時(shí)鐘信號(hào)基石之一,MOSI為數(shù)據(jù)輸出線,MISO為從設(shè)備數(shù)據(jù)輸出安全鏈。
CV520主程序設(shè)計(jì)主要包括兩個(gè)模塊:無(wú)線模組公司遠(yuǎn)距離WiFi模組Wifi網(wǎng)絡(luò)配置模塊和線程與隊(duì)列模塊行業分類。而Wifi網(wǎng)絡(luò)配置模塊負(fù)責(zé)網(wǎng)絡(luò)的配置,線程和隊(duì)列模塊負(fù)責(zé)實(shí)現(xiàn)無(wú)線數(shù)據(jù)采集系統(tǒng)的主要功能,即:SPI數(shù)據(jù)采集和網(wǎng)絡(luò)數(shù)據(jù)發(fā)送應用領域。主要程序的設(shè)計(jì)過(guò)程具體包括以下幾步:1創新為先。程序的初始化:NVS存儲(chǔ)器的初始化和Wifi模式的配置。2.連接網(wǎng)絡(luò)統籌推進,Wifi網(wǎng)絡(luò)配置模塊連接到指定的AP行業內卷,并獲取AP分配的IP。3.創(chuàng)建三個(gè)線程:SPI數(shù)據(jù)接收線程被用來(lái)調(diào)用SPI底層驅(qū)動(dòng)科普活動,以接收STM32F407發(fā)送的數(shù)據(jù)和緩存重要手段;數(shù)據(jù)發(fā)送線程創(chuàng)建Socket與上位PC的
無(wú)線通訊連接模組,和SPI接收線程協(xié)作橫向協同,向主機(jī)發(fā)送數(shù)據(jù)不折不扣;WEB服務(wù)器線程向主機(jī)提供信息查詢、使得計(jì)算機(jī)能夠通過(guò)瀏覽器在CV520上獲得運(yùn)行信息穩定性。
無(wú)線模組公司遠(yuǎn)距離WiFi模組CV520芯片支持高速最深厚的底氣、穩(wěn)定的WIFI通訊,支持三種模式:"AP"資源優勢、"STA"應用擴展、"AP+STA"。該方案采用STA模式堅實基礎,利用WIFI_init_sta()函數(shù)來(lái)配置STA模式積極。您需要配置WIFI帳號(hào)和口令來(lái)連接到指定的AP大數據,然后才能進(jìn)入STA模式前景。STA模式配置STA模式的配置流程顯示了整個(gè)配置過(guò)程,使用函數(shù)WIFI_init_sta()完成STA模式配置,具體包括:創(chuàng)建用于在WIFI連接期間識(shí)別各種標(biāo)志位的事件組標(biāo)志長效機製。初始化硬件/軟件:使用"tcpip_adapter_init()"函數(shù)來(lái)初始化TCP/IP適配層,用'event_loop_init()初始化事件調(diào)度器'清空IP信息重要部署,讓事件回調(diào)函數(shù)從初始位置判斷標(biāo)志位等地。WIFI模塊的底層參數(shù)信息通過(guò)“WIFI_init_config_tcfg=WIFI_INIT_CONFIG_DEFAULT()”語(yǔ)句對(duì)WIFI模塊進(jìn)行初始化。配置STA模式參數(shù)數字技術,將路由器的WIFI帳號(hào)共享應用、口令數(shù)據(jù)置于標(biāo)準(zhǔn)變量中。通過(guò)"WIFI_set_mode(WIFI_MODE_STA)"設(shè)置STA模式尤為突出;WiFi_set_config(IF_WIFI_STA)WiFi_config)為STA模式設(shè)置配置信息情況較常見;“WIFI_start()”語(yǔ)句啟動(dòng)WIFI狀態(tài)機(jī)。
線程化設(shè)計(jì)以隊(duì)列模塊程序?yàn)槔龢藴?,主要包括三線程和一個(gè)隊(duì)列的程序設(shè)計(jì)喜愛。三線程分別是SPI數(shù)據(jù)采集線程、數(shù)據(jù)發(fā)送線程和WEB服務(wù)線程,另外為了保證CV520系統(tǒng)能及時(shí)保障、高效地接收和發(fā)送數(shù)據(jù)重要的角色,需要使用隊(duì)列來(lái)保持SPI數(shù)據(jù)采集線程與數(shù)據(jù)發(fā)送線程之間的數(shù)據(jù)同步。
通過(guò)FreeRTOS的隊(duì)列“queue”更加廣闊,實(shí)現(xiàn)了SPI數(shù)據(jù)采集線程與數(shù)據(jù)發(fā)送線程之間的數(shù)據(jù)同步優化服務策略。其中一個(gè)基本原理是,不同的線程任務(wù)或者中斷程序都可以使用隊(duì)列來(lái)向數(shù)據(jù)寫入數(shù)據(jù)示範。事實(shí)上規模,該隊(duì)列是一個(gè)固定大小的空間,任何線程任務(wù)都能讀取和寫入新格局。語(yǔ)句“queue=xQueueCreate(BLOCK_NUM,sizeof(char*))”作用,該語(yǔ)句用于創(chuàng)建隊(duì)列,F(xiàn)reeRTOS為線程的讀取和寫入指定了固定空間特點。而B(niǎo)LOCK_NUM將存儲(chǔ)的數(shù)據(jù)單元數(shù)目與緩沖存儲(chǔ)器空間數(shù)目一致。參數(shù)2設(shè)置一個(gè)數(shù)據(jù)單元的大小,在線程之間只需要傳遞存儲(chǔ)空間的首地址製度保障。SPI數(shù)據(jù)采集線程程序CV520通過(guò)SPI協(xié)議與STM32F407進(jìn)行數(shù)據(jù)傳輸聯動,后者以一定時(shí)間間隔將數(shù)據(jù)字節(jié)發(fā)送給CV520。在充分考慮CV520有限的內(nèi)存和SPI底層驅(qū)動(dòng)機(jī)制的前提下顯示,實(shí)現(xiàn)了SPI數(shù)據(jù)采集和線程間數(shù)據(jù)傳輸技術特點;在編程過(guò)程中,利用環(huán)形緩沖區(qū)將大小為M*NBytes共同努力、SPI信號(hào)線所接收的數(shù)據(jù)進(jìn)行存儲(chǔ)保持競爭優勢。在這里,M是一個(gè)單獨(dú)的存儲(chǔ)空間發展邏輯,N表示存儲(chǔ)空間的數(shù)目方案。本設(shè)計(jì)中CV520的SPI底層驅(qū)動(dòng)采用DMA機(jī)制,這樣建立的環(huán)狀緩沖區(qū)要求系統(tǒng)使用DMA存取的存儲(chǔ)器空間發展機遇。MALLOC_CAP_DMA需要使用heap_caps_malloc函數(shù)對(duì)單個(gè)存儲(chǔ)器空間的選擇好基于每個(gè)SPI周期發(fā)送數(shù)據(jù)的長(zhǎng)度選擇創新延展,也就是M為每個(gè)周期SPI發(fā)送數(shù)據(jù)長(zhǎng)度的整數(shù)倍,同時(shí)為確保網(wǎng)絡(luò)傳輸效率,在MTU的尺寸盡可能接近于1300(CV520不支持切分長效機製,并且碎片會(huì)影響效率),每一次發(fā)送長(zhǎng)度是64Bytes聽得進,所以選擇M為64*20=1280Bytes深入,存儲(chǔ)空間的數(shù)目是N,從理論上選擇N越大服務體系,系統(tǒng)運(yùn)行中的緩存空間越大進展情況,SPI接收出錯(cuò)的概率就越低重要的作用,但是因?yàn)镃V520的內(nèi)存空間有限,N會(huì)影響其它線程稍有不慎,實(shí)驗(yàn)中選擇N是5探索。SPI數(shù)據(jù)采集程序主要包括:SPI驅(qū)動(dòng)的初始化、初始環(huán)形緩沖的初始化全面協議、SPISlave讀取程序重要作用。SPISlave驅(qū)動(dòng)器通過(guò)操縱DMA和SPI控制器與SPIMaster進(jìn)行通訊,為應(yīng)用程序提供訪問(wèn)接口講實踐,詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和程序設(shè)計(jì)可供參考增幅最大。SPISlave的讀取器流程是:1.循環(huán)調(diào)用spi_slave_transmit,通過(guò)spi_slave_interface_config_transmit將當(dāng)前緩沖區(qū)和接收數(shù)據(jù)信息指定給底層驅(qū)動(dòng)最為顯著,SPI接收開(kāi)始滿意度,線程進(jìn)入掛起狀態(tài)等待接收結(jié)束。2.在接收結(jié)束之后生產能力,線程繼續(xù)運(yùn)行智慧與合力,通過(guò)xQueueSendToBack將接收到的數(shù)據(jù)所在存儲(chǔ)空間的一地址加入隊(duì)列。將當(dāng)前緩沖區(qū)切換為下一個(gè)環(huán)形緩沖區(qū)重復(fù)可持續。
在STA模式下措施,數(shù)據(jù)發(fā)送線程設(shè)計(jì)了Socket接口和上位機(jī)建立通訊連接的兩種方法,即“TCP模式”和“UDP模式”情況。TCP模式下傳輸?shù)臄?shù)據(jù)不易丟失,而UDP模式傳輸?shù)臄?shù)據(jù)易發(fā)生誤判,所以這種連接采用TCP方式堅持好。在無(wú)線模組公司遠(yuǎn)距離WiFi模組CV520連接上WIFI并獲得了AP所分配的IP之后開放要求,就可以通過(guò)Socket接口與上位機(jī)進(jìn)行通信,發(fā)送所獲數(shù)據(jù)全過程。Socket是CV520與主機(jī)之間進(jìn)行通信的接口更高要求。CV520主動(dòng)向上位機(jī)發(fā)出連接請(qǐng)求,上位機(jī)在接通之前打開(kāi)監(jiān)聽(tīng)器的Socket接口優勢領先,實(shí)時(shí)監(jiān)視客戶的請(qǐng)求,一旦連接建立探討,CV520與上位機(jī)就可以進(jìn)行通訊新技術。CV520與上位機(jī)通訊連接建立流程:1.定義下列Sock_fd:"sock_fd"監(jiān)聽(tīng)套接口描述符;""client_fd""數(shù)據(jù)傳輸套接口描述符";"bind_fd"綁定IP/端口套接口描述符共創美好。用端口號(hào)保存本地IP的本地地址變量"my_addr"趨勢;定義目標(biāo)地址變量"client_addr""來(lái)保存目標(biāo)機(jī)IP和端口號(hào)。2.使用socket(AF_INET,SOCK_STREAM,0)創(chuàng)建Socket監(jiān)聽(tīng)行業分類。3.用Socket綁定本地IP預下達、端口號(hào)增持能力、協(xié)議類型下面是以下主要程序:my_addr.sin_family=AF_INET;my_addr.sin_port=htons(PORT);my_addr.sin_addr.s_addr=htonl;bind_fd=bind(sock_fd,(structsockaddr*)&my_addrsizeof(my_addr));4.打開(kāi)監(jiān)聽(tīng)Socket創新為先,使系統(tǒng)處于監(jiān)聽(tīng)狀態(tài)提高鍛煉,等待主機(jī)連接請(qǐng)求用“l(fā)isten(sock_fd,10)”的語(yǔ)句監(jiān)聽(tīng)。通過(guò)accept(sock_fd,(structsockaddr*)&client_addr,&sin_size)語(yǔ)句來(lái)創(chuàng)建通信socket行業內卷。6.在確定連接被建立之后進行培訓,在隊(duì)列為空的情況下,調(diào)用xQueueReceive讀取隊(duì)列凝聚力量,直到該線程處于非空狀態(tài)關鍵技術。從隊(duì)列中獲得數(shù)據(jù)存儲(chǔ)空間的首地址,如果隊(duì)列是非空的。使用write(newconn,(char*)tmp,BUF_SIZE)將數(shù)據(jù)發(fā)送給主機(jī)有所提升。如發(fā)送失敗則返回-1,程序進(jìn)入錯(cuò)誤停止發(fā)送程序參與能力;如果發(fā)送數(shù)據(jù)成功將返回實(shí)際發(fā)送的字符數(shù)組織了。
Web服務(wù)器線程程序設(shè)計(jì)Web是一種網(wǎng)絡(luò)通信協(xié)議,是在單一TCP連接上實(shí)現(xiàn)全雙工通信的協(xié)議註入了新的力量。當(dāng)無(wú)線模組公司遠(yuǎn)距離WiFi模組CV520連接到WIFI之后表現,將創(chuàng)建一個(gè)WEB服務(wù)器線程,用來(lái)向主機(jī)提供信息查詢說服力。主機(jī)發(fā)送HTTP請(qǐng)求后的積極性,系統(tǒng)會(huì)把從SPI接收到的數(shù)據(jù)和發(fā)送的數(shù)據(jù)信息返回給主機(jī)瀏覽器,方便用戶查詢?cè)跀?shù)據(jù)通信過(guò)程中是否有報(bào)文丟失深刻變革。WEBServices線程程序設(shè)計(jì)的主要步驟是:1.創(chuàng)建Socket連接高效,綁定用于監(jiān)聽(tīng)PC機(jī)連接的本地IP地址和80端口。在主機(jī)發(fā)出連接請(qǐng)求后至關重要,系統(tǒng)與主機(jī)進(jìn)行連接質量,建立通信socket。2.CV520讀取由主機(jī)發(fā)送的請(qǐng)求數(shù)據(jù)表示,并將其置于recv_buffer的字符類型數(shù)組中不久前,使用strncmp(char*)recv_buffer語(yǔ)句,"GET"質生產力,3)==0判斷請(qǐng)求報(bào)文的前三個(gè)字符是否是"GET"尤為突出,若有,則執(zhí)行以下命令:sprintf(disp市場開拓、spi:%d;tcp:%d標準!\r
"spi_count,tcp_count);strcpy(htmldata,htmldata_h);strcat(htmldata,disp);strcat(htmldata環境,htmldata_t)主要抓手;寫入(conn,htmldatastrlen(htmldata));disp是定制字符類型的數(shù)組保障,用來(lái)存儲(chǔ)返回的數(shù)據(jù);spi_count將統(tǒng)計(jì)系統(tǒng)收到的SPI數(shù)據(jù)空間載體,tcp_count為系統(tǒng)發(fā)送給主機(jī)的數(shù)據(jù)體製;htmldata是一個(gè)長(zhǎng)度為200的字符類型數(shù)組;htmldata_h和htmldata_t定義如下:charhtmldata_h[]="《html>"head><其他需要返回的信息也可由用戶自己定義大面積。
本實(shí)驗(yàn)主要通過(guò)兩塊開(kāi)發(fā)板進(jìn)行系統(tǒng)搭建發力,一塊是CV520-DevKitC,一塊是Ai-ThinkerIDEV1.0集成應用,另一塊是SPI連接到兩個(gè)開(kāi)發(fā)板越來越重要的位置。因?yàn)橹恍枰獑蜗虬l(fā)送,除去VCC和地線迎來新的篇章,只需要連接三條線解決方案。利用杜邦線按照電路接線連接好實(shí)物,硬件設(shè)備連接完畢后顯示共同學習。其中每一色的杜邦線對(duì)應(yīng)一條接線交流研討,黑色為地線,綠色為串行鐘信號(hào)線,橙色為MOSI數(shù)據(jù)線順滑地配合,黃色為片選信號(hào)線。這個(gè)試驗(yàn)主要是驗(yàn)證無(wú)線模組公司遠(yuǎn)距離WiFi模組CV520和Wifi之間的連接是否正常薄弱點,以及是否可以正常接收SPI數(shù)據(jù)上高質量,通過(guò)WiFi將數(shù)據(jù)發(fā)送給上位機(jī),同時(shí)計(jì)算數(shù)據(jù)傳輸過(guò)程中的速率和丟包率效高。先測(cè)試CV520和WiFi的連接建設應用,CV520輸出可通過(guò)串口調(diào)試工具進(jìn)行打印,清楚地顯示CV520當(dāng)前正在運(yùn)行的連接狀態(tài)廣度和深度;在系統(tǒng)連接上電之后應用的因素之一,即進(jìn)入準(zhǔn)備狀態(tài),按下CV520RST鍵性能,CV520自動(dòng)連接到WiFi。從串口調(diào)試工具可以看到整個(gè)WiFi連接過(guò)程,可以看出習慣,CV520系統(tǒng)首先是STA模式配置記得牢,在完成STA模式配置之后,輸出當(dāng)前的用戶名和密碼覆蓋,然后AP為它分配IP地址。如果打印獲得IP地址進展情況,就表明CV520連接AP成功重要的作用,AP為192.168.2.30分配IP地址特點。使用串口打印的提示信息可以看到CV520系統(tǒng)的準(zhǔn)備過(guò)程,其中搶抓機遇,spi_taskon表示SPI數(shù)據(jù)接收線程打開(kāi)綠色化發展;Data_trans_taskon表示數(shù)據(jù)發(fā)送線程打開(kāi);Da-ta_trans_tasklisten和Initial_SPIDone表示CV520系統(tǒng)已打開(kāi)SPI的監(jiān)聽(tīng)端口結論,并完成SPI初始化配置應用創新;Http_taskon指示W(wǎng)EB服務(wù)線程打開(kāi);Data_trans_taskaccept表示CV520系統(tǒng)與上位機(jī)已建立TCP連接且能夠開(kāi)始傳輸數(shù)據(jù)足夠的實力。如果你能看到由上位機(jī)接收的數(shù)據(jù)總字節(jié)的數(shù)目是38400Bytes和諧共生,而且數(shù)據(jù)在從0開(kāi)始到2之后又重新設(shè)置為0。主機(jī)會(huì)以.dat格式以.dat格式保存接收的數(shù)據(jù)全面闡釋,打開(kāi)該文件可查看具體接收數(shù)據(jù)用上了,每個(gè)數(shù)據(jù)間隔0.001,無(wú)需考慮浮點(diǎn)數(shù)存儲(chǔ)錯(cuò)誤適應性強。為了檢驗(yàn)發(fā)送過(guò)程的成功率的特性,接收和發(fā)送的數(shù)據(jù)量可通過(guò)瀏覽器訪問(wèn)CV520系統(tǒng)獲得:其中spi:384000Bytes表明CV520系統(tǒng)從STM32F407接收到的SPI數(shù)據(jù)是384000Bytes。tcp:384000Bytes是指由TCP連接發(fā)送到CV520系統(tǒng)的數(shù)據(jù)能力建設,CV520系統(tǒng)接收到的數(shù)據(jù)量與發(fā)出的數(shù)據(jù)量一致高效,而且通過(guò)上位機(jī)軟件可以看到上位機(jī)接收的總數(shù)據(jù)也是384000Bytes,CV520系統(tǒng)通過(guò)Wifi向主機(jī)發(fā)送的數(shù)據(jù)與上位機(jī)接收的數(shù)據(jù)一致基礎,結(jié)果表明領域,在無(wú)線傳輸過(guò)程中數(shù)據(jù)沒(méi)有丟失,丟失率為0%擴大公共數據。另從可見(jiàn)的6.01S數(shù)據(jù)的接收時(shí)間為6.01S,經(jīng)計(jì)算得出數(shù)據(jù)的傳輸速率為62.5KB/s(500Kbps)。試驗(yàn)結(jié)果表明更高要求,該設(shè)計(jì)方案是可行的積極參與。
例如,以ST連接CV520,CV520通過(guò)WIFE連接主機(jī)經驗分享,對(duì)無(wú)線模組公司遠(yuǎn)距離WiFi模組CV520無(wú)線網(wǎng)絡(luò)配置中的數(shù)據(jù)收發(fā)程序進(jìn)行了詳細(xì)的設(shè)計(jì)和說(shuō)明探討,與此同時(shí),為CV520系統(tǒng)設(shè)計(jì)了WEB服務(wù)程序培養,方便上位機(jī)查詢信息共創美好。進(jìn)行了硬件平臺(tái)測(cè)試,驗(yàn)證了應(yīng)用程序的正確性和驅(qū)動(dòng)性能高效流通。試驗(yàn)結(jié)果表明預判,該無(wú)線數(shù)據(jù)采集與傳輸系統(tǒng)程序設(shè)計(jì)合理,使用方便有力扭轉,但其性能有待進(jìn)一步優(yōu)化和提高調解製度。今后還會(huì)進(jìn)一步優(yōu)化軟硬件設(shè)計(jì)深入,提高抗干擾能力和數(shù)據(jù)傳輸效率,改善系統(tǒng)性能覆蓋範圍。