專(zhuān)利名稱(chēng):一種固件節(jié)點(diǎn)更新方法、裝置和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及無(wú)線(xiàn)通信技術(shù),具體涉及一種固件節(jié)點(diǎn)更新方法、裝置和系統(tǒng)。
背景技術(shù):
隨著無(wú)線(xiàn)通信和無(wú)線(xiàn)局域網(wǎng)(Wireless Local Access Network, WLAN)技術(shù)的快速發(fā)展,新產(chǎn)品開(kāi)發(fā)的周期和技術(shù)更新的速度越來(lái)越快,無(wú)線(xiàn)接入設(shè)備制造商經(jīng)常會(huì)對(duì)無(wú)線(xiàn)網(wǎng)絡(luò)接入設(shè)備中的固件節(jié)點(diǎn)進(jìn)行軟件升級(jí)或更新。這種更新通常會(huì)以?xún)煞N方式進(jìn)行對(duì)于購(gòu)買(mǎi)和使用其網(wǎng)絡(luò)接入設(shè)備的個(gè)人用戶(hù)來(lái)說(shuō),可以通過(guò)獲取(如從網(wǎng)絡(luò)上下載)固件更新文件并重新寫(xiě)入固件節(jié)點(diǎn)的非易失性存儲(chǔ)器中(如Nand Flash或Nor Flash)的方式進(jìn)行更新,且需要更新的目標(biāo)固件節(jié)點(diǎn)數(shù)目通常較少;而對(duì)于設(shè)備制造商或網(wǎng)絡(luò)運(yùn)營(yíng)商來(lái)說(shuō),如果需要進(jìn)行固件節(jié)點(diǎn)的軟件更新,則往往需要一次對(duì)大量的目標(biāo)固件節(jié)點(diǎn)進(jìn)行操作。
當(dāng)前對(duì)于固件節(jié)點(diǎn)進(jìn)行更新的裝置都是采用一對(duì)一的更新方式,其組成結(jié)構(gòu)如圖1所示,主要包括燒寫(xiě)器110和目標(biāo)固件節(jié)點(diǎn)120 ;燒寫(xiě)器110是本領(lǐng)域技術(shù)人員的慣用稱(chēng)呼,主要包括控制器111、存儲(chǔ)器112和收發(fā)器113 ;其中控制器111與存儲(chǔ)器112和收發(fā)器113分別相連;收發(fā)器113則通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò)與目標(biāo)固件節(jié)點(diǎn)120進(jìn)行通訊;
每次進(jìn)行固件更新時(shí),存儲(chǔ)器112中預(yù)先保存有本次更新需要使用的固件更新文件;控制器111通過(guò)收發(fā)器113向目標(biāo)固件節(jié)點(diǎn)120發(fā)送固件更新請(qǐng)求幀,目標(biāo)固件節(jié)點(diǎn)120對(duì)接收到的固件更新請(qǐng)求幀進(jìn)行校驗(yàn),當(dāng)校驗(yàn)通過(guò)后則通過(guò)收發(fā)器113向控制器111返回固件更新應(yīng)答幀; 燒寫(xiě)器110接收到返回的固件更新應(yīng)答幀后,將需要燒寫(xiě)的固件更新文件封裝打包后再發(fā)送給目標(biāo)固件節(jié)點(diǎn)120,且在所述固件更新文件傳輸過(guò)程中采用應(yīng)答及重傳機(jī)制,具體來(lái)說(shuō)就是每發(fā)送一個(gè)更新數(shù)據(jù)包,需要等待目標(biāo)固件節(jié)點(diǎn)120正確接收到該數(shù)據(jù)包并返回一個(gè)確認(rèn)接收的反饋,然后再進(jìn)行下一數(shù)據(jù)包的發(fā)送;如果在傳輸過(guò)程中出現(xiàn)錯(cuò)誤導(dǎo)致數(shù)據(jù)包發(fā)送失敗——例如燒寫(xiě)器110發(fā)送失敗、或者目標(biāo)固件節(jié)點(diǎn)120接收失敗或出錯(cuò)等,燒寫(xiě)器110就會(huì)發(fā)起重傳,直到目標(biāo)固件節(jié)點(diǎn)120正確接收到該數(shù)據(jù)包并返回確認(rèn)接收的反饋,或者直到重傳的次數(shù)達(dá)到了預(yù)先設(shè)定的最大重傳次數(shù)。 如果重傳次數(shù)達(dá)到最大重傳次數(shù)仍然未能成功將該數(shù)據(jù)包發(fā)送給目標(biāo)固件節(jié)點(diǎn)120,則本次更新失敗。如果固件更新文件的全部數(shù)據(jù)包都成功發(fā)送到目標(biāo)固件節(jié)點(diǎn)120,則目標(biāo)固件節(jié)點(diǎn)120使用接收到的固件更新文件進(jìn)行更新,成功后向燒寫(xiě)器110返回更新成功應(yīng)答幀,燒寫(xiě)器110接收到所述更新成功應(yīng)答幀則標(biāo)志本次固件更新成功完成。
容易理解,這種每更新數(shù)據(jù)包確認(rèn)并在失敗時(shí)重傳的機(jī)制能夠最大程度地保證固件節(jié)點(diǎn)更新的成功率,但,相應(yīng)地也會(huì)由于流程上的繁復(fù)而導(dǎo)致更新速度較慢。因此,現(xiàn)有技術(shù)的這種一對(duì)一固件節(jié)點(diǎn)更新方式較為適合對(duì)數(shù)量不多的固件節(jié)點(diǎn)進(jìn)行更新。而當(dāng)需要進(jìn)行數(shù)量較多的固件節(jié)點(diǎn)更新時(shí),如果采用這種一對(duì)一的固件節(jié)點(diǎn)更新方式,在時(shí)間上花費(fèi)的成本無(wú)疑會(huì)非常巨大,可見(jiàn)現(xiàn)有技術(shù)尚無(wú)法提供一種對(duì)大量固件節(jié)點(diǎn)進(jìn)行快速高效更新的方法。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種固件節(jié)點(diǎn)更新方法、裝置和系統(tǒng),能夠快速高效地對(duì)大量固件節(jié)點(diǎn)進(jìn)行更新。 為達(dá)到上述目的,本發(fā)明的技術(shù)方案具體是這樣實(shí)現(xiàn)的 —種固件節(jié)點(diǎn)更新方法,預(yù)先設(shè)置配置文件和固件更新文件,所述配置文件中包含的信息包括各目標(biāo)固件節(jié)點(diǎn)所屬的IP網(wǎng)段范圍及其對(duì)應(yīng)的收發(fā)端口 ,以及各IP網(wǎng)段范圍內(nèi)的目標(biāo)固件節(jié)點(diǎn)所使用的固件更新文件的文件名稱(chēng),該方法包括 根據(jù)配置文件設(shè)定本次更新所使用的收發(fā)端口、各收發(fā)端口與IP網(wǎng)段范圍的對(duì)應(yīng)關(guān)系、以及各收發(fā)端口和固件更新文件的對(duì)應(yīng)關(guān)系; 利用設(shè)定的收發(fā)端口發(fā)送更新請(qǐng)求幀,接收該收發(fā)端口對(duì)應(yīng)的各目標(biāo)固件節(jié)點(diǎn)返回的包含目標(biāo)固件節(jié)點(diǎn)IP地址的更新請(qǐng)求應(yīng)答幀; 記錄所述更新請(qǐng)求應(yīng)答幀中包含的目標(biāo)固件節(jié)點(diǎn)的IP地址,設(shè)定固件更新文件傳輸過(guò)程中的重傳次數(shù)和重傳時(shí)間間隔; 將各固件更新文件分成多個(gè)更新數(shù)據(jù)包,將各更新數(shù)據(jù)包從對(duì)應(yīng)的收發(fā)端口按照設(shè)定的重傳次數(shù)和重傳時(shí)間間隔進(jìn)行發(fā)送; 當(dāng)固件更新文件全部發(fā)送完畢后,接收成功進(jìn)行更新的目標(biāo)固件節(jié)點(diǎn)返回的更新成功應(yīng)答幀,將未返回應(yīng)答幀的目標(biāo)固件節(jié)點(diǎn)標(biāo)記為更新失敗的固件節(jié)點(diǎn),并生成最終的更新結(jié)果列表。 所述設(shè)定固件更新文件傳輸過(guò)程中的重傳次數(shù)的方法包括 所述利用設(shè)定的收發(fā)端口發(fā)送更新請(qǐng)求幀的同時(shí),進(jìn)一步記錄發(fā)送給每個(gè)目標(biāo)固件節(jié)點(diǎn)的更新請(qǐng)求幀的時(shí)刻;所述接收該收發(fā)端口對(duì)應(yīng)的各目標(biāo)固件節(jié)點(diǎn)返回的包含目標(biāo)固件節(jié)點(diǎn)IP地址的更新請(qǐng)求應(yīng)答幀的同時(shí),進(jìn)一步記錄接收到各目標(biāo)固件節(jié)點(diǎn)返回更新請(qǐng)求應(yīng)答幀的時(shí)刻;根據(jù)記錄的時(shí)刻得到收發(fā)端口與各目標(biāo)固件節(jié)點(diǎn)之間完成一次收發(fā)過(guò)程所需要的時(shí)間并求出其中最長(zhǎng)的收發(fā)時(shí)間tg,將所述重傳間隔時(shí)間設(shè)置為0. 75tg。
所述設(shè)定固件更新文件傳輸過(guò)程中的重傳時(shí)間間隔的方法包括
所述各目標(biāo)固件節(jié)點(diǎn)返回的包含目標(biāo)固件節(jié)點(diǎn)IP地址的更新請(qǐng)求應(yīng)答幀中進(jìn)一步包括該目標(biāo)固件節(jié)點(diǎn)當(dāng)前接收到的信號(hào)強(qiáng)度; 按照每個(gè)目標(biāo)固件節(jié)點(diǎn)當(dāng)前接收到的信號(hào)強(qiáng)度設(shè)置向該目標(biāo)固件節(jié)點(diǎn)發(fā)送固件
更新文件時(shí)的重傳次數(shù),或者將接收到的所有目標(biāo)固件節(jié)點(diǎn)返回的信號(hào)強(qiáng)度求平均值,然
后按照該平均值統(tǒng)一設(shè)置向各目標(biāo)固件節(jié)點(diǎn)發(fā)送固件更新文件時(shí)的重傳次數(shù)。 —種固件節(jié)點(diǎn)更新裝置,該裝置包括更新配置模塊,主控制器模塊和至少一個(gè)收
發(fā)端口 ; 更新配置模塊,用于保存預(yù)先設(shè)置的配置文件和固件更新文件,所述配置文件中包含的信息包括各目標(biāo)固件節(jié)點(diǎn)所屬的IP網(wǎng)段范圍及其對(duì)應(yīng)的收發(fā)端口 ,以及各IP網(wǎng)段范圍內(nèi)的目標(biāo)固件節(jié)點(diǎn)所使用的固件更新文件的文件名稱(chēng); 主控制器模塊,用于讀取更新配置模塊中保存的配置文件和固件更新文件,根據(jù)配置文件設(shè)定本次更新所使用的收發(fā)端口、各收發(fā)端口與IP網(wǎng)段范圍的對(duì)應(yīng)關(guān)系、以及各收發(fā)端口和固件更新文件的對(duì)應(yīng)關(guān)系,向收發(fā)端口發(fā)送更新請(qǐng)求幀并接收收發(fā)端口返回的包含目標(biāo)固件節(jié)點(diǎn)IP地址的更新請(qǐng)求應(yīng)答幀,記錄所有目標(biāo)固件節(jié)點(diǎn)的IP地址,設(shè)定固件更新文件傳輸過(guò)程中的重傳次數(shù)和重傳時(shí)間間隔,將各固件更新文件分成多個(gè)更新數(shù)據(jù)包并按照設(shè)定的重傳次數(shù)和重傳時(shí)間間隔發(fā)送給各收發(fā)端口,在所有固件更新文件發(fā)送完畢后,接收收發(fā)端口返回的更新成功應(yīng)答幀,根據(jù)所述更新成功應(yīng)答幀和記錄的所有目標(biāo)固件節(jié)點(diǎn)的IP地址生成最終的更新結(jié)果列表; 收發(fā)端口,用于將主控制器模塊發(fā)送的更新請(qǐng)求幀轉(zhuǎn)發(fā)給該端口對(duì)應(yīng)的IP網(wǎng)段范圍內(nèi)的目標(biāo)固件節(jié)點(diǎn),并將所述目標(biāo)固件節(jié)點(diǎn)返回的更新請(qǐng)求應(yīng)答幀轉(zhuǎn)發(fā)給主控制器模塊;按照設(shè)定的重傳次數(shù)和重傳時(shí)間間隔將主控制器模塊發(fā)送的更新數(shù)據(jù)包轉(zhuǎn)發(fā)給目標(biāo)固件節(jié)點(diǎn),接收成功進(jìn)行更新的目標(biāo)固件節(jié)點(diǎn)返回的更新成功應(yīng)答幀并轉(zhuǎn)發(fā)給主控制器模塊。 所述主控制器模塊,進(jìn)一步用于記錄各收發(fā)端口向目標(biāo)固件節(jié)點(diǎn)發(fā)送更新請(qǐng)求幀的時(shí)刻,以及記錄各收發(fā)端口接收到所述目標(biāo)固件節(jié)點(diǎn)返回更新請(qǐng)求應(yīng)答幀的時(shí)刻,得到收發(fā)端口與各目標(biāo)固件節(jié)點(diǎn)之間完成一次收發(fā)過(guò)程所需要的時(shí)間并得出其中最長(zhǎng)的收發(fā)時(shí)間tg,并將所述重傳間隔時(shí)間設(shè)置為0. 75tg。 所述主控制器模塊,進(jìn)一步用于向更新請(qǐng)求幀中添加信號(hào)強(qiáng)度請(qǐng)求命令字后發(fā)送給收發(fā)端口,并接收收發(fā)端口返回的帶有目標(biāo)固件節(jié)點(diǎn)當(dāng)前信號(hào)強(qiáng)度值的更新請(qǐng)求應(yīng)答幀,根據(jù)每個(gè)目標(biāo)固件節(jié)點(diǎn)的當(dāng)前信號(hào)強(qiáng)度值設(shè)定更新數(shù)據(jù)包傳輸過(guò)程中的重傳次數(shù),或者計(jì)算所有目標(biāo)固件節(jié)點(diǎn)當(dāng)前信號(hào)強(qiáng)度值的平均值之后,按照該平均值設(shè)定更新數(shù)據(jù)包傳輸過(guò)程中的重傳次數(shù); 收發(fā)端口,進(jìn)一步用于將所述添加了信號(hào)強(qiáng)度請(qǐng)求命令字的更新請(qǐng)求幀轉(zhuǎn)發(fā)給目標(biāo)固件節(jié)點(diǎn),接收目標(biāo)固件節(jié)點(diǎn)返回的帶有所述節(jié)點(diǎn)當(dāng)前信號(hào)強(qiáng)度值的更新請(qǐng)求應(yīng)答幀并轉(zhuǎn)發(fā)給主控制器模塊。 —種固件節(jié)點(diǎn)更新系統(tǒng),該系統(tǒng)包括包括固件節(jié)點(diǎn)更新裝置和至少一個(gè)目標(biāo)固件節(jié)點(diǎn),其中固件節(jié)點(diǎn)更新裝置進(jìn)一步包括更新配置模塊,主控制器模塊和至少一個(gè)收發(fā)端口 ; 更新配置模塊,用于保存預(yù)先設(shè)置的配置文件和固件更新文件,所述配置文件中包含的信息包括各目標(biāo)固件節(jié)點(diǎn)所屬的IP網(wǎng)段范圍及其對(duì)應(yīng)的收發(fā)端口 ,以及各IP網(wǎng)段范圍內(nèi)的目標(biāo)固件節(jié)點(diǎn)所使用的固件更新文件的文件名稱(chēng); 主控制器模塊,用于讀取更新配置模塊中保存的配置文件和固件更新文件,根據(jù)配置文件設(shè)定本次更新所使用的收發(fā)端口、各收發(fā)端口與IP網(wǎng)段范圍的對(duì)應(yīng)關(guān)系、以及各收發(fā)端口和固件更新文件的對(duì)應(yīng)關(guān)系,向收發(fā)端口發(fā)送更新請(qǐng)求幀并接收收發(fā)端口返回的包含目標(biāo)固件節(jié)點(diǎn)IP地址的更新請(qǐng)求應(yīng)答幀,記錄所有目標(biāo)固件節(jié)點(diǎn)的IP地址,設(shè)定固件更新文件傳輸過(guò)程中的重傳次數(shù)和重傳時(shí)間間隔,將各固件更新文件分成多個(gè)更新數(shù)據(jù)包并按照設(shè)定的重傳次數(shù)和重傳時(shí)間間隔發(fā)送給各收發(fā)端口,在所有固件更新文件發(fā)送完畢后,接收收發(fā)端口返回的更新成功應(yīng)答幀,根據(jù)所述更新成功應(yīng)答幀和記錄的所有目標(biāo)固件節(jié)點(diǎn)的IP地址生成最終的更新結(jié)果列表; 收發(fā)端口,用于將主控制器模塊發(fā)送的更新請(qǐng)求幀轉(zhuǎn)發(fā)給該端口對(duì)應(yīng)的IP網(wǎng)段范圍內(nèi)的目標(biāo)固件節(jié)點(diǎn),并將所述目標(biāo)固件節(jié)點(diǎn)返回的更新請(qǐng)求應(yīng)答幀轉(zhuǎn)發(fā)給主控制器模塊;按照設(shè)定的重傳次數(shù)和重傳時(shí)間間隔將主控制器模塊發(fā)送的更新數(shù)據(jù)包轉(zhuǎn)發(fā)給目標(biāo)固件節(jié)點(diǎn),接收成功進(jìn)行更新的目標(biāo)固件節(jié)點(diǎn)返回的更新成功應(yīng)答幀并轉(zhuǎn)發(fā)給主控制器模塊; 目標(biāo)固件節(jié)點(diǎn),用于接收收發(fā)端口發(fā)送的更新請(qǐng)求幀并向所述收發(fā)端口返回更新請(qǐng)求應(yīng)答幀;接收收發(fā)端口發(fā)送的更新數(shù)據(jù)包并在更新成功完成后向收發(fā)端口返回更新成功應(yīng)答幀。 所述主控制器模塊,進(jìn)一步用于記錄各收發(fā)端口向目標(biāo)固件節(jié)點(diǎn)發(fā)送更新請(qǐng)求幀的時(shí)刻,以及記錄各收發(fā)端口接收到所述目標(biāo)固件節(jié)點(diǎn)返回更新請(qǐng)求應(yīng)答幀的時(shí)刻,得到收發(fā)端口與各目標(biāo)固件節(jié)點(diǎn)之間完成一次收發(fā)過(guò)程所需要的時(shí)間并得出其中最長(zhǎng)的收發(fā)時(shí)間tg,并將所述重傳間隔時(shí)間設(shè)置為0. 75tg。 所述主控制器模塊,進(jìn)一步用于向更新請(qǐng)求幀中添加信號(hào)強(qiáng)度請(qǐng)求命令字后發(fā)送給收發(fā)端口,并接收收發(fā)端口返回的帶有目標(biāo)固件節(jié)點(diǎn)當(dāng)前信號(hào)強(qiáng)度值的更新請(qǐng)求應(yīng)答幀,根據(jù)每個(gè)目標(biāo)固件節(jié)點(diǎn)的當(dāng)前信號(hào)強(qiáng)度值設(shè)定更新數(shù)據(jù)包傳輸過(guò)程中的重傳次數(shù),或者計(jì)算所有目標(biāo)固件節(jié)點(diǎn)當(dāng)前信號(hào)強(qiáng)度值的平均值之后,按照該平均值設(shè)定更新數(shù)據(jù)包傳輸過(guò)程中的重傳次數(shù); 收發(fā)端口,進(jìn)一步用于將所述添加了信號(hào)強(qiáng)度請(qǐng)求命令字的更新請(qǐng)求幀轉(zhuǎn)發(fā)給目標(biāo)固件節(jié)點(diǎn),接收目標(biāo)固件節(jié)點(diǎn)返回的帶有所述節(jié)點(diǎn)當(dāng)前信號(hào)強(qiáng)度值的更新請(qǐng)求應(yīng)答幀并轉(zhuǎn)發(fā)給主控制器模塊; 同時(shí),目標(biāo)固件節(jié)點(diǎn),進(jìn)一步用于接收所述添加了信號(hào)強(qiáng)度請(qǐng)求命令字的更新請(qǐng)
求幀,將該節(jié)點(diǎn)當(dāng)前信號(hào)強(qiáng)度值的信息添加到更新請(qǐng)求應(yīng)答幀中返回給收發(fā)端口。 由上述的技術(shù)方案可見(jiàn),本發(fā)明實(shí)施例的這種固件節(jié)點(diǎn)更新方法、裝置和系統(tǒng),在
燒寫(xiě)器端接收到目標(biāo)固件節(jié)點(diǎn)返回的更新請(qǐng)求應(yīng)答幀后直接進(jìn)行每數(shù)據(jù)包的多次發(fā)送而
不再進(jìn)行每數(shù)據(jù)包傳輸成功的確認(rèn),并在全部更新數(shù)據(jù)包發(fā)送完畢后將未返回更新成功應(yīng)
答幀的目標(biāo)固件節(jié)點(diǎn)標(biāo)記為更新失敗,從而實(shí)現(xiàn)了對(duì)大批量固件節(jié)點(diǎn)的快速高效地更新。
圖1為現(xiàn)有技術(shù)中固件節(jié)點(diǎn)更新裝置的組成結(jié)構(gòu)示意圖。 圖2為本發(fā)明提供的固件節(jié)點(diǎn)更新方法的流程示意圖。 圖3為本發(fā)明提供的固件節(jié)點(diǎn)更新裝置的組成結(jié)構(gòu)示意圖。 圖4為本發(fā)明提供的固件節(jié)點(diǎn)更新系統(tǒng)的組成結(jié)構(gòu)示意圖。 圖5為本發(fā)明實(shí)施例提供的具體固件節(jié)點(diǎn)更新裝置的組成結(jié)構(gòu)圖。 圖6為本發(fā)明實(shí)施例提供的固件節(jié)點(diǎn)側(cè)進(jìn)行固件更新的流程示意圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。 本發(fā)明實(shí)施例提供一種固件節(jié)點(diǎn)更新方法,其流程如圖2所示,其中包括
步驟201 :根據(jù)預(yù)先設(shè)置的配置文件設(shè)定本次更新所使用的收發(fā)端口、各收發(fā)端口與互聯(lián)網(wǎng)協(xié)議(Internet Protocol, IP)網(wǎng)段范圍的對(duì)應(yīng)關(guān)系、以及各收發(fā)端口和固件更新文件的對(duì)應(yīng)關(guān)系;
8
所述配置文件中包含的信息包括各目標(biāo)固件節(jié)點(diǎn)所屬的IP網(wǎng)段范圍及其對(duì)應(yīng)的收發(fā)端口,以及各IP網(wǎng)段范圍內(nèi)的目標(biāo)固件節(jié)點(diǎn)所使用的固件更新文件的文件名稱(chēng);
在本發(fā)明實(shí)施例中,所述配置文件是預(yù)先按照需要進(jìn)行固件更新的目標(biāo)固件節(jié)點(diǎn)所屬的IP網(wǎng)段范圍進(jìn)行設(shè)定的,又由于同一個(gè)網(wǎng)段范圍內(nèi)的固件節(jié)點(diǎn)對(duì)應(yīng)的固件更新文件相同,因此通過(guò)配置更新過(guò)程中使用的收發(fā)端口以及各端口與IP網(wǎng)段范圍的對(duì)應(yīng)關(guān)系,再根據(jù)該IP網(wǎng)段范圍內(nèi)的目標(biāo)固件節(jié)點(diǎn)所使用的固件更新文件的文件名稱(chēng),就能夠?qū)γ總€(gè)收發(fā)端口建立其與IP網(wǎng)段范圍和固件更新文件的唯一對(duì)應(yīng)關(guān)系。 步驟202 :利用設(shè)定的收發(fā)端口發(fā)送更新請(qǐng)求幀,接收該收發(fā)端口對(duì)應(yīng)的各目標(biāo)固件節(jié)點(diǎn)返回的包含目標(biāo)固件節(jié)點(diǎn)IP地址的更新請(qǐng)求應(yīng)答幀; 其中,為了避免所述更新請(qǐng)求幀無(wú)法正確傳輸至目標(biāo)固件節(jié)點(diǎn),步驟202中利用設(shè)定的收發(fā)端口發(fā)送更新請(qǐng)求幀的方法可以為利用設(shè)定的收發(fā)端口將所述更新請(qǐng)求幀重復(fù)發(fā)送3次,每次時(shí)間間隔l秒。當(dāng)然,所述更新請(qǐng)求幀重復(fù)發(fā)送的次數(shù)和時(shí)間間隔也可以設(shè)定為其他值,具體可以根據(jù)無(wú)線(xiàn)網(wǎng)絡(luò)的信號(hào)質(zhì)量和傳輸速度確定。 步驟203 :記錄所述更新請(qǐng)求應(yīng)答幀中包含的目標(biāo)固件節(jié)點(diǎn)的IP地址,設(shè)定固件更新文件傳輸過(guò)程中的重傳次數(shù)和重傳時(shí)間間隔; 其中,在步驟202中,還可以進(jìn)一步記錄發(fā)送給每個(gè)目標(biāo)固件節(jié)點(diǎn)的更新請(qǐng)求幀的時(shí)刻,并在步驟203中進(jìn)一步記錄接收到各目標(biāo)固件節(jié)點(diǎn)返回更新請(qǐng)求應(yīng)答幀的時(shí)刻,從而得到收發(fā)端口與各目標(biāo)固件節(jié)點(diǎn)之間完成一次收發(fā)過(guò)程所需要的時(shí)間ti,其中i表示返回更新請(qǐng)求應(yīng)答幀的目標(biāo)固件節(jié)點(diǎn)的數(shù)目,設(shè)各ti中最長(zhǎng)收發(fā)時(shí)間為tg,則較佳地,可以將重傳間隔時(shí)間設(shè)置為0. 75tg ;當(dāng)然,需要說(shuō)明的是,所述O. 75tg是一個(gè)為了保證后續(xù)固件更新文件傳輸成功率的經(jīng)驗(yàn)取值,并不表示限定,實(shí)際應(yīng)用中也可以根據(jù)無(wú)線(xiàn)網(wǎng)絡(luò)的信號(hào)質(zhì)量等因素調(diào)整為其他值; 此外,固件更新文件傳輸過(guò)程中重傳次數(shù)的值可以是預(yù)先設(shè)定的——例如預(yù)先設(shè)定重傳次數(shù)為固定值比如每更新數(shù)據(jù)包重傳3次,也可以是一個(gè)區(qū)間值——比如預(yù)先設(shè)定每更新數(shù)據(jù)包的重傳次數(shù)最多5次、最少2次,在步驟203設(shè)定重傳次數(shù)時(shí),則隨機(jī)選擇一個(gè)值或者根據(jù)無(wú)線(xiàn)網(wǎng)絡(luò)的信號(hào)強(qiáng)度選擇一個(gè)合適的重傳次數(shù)。相應(yīng)地,當(dāng)重傳次數(shù)需要根據(jù)無(wú)線(xiàn)網(wǎng)絡(luò)的信號(hào)強(qiáng)度選擇時(shí),在步驟202中,所述各目標(biāo)固件節(jié)點(diǎn)返回的更新請(qǐng)求應(yīng)答幀中應(yīng)當(dāng)進(jìn)一步包括該目標(biāo)固件節(jié)點(diǎn)當(dāng)前接收到的信號(hào)強(qiáng)度,此時(shí),既可以對(duì)每個(gè)固件節(jié)點(diǎn)分別按照其當(dāng)前接收到的信號(hào)強(qiáng)度選擇向該固件節(jié)點(diǎn)發(fā)送更新數(shù)據(jù)包時(shí)使用的重傳次數(shù),也可以將接收到的所有目標(biāo)固件節(jié)點(diǎn)返回的信號(hào)強(qiáng)度求平均值,然后按照該平均值選擇數(shù)據(jù)傳輸過(guò)程中統(tǒng)一使用的重傳次數(shù)。 容易理解,對(duì)每個(gè)固件節(jié)點(diǎn)分別按照其當(dāng)前接收到的信號(hào)強(qiáng)度選擇重傳次數(shù)的方法理論上最符合每個(gè)目標(biāo)固件節(jié)點(diǎn)當(dāng)前的網(wǎng)絡(luò)情況,但有時(shí)會(huì)由于網(wǎng)絡(luò)的瞬時(shí)擁堵或不穩(wěn)定而產(chǎn)生較大的誤差,導(dǎo)致網(wǎng)絡(luò)資源的浪費(fèi);而根據(jù)平均值選擇重傳次數(shù),則能夠在一定程度上避免上述誤差的干擾。 步驟204 :將各固件更新文件分成多個(gè)更新數(shù)據(jù)包,將各更新數(shù)據(jù)包從對(duì)應(yīng)的收發(fā)端口按照設(shè)定的重傳次數(shù)和重傳時(shí)間間隔進(jìn)行發(fā)送; 步驟205 :當(dāng)所有固件更新文件發(fā)送完畢后,接收成功進(jìn)行更新的目標(biāo)固件節(jié)點(diǎn)返回的更新成功應(yīng)答幀,將未返回應(yīng)答幀的目標(biāo)固件節(jié)點(diǎn)標(biāo)記為更新失敗的固件節(jié)點(diǎn),并生成最終的更新結(jié)果列表。 由于在步驟203中已經(jīng)記錄了所有返回更新請(qǐng)求應(yīng)答幀的目標(biāo)固件節(jié)點(diǎn)的IP地址,因此容易理解,在步驟205中,成功更新的目標(biāo)固件節(jié)點(diǎn)返回更新成功應(yīng)答幀時(shí),就可以識(shí)別出所述更新成功應(yīng)答幀是哪些目標(biāo)固件節(jié)點(diǎn)返回的,從而,在步驟203中被記錄下來(lái)而在步驟205中并未返回更新成功應(yīng)答幀的目標(biāo)固件節(jié)點(diǎn)即為更新失敗的目標(biāo)固件節(jié)點(diǎn),最后,將更新成功或更新失敗的目標(biāo)固件節(jié)點(diǎn)列表,就可以得到最終的更新結(jié)果列表。
需要特別強(qiáng)調(diào)的是,本發(fā)明實(shí)施例在一次更新過(guò)程中,每個(gè)收發(fā)端口都與一個(gè)IP網(wǎng)段唯一對(duì)應(yīng),但同時(shí)每個(gè)IP網(wǎng)段下都可能包含一個(gè)或多個(gè)目標(biāo)固件節(jié)點(diǎn),因此每個(gè)目標(biāo)固件節(jié)點(diǎn)都唯一對(duì)應(yīng)于一個(gè)收發(fā)端口 ,但一個(gè)收發(fā)端口則可能對(duì)應(yīng)一個(gè)或同時(shí)對(duì)應(yīng)于多個(gè)目標(biāo)固件節(jié)點(diǎn)。 本發(fā)明實(shí)施例還提供一種固件節(jié)點(diǎn)更新裝置,其組成結(jié)構(gòu)如圖3所示,包括更新配置模塊310,主控制器模塊320和至少一個(gè)收發(fā)端口 330 ; 更新配置模塊310,用于保存配置文件和固件更新文件,所述配置文件中包含的信息包括各目標(biāo)固件節(jié)點(diǎn)所屬的IP網(wǎng)段范圍及其對(duì)應(yīng)的收發(fā)端口 ,以及各IP網(wǎng)段范圍內(nèi)的目標(biāo)固件節(jié)點(diǎn)所使用的固件更新文件的文件名稱(chēng); 主控制器模塊320,用于讀取更新配置模塊310中保存的配置文件和固件更新文件,根據(jù)配置文件設(shè)定本次更新所使用的收發(fā)端口 330、各收發(fā)端口 330與IP網(wǎng)段范圍的對(duì)應(yīng)關(guān)系、以及各收發(fā)端口 330和固件更新文件的對(duì)應(yīng)關(guān)系,向收發(fā)端口 330發(fā)送更新請(qǐng)求幀并接收收發(fā)端口 330返回的包含目標(biāo)固件節(jié)點(diǎn)IP地址的更新請(qǐng)求應(yīng)答幀,記錄所有目標(biāo)固件節(jié)點(diǎn)的IP地址,設(shè)定固件更新文件傳輸過(guò)程中的重傳次數(shù)和重傳時(shí)間間隔,將各固件更新文件分成多個(gè)更新數(shù)據(jù)包并按照設(shè)定的重傳次數(shù)和重傳時(shí)間間隔發(fā)送給各收發(fā)端口330,在所有固件更新文件發(fā)送完畢后,接收收發(fā)端口 330返回的更新成功應(yīng)答幀,根據(jù)所
述更新成功應(yīng)答幀和記錄的所有目標(biāo)固件節(jié)點(diǎn)的IP地址生成最終的更新結(jié)果列表;
收發(fā)端口 330,用于將主控制器模塊320發(fā)送的更新請(qǐng)求幀轉(zhuǎn)發(fā)給該端口對(duì)應(yīng)的IP網(wǎng)段范圍內(nèi)的目標(biāo)固件節(jié)點(diǎn),并將所述目標(biāo)固件節(jié)點(diǎn)返回的更新請(qǐng)求應(yīng)答幀轉(zhuǎn)發(fā)給主控制器模塊320 ;按照設(shè)定的重傳次數(shù)和重傳時(shí)間間隔將主控制器模塊320發(fā)送的更新數(shù)據(jù)包轉(zhuǎn)發(fā)給目標(biāo)固件節(jié)點(diǎn),接收成功進(jìn)行更新的目標(biāo)固件節(jié)點(diǎn)返回的更新成功應(yīng)答幀并轉(zhuǎn)發(fā)給主控制器模塊320。 較佳地,所述主控制器模塊320,進(jìn)一步用于記錄各收發(fā)端口 330向目標(biāo)固件節(jié)點(diǎn)發(fā)送更新請(qǐng)求幀的時(shí)刻,以及記錄各收發(fā)端口 330接收到所述目標(biāo)固件節(jié)點(diǎn)返回更新請(qǐng)求應(yīng)答幀的時(shí)刻,從而得到收發(fā)端口與各目標(biāo)固件節(jié)點(diǎn)之間完成一次收發(fā)過(guò)程所需要的時(shí)間并得出其中最長(zhǎng)的收發(fā)時(shí)間tg,并將所述重傳間隔時(shí)間設(shè)置為0. 75tg ;當(dāng)然,需要說(shuō)明的是,所述O. 75tg是一個(gè)為了保證后續(xù)固件更新文件傳輸成功率的經(jīng)驗(yàn)取值,并不表示限定,實(shí)際應(yīng)用中也可以根據(jù)無(wú)線(xiàn)網(wǎng)絡(luò)的信號(hào)質(zhì)量等因素調(diào)整為其他值; 此外,較佳地,所述主控制器模塊320,還可以進(jìn)一步用于向更新請(qǐng)求幀中添加信號(hào)強(qiáng)度請(qǐng)求命令字后發(fā)送給收發(fā)端口 330,并接收收發(fā)端口 330返回的帶有目標(biāo)固件節(jié)點(diǎn)當(dāng)前信號(hào)強(qiáng)度值的更新請(qǐng)求應(yīng)答幀,根據(jù)每個(gè)目標(biāo)固件節(jié)點(diǎn)的當(dāng)前信號(hào)強(qiáng)度值設(shè)定更新數(shù)據(jù)包傳輸過(guò)程中的重傳次數(shù),或者計(jì)算所有目標(biāo)固件節(jié)點(diǎn)當(dāng)前信號(hào)強(qiáng)度值的平均值之后,按照該平均值設(shè)定更新數(shù)據(jù)包傳輸過(guò)程中的重傳次數(shù);
相應(yīng)地,此時(shí)收發(fā)端口 330,進(jìn)一步用于將所述添加了信號(hào)強(qiáng)度請(qǐng)求命令字的更新請(qǐng)求幀轉(zhuǎn)發(fā)給目標(biāo)固件節(jié)點(diǎn),接收目標(biāo)固件節(jié)點(diǎn)返回的帶有所述節(jié)點(diǎn)當(dāng)前信號(hào)強(qiáng)度值的更新請(qǐng)求應(yīng)答幀并轉(zhuǎn)發(fā)給主控制器模塊320。 在所述固件節(jié)點(diǎn)更新方法和裝置的基礎(chǔ)上,本發(fā)明實(shí)施例還進(jìn)一步提供一種固件節(jié)點(diǎn)更新系統(tǒng),其組成結(jié)構(gòu)如圖4所示,包括固件節(jié)點(diǎn)更新裝置400和至少一個(gè)目標(biāo)固件節(jié)點(diǎn)440 ;其中,所述固件節(jié)點(diǎn)更新裝置400進(jìn)一步包括更新配置模塊410,主控制器模塊420和至少一個(gè)收發(fā)端口 430 ; 更新配置模塊410,用于保存配置文件和固件更新文件,所述配置文件中包含的信息包括各目標(biāo)固件節(jié)點(diǎn)所屬的IP網(wǎng)段范圍及其對(duì)應(yīng)的收發(fā)端口 ,以及各IP網(wǎng)段范圍內(nèi)的目標(biāo)固件節(jié)點(diǎn)所使用的固件更新文件的文件名稱(chēng); 主控制器模塊420,用于讀取更新配置模塊410中保存的配置文件和固件更新文件,根據(jù)配置文件設(shè)定本次更新所使用的收發(fā)端口 430、各收發(fā)端口 430與IP網(wǎng)段范圍的對(duì)應(yīng)關(guān)系、以及各收發(fā)端口 430和固件更新文件的對(duì)應(yīng)關(guān)系,向收發(fā)端口 430發(fā)送更新請(qǐng)求幀并接收收發(fā)端口 430返回的包含目標(biāo)固件節(jié)點(diǎn)440IP地址的更新請(qǐng)求應(yīng)答幀,記錄所有目標(biāo)固件節(jié)點(diǎn)440的IP地址,設(shè)定固件更新文件傳輸過(guò)程中的重傳次數(shù)和重傳時(shí)間間隔,將各固件更新文件分成多個(gè)更新數(shù)據(jù)包并按照設(shè)定的重傳次數(shù)和重傳時(shí)間間隔發(fā)送給各收發(fā)端口 430,在所有固件更新文件發(fā)送完畢后,接收收發(fā)端口 430返回的更新成功應(yīng)答幀,根據(jù)所述更新成功應(yīng)答幀和記錄的所有目標(biāo)固件節(jié)點(diǎn)440的IP地址生成最終的更新結(jié)果列表; 收發(fā)端口 430,用于將主控制器模塊420發(fā)送的更新請(qǐng)求幀轉(zhuǎn)發(fā)給該端口對(duì)應(yīng)的IP網(wǎng)段范圍內(nèi)的目標(biāo)固件節(jié)點(diǎn)440,并將所述目標(biāo)固件節(jié)點(diǎn)440返回的更新請(qǐng)求應(yīng)答幀轉(zhuǎn)發(fā)給主控制器模塊420 ;按照設(shè)定的重傳次數(shù)和重傳時(shí)間間隔將主控制器模塊420發(fā)送的更新數(shù)據(jù)包轉(zhuǎn)發(fā)給目標(biāo)固件節(jié)點(diǎn)440,接收成功進(jìn)行更新的目標(biāo)固件節(jié)點(diǎn)返回的更新成功應(yīng)答幀并轉(zhuǎn)發(fā)給主控制器模塊420 ; 目標(biāo)固件節(jié)點(diǎn)440,用于接收收發(fā)端口 430發(fā)送的更新請(qǐng)求幀并向所述收發(fā)端口430返回更新請(qǐng)求應(yīng)答幀;接收收發(fā)端口 430發(fā)送的更新數(shù)據(jù)包并在更新成功完成后向收發(fā)端口 430返回更新成功應(yīng)答幀。 較佳地,所述主控制器模塊420,進(jìn)一步用于記錄各收發(fā)端口 430向目標(biāo)固件節(jié)點(diǎn)
440發(fā)送更新請(qǐng)求幀的時(shí)刻,以及記錄各收發(fā)端口 430接收到所述目標(biāo)固件節(jié)點(diǎn)440返回更
新請(qǐng)求應(yīng)答幀的時(shí)刻,從而得到收發(fā)端口與各目標(biāo)固件節(jié)點(diǎn)之間完成一次收發(fā)過(guò)程所需要
的時(shí)間并得出其中最長(zhǎng)的收發(fā)時(shí)間tg,并將所述重傳間隔時(shí)間設(shè)置為0. 75tg ;當(dāng)然,需要說(shuō)
明的是,所述O. 75tg是一個(gè)為了保證后續(xù)固件更新文件傳輸成功率的經(jīng)驗(yàn)取值,并不表示
限定,實(shí)際應(yīng)用中也可以根據(jù)無(wú)線(xiàn)網(wǎng)絡(luò)的信號(hào)質(zhì)量等因素調(diào)整為其他值; 此外,較佳地,所述主控制器模塊420,還可以進(jìn)一步用于向更新請(qǐng)求幀中添加信
號(hào)強(qiáng)度請(qǐng)求命令字后發(fā)送給收發(fā)端口 430,并接收收發(fā)端口 430返回的帶有目標(biāo)固件節(jié)點(diǎn)
當(dāng)前信號(hào)強(qiáng)度值的更新請(qǐng)求應(yīng)答幀,根據(jù)每個(gè)目標(biāo)固件節(jié)點(diǎn)的當(dāng)前信號(hào)強(qiáng)度值設(shè)定更新數(shù)
據(jù)包傳輸過(guò)程中的重傳次數(shù),或者計(jì)算所有目標(biāo)固件節(jié)點(diǎn)當(dāng)前信號(hào)強(qiáng)度值的平均值之后,
按照該平均值設(shè)定更新數(shù)據(jù)包傳輸過(guò)程中的重傳次數(shù); 相應(yīng)地,此時(shí)收發(fā)端口 430,進(jìn)一步用于將所述添加了信號(hào)強(qiáng)度請(qǐng)求命令字的更新
11請(qǐng)求幀轉(zhuǎn)發(fā)給目標(biāo)固件節(jié)點(diǎn)440,接收目標(biāo)固件節(jié)點(diǎn)返回的帶有所述節(jié)點(diǎn)當(dāng)前信號(hào)強(qiáng)度值的更新請(qǐng)求應(yīng)答幀并轉(zhuǎn)發(fā)給主控制器模塊420 ; 同時(shí),目標(biāo)固件節(jié)點(diǎn)440,進(jìn)一步用于接收所述添加了信號(hào)強(qiáng)度請(qǐng)求命令字的更新請(qǐng)求幀,將該節(jié)點(diǎn)當(dāng)前信號(hào)強(qiáng)度值的信息添加到更新請(qǐng)求應(yīng)答幀中返回給收發(fā)端口 430。
容易理解,所述重傳間隔時(shí)間的設(shè)定,以及根據(jù)目標(biāo)固件節(jié)點(diǎn)信號(hào)強(qiáng)度設(shè)定重傳次數(shù)的方法均可以通過(guò)軟件在主控制器模塊420和目標(biāo)固件節(jié)點(diǎn)中進(jìn)行實(shí)現(xiàn)。
為了進(jìn)一步展示本發(fā)明的精神,下面將通過(guò)一個(gè)具體實(shí)施例詳細(xì)描述所述固件節(jié)點(diǎn)更新系統(tǒng)的工作過(guò)程,所述固件節(jié)點(diǎn)更新系統(tǒng)的組成結(jié)構(gòu)如圖5所示,其中包括主控制器510,存儲(chǔ)器520,收發(fā)器530、電源540和至少一個(gè)目標(biāo)固件節(jié)點(diǎn)550 ;
其中,主控制器510和存儲(chǔ)器520設(shè)置在同一塊母板上,該母板通常稱(chēng)為燒寫(xiě)器;需要指出的是,在本實(shí)施例中,采用的是收發(fā)器530與主控制器510和存儲(chǔ)器520分開(kāi)設(shè)置的方式——即,收發(fā)器530分為n個(gè)收發(fā)插口 531和n個(gè)對(duì)應(yīng)的包含無(wú)線(xiàn)通信芯片的收發(fā)子板532,將收發(fā)插口 531與主控制器510、存儲(chǔ)器520以及電源540設(shè)置在燒寫(xiě)器母板上,而收發(fā)子板則相對(duì)獨(dú)立,每次進(jìn)行固件更新時(shí)可以按照需要連接部分或全部的收發(fā)子板到母板上,從而實(shí)現(xiàn)更加靈活的應(yīng)用——例如,母板上設(shè)置8個(gè)收發(fā)插口 ,如果本次僅需對(duì)4個(gè)網(wǎng)段的固件節(jié)點(diǎn)進(jìn)行更新,則只需要連接4塊收發(fā)子板到母板上即可。容易理解,在采用分離式設(shè)置方式時(shí),所述收發(fā)插口 531和收發(fā)子板532的組合即相當(dāng)于圖4中的收發(fā)端口430。同時(shí),此時(shí)主控制器510即對(duì)應(yīng)于圖4中的主控制器模塊420,存儲(chǔ)器520即對(duì)應(yīng)于圖4中的更新配置模塊410;當(dāng)然,同樣可以采用集成式的方式——即,將主控制器510,存儲(chǔ)器520和收發(fā)器530均設(shè)置在同一個(gè)母板上,這屬于本領(lǐng)域技術(shù)人員容易想到的變形,具體結(jié)構(gòu)不再詳細(xì)介紹。 在實(shí)際應(yīng)用中,主控制器510為按照預(yù)設(shè)程序工作的微處理器(MCU),其通過(guò)存儲(chǔ)總線(xiàn)與存儲(chǔ)器520相連,通過(guò)數(shù)據(jù)總線(xiàn)與收發(fā)器530相連;電源540則對(duì)整個(gè)燒寫(xiě)器母板上的各設(shè)備供電;收發(fā)器530通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò)與目標(biāo)固件節(jié)點(diǎn)550相連。 在進(jìn)行目標(biāo)固件節(jié)點(diǎn)更新時(shí),主控制器510從存儲(chǔ)器520中讀取配置文件和固件更新文件,根據(jù)所述配置文件設(shè)置本次更新使用收發(fā)器530中的哪幾個(gè)收發(fā)插口 (一個(gè)或多個(gè)或全部),以及每個(gè)插口對(duì)應(yīng)的IP網(wǎng)段和相應(yīng)的固件更新文件;之后,主控制器510控制收發(fā)子板532上的無(wú)線(xiàn)通信芯片向目標(biāo)固件節(jié)點(diǎn)550發(fā)送更新請(qǐng)求幀;當(dāng)主控制器510通過(guò)所述無(wú)線(xiàn)通信芯片接收到目標(biāo)固件節(jié)點(diǎn)550返回的更新請(qǐng)求應(yīng)答幀后,按照設(shè)定的重傳次數(shù)和重傳時(shí)間間隔將更新數(shù)據(jù)包發(fā)送給目標(biāo)固件節(jié)點(diǎn)550,所述目標(biāo)固件節(jié)點(diǎn)550更新成功完成后再通過(guò)所述無(wú)線(xiàn)通信芯片向主控制器510返回更新成功應(yīng)答幀,從而完成固件更新。 需要特別說(shuō)明的是,所述固件更新裝置在一次更新過(guò)程中,每個(gè)收發(fā)端口都與一個(gè)IP網(wǎng)段唯一對(duì)應(yīng),但同時(shí)每個(gè)IP網(wǎng)段下都可能包含一個(gè)或多個(gè)目標(biāo)固件節(jié)點(diǎn),因此每個(gè)目標(biāo)固件節(jié)點(diǎn)都唯一對(duì)應(yīng)于一個(gè)收發(fā)端口,但一個(gè)收發(fā)端口則可能對(duì)應(yīng)一個(gè)或同時(shí)對(duì)應(yīng)于多個(gè)目標(biāo)固件節(jié)點(diǎn)。因此在圖4和圖5中,與每個(gè)收發(fā)端口 (圖5中即每個(gè)收發(fā)器)對(duì)應(yīng)的目標(biāo)固件節(jié)點(diǎn)實(shí)際上表示的是一個(gè)IP網(wǎng)段內(nèi)所有目標(biāo)固件節(jié)點(diǎn)的集合,不應(yīng)當(dāng)理解為收發(fā)端口與目標(biāo)固件節(jié)點(diǎn)的一一對(duì)應(yīng)。 進(jìn)一步地,在實(shí)際應(yīng)用中,目標(biāo)固件節(jié)點(diǎn)550的工作流程是與燒寫(xiě)器側(cè)的工作流程相配合進(jìn)行的,且其實(shí)現(xiàn)方式并不局限于特定的某一種方式,此處僅舉一例,但應(yīng)當(dāng)指出此例不應(yīng)理解為對(duì)目標(biāo)固件節(jié)點(diǎn)工作方式的限定,該流程如圖6所示,具體包括
步驟601 :目標(biāo)固件節(jié)點(diǎn)接收更新請(qǐng)求幀并進(jìn)行校驗(yàn),如果校驗(yàn)通過(guò),則執(zhí)行步驟602,否則終止本流程; 步驟602 :目標(biāo)固件節(jié)點(diǎn)將自身IP地址包含在更新請(qǐng)求應(yīng)答幀中發(fā)送; 步驟603 :啟動(dòng)自身計(jì)時(shí)器,若在計(jì)時(shí)器超時(shí)前接收到更新數(shù)據(jù)包,則暫停所述計(jì)
時(shí)器并校驗(yàn)該數(shù)據(jù)包是否有效,如果有效則執(zhí)行步驟604,若無(wú)效則將計(jì)時(shí)器清0并返回重
新執(zhí)行步驟603 ;如果計(jì)時(shí)器超時(shí)仍未收到更新數(shù)據(jù)包,則終止本流程; 步驟604 :進(jìn)一步校驗(yàn)所述更新數(shù)據(jù)包是否與已接收到的更新數(shù)據(jù)包重復(fù),如果
重復(fù),則丟棄該數(shù)據(jù)包并返回執(zhí)行步驟603,如果不重復(fù),則將該數(shù)據(jù)包保存到固件節(jié)點(diǎn)自
身的緩存中,并繼續(xù)執(zhí)行步驟605 ; 步驟605 :判斷當(dāng)前更新數(shù)據(jù)包是否為最后一個(gè),如果是,則執(zhí)行步驟606,否則將計(jì)時(shí)器清0并返回步驟603 ; 步驟606 :目標(biāo)更新固件擦除自身存儲(chǔ)器中保存的原有固件文件,將緩存中的固件更新文件燒寫(xiě)到所述存儲(chǔ)器中進(jìn)行燒寫(xiě)更新; 步驟607 :若燒寫(xiě)更新成功完成,則發(fā)送更新成功應(yīng)答幀,否則結(jié)束本流程。 由上述可見(jiàn),本發(fā)明實(shí)施例提供的固件節(jié)點(diǎn)更新方法、裝置和系統(tǒng),在燒寫(xiě)器端接
收到目標(biāo)固件節(jié)點(diǎn)返回的更新請(qǐng)求應(yīng)答幀后直接進(jìn)行每數(shù)據(jù)包的多次發(fā)送而不再進(jìn)行每
數(shù)據(jù)包傳輸成功的確認(rèn),并在全部更新數(shù)據(jù)包發(fā)送完畢后將未返回更新成功應(yīng)答幀的目標(biāo)
固件節(jié)點(diǎn)標(biāo)記為更新失敗,從而實(shí)現(xiàn)了對(duì)大批量固件節(jié)點(diǎn)快速高效地更新。 最后,容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例,并非用于限定本發(fā)明的精神
和保護(hù)范圍,任何熟悉本領(lǐng)域的技術(shù)人員所做出的等同變化或替換,都應(yīng)視為涵蓋在本發(fā)
明的保護(hù)范圍之內(nèi)。
1權(quán)利要求
一種固件節(jié)點(diǎn)更新方法,其特征在于,預(yù)先設(shè)置配置文件和固件更新文件,所述配置文件中包含的信息包括各目標(biāo)固件節(jié)點(diǎn)所屬的IP網(wǎng)段范圍及其對(duì)應(yīng)的收發(fā)端口,以及各IP網(wǎng)段范圍內(nèi)的目標(biāo)固件節(jié)點(diǎn)所使用的固件更新文件的文件名稱(chēng),該方法包括根據(jù)配置文件設(shè)定本次更新所使用的收發(fā)端口、各收發(fā)端口與IP網(wǎng)段范圍的對(duì)應(yīng)關(guān)系、以及各收發(fā)端口和固件更新文件的對(duì)應(yīng)關(guān)系;利用設(shè)定的收發(fā)端口發(fā)送更新請(qǐng)求幀,接收該收發(fā)端口對(duì)應(yīng)的各目標(biāo)固件節(jié)點(diǎn)返回的包含目標(biāo)固件節(jié)點(diǎn)IP地址的更新請(qǐng)求應(yīng)答幀;記錄所述更新請(qǐng)求應(yīng)答幀中包含的目標(biāo)固件節(jié)點(diǎn)的IP地址,設(shè)定固件更新文件傳輸過(guò)程中的重傳次數(shù)和重傳時(shí)間間隔;將各固件更新文件分成多個(gè)更新數(shù)據(jù)包,將各更新數(shù)據(jù)包從對(duì)應(yīng)的收發(fā)端口按照設(shè)定的重傳次數(shù)和重傳時(shí)間間隔進(jìn)行發(fā)送;當(dāng)固件更新文件全部發(fā)送完畢后,接收成功進(jìn)行更新的目標(biāo)固件節(jié)點(diǎn)返回的更新成功應(yīng)答幀,將未返回應(yīng)答幀的目標(biāo)固件節(jié)點(diǎn)標(biāo)記為更新失敗的固件節(jié)點(diǎn),并生成最終的更新結(jié)果列表。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述設(shè)定固件更新文件傳輸過(guò)程中的重 傳次數(shù)的方法包括所述利用設(shè)定的收發(fā)端口發(fā)送更新請(qǐng)求幀的同時(shí),進(jìn)一步記錄發(fā)送給每個(gè)目標(biāo)固件節(jié) 點(diǎn)的更新請(qǐng)求幀的時(shí)刻;所述接收該收發(fā)端口對(duì)應(yīng)的各目標(biāo)固件節(jié)點(diǎn)返回的包含目標(biāo)固件 節(jié)點(diǎn)IP地址的更新請(qǐng)求應(yīng)答幀的同時(shí),進(jìn)一步記錄接收到各目標(biāo)固件節(jié)點(diǎn)返回更新請(qǐng)求 應(yīng)答幀的時(shí)刻;根據(jù)記錄的時(shí)刻得到收發(fā)端口與各目標(biāo)固件節(jié)點(diǎn)之間完成一次收發(fā)過(guò)程所 需要的時(shí)間并求出其中最長(zhǎng)的收發(fā)時(shí)間tg,將所述重傳間隔時(shí)間設(shè)置為0. 75tg。
3. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述設(shè)定固件更新文件傳輸過(guò)程中的 重傳時(shí)間間隔的方法包括所述各目標(biāo)固件節(jié)點(diǎn)返回的包含目標(biāo)固件節(jié)點(diǎn)IP地址的更新請(qǐng)求應(yīng)答幀中進(jìn)一步包 括該目標(biāo)固件節(jié)點(diǎn)當(dāng)前接收到的信號(hào)強(qiáng)度;按照每個(gè)目標(biāo)固件節(jié)點(diǎn)當(dāng)前接收到的信號(hào)強(qiáng)度設(shè)置向該目標(biāo)固件節(jié)點(diǎn)發(fā)送固件更新 文件時(shí)的重傳次數(shù),或者將接收到的所有目標(biāo)固件節(jié)點(diǎn)返回的信號(hào)強(qiáng)度求平均值,然后按 照該平均值統(tǒng)一設(shè)置向各目標(biāo)固件節(jié)點(diǎn)發(fā)送固件更新文件時(shí)的重傳次數(shù)。
4. 一種固件節(jié)點(diǎn)更新裝置,其特征在于,該裝置包括更新配置模塊,主控制器模塊和 至少一個(gè)收發(fā)端口;更新配置模塊,用于保存預(yù)先設(shè)置的配置文件和固件更新文件,所述配置文件中包含 的信息包括各目標(biāo)固件節(jié)點(diǎn)所屬的IP網(wǎng)段范圍及其對(duì)應(yīng)的收發(fā)端口 ,以及各IP網(wǎng)段范圍 內(nèi)的目標(biāo)固件節(jié)點(diǎn)所使用的固件更新文件的文件名稱(chēng);主控制器模塊,用于讀取更新配置模塊中保存的配置文件和固件更新文件,根據(jù)配置 文件設(shè)定本次更新所使用的收發(fā)端口、各收發(fā)端口與IP網(wǎng)段范圍的對(duì)應(yīng)關(guān)系、以及各收發(fā) 端口和固件更新文件的對(duì)應(yīng)關(guān)系,向收發(fā)端口發(fā)送更新請(qǐng)求幀并接收收發(fā)端口返回的包含 目標(biāo)固件節(jié)點(diǎn)IP地址的更新請(qǐng)求應(yīng)答幀,記錄所有目標(biāo)固件節(jié)點(diǎn)的IP地址,設(shè)定固件更新 文件傳輸過(guò)程中的重傳次數(shù)和重傳時(shí)間間隔,將各固件更新文件分成多個(gè)更新數(shù)據(jù)包并按 照設(shè)定的重傳次數(shù)和重傳時(shí)間間隔發(fā)送給各收發(fā)端口,在所有固件更新文件發(fā)送完畢后,接收收發(fā)端口返回的更新成功應(yīng)答幀,根據(jù)所述更新成功應(yīng)答幀和記錄的所有目標(biāo)固件節(jié)點(diǎn)的IP地址生成最終的更新結(jié)果列表;收發(fā)端口,用于將主控制器模塊發(fā)送的更新請(qǐng)求幀轉(zhuǎn)發(fā)給該端口對(duì)應(yīng)的IP網(wǎng)段范圍內(nèi)的目標(biāo)固件節(jié)點(diǎn),并將所述目標(biāo)固件節(jié)點(diǎn)返回的更新請(qǐng)求應(yīng)答幀轉(zhuǎn)發(fā)給主控制器模塊;按照設(shè)定的重傳次數(shù)和重傳時(shí)間間隔將主控制器模塊發(fā)送的更新數(shù)據(jù)包轉(zhuǎn)發(fā)給目標(biāo)固件節(jié)點(diǎn),接收成功進(jìn)行更新的目標(biāo)固件節(jié)點(diǎn)返回的更新成功應(yīng)答幀并轉(zhuǎn)發(fā)給主控制器模塊。
5. 根據(jù)權(quán)利要求4所述的裝置,其特征在于,所述主控制器模塊,進(jìn)一步用于記錄各收發(fā)端口向目標(biāo)固件節(jié)點(diǎn)發(fā)送更新請(qǐng)求幀的時(shí)刻,以及記錄各收發(fā)端口接收到所述目標(biāo)固件節(jié)點(diǎn)返回更新請(qǐng)求應(yīng)答幀的時(shí)刻,得到收發(fā)端口與各目標(biāo)固件節(jié)點(diǎn)之間完成一次收發(fā)過(guò)程所需要的時(shí)間并得出其中最長(zhǎng)的收發(fā)時(shí)間tg,并將所述重傳間隔時(shí)間設(shè)置為0. 75tg。
6. 根據(jù)權(quán)利要求4或5所述的裝置,其特征在于,所述主控制器模塊,進(jìn)一步用于向更新請(qǐng)求幀中添加信號(hào)強(qiáng)度請(qǐng)求命令字后發(fā)送給收發(fā)端口,并接收收發(fā)端口返回的帶有目標(biāo)固件節(jié)點(diǎn)當(dāng)前信號(hào)強(qiáng)度值的更新請(qǐng)求應(yīng)答幀,根據(jù)每個(gè)目標(biāo)固件節(jié)點(diǎn)的當(dāng)前信號(hào)強(qiáng)度值設(shè)定更新數(shù)據(jù)包傳輸過(guò)程中的重傳次數(shù),或者計(jì)算所有目標(biāo)固件節(jié)點(diǎn)當(dāng)前信號(hào)強(qiáng)度值的平均值之后,按照該平均值設(shè)定更新數(shù)據(jù)包傳輸過(guò)程中的重傳次數(shù);收發(fā)端口 ,進(jìn)一步用于將所述添加了信號(hào)強(qiáng)度請(qǐng)求命令字的更新請(qǐng)求幀轉(zhuǎn)發(fā)給目標(biāo)固件節(jié)點(diǎn),接收目標(biāo)固件節(jié)點(diǎn)返回的帶有所述節(jié)點(diǎn)當(dāng)前信號(hào)強(qiáng)度值的更新請(qǐng)求應(yīng)答幀并轉(zhuǎn)發(fā)給主控制器模塊。
7. —種固件節(jié)點(diǎn)更新系統(tǒng),其特征在于,該系統(tǒng)包括包括固件節(jié)點(diǎn)更新裝置和至少一個(gè)目標(biāo)固件節(jié)點(diǎn),其中固件節(jié)點(diǎn)更新裝置進(jìn)一步包括更新配置模塊,主控制器模塊和至少一個(gè)收發(fā)端口;更新配置模塊,用于保存預(yù)先設(shè)置的配置文件和固件更新文件,所述配置文件中包含的信息包括各目標(biāo)固件節(jié)點(diǎn)所屬的IP網(wǎng)段范圍及其對(duì)應(yīng)的收發(fā)端口 ,以及各IP網(wǎng)段范圍內(nèi)的目標(biāo)固件節(jié)點(diǎn)所使用的固件更新文件的文件名稱(chēng);主控制器模塊,用于讀取更新配置模塊中保存的配置文件和固件更新文件,根據(jù)配置文件設(shè)定本次更新所使用的收發(fā)端口、各收發(fā)端口與IP網(wǎng)段范圍的對(duì)應(yīng)關(guān)系、以及各收發(fā)端口和固件更新文件的對(duì)應(yīng)關(guān)系,向收發(fā)端口發(fā)送更新請(qǐng)求幀并接收收發(fā)端口返回的包含目標(biāo)固件節(jié)點(diǎn)IP地址的更新請(qǐng)求應(yīng)答幀,記錄所有目標(biāo)固件節(jié)點(diǎn)的IP地址,設(shè)定固件更新文件傳輸過(guò)程中的重傳次數(shù)和重傳時(shí)間間隔,將各固件更新文件分成多個(gè)更新數(shù)據(jù)包并按照設(shè)定的重傳次數(shù)和重傳時(shí)間間隔發(fā)送給各收發(fā)端口,在所有固件更新文件發(fā)送完畢后,接收收發(fā)端口返回的更新成功應(yīng)答幀,根據(jù)所述更新成功應(yīng)答幀和記錄的所有目標(biāo)固件節(jié)點(diǎn)的IP地址生成最終的更新結(jié)果列表;收發(fā)端口,用于將主控制器模塊發(fā)送的更新請(qǐng)求幀轉(zhuǎn)發(fā)給該端口對(duì)應(yīng)的IP網(wǎng)段范圍內(nèi)的目標(biāo)固件節(jié)點(diǎn),并將所述目標(biāo)固件節(jié)點(diǎn)返回的更新請(qǐng)求應(yīng)答幀轉(zhuǎn)發(fā)給主控制器模塊;按照設(shè)定的重傳次數(shù)和重傳時(shí)間間隔將主控制器模塊發(fā)送的更新數(shù)據(jù)包轉(zhuǎn)發(fā)給目標(biāo)固件節(jié)點(diǎn),接收成功進(jìn)行更新的目標(biāo)固件節(jié)點(diǎn)返回的更新成功應(yīng)答幀并轉(zhuǎn)發(fā)給主控制器模塊;目標(biāo)固件節(jié)點(diǎn),用于接收收發(fā)端口發(fā)送的更新請(qǐng)求幀并向所述收發(fā)端口返回更新請(qǐng)求應(yīng)答幀;接收收發(fā)端口發(fā)送的更新數(shù)據(jù)包并在更新成功完成后向收發(fā)端口返回更新成功應(yīng)答幀。
8. 根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述主控制器模塊,進(jìn)一步用于記錄各收 發(fā)端口向目標(biāo)固件節(jié)點(diǎn)發(fā)送更新請(qǐng)求幀的時(shí)刻,以及記錄各收發(fā)端口接收到所述目標(biāo)固件 節(jié)點(diǎn)返回更新請(qǐng)求應(yīng)答幀的時(shí)刻,得到收發(fā)端口與各目標(biāo)固件節(jié)點(diǎn)之間完成一次收發(fā)過(guò)程 所需要的時(shí)間并得出其中最長(zhǎng)的收發(fā)時(shí)間tg,并將所述重傳間隔時(shí)間設(shè)置為0. 75tg。
9. 根據(jù)權(quán)利要求7或8所述的系統(tǒng),其特征在于,所述主控制器模塊,進(jìn)一步用于向更 新請(qǐng)求幀中添加信號(hào)強(qiáng)度請(qǐng)求命令字后發(fā)送給收發(fā)端口,并接收收發(fā)端口返回的帶有目標(biāo) 固件節(jié)點(diǎn)當(dāng)前信號(hào)強(qiáng)度值的更新請(qǐng)求應(yīng)答幀,根據(jù)每個(gè)目標(biāo)固件節(jié)點(diǎn)的當(dāng)前信號(hào)強(qiáng)度值設(shè) 定更新數(shù)據(jù)包傳輸過(guò)程中的重傳次數(shù),或者計(jì)算所有目標(biāo)固件節(jié)點(diǎn)當(dāng)前信號(hào)強(qiáng)度值的平均 值之后,按照該平均值設(shè)定更新數(shù)據(jù)包傳輸過(guò)程中的重傳次數(shù);收發(fā)端口 ,進(jìn)一步用于將所述添加了信號(hào)強(qiáng)度請(qǐng)求命令字的更新請(qǐng)求幀轉(zhuǎn)發(fā)給目標(biāo)固 件節(jié)點(diǎn),接收目標(biāo)固件節(jié)點(diǎn)返回的帶有所述節(jié)點(diǎn)當(dāng)前信號(hào)強(qiáng)度值的更新請(qǐng)求應(yīng)答幀并轉(zhuǎn)發(fā) 給主控制器模塊;同時(shí),目標(biāo)固件節(jié)點(diǎn),進(jìn)一步用于接收所述添加了信號(hào)強(qiáng)度請(qǐng)求命令字的更新請(qǐng)求幀, 將該節(jié)點(diǎn)當(dāng)前信號(hào)強(qiáng)度值的信息添加到更新請(qǐng)求應(yīng)答幀中返回給收發(fā)端口。
全文摘要
本發(fā)明公開(kāi)了一種固件節(jié)點(diǎn)更新方法,包括發(fā)送更新請(qǐng)求幀并接收返回的更新請(qǐng)求應(yīng)答幀;記錄所述更新請(qǐng)求應(yīng)答幀中包含的目標(biāo)固件節(jié)點(diǎn)的IP地址,設(shè)定固件更新文件傳輸過(guò)程中的重傳次數(shù)和重傳時(shí)間間隔并進(jìn)行發(fā)送;當(dāng)固件更新文件全部發(fā)送完畢后,生成更新結(jié)果列表。本發(fā)明還同時(shí)公開(kāi)了一種固件節(jié)點(diǎn)更新裝置和系統(tǒng)。本發(fā)明提供的固件節(jié)點(diǎn)更新方法、裝置和系統(tǒng),在接收到目標(biāo)固件節(jié)點(diǎn)返回的更新請(qǐng)求應(yīng)答幀后直接進(jìn)行每數(shù)據(jù)包的多次發(fā)送而不再進(jìn)行每數(shù)據(jù)包傳輸成功的確認(rèn),并在全部更新數(shù)據(jù)包發(fā)送完畢后將未返回更新成功應(yīng)答幀的目標(biāo)固件節(jié)點(diǎn)標(biāo)記為更新失敗,從而實(shí)現(xiàn)了對(duì)大批量固件節(jié)點(diǎn)的快速高效地更新。
文檔編號(hào)H04W28/04GK101778378SQ20091004527
公開(kāi)日2010年7月14日 申請(qǐng)日期2009年1月14日 優(yōu)先權(quán)日2009年1月14日
發(fā)明者朱建華, 蔡世光, 黃亮 申請(qǐng)人:英華達(dá)(上海)電子有限公司