盡管 OAD(無線下載)可以解決這個問題,但是您必須處理好若干問題才能順利地實施無線下載。TI 利用其自己的 Chipcon 無線 OAD 產(chǎn)品來支持 OAD 功能。
在諸如 ZigBee/802.15.4 這樣的分層傳輸架構(gòu)中,對 OAD 機(jī)制的支持,其實就是一件應(yīng)用程序編寫工作。應(yīng)用所在的層是一個設(shè)計選擇,這種選擇有各種含義。例如:編寫支持 ZigBee 應(yīng)用的 OAD 可以將整個堆棧用作支持多跳式路由的架構(gòu),因而無需讓源和目標(biāo)點靠得很近。采用MAC(媒體接入控制)層的應(yīng)用程序,這樣會犧牲掉對網(wǎng)絡(luò)路由的支持,減少對文件傳輸支持代碼的量。所有這些方法均要求有一定大小的存儲空間來存儲下載的代碼。
OAD 支持必須具有故障防護(hù)能力。其必須要足夠的穩(wěn)健,能從傳輸錯誤、中斷的文件傳輸以及新代碼中斷使能中恢復(fù)——也就是說,對新圖像的中斷閃存。如果這些步驟中的任何一個步驟失敗了,那么設(shè)備的軟件必須能夠進(jìn)行故障恢復(fù)。文件傳輸自身也必須是安全的。
為了解決傳輸中斷的問題,軟件必須符合兩個條件:一是支持在目標(biāo)上進(jìn)行傳輸?shù)能浖旧肀仨毐3滞暾?,直到傳輸完成;二是不能在整個傳輸完成前運行其中的某個部分。這兩個要求意味著必須將新代碼的傳輸部分存儲至下載代碼存儲空間,并且該部分代碼不能擾亂執(zhí)行傳輸任務(wù)的代碼。如果代碼符合這些要求,那么支持傳輸中斷的代碼就可以進(jìn)行二次傳輸。
減少錯誤
在 ZigBee 堆棧中使用幀校驗序列可以減少傳輸錯誤。不同的層面使用各自的序列保證完成其傳輸任務(wù)。另外,您還可以使用 CRC(循環(huán)冗余校驗)方法對所有已傳輸文件進(jìn)行一道檢查,并檢查是否有未完成的新下載代碼實體。ZigBee、802.15.4 MAC 以及 PHY(物理層)都支持文件傳輸安全。
文件升級分配架構(gòu)所處理的問題是目標(biāo)平臺如何“知道”需要升級。TI 的方法是使用一個可管理型客戶機(jī)/服務(wù)器技術(shù),該技術(shù)中管理工具決定每個平臺的代碼版本,并根據(jù)平臺所處位置及代碼的實用性指定客戶機(jī)和服務(wù)器任務(wù)。新代碼的滲透程度會隨著收到代碼的目標(biāo)平臺增多而增加。已完成升級的客戶機(jī)會變?yōu)榱硪粋€客戶機(jī)的服務(wù)器。管理工具隨時指定這些任務(wù)。該項技術(shù)之所以起作用,是因為盡管這些網(wǎng)絡(luò)通常比較大,但是其定義是非常明確的,并且相當(dāng)?shù)胤€(wěn)定。在這樣的環(huán)境下管理工具才有意義。