多ARM節(jié)點(diǎn)通過(guò)無(wú)線通信完成對(duì)批量節(jié)點(diǎn)的程序燒錄
2017-10-16 |
rar |
0.39 MB |
次下載 |
1積分
資料介紹
一 總體設(shè)計(jì)和平臺(tái)簡(jiǎn)介
項(xiàng)目旨在實(shí)現(xiàn)多ARM節(jié)點(diǎn)通過(guò)無(wú)線通信完成對(duì)批量節(jié)點(diǎn)的程序燒錄,如圖2.1所示。系統(tǒng)分為上位機(jī)、發(fā)射接收模塊和待燒錄節(jié)點(diǎn)三個(gè)部分,上位機(jī)通過(guò)ID號(hào)選擇待燒錄節(jié)點(diǎn)并通過(guò)無(wú)線模塊向下廣播燒錄數(shù)據(jù),各被選擇節(jié)點(diǎn)通過(guò)無(wú)線模塊接收燒錄數(shù)據(jù)檢查無(wú)誤后存儲(chǔ)。上位機(jī)軟件設(shè)定待燒錄節(jié)點(diǎn)的ID、燒錄文件目錄、發(fā)送數(shù)據(jù)包大小、發(fā)送速率等參數(shù)后將數(shù)據(jù)打包傳送到基站,基站通過(guò)無(wú)線發(fā)射模塊廣播數(shù)據(jù)。

圖2.1 多節(jié)點(diǎn)無(wú)線批量燒錄示意
整體思想是利用已有的代碼和目標(biāo)代碼進(jìn)行比較。將兩者的差異通過(guò)無(wú)線網(wǎng)絡(luò)(802.15.4)廣播出去。在每個(gè)接受節(jié)點(diǎn)根據(jù)收到的差異文件(也就是補(bǔ)丁文件patch),對(duì)原有代碼進(jìn)行修改(patching的過(guò)程)以達(dá)到更新程序的目的。
總體上來(lái)說(shuō)本項(xiàng)目有兩大難點(diǎn),涉及到巧妙的算法設(shè)計(jì)。
1、如何用盡可能少的字節(jié)數(shù),來(lái)表示不同代碼之間的差異?
2、如何確??煽啃詡鬏??
關(guān)于問(wèn)題1,我們知道要待傳輸?shù)淖止?jié)數(shù)越少,對(duì)通信的要求越低。更新程序的效率也會(huì)更高。而且少的字節(jié)數(shù)也意味著丟更少的包。關(guān)于問(wèn)題2,由于我們是要對(duì)代碼進(jìn)行修正,所以一個(gè)字節(jié)的錯(cuò)誤可能就會(huì)造成整個(gè)程序的崩潰。這對(duì)嵌入式程序,特別是運(yùn)行在成千上萬(wàn)個(gè)節(jié)點(diǎn)上的程序是不可接受的,必須保證100%的正確接受。除此兩大難點(diǎn)(也是關(guān)鍵點(diǎn))之外,還有一些別的附加要求。如果滿足了能夠提高系統(tǒng)的持久性。分別是:
1、使用盡可能小的RAM。因?yàn)榍度胧叫酒腞AM普遍珍貴。
2、消耗盡可能少的能量。
3、更新速度盡可能的快。
項(xiàng)目使用的硬件平臺(tái)是我們自制的智能小車(chē)eMouse 。平臺(tái)采用 TI公司32位Stellaris LM3S1968微處理器,工作頻率為50MHz,內(nèi)含256 KB單周期Flash和64 KB單周期SRAM,flash支持可由用戶管理的塊保護(hù)和數(shù)據(jù)編程;板上Zigbee模塊通過(guò)串口與CPU通信,模塊僅提供MAC層服務(wù),CPU與模塊間以MAC幀的形式通過(guò)串口傳遞數(shù)據(jù)。eMouse外觀如圖2.2所示。
圖2.2 硬件平臺(tái)eMouse
項(xiàng)目開(kāi)發(fā)系統(tǒng)環(huán)境為Ubuntu9.04,程序編譯和下載工具分別為開(kāi)源的sourcery G++和Openocd,用戶界面采用java語(yǔ)言編寫(xiě)。
以下章節(jié)將對(duì)系統(tǒng)設(shè)計(jì)作詳盡的論述。
二 程序更新設(shè)計(jì)與實(shí)現(xiàn)
一些傳統(tǒng)的更新方法注重代碼本身的特點(diǎn)。比如以函數(shù)為基本的更新單位。在每個(gè)節(jié)點(diǎn)上運(yùn)行一個(gè)動(dòng)態(tài)鏈接器,將新的函數(shù)重新鏈接到原程序。其實(shí)代碼本身可以將其視為一串二進(jìn)制的文本文件。代碼的更新即是從一串舊的文本更新為一串新的文本。
為此我們定義了一系列基本的更新操作命令,以及兩個(gè)輔助的索引指針:in_index以及out_index。in_index代表輸入文件當(dāng)前的索引值,而out_index代表輸出文件當(dāng)前的索引值。
基本的命令如下:
Copy:將in_index所指的字節(jié)復(fù)制到out_index處,并且in_index和out_index分別加1。
Replace A:將當(dāng)前out_index所指的字節(jié)用A來(lái)替換,并且in_index和out_index分別加1。
Delete:in_index加1,out_index不變。實(shí)際為刪除in_index所指的字節(jié)
Insert A:在當(dāng)前out_index處插入A,in_index不變,out_index加1。
Kill:表示刪除in_index后所有的原程序代碼。
其中包含了如下的子問(wèn)題:
2.1 命令的表示
通過(guò)上面所說(shuō)的基本命令的組合,我們可以表示出從一個(gè)舊文件到一個(gè)新文件的過(guò)程。隨之帶來(lái)了一個(gè)問(wèn)題。這些命令應(yīng)該如何表示才能盡可能的降低補(bǔ)丁文件(命令的組合)的大?。?br /> 有幾個(gè)需要注意的地方:
如果有連續(xù)的Copy命令,我們可以將其合并成一條命令,只要在Copy后加上表示長(zhǎng)度的Length參數(shù)即可。
同理,如果有連續(xù)的Delete命令,也可以將其合并成一條命令,只要在Delete后加上表示長(zhǎng)度的Length參數(shù)即可。
如果可以利用Replace命令,就不要用Delete和Insert命令的組合。這其實(shí)是另一重要的子問(wèn)題:如何根據(jù)這些命令產(chǎn)生盡可能少補(bǔ)丁文件?
有五條基本命令,這樣為了區(qū)別這五條命令,至少需要3個(gè)比特。
項(xiàng)目旨在實(shí)現(xiàn)多ARM節(jié)點(diǎn)通過(guò)無(wú)線通信完成對(duì)批量節(jié)點(diǎn)的程序燒錄,如圖2.1所示。系統(tǒng)分為上位機(jī)、發(fā)射接收模塊和待燒錄節(jié)點(diǎn)三個(gè)部分,上位機(jī)通過(guò)ID號(hào)選擇待燒錄節(jié)點(diǎn)并通過(guò)無(wú)線模塊向下廣播燒錄數(shù)據(jù),各被選擇節(jié)點(diǎn)通過(guò)無(wú)線模塊接收燒錄數(shù)據(jù)檢查無(wú)誤后存儲(chǔ)。上位機(jī)軟件設(shè)定待燒錄節(jié)點(diǎn)的ID、燒錄文件目錄、發(fā)送數(shù)據(jù)包大小、發(fā)送速率等參數(shù)后將數(shù)據(jù)打包傳送到基站,基站通過(guò)無(wú)線發(fā)射模塊廣播數(shù)據(jù)。

圖2.1 多節(jié)點(diǎn)無(wú)線批量燒錄示意
整體思想是利用已有的代碼和目標(biāo)代碼進(jìn)行比較。將兩者的差異通過(guò)無(wú)線網(wǎng)絡(luò)(802.15.4)廣播出去。在每個(gè)接受節(jié)點(diǎn)根據(jù)收到的差異文件(也就是補(bǔ)丁文件patch),對(duì)原有代碼進(jìn)行修改(patching的過(guò)程)以達(dá)到更新程序的目的。
總體上來(lái)說(shuō)本項(xiàng)目有兩大難點(diǎn),涉及到巧妙的算法設(shè)計(jì)。
1、如何用盡可能少的字節(jié)數(shù),來(lái)表示不同代碼之間的差異?
2、如何確??煽啃詡鬏??
關(guān)于問(wèn)題1,我們知道要待傳輸?shù)淖止?jié)數(shù)越少,對(duì)通信的要求越低。更新程序的效率也會(huì)更高。而且少的字節(jié)數(shù)也意味著丟更少的包。關(guān)于問(wèn)題2,由于我們是要對(duì)代碼進(jìn)行修正,所以一個(gè)字節(jié)的錯(cuò)誤可能就會(huì)造成整個(gè)程序的崩潰。這對(duì)嵌入式程序,特別是運(yùn)行在成千上萬(wàn)個(gè)節(jié)點(diǎn)上的程序是不可接受的,必須保證100%的正確接受。除此兩大難點(diǎn)(也是關(guān)鍵點(diǎn))之外,還有一些別的附加要求。如果滿足了能夠提高系統(tǒng)的持久性。分別是:
1、使用盡可能小的RAM。因?yàn)榍度胧叫酒腞AM普遍珍貴。
2、消耗盡可能少的能量。
3、更新速度盡可能的快。
項(xiàng)目使用的硬件平臺(tái)是我們自制的智能小車(chē)eMouse 。平臺(tái)采用 TI公司32位Stellaris LM3S1968微處理器,工作頻率為50MHz,內(nèi)含256 KB單周期Flash和64 KB單周期SRAM,flash支持可由用戶管理的塊保護(hù)和數(shù)據(jù)編程;板上Zigbee模塊通過(guò)串口與CPU通信,模塊僅提供MAC層服務(wù),CPU與模塊間以MAC幀的形式通過(guò)串口傳遞數(shù)據(jù)。eMouse外觀如圖2.2所示。
圖2.2 硬件平臺(tái)eMouse
項(xiàng)目開(kāi)發(fā)系統(tǒng)環(huán)境為Ubuntu9.04,程序編譯和下載工具分別為開(kāi)源的sourcery G++和Openocd,用戶界面采用java語(yǔ)言編寫(xiě)。
以下章節(jié)將對(duì)系統(tǒng)設(shè)計(jì)作詳盡的論述。
二 程序更新設(shè)計(jì)與實(shí)現(xiàn)
一些傳統(tǒng)的更新方法注重代碼本身的特點(diǎn)。比如以函數(shù)為基本的更新單位。在每個(gè)節(jié)點(diǎn)上運(yùn)行一個(gè)動(dòng)態(tài)鏈接器,將新的函數(shù)重新鏈接到原程序。其實(shí)代碼本身可以將其視為一串二進(jìn)制的文本文件。代碼的更新即是從一串舊的文本更新為一串新的文本。
為此我們定義了一系列基本的更新操作命令,以及兩個(gè)輔助的索引指針:in_index以及out_index。in_index代表輸入文件當(dāng)前的索引值,而out_index代表輸出文件當(dāng)前的索引值。
基本的命令如下:
Copy:將in_index所指的字節(jié)復(fù)制到out_index處,并且in_index和out_index分別加1。
Replace A:將當(dāng)前out_index所指的字節(jié)用A來(lái)替換,并且in_index和out_index分別加1。
Delete:in_index加1,out_index不變。實(shí)際為刪除in_index所指的字節(jié)
Insert A:在當(dāng)前out_index處插入A,in_index不變,out_index加1。
Kill:表示刪除in_index后所有的原程序代碼。
其中包含了如下的子問(wèn)題:
2.1 命令的表示
通過(guò)上面所說(shuō)的基本命令的組合,我們可以表示出從一個(gè)舊文件到一個(gè)新文件的過(guò)程。隨之帶來(lái)了一個(gè)問(wèn)題。這些命令應(yīng)該如何表示才能盡可能的降低補(bǔ)丁文件(命令的組合)的大?。?br /> 有幾個(gè)需要注意的地方:
如果有連續(xù)的Copy命令,我們可以將其合并成一條命令,只要在Copy后加上表示長(zhǎng)度的Length參數(shù)即可。
同理,如果有連續(xù)的Delete命令,也可以將其合并成一條命令,只要在Delete后加上表示長(zhǎng)度的Length參數(shù)即可。
如果可以利用Replace命令,就不要用Delete和Insert命令的組合。這其實(shí)是另一重要的子問(wèn)題:如何根據(jù)這些命令產(chǎn)生盡可能少補(bǔ)丁文件?
有五條基本命令,這樣為了區(qū)別這五條命令,至少需要3個(gè)比特。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 基于鄰近節(jié)點(diǎn)分級(jí)的無(wú)線傳感網(wǎng)絡(luò)分簇路由算法 13次下載
- 無(wú)線傳感器網(wǎng)絡(luò)的中繼節(jié)點(diǎn)部署方式 8次下載
- 無(wú)線傳感器網(wǎng)絡(luò)中節(jié)點(diǎn)自定位經(jīng)典算法DV-Hop的研究改進(jìn)說(shuō)明 8次下載
- LM3S9B96+CC2520平臺(tái)上無(wú)線通信節(jié)點(diǎn)的智能化設(shè)計(jì)的詳細(xì)中文介紹 11次下載
- 基于電力通信網(wǎng)關(guān)鍵節(jié)點(diǎn)識(shí)別方法 0次下載
- 物聯(lián)網(wǎng)移動(dòng)節(jié)點(diǎn)匿名漫游認(rèn)證 0次下載
- 一種光譜傳感物聯(lián)網(wǎng)節(jié)點(diǎn)的無(wú)線通信接口 0次下載
- 無(wú)線傳感器網(wǎng)絡(luò)中通信節(jié)點(diǎn)的信任模型 1次下載
- 基于ARM的WiFi無(wú)線通信終端的設(shè)計(jì) 15次下載
- 無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)實(shí)現(xiàn)模型 46次下載
- 無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)應(yīng)用的硬件設(shè)計(jì) 34次下載
- SZ02系列Z-BEE無(wú)線通信設(shè)備使用手冊(cè) 22次下載
- 工業(yè)短程無(wú)線網(wǎng)絡(luò)通信節(jié)點(diǎn)的設(shè)計(jì)
- 無(wú)線通信的多址技術(shù)2
- 基于雙口RAM的LonWorks智能通信節(jié)點(diǎn)設(shè)計(jì)
- CAN通信節(jié)點(diǎn)多時(shí),如何減少寄生電容和保障節(jié)點(diǎn)數(shù)量? 796次閱讀
- 基于微控制器和無(wú)線通信模塊實(shí)現(xiàn)無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì) 3509次閱讀
- 基于TinyOS操作系統(tǒng)實(shí)現(xiàn)無(wú)線傳感器節(jié)點(diǎn)Mica的設(shè)計(jì) 1453次閱讀
- 無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位是什么 7506次閱讀
- 如何降低無(wú)線瓦斯傳感器的節(jié)點(diǎn)能耗 1207次閱讀
- 基于無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)模塊化的SPI接口電路設(shè)計(jì) 1565次閱讀
- 無(wú)線傳感器節(jié)點(diǎn)功耗限制子系統(tǒng)的設(shè)計(jì) 958次閱讀
- 無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的總體設(shè)計(jì) 3494次閱讀
- 無(wú)線傳感器的節(jié)點(diǎn)組成及能耗分析 1.6w次閱讀
- 基于無(wú)線傳感器網(wǎng)絡(luò)特點(diǎn)設(shè)計(jì)無(wú)線傳感節(jié)點(diǎn) 3637次閱讀
- 移動(dòng)多Sink無(wú)線傳感器網(wǎng)絡(luò)監(jiān)測(cè)系統(tǒng) 1834次閱讀
- 無(wú)線自組網(wǎng)絡(luò)節(jié)點(diǎn)硬件設(shè)計(jì) ZigBee協(xié)議棧軟件設(shè)計(jì) 9100次閱讀
- 無(wú)線傳感器網(wǎng)絡(luò)微型節(jié)點(diǎn)的實(shí)現(xiàn) 1592次閱讀
- 實(shí)現(xiàn)多ARM節(jié)點(diǎn)通過(guò)無(wú)線通信完成對(duì)批量節(jié)點(diǎn)的程序燒錄 1271次閱讀
- 基于Arduino的ZigBee無(wú)線傳感節(jié)點(diǎn)的硬件設(shè)計(jì) 8921次閱讀
下載排行
本周
- 1索尼333ESL電路圖資料
- 10.11 MB | 2次下載 | 免費(fèi)
- 2TINA-TI 模擬電路設(shè)計(jì)、仿真和分析軟件中文教程
- 3.83 MB | 0次下載 | 5 積分
- 3SS6548D40V 直流有刷電機(jī)驅(qū)動(dòng)芯片中文資料
- 1.55 MB | 次下載 | 1 積分
- 4SS6235M 4A 33V性?xún)r(jià)比超高電機(jī)驅(qū)動(dòng)芯片中文資料
- 1.26 MB | 次下載 | 免費(fèi)
- 5FP7195-中文應(yīng)用說(shuō)明書(shū)
- 0.93 MB | 次下載 | 免費(fèi)
- 6VSA101-G250T01-I 電壓傳感器產(chǎn)品使用手冊(cè)
- 0.72 MB | 次下載 | 免費(fèi)
- 7FS4056E系列單節(jié)線線充電IC
- 2.41 MB | 次下載 | 免費(fèi)
- 8FS5281E(5V USB輸入雙節(jié)鋰電池串聯(lián)應(yīng)用升壓充電管理IC)
- 3.30 MB | 次下載 | 免費(fèi)
本月
- 148V到5KW無(wú)橋LLC雙向逆變器的電路原理圖免費(fèi)下載
- 0.26 MB | 157次下載 | 10 積分
- 22KW逆變側(cè)功率管的損耗如何進(jìn)行計(jì)算詳細(xì)公式免費(fèi)下載
- 0.40 MB | 33次下載 | 2 積分
- 3高功率密度碳化硅MOSFET軟開(kāi)關(guān)三相逆變器損耗分析
- 2.27 MB | 33次下載 | 5 積分
- 4STM32F10x參考手冊(cè)資料
- 13.64 MB | 12次下載 | 1 積分
- 5光伏并網(wǎng)逆變器原理
- 7.31 MB | 7次下載 | 2 積分
- 6SW5099規(guī)格書(shū)
- 1.37 MB | 6次下載 | 1 積分
- 7星火6J3-1交直流二波段收音機(jī)電路圖資料
- 1.86 MB | 6次下載 | 免費(fèi)
- 8S7-200 可編程序控制器系統(tǒng)手冊(cè)
- 12.81 MB | 5次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935134次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191422次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183352次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81600次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73818次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
評(píng)論