999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于QT的嵌入式系統(tǒng)文件傳輸上位機軟件設(shè)計

2022-02-17 12:11:22賈貝貝康明才
電子設(shè)計工程 2022年3期
關(guān)鍵詞:嵌入式功能系統(tǒng)

賈貝貝,康明才

(南京理工大學(xué)電子工程與光電技術(shù)學(xué)院,江蘇南京 210014)

在嵌入式系統(tǒng)文件傳輸?shù)倪^程中,傳統(tǒng)文件傳輸?shù)姆绞绞峭ㄟ^串口直接傳輸,或通過其他存儲介質(zhì)間接傳輸。這些傳統(tǒng)的傳輸方式不僅存在傳輸效率低下的問題,而且在調(diào)試過程中,調(diào)試人員必須處于嵌入式設(shè)備工作現(xiàn)場,這些情況給嵌入式系統(tǒng)調(diào)試帶來了很大的麻煩。在嵌入式系統(tǒng)的實際應(yīng)用中,嵌入式設(shè)備往往處于各種復(fù)雜的網(wǎng)絡(luò)環(huán)境,支持部分網(wǎng)絡(luò)協(xié)議和有限的帶寬。因此文中將嵌入式系統(tǒng)中使用最廣的MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協(xié)議)通信協(xié)議和Ymodem 文件傳輸機制相結(jié)合,基于QT 編程開發(fā)框架設(shè)計出通過物聯(lián)網(wǎng)對嵌入式設(shè)備進行文件傳輸?shù)纳衔粰C軟件。

1 總體方案設(shè)計

1.1 基于QT的上位機方案設(shè)計

QT 是一種跨平臺的上位機應(yīng)用程序開發(fā)框架。MQTT 是一種物聯(lián)網(wǎng)中常用的協(xié)議[1],它基于發(fā)布/訂閱模式,而且是一種輕量級的通信協(xié)議。該協(xié)議通常構(gòu)建于TCP/IP 協(xié)議之上,因為其協(xié)議的輕量級特性,可以用極少的代碼和有限的帶寬為遠程設(shè)備提供實時可靠的消息服務(wù)。因此,MQTT 協(xié)議廣泛應(yīng)用于各種物聯(lián)網(wǎng)設(shè)備和嵌入式系統(tǒng)中。YModem 協(xié)議每包數(shù)據(jù)可以達到1 024 字節(jié),是一個非常高效的文件傳輸協(xié)議[2]。YModem 數(shù)據(jù)的發(fā)送使用CRC 校驗,確保了接收端接收數(shù)據(jù)的準(zhǔn)確性,它每傳輸一個信息塊數(shù)據(jù)時,就會等待接收端回應(yīng)ACK 信號,接收到回應(yīng)后,才會繼續(xù)傳輸下一個信息塊,保證下位機可以全部正確接收到數(shù)據(jù)。

通過MQTT 通信協(xié)議可以確保上位機與嵌入式系統(tǒng)之間的通信,通過Ymodem 文件傳輸?shù)男r灆C制可以確保文件傳輸?shù)恼_性,避免傳輸中間出現(xiàn)錯誤或被修改。

上位機軟件設(shè)計的總體方案如圖1 所示。

圖1 系統(tǒng)總體方案圖

1.2 嵌入式系統(tǒng)方案

嵌入式系統(tǒng)包括MCU、通信模塊、存儲模塊、電源模塊和其他功能模塊。嵌入式系統(tǒng)可以通過網(wǎng)絡(luò)模塊與MQTT 服務(wù)器進行通信,并將得到的文件存儲到存儲模塊中[3-5]。

1.3 服務(wù)器方案

服務(wù)器使用基于Mosquitto 軟件的MQTT 服務(wù)器。Eclipse Mosquitto 是一個開源MQTT 消息代理軟件,可以運行在大型服務(wù)器上,也可以運行在低功耗設(shè)備上。

2 上位機軟件設(shè)計

2.1 上位機主要功能

上位機需要實現(xiàn)MQTT 客戶端創(chuàng)建功能、Ymodem 傳輸機制功能、文件打開功能和嵌入式系統(tǒng)喚醒功能:

1)MQTT 客戶端創(chuàng)建功能。建立MQTT 客戶端,與服務(wù)器建立連接,進行通信。

2)Ymodem 傳輸機制功能。實現(xiàn)文件傳輸過程中的Ymodem 機制,確保每一幀都正確傳輸,不會中途丟失或被篡改。

3)文件打開功能。打開并讀取待傳輸?shù)奈募?/p>

4)嵌入式系統(tǒng)喚醒功能。發(fā)送特定指令,喚醒被傳輸文件的下位機。

軟件流程圖如圖2 所示。

圖2 軟件流程圖

2.2 基于MQTT的通信方式

MQTT 通信過程中只有一個服務(wù)器(Broker),其他設(shè)備稱為客戶端(Client),服務(wù)器建立在固定IP的主機上,客戶端通過與服務(wù)器建立連接進行通信[6]。

上位機通過發(fā)送主題為下位機的MAC(Media Access Control Address,媒體訪問控制地址)和“CLIENT”組合的字符串即“MAC+CLIENT”,對指定下位機發(fā)送消息。通過訂閱下位機的MAC和“SERVER”組合的字符串即“MAC+SERVER”的主題,接收指定下位機發(fā)送給上位機的消息。通過這種機制,可以避免只用一個主題的情況下接收到自身發(fā)送消息的情況,減少了多余數(shù)據(jù)的處理,提高了系統(tǒng)的性能。

上位機與服務(wù)器建立連接后,通過上述通信方式,發(fā)送字符串“+++”喚醒指定下位機。下位機喚醒后,根據(jù)Ymodem 文件傳輸機制,回復(fù)單字符‘C’表示成功進入Ymodem 傳輸階段。上位機結(jié)束喚醒功能,開始文件傳輸。

2.3 界面設(shè)計

界面UI 上包括輸入部分、控制部分和顯示部分。輸入部分包括服務(wù)器IP 地址輸入、端口號輸入、用戶名輸入、密碼輸入、下位機MAC 輸入、文件選擇。控制部分包括連接服務(wù)器、與下位機通信、啟動傳輸、啟動發(fā)送和清除、置頂?shù)裙δ堋o@示部分包括文件傳輸進度條、程序運行具體信息顯示等。界面具體設(shè)計如圖3 所示。

圖3 上位機界面設(shè)計

2.4 功能具體實現(xiàn)

2.4.1 文件打開功能

文件打開功能是借助QFileDialog 庫來實現(xiàn)的[7],通過QFileDialog 下的getOpenFileName 函數(shù)即可實現(xiàn)打開特定文件:

2.4.2 MQTT客戶端創(chuàng)建

利用QT 官方提供的MQTT 庫可以創(chuàng)建客戶端[8],其創(chuàng)建和參數(shù)設(shè)置通過new QMqttClient 實現(xiàn):

2.4.3 Ymodem文件傳輸機制

Ymodem 文件傳輸機制是通過一個發(fā)送函數(shù)和接收中斷實現(xiàn)的[9]。點擊發(fā)送按鈕后,軟件進入發(fā)送函數(shù)中。按照Ymodem 協(xié)議組合發(fā)送數(shù)據(jù)[10-12]和CRC(Cyclic Redundancy Check,循環(huán)冗余校驗)數(shù)據(jù)。每發(fā)送一幀數(shù)據(jù)后,進入接收等待,接收到發(fā)送數(shù)據(jù)接收成功信號后,發(fā)送下一幀數(shù)據(jù)。

發(fā)送數(shù)據(jù)的功能是通過使用publish 函數(shù)來實現(xiàn)的:

Ymodem 數(shù)據(jù)發(fā)送流程如圖4 所示。

圖4 Ymodem文件傳輸流程

2.4.4 下位機喚醒功能

點擊啟動傳輸按鈕后,上位機開始以一定頻率給下位機發(fā)送喚醒信號。下位機被喚醒后,發(fā)送被喚醒信號給上位機,上位機結(jié)束發(fā)送。

通過使用定時器Qtimer[13-15]來實現(xiàn)上述功能。首先創(chuàng)建定時器:

上位機設(shè)置定時器超時函數(shù),在超時函數(shù)中檢測是否已喚醒下位機設(shè)備,若未喚醒則繼續(xù)發(fā)送喚醒命令:

3 上位機軟件測試

3.1 上位機軟件的使用

打開軟件后,輸入服務(wù)器IP、端口號、用戶名和密碼,點擊connect 按鈕登錄服務(wù)器。然后輸入MAC地址,點擊通信,建立與下位機通信的通道。點擊打開文件按鈕,打開待傳輸?shù)奈募缓簏c擊啟動傳輸按鈕,等待下方消息窗口顯示“TRANSMIT READY”,點擊發(fā)送,進入文件傳輸。進度條和下方消息框可顯示傳輸進度。傳輸完成后,下方消息窗口顯示“TRANSMIT END”,可繼續(xù)重新選擇文件或重新選擇下位機MAC 地址進行文件傳輸。

3.2 服務(wù)器的搭建

在云服務(wù)器上使用MQTT 開源服務(wù)器軟件Mosquitto。該軟件提供Linux、Windows 等多種系統(tǒng)的安裝包,可以使用命令直接在服務(wù)器上安裝。安裝后可以通過修改配置文件mosquitto.conf和aclfile,修改端口號和登錄用戶等設(shè)置。

3.3 上位機軟件的測試

完成上位機軟件編寫和下位機軟件編寫后,可以對其文件傳輸功能進行測試。測試結(jié)果表明,該上位機軟件可以穩(wěn)定連續(xù)地對下位機進行文件傳輸,且傳輸過程中可以正確重發(fā)出錯或異常的包。傳輸過程如圖5 所示。

圖5 傳輸過程

4 結(jié)論

文中基于解決嵌入式設(shè)備遠程文件傳輸?shù)哪康模捎肣T 編程框架設(shè)計出基于物聯(lián)網(wǎng)傳輸協(xié)議MQTT和Ymodem 文件傳輸協(xié)議的嵌入式系統(tǒng)文件傳輸上位機軟件。首先介紹了上位機軟件的設(shè)計架構(gòu)、MQTT 通信原理和Ymodem 通信機制。然后實現(xiàn)了基于QT的MQTT 客戶端和Ymodem 機制,最終完成嵌入式系統(tǒng)文件傳輸?shù)纳衔粰C設(shè)計。該上位機提供了友好的用戶使用界面,能夠便捷穩(wěn)定地將文件傳輸至嵌入式系統(tǒng)中。通過測試,可以看到該上位機不僅傳輸運行穩(wěn)定,而且在嵌入式設(shè)備處于較為復(fù)雜的網(wǎng)絡(luò)環(huán)境下,也可以順利地完成文件傳輸。

猜你喜歡
嵌入式功能系統(tǒng)
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
搭建基于Qt的嵌入式開發(fā)平臺
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關(guān)于非首都功能疏解的幾點思考
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
Altera加入嵌入式視覺聯(lián)盟
中西醫(yī)結(jié)合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 久久国产高潮流白浆免费观看| 国产日韩精品欧美一区灰| 亚洲av成人无码网站在线观看| 免费A级毛片无码免费视频| 999精品视频在线| 精品国产免费观看| 国产网站免费观看| 精品国产女同疯狂摩擦2| 亚洲国产欧美目韩成人综合| 人妻无码一区二区视频| 在线免费不卡视频| 午夜综合网| 99久久婷婷国产综合精| 亚洲中文字幕在线观看| 无码一区中文字幕| 全部免费毛片免费播放| 国产精品私拍99pans大尺度| 67194成是人免费无码| 亚洲二区视频| 午夜成人在线视频| 国产精品一线天| 色综合婷婷| 亚洲一级色| 亚洲中文字幕国产av| 亚洲天堂网在线播放| 久久99国产乱子伦精品免| 玖玖免费视频在线观看| 又爽又黄又无遮挡网站| 2022国产无码在线| 成年人福利视频| 国产成人一区免费观看| 国产AV无码专区亚洲A∨毛片| 亚洲精品视频免费观看| 国产亚洲视频播放9000| 久热re国产手机在线观看| 色综合成人| 亚洲欧洲日产无码AV| 午夜国产精品视频| 久久频这里精品99香蕉久网址| 国产精品亚洲精品爽爽| 欧美三级视频在线播放| 欧美午夜在线播放| 国产激情无码一区二区免费| 亚洲精品少妇熟女| 麻豆国产原创视频在线播放| 日日拍夜夜操| 色婷婷亚洲综合五月| 国内精品九九久久久精品| 国产九九精品视频| 成人免费一区二区三区| 少妇精品网站| 亚洲欧洲日韩久久狠狠爱| 成人午夜精品一级毛片| 午夜电影在线观看国产1区| 欧美午夜视频| 无码国产伊人| 乱人伦99久久| 亚洲国语自产一区第二页| 欧美视频二区| 女人爽到高潮免费视频大全| 91精品专区国产盗摄| 色综合天天操| 亚洲综合经典在线一区二区| 青青草原偷拍视频| 五月天天天色| 欧美视频在线不卡| 熟妇丰满人妻av无码区| 亚洲经典在线中文字幕| 五月天在线网站| 精品福利视频网| 国产成人区在线观看视频| 天天摸夜夜操| 超清无码一区二区三区| 日韩精品中文字幕一区三区| 国产v精品成人免费视频71pao| 亚洲自拍另类| 亚洲中文字幕av无码区| 黄色网站不卡无码| 美女免费精品高清毛片在线视| 高清欧美性猛交XXXX黑人猛交| 宅男噜噜噜66国产在线观看| 高清乱码精品福利在线视频|