來(lái)源:微網(wǎng)高通
ZigBee的很多產(chǎn)品的MAC層接入機(jī)制采用的就是CSMA/CA的接入機(jī)制,這個(gè)機(jī)制固然是一種非常有效的避免碰撞的模型,但是某些硬件或者結(jié)構(gòu)上的設(shè)計(jì)不當(dāng)則會(huì)導(dǎo)致非常嚴(yán)重的性能問(wèn)題,在之前有一個(gè)朋友剛好經(jīng)歷過(guò)這一檔子事,歷經(jīng)坎坷最終在廠家的大力支持下才發(fā)現(xiàn)是CAMA/CA的機(jī)制所致。
幾年前,有一位朋友接受一位日本客戶的手持機(jī)產(chǎn)品的定制業(yè)務(wù),由于日本是全世界對(duì)于無(wú)線電管理最嚴(yán)格的國(guó)家,沒(méi)有通過(guò)認(rèn)證的產(chǎn)品光是通過(guò)日本海關(guān)就有很大的風(fēng)險(xiǎn),更別說(shuō)在日本市場(chǎng)銷(xiāo)售呢。剛好這位日本客戶做事風(fēng)格也是非常的“日本”,嚴(yán)格按照他們國(guó)家的法律法規(guī)辦事,絕不投機(jī)取巧,朋友看到日本客戶這么嚴(yán)謹(jǐn),細(xì)致,就非常放心的簽訂了合作協(xié)議,然后快速展開(kāi)了設(shè)計(jì)工作。很快日本客戶帶來(lái)了一款通過(guò)日本電波法規(guī)(ARIB STD-67)認(rèn)證的小模塊,模塊的做工非常精致,大約2X2cm2,模塊的核心芯片是TI公司的一款高端芯片CC1020,外殼上還有一個(gè)金屬屏蔽罩子,有一個(gè)大約17cm長(zhǎng)度的黑色饋線甩出來(lái),天線的末端還有一個(gè)小帽子,內(nèi)部點(diǎn)上膠水了,不會(huì)輕易脫落。嗯,做工近乎完美,日本人的工匠精神那可不是蓋的!
很快100臺(tái)樣機(jī)做出來(lái)了,手持機(jī)的外殼是長(zhǎng)條形的,帶有按鍵和點(diǎn)陣液晶屏,整機(jī)顯得古典大方,按鍵手感也十分的出色,看起來(lái)一切順利,離成功不遠(yuǎn)了。接下來(lái)就是做真機(jī)拉距測(cè)試,畢竟大家之前對(duì)模塊有過(guò)幾次單獨(dú)的摸底測(cè)試,心里已經(jīng)有數(shù)了,依據(jù)以往的經(jīng)驗(yàn),即便性能上有點(diǎn)折扣,大家也是有心里準(zhǔn)備的。經(jīng)過(guò)幾個(gè)月的辛苦研發(fā)熬到這一天也不容易,因此大家情緒高漲,就等著開(kāi)香檳慶祝呢。那是9月末的一天,馬上就要國(guó)慶節(jié)了,天氣那是出奇的良好,測(cè)試條件和平常沒(méi)有什么兩樣,但是測(cè)試的結(jié)果讓所有人都然大吃一驚!竟然有二十幾部機(jī)器的通訊距離非常近,有的甚至和接收機(jī)面對(duì)面對(duì)著都發(fā)不出數(shù)據(jù)。這樣的測(cè)試結(jié)果將工程師們的信心瞬間擊至谷底,他們都從下午一直鼓搗到了后半夜都不明白其中的緣由。后來(lái)朋友緊急聯(lián)系了日本客戶,讓他們尋求原廠的技術(shù)支持,日本客戶在中間代為溝通,輾轉(zhuǎn)來(lái)回了幾次之后,發(fā)現(xiàn)完全是驢唇不對(duì)馬嘴,根本說(shuō)不到一個(gè)點(diǎn)上,最后索性將這其中的幾臺(tái)完全不能發(fā)送數(shù)據(jù)的機(jī)器讓日本客戶帶回原廠去做全面細(xì)致的檢測(cè)。
接下來(lái)是漫長(zhǎng)的等待……
幾周之后的一天中午,朋友正在外面吃飯,突然日本客戶打來(lái)了長(zhǎng)途電話,告訴他趕快收郵件,說(shuō)日本原廠有了回復(fù)了。朋友放下筷子趕緊回去查看,郵件竟然是日文寫(xiě)的,中間有的地方還夾雜著英文,還帶有一個(gè)附件,是一副圖片。剛好朋友的公司有一位在上大學(xué)期間選修過(guò)日語(yǔ)的女孩,她被叫過(guò)去湊在一起閱讀翻譯,看完了郵件,真相很快就大白了!原來(lái)問(wèn)題就出在天線這個(gè)環(huán)節(jié)了,因?yàn)槭殖謾C(jī)的是長(zhǎng)條形的,但是長(zhǎng)度肯定沒(méi)有17cm長(zhǎng),所以天線在里面是手工纏繞的。由于手工纏繞的不規(guī)則,有些天線的頭部直接挨著了手持機(jī)主板上的8051單片機(jī)的一顆48MHz的晶振了,晶振的輻射出來(lái)的微弱的信號(hào)被天線接收到了,而無(wú)線模塊的內(nèi)核CC1020則在CSMA/CA機(jī)制的作用下,認(rèn)為空中有其他設(shè)備在發(fā)射無(wú)線電波,因此不斷的回退。由于晶振的輻射是持續(xù)穩(wěn)定存在的,因此這個(gè)模塊就永遠(yuǎn)也發(fā)射不出數(shù)據(jù)了,而那些天線離晶振稍遠(yuǎn)一些的模塊,接收到的晶振的輻射要低一些,因此通訊的距離就變得很近。
大家可能很好奇,那一份郵件中的附件帶的照片是什么呢?其實(shí)就是一份安捷倫公司的專(zhuān)業(yè)儀器給出來(lái)的晶振輻射的測(cè)試報(bào)告,在中間的某個(gè)水平附近畫(huà)了一條很粗的紅色標(biāo)示線,這根線就是CC1020設(shè)定的CSMA/CA的回退水平!從這個(gè)案例可以看出,CSMA/CA機(jī)制還有一個(gè)十分致命的缺陷,那就是不太容易把握一個(gè)度,也就是說(shuō)怎么設(shè)置射頻芯片的噪聲門(mén)限呢?如果這個(gè)門(mén)限設(shè)置的太低,那么射頻芯片對(duì)于電磁波干擾的檢測(cè)將會(huì)特別靈敏,產(chǎn)品本身或者(數(shù)字電路的本底輻射)環(huán)境本身稍微有一點(diǎn)干擾,射頻芯片就不斷的往后回退,一直不能發(fā)射數(shù)據(jù);如果這個(gè)門(mén)限設(shè)置的太高了,則射頻芯片對(duì)于碰撞的檢測(cè)非常的遲鈍,明明就在不遠(yuǎn)處的前方已經(jīng)有一個(gè)節(jié)點(diǎn)正在發(fā)送數(shù)據(jù),但是這個(gè)芯片通過(guò)CSMA/CA機(jī)制檢測(cè)發(fā)現(xiàn)信道低于檢測(cè)門(mén)限,認(rèn)為此時(shí)無(wú)線信道是干凈的,沒(méi)有別的節(jié)點(diǎn)在發(fā)送數(shù)據(jù),自己?jiǎn)?dòng)了發(fā)送流程,導(dǎo)致數(shù)據(jù)撞車(chē)從而引起本次傳輸失敗。而現(xiàn)實(shí)的情況則是作為產(chǎn)品設(shè)計(jì)而言,是不可能事先知道相鄰接點(diǎn)的擺放位置和相對(duì)距離的,因此也很難事先確定好一個(gè)合適的載波檢測(cè)門(mén)限,這等于要有現(xiàn)場(chǎng)的工程師在產(chǎn)品布設(shè)完成之后,單獨(dú)調(diào)整每一個(gè)的載波檢測(cè)門(mén)限,這顯然是非?;奶频囊舐?!
下圖是某射頻芯片的CSMA/CA的門(mén)限設(shè)定寄存器描述?;谏鲜龇治隹梢钥闯觯绻娴幕贑SMA/CA的機(jī)制來(lái)設(shè)計(jì)信道評(píng)估算法,這樣的產(chǎn)品的一致性和穩(wěn)定性可想而知!或許有些情況下工作還算可以,有的情況下變得莫名其妙,而問(wèn)題的嚴(yán)重程度則隨著網(wǎng)絡(luò)規(guī)模和通訊密度的逐步增加而急劇惡化,作為一個(gè)最終產(chǎn)品的使用者而言,是絕對(duì)想不到問(wèn)題的根源出在這么基礎(chǔ)的環(huán)節(jié)的!

基于上述分析可以看出,CSMA/CA機(jī)制的ZigBee網(wǎng)絡(luò)對(duì)于環(huán)境是有一定的要求的,如果用戶的主板本身噪聲很大,或者設(shè)備工作環(huán)境附近有其他頻帶的電磁波干擾,那么這些ZigBee無(wú)線模塊就會(huì)不斷的回退,嚴(yán)重的時(shí)候就是多近的距離也不會(huì)發(fā)送數(shù)據(jù),讓人感覺(jué)好像是程序設(shè)計(jì)錯(cuò)誤或者硬件損壞了,其實(shí)那就是環(huán)境干擾啊。那么問(wèn)題來(lái)了:無(wú)線模塊的廠家可能花費(fèi)大量的時(shí)間和精力,將無(wú)線模塊產(chǎn)品設(shè)計(jì)的非常精良,但是一個(gè)普通用戶將模塊集成到他的產(chǎn)品中去了之后,發(fā)現(xiàn)模塊距離很近,甚至根本就不能發(fā)送數(shù)據(jù),你該怎么跟他解釋呢?最最要命的一點(diǎn)是,用戶將模塊集成的很好,送到現(xiàn)場(chǎng)去運(yùn)行了一段時(shí)間,大面積的投訴來(lái)了,說(shuō)模塊通訊距離近或者根本不能發(fā)送數(shù)據(jù),你該怎么跟用戶解釋呢?
事實(shí)上,這個(gè)問(wèn)題從嚴(yán)格意義上來(lái)講是沒(méi)有解的!作為產(chǎn)品提供方你根本就沒(méi)有資格向用戶提出使用方面的前置條件,他們遇到這種問(wèn)題的應(yīng)對(duì)措施簡(jiǎn)單粗暴,那就是直接丟到垃圾桶里,然后再也不理你了。近年來(lái)很多的智能家居產(chǎn)品都遭遇了這樣的悲慘命運(yùn),有幾個(gè)做現(xiàn)場(chǎng)技術(shù)支持的工程師知道問(wèn)題背后真正的根源在CSMA/CA這里呢?
微網(wǎng)高通WiMi-net無(wú)線自組網(wǎng)技術(shù)在接入可靠性環(huán)節(jié)做了深入全面的支持,我們會(huì)在后續(xù)的連載文章中為大家奉獻(xiàn)精彩紛呈的點(diǎn)評(píng)和分析。