前言:想要寫出一篇引人入勝的文章?我們特意為您整理了移動(dòng)網(wǎng)下絡(luò)智能設(shè)備數(shù)據(jù)節(jié)流探討范文,希望能給你帶來靈感和參考,敬請(qǐng)閱讀。
隨著智能家居概念被炒熱,市場(chǎng)上井噴出很多智能設(shè)備,然而要實(shí)現(xiàn)真正的智能硬件生態(tài)圈,無論在市場(chǎng)還是技術(shù)層面,仍然有很長(zhǎng)的一段路要走。在眾多的智能設(shè)備中,有一部分是通過家庭Wi-Fi接入互聯(lián)網(wǎng)的,有一部分則是通過移動(dòng)網(wǎng)絡(luò)(GPRS、3G、4G)再接入互聯(lián)網(wǎng)的,特別是一些可穿戴設(shè)備。與基于Wi-Fi的設(shè)備很不同,移動(dòng)網(wǎng)絡(luò)是按照流量計(jì)費(fèi)的,通訊費(fèi)用就成為了這類產(chǎn)品在設(shè)計(jì)時(shí)必須考慮的一個(gè)重要方面。雖然移動(dòng)網(wǎng)絡(luò)的資費(fèi)越來越便宜,但是智能設(shè)備的使用也并非一天半天,如果使用了一種簡(jiǎn)單粗暴的通訊方案,日積月累,將會(huì)產(chǎn)生很多沒有實(shí)際意義的流量,浪費(fèi)資源和金錢,最終影響產(chǎn)品在市場(chǎng)上的競(jìng)爭(zhēng)力。
1數(shù)據(jù)篩選
在數(shù)據(jù)進(jìn)行傳輸之前,智能硬件需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,判斷需要傳輸哪些數(shù)據(jù),例如一些工業(yè)設(shè)備的運(yùn)行狀態(tài)、可穿戴設(shè)備的一些人體數(shù)據(jù)等等。在業(yè)務(wù)系統(tǒng)設(shè)計(jì)的時(shí)候,就必須要對(duì)數(shù)據(jù)進(jìn)行分級(jí)分類。哪些是必須要傳的,哪些是在緊急情況下可以舍棄的,例如一些冷凍冷藏的設(shè)備,停機(jī)故障的數(shù)據(jù)是最重要的,因?yàn)檫@類設(shè)備一旦停機(jī),可能會(huì)使得冷凍的食品、藥品或者名貴紅酒變壞,導(dǎo)致客戶重大的損失。再進(jìn)一步,根據(jù)需要,智能硬件可以將一些底層數(shù)據(jù)加以統(tǒng)計(jì)再進(jìn)行傳輸,例如智能手環(huán),可以將客戶的步行里程統(tǒng)計(jì)一段再上傳到云平臺(tái)記錄,而不是將客戶的每一步都實(shí)時(shí)傳輸上去。更進(jìn)一步,可以將定時(shí)傳輸這種傳統(tǒng)模式改為有變化再傳輸,例如云平臺(tái)想監(jiān)控一個(gè)傳感設(shè)備的溫度曲線,可以在溫度發(fā)生變化的時(shí)候才傳輸數(shù)據(jù),而不是不管溫度是否有變化每隔幾秒就將溫度往云平臺(tái)傳輸。
2數(shù)據(jù)壓縮
所謂數(shù)據(jù)壓縮,是指減少數(shù)據(jù)量以減少存儲(chǔ)、傳輸?shù)目臻g的一種技術(shù)方法,并且在這過程中不丟失數(shù)據(jù)信息。在智能家居系統(tǒng)中,通訊的兩端設(shè)備(例如智能設(shè)備與云平臺(tái)、智能設(shè)備與APP、云平臺(tái)與APP之間),在往對(duì)方發(fā)送數(shù)據(jù)前,可考慮先對(duì)數(shù)據(jù)進(jìn)行壓縮,接收方在收到數(shù)據(jù)后,再對(duì)數(shù)據(jù)進(jìn)行解壓。數(shù)據(jù)的壓縮算法有很多,例如LZW壓縮算法、Huffman壓縮算法、Rice壓縮算法、RLE壓縮算法、LZ77等等。這些算法都各有優(yōu)缺點(diǎn),究竟需要如何選擇?首先,要考慮的是數(shù)據(jù)特征,如果需要傳輸?shù)臄?shù)據(jù),出現(xiàn)的字符類型少,而且很明顯地有些字符的頻率很高,則適合使用以頻率特征為壓縮原則的算法,例如Huffman、RLE等。如果有比較多字符串重復(fù)的,則可以考慮用窗口式的壓縮算法,例如LZ77等。但是,如果發(fā)現(xiàn)要傳輸?shù)臄?shù)據(jù)量較少,或者重復(fù)性不高,那么就無需再使用壓縮算法,以免產(chǎn)生更多的數(shù)據(jù)浪費(fèi)。其次,要考慮算法所占用的資源情況,因?yàn)橹悄苡布榱四茏哌M(jìn)普通老百姓的家里,吸引更多消費(fèi)者購買,使自己在市場(chǎng)上更有競(jìng)爭(zhēng)力,往往會(huì)選擇低成本的方案。也就是說,智能設(shè)備的硬件資源,往往只能滿足其功能性的需求,CPU、RAM的資源都非常有限。所以應(yīng)該根據(jù)硬件的資源情況,選取代碼量少,占用資源少的壓縮算法。以Huffman為例,Huffman算法首先統(tǒng)計(jì)字符出現(xiàn)的頻率,然后再用這個(gè)頻率作為一個(gè)權(quán)值,構(gòu)建一個(gè)Huffman二叉樹,頻率高的字符會(huì)在樹的上層,頻率低的會(huì)在樹的下層。然后就是通過遍歷二叉樹的方式對(duì)所有字符進(jìn)行編碼。最終的結(jié)果是,出現(xiàn)頻繁的字符,能用較少的位來表示,出現(xiàn)不頻繁的字符用較多的位來表示,從而達(dá)到節(jié)省空間的效果。在將這個(gè)算法寫到單片機(jī)的過程中,會(huì)發(fā)現(xiàn)遇到幾個(gè)問題,首先是建樹,樹這個(gè)概念在單片機(jī)的編程中非常少用,一般嵌入式開發(fā)人員習(xí)慣使用數(shù)組,比較好控制,并且數(shù)組的空間是預(yù)先就分配好的。而Huffman樹則是一個(gè)動(dòng)態(tài)生成的樹,編程時(shí)對(duì)其空間很難做出準(zhǔn)確評(píng)估,這樣就必然導(dǎo)致預(yù)申請(qǐng)很多空間以做準(zhǔn)備,其結(jié)果往往會(huì)比數(shù)組要的空間多。另外,字符頻率的統(tǒng)計(jì)以及字符編碼,都需要耗費(fèi)CPU時(shí)間及額外的資源,所以,Huffman算法并不太適合用在低成本的智能硬件中。所以,選取什么算法,需要綜合考慮壓縮比、復(fù)雜度以及硬件資源這幾個(gè)維度。參考文獻(xiàn)[1]嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:清華大學(xué)出版社,1997.[2]謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)[M].第5版.北京:電子工業(yè)出版社,2008.
3合適的傳輸協(xié)議
用于智能設(shè)備的數(shù)據(jù)傳輸協(xié)議,目前使用較多的有三種:HTTP、TCP和UDP。按照ISO七層模型劃分(自底向上:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層、應(yīng)用層),HTTP是屬于應(yīng)用層的,而TCP和UDP則屬于傳輸層的,從網(wǎng)絡(luò)數(shù)據(jù)包的角度來看,數(shù)據(jù)包是自下而上層層封裝的,所以在同等內(nèi)容的情況下,HTTP會(huì)比TCP和UDP占用較多的資源。而TCP是可靠的、有連接的協(xié)議,需要三次握手,UDP則不需要,所以在這個(gè)角度上看,UDP占用的資源比TCP要少。但是在選擇協(xié)議的時(shí)候,占用的資源并不是唯一的度量,還要考慮并發(fā)量、功能乃至產(chǎn)品的生命周期。如果一個(gè)系統(tǒng)并發(fā)量低、功能簡(jiǎn)單、周期短,則可以考慮用TCP,畢竟使用UDP還需要自己實(shí)現(xiàn)重發(fā)等機(jī)制。但一個(gè)系統(tǒng)并發(fā)量很高,則考慮用UDP,因?yàn)門CP的連接性會(huì)產(chǎn)生很多長(zhǎng)連接,占用網(wǎng)絡(luò)帶寬、防火墻等資源。一般情況下TCP會(huì)比UDP少20%左右的并發(fā)數(shù),但具體情況會(huì)受到業(yè)務(wù)系統(tǒng)程序的影響。
4總結(jié)
在智能設(shè)備的設(shè)計(jì)中,特別是基于移動(dòng)網(wǎng)絡(luò)的設(shè)備,需要盡量節(jié)省流量,使產(chǎn)品有更大的實(shí)用性。在考慮數(shù)據(jù)流量時(shí),按照數(shù)據(jù)篩選、數(shù)據(jù)壓縮、傳輸協(xié)議這幾個(gè)步驟進(jìn)行評(píng)估,站在整套系統(tǒng)的角度去綜合權(quán)衡數(shù)據(jù)的問題,最終選取出最適合的一個(gè)數(shù)據(jù)節(jié)流的方案。
作者:梁成就 單位:珠海格力電器股份有限公司