嵌入式網(wǎng)絡(luò )智能控制系統的研究
關(guān)鍵詞:嵌入式操作系統;Web服務(wù)器;調度算法
1引 言
隨著(zhù) Internet 技術(shù)的發(fā)展、信息家電的普及應用以及EOS(Embedded Operating System)的微型化和專(zhuān)業(yè)化,EOS 開(kāi)始從單一的弱功能向高專(zhuān)業(yè)化的強功能方向發(fā)展。以基于Internet為標志的嵌入式系統,正處在迅速發(fā)展的階段。目前大多數嵌入式系統還孤立于Internet之外,但隨著(zhù)Internet的發(fā)展以及Internet技術(shù)與信息家電、工業(yè)控制技術(shù)等結合日益密切,嵌入式設備與Internet的結合將代表著(zhù)嵌入式技術(shù)的真正未來(lái)。
本文所研究的嵌入式網(wǎng)絡(luò )智能終端控制系統,以微處理系統直接與以太網(wǎng)連接的方式,將嵌入式操作系統和Internet 網(wǎng)絡(luò )有機地結合起來(lái)。以下將從嵌入式網(wǎng)絡(luò )智能控制系統的體系結構、軟件系統兩部分進(jìn)行闡述。
2 嵌入式網(wǎng)絡(luò )智能控制系統的體系結構
嵌入式網(wǎng)絡(luò )智能控制系統的應用環(huán)境與網(wǎng)絡(luò )拓撲結構如圖1所示。圖1所示的拓撲結構由嵌入式網(wǎng)絡(luò )智能終端、調度服務(wù)器、Web服務(wù)器組[2]、Internet主機組成。嵌入式網(wǎng)絡(luò )智能終端采用uCLinux操作系統[1],該終端直接與以太網(wǎng)相連,將數據傳送到Internet廣域網(wǎng)的Web服務(wù)器。調度服務(wù)器在該系統中起負載調度的作用,不至于Web服務(wù)器中的某個(gè)服務(wù)器負載過(guò)重。Web服務(wù)器組收集嵌入式網(wǎng)絡(luò )智能終端系統的數據,應答廣域網(wǎng)主機的訪(fǎng)問(wèn)。廣域網(wǎng)中的主機可以隨機訪(fǎng)問(wèn)Web服務(wù)器獲取嵌入式網(wǎng)絡(luò )智能終端的數據,有特定權限的主機并可以直接訪(fǎng)問(wèn)嵌入式網(wǎng)絡(luò )智能終端。
圖1系統應用環(huán)境與網(wǎng)絡(luò )拓撲結構
嵌入式網(wǎng)絡(luò )智能終端由微處理器、外部接口、網(wǎng)絡(luò )信息處理、電平轉換、擴展存儲器等幾部分組成,嵌入式網(wǎng)絡(luò )智能終端的硬件結構如圖2所示。
圖 2嵌入式網(wǎng)絡(luò )智能終端硬件結構
3 軟件系統
3.1嵌入式網(wǎng)絡(luò )智能終端軟件體系結構
根據圖1所示的環(huán)境本文選用uClinux操作系統作為軟件系統開(kāi)發(fā)平臺,圖3顯示了軟件系統的整體構架。軟件系統分為兩個(gè)部分:受控對象軟件部分與嵌入式網(wǎng)絡(luò )智能終端軟件部分。
受控對象軟件部分涉及傳感器如何收集受控對象的信號,如何驅動(dòng)受控對象和外設,怎樣將信號傳送到嵌入式網(wǎng)絡(luò )智能控制終端。
嵌入式網(wǎng)絡(luò )智能終端軟件部分涉及到內核的修改、操作系統的移植、文件處理、圖形用戶(hù)接口的設計、任務(wù)的處理、如何添加應用程序到uClinux中以及嵌入式網(wǎng)絡(luò )智能控制終端與Web服務(wù)器之間信息的交換。
圖3 軟件系統的整體構架
3.2 嵌入式網(wǎng)絡(luò )智能控制終端與Web服務(wù)器之間信息的交換
Web服務(wù)器是遠程設備導出信息的重要手段,它可以通過(guò)公共網(wǎng)關(guān)接口(CGI)的表單允許修改設備參數,從而進(jìn)行遠程監控[2]。Web服務(wù)器已經(jīng)成為遠程管理,特別是那些沒(méi)有傳統用戶(hù)界面(如本文設計的嵌入式智能終端)的設備標準。Web瀏覽器可以與遠程設備進(jìn)行通信,并展示相應的數據。在圖1所示的拓撲環(huán)境中Web服務(wù)器、客戶(hù)機和嵌入式網(wǎng)絡(luò )智能終端使用超文本協(xié)議[3](HTTP)和網(wǎng)路編程來(lái)實(shí)現信息的交換和遠程管理。
HTTP是一種基于A(yíng)SCII的協(xié)議。HTTP在TCP/IP協(xié)議上面使用標準同步請求/應答模式、客戶(hù)機/服務(wù)器結構[4]。當客戶(hù)機向HTTP服務(wù)器提出請求時(shí),需要發(fā)送一個(gè)HTTP請求報文,該報文的格式如圖4所示。
圖4 HTTP請求報文格式
圖4顯示HTTP請求報文由請求行、可選報頭、可選報文報體字段組成。請求行建立后來(lái)活動(dòng)的舞臺??蛇x報頭指出客戶(hù)機請求的協(xié)議,以及服務(wù)器在應答之前要了解的客戶(hù)機的信息。
HTTP請求報文包含很少的一些信息,但通過(guò)這些信息可以通知服務(wù)器它的“能力和偏好”。同樣HTTP應答也采用類(lèi)似的結構,在這里就不再闡述。
3.3 網(wǎng)絡(luò )數據的提交
實(shí)現嵌入式網(wǎng)絡(luò )智能終端應用程序網(wǎng)絡(luò )數據提交(圖3軟件層中的應用程序)時(shí),嵌入式網(wǎng)絡(luò )智能終端與廣域網(wǎng)Web服務(wù)器之間的網(wǎng)絡(luò )通信采用客戶(hù)/服務(wù)器模式方式,即uCLinux操作系統環(huán)境下進(jìn)行網(wǎng)絡(luò )編程。實(shí)現網(wǎng)絡(luò )編程(信息傳輸)包括以下五個(gè)基本過(guò)程:創(chuàng )建套接字:調用socket();綁定套接字:調用bind();創(chuàng )建連接:調用connect();監聽(tīng)連接:調用listen();建立連接:調用accept()。
3.4調度服務(wù)器的調度算法
影響圖1所示的嵌入式網(wǎng)絡(luò )智能控制系統可靠性的關(guān)鍵因素是調度服務(wù)器的網(wǎng)絡(luò )性能,合理進(jìn)行參數計算和映射與負載定位是提升網(wǎng)絡(luò )性能的關(guān)鍵。
3.4.1 參數的計算和映射
CPU利用率能直接反映服務(wù)器的性能,以下給出linux操作系統中獲取CPU利用率過(guò)程,linux操作系統中通過(guò)讀取/proc/stat文件,該文件中記錄有sys、user、nice和idle變量。計算CPU利用率時(shí)只要兩次讀取這些變量,然后利用公式:
Total_1=user_1+nice_1+sys_1+idel_1;
Total_2=user_2+nice_2+sys_1+idel_2;
IntCpuRate=(int)(((float)((user_2+sys_2+nice_2)-(user_1+sys_1+nice_1))/(float)(total_2-total_1))*100);
其中total_1為第一次讀取的參數總和,total_2為第二次讀取的參數總和。
對于其他的參數,例如緩沖區的大小,可以通過(guò)調用linux操作系統的系統函數ioct1()來(lái)獲取。
獲取對應的參數以后,再將對應的參數映射到負載定位算法中,在參數的轉換過(guò)程中主要采用的算法是動(dòng)態(tài)閥值算法[5]。該算法的數學(xué)模型如下:
上式中B為系統接口緩沖區空間的容量,Qi(t)為第i個(gè)Web服務(wù)器的隊列長(cháng)度,Q(t)為當前系統總隊列長(cháng)度,T(t)為不再連接會(huì )話(huà)的閥值參數,α為調節因子。上述公式可知,動(dòng)態(tài)閥值算法根據系統狀態(tài)動(dòng)態(tài)調整控制閥值,閥值的大小與當前系統中空閑的資源成正比,當某個(gè)Web服務(wù)器緩沖區空間超過(guò)閥值時(shí),將阻塞該Web服務(wù)器,不再給該Web服務(wù)器分配負載。
3.4.2 負載定位策略
根據前面得到參數,將這些參數傳遞到調度服務(wù)器。調度服務(wù)器通過(guò)使用加權輪轉調度算法[5]來(lái)選擇合適的服務(wù)器,即將負載定位到具體Web服務(wù)器上。定位策略的算法描述如下:
假設有一組Web服務(wù)器表示為S = {S0, S1, …, Sn-1},W(Si)表示W(wǎng)eb服務(wù)器 Si的權值,變量 i表示上一次選擇的Web服務(wù)器,變量cw表示當前調度的權值,max(S)表示集合S中所有Web服務(wù)器的最大權值,gcd(S)表示集合S中所有Web服務(wù)器權值的最大公約數。變量 i 和cw最初都被初始化為零。算法描述如下:
while (true) {
if (i == 0) {
cw = cw - gcd(S);
if (cw = 0) {
cw = max(S);
if (cw == 0)
return NULL;
}
} else i = (i + 1) mod n;
if (W(Si) >= cw)
return Si; }
4實(shí)驗環(huán)境和結果
實(shí)驗拓撲結構采用如圖1所示的最簡(jiǎn)系統。嵌入式網(wǎng)絡(luò )智能終端采用嵌入uClinux操作系統,并在uClinux操作系統添加相應的網(wǎng)絡(luò )通信程序。調度服務(wù)器采用Linux9.0作為操作系統并實(shí)現3.3節的調度算法。Web服務(wù)器組、Internet主機為常見(jiàn)的形式。圖5是利用Ethereal網(wǎng)絡(luò )協(xié)議分析器獲取的數據包的情況,該圖表明本文設計的系統和采用的算法有效。
圖5 獲取的數據包
5 結束語(yǔ)
實(shí)驗表明本文提出的系統結構、負載計算法和調度算法實(shí)現了嵌入式網(wǎng)絡(luò )智能控制終端的遠程控制。通過(guò)采用加權輪轉調度算法和動(dòng)態(tài)閥值算法解決了系統負載調度問(wèn)題,使得系統具有良好的網(wǎng)絡(luò )性能和較高的實(shí)際應用價(jià)值。該系統的實(shí)現為進(jìn)一步進(jìn)行嵌入式網(wǎng)絡(luò )遠程控制系統服務(wù)的研究搭建了一個(gè)良好的網(wǎng)絡(luò )平臺。
參考文獻
[1] 李晶,張維新. uClinux下實(shí)時(shí)任務(wù)的一種實(shí)現方法[J].微計算機信息,2005(1):129-130
[2] 王東濱,方濱興,云曉春. 基于Web管理的網(wǎng)絡(luò )監測技術(shù)的設計與實(shí)[J]. 計算機工程, 2002(10),2003-2004
[3] J. Gettys J. Mogul Hypertext Transfer Protocol -- HTTP/1.1[S] RFC2068
[4] M.tim jones 嵌入式系統TCP/IP應用層協(xié)議[M]. 北京:電子工業(yè)出版社,2003.91-96.
[5] Hahme E L, Choudhury A K. Dynamic queue length threshold for mulitiple loss priorities. IEEE/ACM Trans Networking[J],2002,10(3):368-380
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論