国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Qt對(duì)Linux系統(tǒng)下嵌入軟件的研究與應(yīng)用

2020-06-13 06:58王星
電子技術(shù)與軟件工程 2020年2期
關(guān)鍵詞:應(yīng)用層通訊指令

文/王星

(蘇州長風(fēng)航空電子有限公司 江蘇省蘇州市 215151)

1 引言

嵌入式信息管理軟件(以下簡稱ISI軟件)運(yùn)行在Linux操作系統(tǒng),駐留于計(jì)算機(jī)及圖形板中,主要完成與外部設(shè)備通訊、數(shù)據(jù)處理和應(yīng)用、控制內(nèi)部各模塊協(xié)調(diào)工作。

ISI軟件架構(gòu)基于模塊化設(shè)計(jì)思想,采用分層實(shí)現(xiàn)的模式,由驅(qū)動(dòng)層、中間邏輯層、應(yīng)用層組成。驅(qū)動(dòng)層主要包括,基于ipmitool與BMC通過串口通訊實(shí)現(xiàn)、基于I2C接口的各子模塊與BMC的通訊實(shí)現(xiàn)、操作系統(tǒng)信息交互的CLI指令集的調(diào)用實(shí)現(xiàn)、與信息匯總模塊的UDP通訊實(shí)現(xiàn)、與音視頻采集模塊、智能交互模塊的TCP通訊實(shí)現(xiàn);中間邏輯層主要包括,通過驅(qū)動(dòng)層獲取信息并進(jìn)行信息處理后反饋給應(yīng)用層,接受應(yīng)用層的反饋及控制指令對(duì)驅(qū)動(dòng)層進(jìn)行信息交互和控制;應(yīng)用層主要包括,實(shí)現(xiàn)信息最終的輸出及控制指令的確認(rèn)實(shí)現(xiàn)工作。ISI軟件的架構(gòu)設(shè)計(jì)如圖1。

2 開發(fā)簡介

ISI軟件主要功能為,通過UDP組播方式實(shí)現(xiàn)匯總后的健康信息上報(bào)給信息匯總設(shè)備(以下簡稱SBIT);通過Qt的QProcess進(jìn)程機(jī)制,采用指令調(diào)用、接口監(jiān)控模式獲取BMC模塊、計(jì)算機(jī)及圖形模塊、智能交互模塊的信息;利用Linux操作系統(tǒng)內(nèi)置的shell提供的管道機(jī)制,實(shí)現(xiàn)對(duì)數(shù)據(jù)的選擇性獲??;使用TCP通訊,實(shí)現(xiàn)對(duì)音視頻采集模塊的遠(yuǎn)程控制;利用并通過ipmitool中間件,通過串口實(shí)現(xiàn)對(duì)BMC模塊中各子模塊電壓、電流、溫度、CPU等信息的獲??;實(shí)現(xiàn)Linux操作系統(tǒng)的開機(jī)自啟動(dòng)功能。

ISI軟件的信息分為健康信息和控制信息,健康信息包括各模塊的電流、電壓值、溫度、自檢狀態(tài)、運(yùn)行狀態(tài)等信息,控制信息主要是信息獲取指令、控制指令等,信息流詳見圖2。

3 信息處理及傳輸?shù)难芯颗c應(yīng)用

3.1 UDP傳輸模式的研究與應(yīng)用

UDP方式信息上報(bào)SBIT可以采取點(diǎn)對(duì)點(diǎn)模式或組播模式。

UDP方式信息上報(bào)方案如下:

方案1,采用點(diǎn)到點(diǎn)的模式,通過目的源和發(fā)送源采用不同的IP地址進(jìn)行設(shè)備區(qū)分,實(shí)現(xiàn)的是單對(duì)單的通訊模式,通訊采用非握手機(jī)制進(jìn)行傳輸。

方案2,采用組播模式,通過目的源和發(fā)送源采用同一組播IP地址的不同端口號(hào)進(jìn)行設(shè)備區(qū)分,實(shí)現(xiàn)的是單對(duì)多的通訊模式,通訊采用非握手機(jī)制進(jìn)行傳輸。

比較兩種方案,在實(shí)現(xiàn)單一接收源的應(yīng)用場(chǎng)景中,兩種實(shí)現(xiàn)機(jī)制的優(yōu)劣基本一致,但如果存在多臺(tái)接收源時(shí),采用組播方式可以實(shí)現(xiàn)一次發(fā)送,多點(diǎn)接收,而點(diǎn)對(duì)點(diǎn)的模式則需要多次發(fā)送。根據(jù)應(yīng)用場(chǎng)景,ISI軟件選擇的是組播方式。

圖1:軟件架構(gòu)邏輯圖

圖2:軟件信息流圖

3.2 信息處理的研究與應(yīng)用

在對(duì)大數(shù)據(jù)信息進(jìn)行傳輸時(shí),若數(shù)據(jù)幀定義按無裁剪方式發(fā)送,就單一以發(fā)送某一包字節(jié)為889字節(jié)數(shù)據(jù)而言,里面含有大量的無用空置信息。為減少主機(jī)及自身的性能消耗,我們采用如圖3方式組織報(bào)文,通過模塊標(biāo)識(shí)+數(shù)據(jù)標(biāo)識(shí)的方式,對(duì)ICD數(shù)據(jù)模塊中定義了但不需要上報(bào)的信息進(jìn)行裁剪,以盡量減少數(shù)據(jù)信息的上報(bào)大小,并通過標(biāo)識(shí)號(hào)ID區(qū)分各段信息。經(jīng)過裁剪,每次發(fā)送字節(jié)減少到558字節(jié),這在頻繁信息交互中,很大提高了自身及主機(jī)運(yùn)行效率。

圖3:數(shù)據(jù)幀組織圖

圖4:ISI運(yùn)行效果圖

4 方法實(shí)現(xiàn)

4.1 驅(qū)動(dòng)層實(shí)現(xiàn)

驅(qū)動(dòng)層實(shí)現(xiàn)從如下幾個(gè)方面實(shí)現(xiàn):

(1)UDP組播驅(qū)動(dòng)實(shí)現(xiàn):區(qū)別于常用的點(diǎn)對(duì)點(diǎn)的UDP傳輸模式,我們采用的是UDP組播方式進(jìn)行驅(qū)動(dòng)開發(fā),組播的最大優(yōu)勢(shì)在于一次發(fā)送多處接收,避免一個(gè)成員對(duì)多個(gè)成員通訊時(shí),相同反饋的多次發(fā)送操作,提高了整機(jī)性能;

(2)TCP驅(qū)動(dòng)實(shí)現(xiàn):TCP協(xié)議的程序使用的是客戶端/服務(wù)器模式,在Qt中提供了QTcpSocket類來編寫客戶端程序,使用QTcpServer類編寫服務(wù)器端程序。我們?cè)诜?wù)器端進(jìn)行端口的監(jiān)聽,一旦發(fā)現(xiàn)客戶端的連接請(qǐng)求,就會(huì)發(fā)出newConnection()信號(hào),我們可以關(guān)聯(lián)這個(gè)信號(hào)到我們自己的槽函數(shù),進(jìn)行數(shù)據(jù)的發(fā)送。而在客戶端,一旦有數(shù)據(jù)到來就會(huì)發(fā)出readyRead()信號(hào),我們可以關(guān)聯(lián)此信號(hào),進(jìn)行數(shù)據(jù)的接收;

(3)CLI指令集驅(qū)動(dòng)實(shí)現(xiàn):CLI指令集驅(qū)動(dòng)的實(shí)現(xiàn)分為指令執(zhí)行和指令執(zhí)行后獲取系統(tǒng)反饋信息,使用機(jī)制是Qt的QProcess進(jìn)程機(jī)制;

(4)基于ipmitool與BMC串口驅(qū)動(dòng)實(shí)現(xiàn):ipmitool是一種命令行方式的ipmi平臺(tái)管理工具,支持ipmi1.5規(guī)范,基于ipmitool與BMC串口驅(qū)動(dòng)實(shí)現(xiàn),首先通過ipmitool提供的指令命令,開啟操作系統(tǒng)物理串口與BMC的連接,并通過QT的QProcess及信號(hào)/槽機(jī)制,實(shí)現(xiàn)指令的執(zhí)行和BMC提供的健康數(shù)據(jù)的獲?。?/p>

4.2 中間邏輯層實(shí)現(xiàn)

中間邏輯層作為驅(qū)動(dòng)層和應(yīng)用層的橋梁,主要實(shí)現(xiàn)各信息的處理,對(duì)指令的傳輸及反饋功能。

中間邏輯層從如下幾個(gè)方面實(shí)現(xiàn):

(1)實(shí)現(xiàn)定時(shí)時(shí)鐘片,提供任務(wù)調(diào)度機(jī)制的實(shí)現(xiàn);

(2)建立指令判斷機(jī)制,對(duì)正常指令、異常指令、實(shí)時(shí)響應(yīng)指令進(jìn)行判斷并提供反饋標(biāo)志;

(3)建立信息處理模式,對(duì)獲取的健康信息進(jìn)行信息處理;

提供驅(qū)動(dòng)層和應(yīng)用層API接口實(shí)現(xiàn)。

4.3 應(yīng)用層實(shí)現(xiàn)

應(yīng)用層實(shí)現(xiàn)從如下幾個(gè)方面實(shí)現(xiàn):

(1)上報(bào)SBIT模塊健康信息實(shí)現(xiàn):軟件正常啟動(dòng)后,通過組播周期向SBIT報(bào)送初始化結(jié)束報(bào)文(握手報(bào)文),當(dāng)接收到SBIT(上位機(jī))應(yīng)答包后,結(jié)束發(fā)送握手報(bào)文,并將以周期向SBIT報(bào)送平臺(tái)數(shù)據(jù)報(bào)文;

(2)獲取BMC信息實(shí)現(xiàn):通過任務(wù)調(diào)度機(jī)制,周期調(diào)度獲取BMC的自檢數(shù)據(jù),利用Qt強(qiáng)大的字符串檢索功能,實(shí)現(xiàn)對(duì)需要信息的截取和轉(zhuǎn)換及處理工作;

(3)基于Linux系統(tǒng)獲取信息功能實(shí)現(xiàn):使用Qt的system()+Linux系統(tǒng)管道機(jī)制實(shí)現(xiàn)對(duì)系統(tǒng)信息的獲取,包括CPU、內(nèi)存、存儲(chǔ)容量占用率、IP信息等內(nèi)容;

(4)基于Linux系統(tǒng)自啟動(dòng)功能實(shí)現(xiàn):通過注冊(cè)服務(wù)的方式,將ISI軟件作為系統(tǒng)服務(wù)自動(dòng)運(yùn)行;

4.4 ISI軟件運(yùn)行效果圖

ISI軟件調(diào)試完成后,安裝在一體機(jī)平臺(tái)上進(jìn)行了驗(yàn)證,設(shè)計(jì)達(dá)到了預(yù)期效果。效果如圖4所示。

5 總結(jié)

ISI軟件是基于Qt+Linux開發(fā),實(shí)現(xiàn)嵌入在計(jì)算機(jī)板上運(yùn)行的多API接口實(shí)現(xiàn)的信息管理類軟件,具有很強(qiáng)的針對(duì)性和專業(yè)代表性。在設(shè)計(jì)實(shí)現(xiàn)過程中,涉及的知識(shí)層面包括計(jì)算機(jī)硬件系統(tǒng)架構(gòu),Linux操作系統(tǒng)底層實(shí)現(xiàn),TCPUDP網(wǎng)絡(luò)通訊,Qt開發(fā)平臺(tái)和C++語言等,鑒于時(shí)間和學(xué)識(shí)有限,一些設(shè)計(jì)及實(shí)現(xiàn)并不是盡善盡美,待完善和補(bǔ)充的內(nèi)容有很多,請(qǐng)批評(píng)指正。

猜你喜歡
應(yīng)用層通訊指令
《茶葉通訊》簡介
《茶葉通訊》簡介
通訊報(bào)道
ARINC661顯控指令快速驗(yàn)證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
通訊簡史
新一代雙向互動(dòng)電力線通信技術(shù)的應(yīng)用層協(xié)議研究
坐標(biāo)系旋轉(zhuǎn)指令數(shù)控編程應(yīng)用
Current advances in neurotrauma research: diagnosis, neuroprotection, and neurorepair
义乌市| 天气| 红河县| 明光市| 阿合奇县| 万全县| 扶沟县| 咸宁市| 景宁| 平武县| 宁阳县| 霍城县| 余庆县| 乐亭县| 沙田区| 德兴市| 五家渠市| 鹿泉市| 正蓝旗| 铜山县| 北宁市| 赤城县| 邯郸县| 石屏县| 康定县| 西林县| 宣汉县| 镇平县| 塔城市| 南陵县| 临西县| 荣昌县| 巢湖市| 普洱| 延寿县| 维西| 杨浦区| 庐江县| 信阳市| 连州市| 阿坝县|