資料介紹
一 總體設計和平臺簡介
項目旨在實現(xiàn)多ARM節(jié)點通過無線通信完成對批量節(jié)點的程序燒錄,如圖2.1所示。系統(tǒng)分為上位機、發(fā)射接收模塊和待燒錄節(jié)點三個部分,上位機通過ID號選擇待燒錄節(jié)點并通過無線模塊向下廣播燒錄數(shù)據(jù),各被選擇節(jié)點通過無線模塊接收燒錄數(shù)據(jù)檢查無誤后存儲。上位機軟件設定待燒錄節(jié)點的ID、燒錄文件目錄、發(fā)送數(shù)據(jù)包大小、發(fā)送速率等參數(shù)后將數(shù)據(jù)打包傳送到基站,基站通過無線發(fā)射模塊廣播數(shù)據(jù)。

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

圖2.1 多節(jié)點無線批量燒錄示意
整體思想是利用已有的代碼和目標代碼進行比較。將兩者的差異通過無線網(wǎng)絡(802.15.4)廣播出去。在每個接受節(jié)點根據(jù)收到的差異文件(也就是補丁文件patch),對原有代碼進行修改(patching的過程)以達到更新程序的目的。
總體上來說本項目有兩大難點,涉及到巧妙的算法設計。
1、如何用盡可能少的字節(jié)數(shù),來表示不同代碼之間的差異?
2、如何確??煽啃詡鬏??
關于問題1,我們知道要待傳輸?shù)淖止?jié)數(shù)越少,對通信的要求越低。更新程序的效率也會更高。而且少的字節(jié)數(shù)也意味著丟更少的包。關于問題2,由于我們是要對代碼進行修正,所以一個字節(jié)的錯誤可能就會造成整個程序的崩潰。這對嵌入式程序,特別是運行在成千上萬個節(jié)點上的程序是不可接受的,必須保證100%的正確接受。除此兩大難點(也是關鍵點)之外,還有一些別的附加要求。如果滿足了能夠提高系統(tǒng)的持久性。分別是:
1、使用盡可能小的RAM。因為嵌入式芯片的RAM普遍珍貴。
2、消耗盡可能少的能量。
3、更新速度盡可能的快。
項目使用的硬件平臺是我們自制的智能小車eMouse 。平臺采用 TI公司32位Stellaris LM3S1968微處理器,工作頻率為50MHz,內含256 KB單周期Flash和64 KB單周期SRAM,flash支持可由用戶管理的塊保護和數(shù)據(jù)編程;板上Zigbee模塊通過串口與CPU通信,模塊僅提供MAC層服務,CPU與模塊間以MAC幀的形式通過串口傳遞數(shù)據(jù)。eMouse外觀如圖2.2所示。
圖2.2 硬件平臺eMouse
項目開發(fā)系統(tǒng)環(huán)境為Ubuntu9.04,程序編譯和下載工具分別為開源的sourcery G++和Openocd,用戶界面采用java語言編寫。
以下章節(jié)將對系統(tǒng)設計作詳盡的論述。
二 程序更新設計與實現(xiàn)
一些傳統(tǒng)的更新方法注重代碼本身的特點。比如以函數(shù)為基本的更新單位。在每個節(jié)點上運行一個動態(tài)鏈接器,將新的函數(shù)重新鏈接到原程序。其實代碼本身可以將其視為一串二進制的文本文件。代碼的更新即是從一串舊的文本更新為一串新的文本。
為此我們定義了一系列基本的更新操作命令,以及兩個輔助的索引指針:in_index以及out_index。in_index代表輸入文件當前的索引值,而out_index代表輸出文件當前的索引值。
基本的命令如下:
Copy:將in_index所指的字節(jié)復制到out_index處,并且in_index和out_index分別加1。
Replace A:將當前out_index所指的字節(jié)用A來替換,并且in_index和out_index分別加1。
Delete:in_index加1,out_index不變。實際為刪除in_index所指的字節(jié)
Insert A:在當前out_index處插入A,in_index不變,out_index加1。
Kill:表示刪除in_index后所有的原程序代碼。
其中包含了如下的子問題:
2.1 命令的表示
通過上面所說的基本命令的組合,我們可以表示出從一個舊文件到一個新文件的過程。隨之帶來了一個問題。這些命令應該如何表示才能盡可能的降低補丁文件(命令的組合)的大小?
有幾個需要注意的地方:
如果有連續(xù)的Copy命令,我們可以將其合并成一條命令,只要在Copy后加上表示長度的Length參數(shù)即可。
同理,如果有連續(xù)的Delete命令,也可以將其合并成一條命令,只要在Delete后加上表示長度的Length參數(shù)即可。
如果可以利用Replace命令,就不要用Delete和Insert命令的組合。這其實是另一重要的子問題:如何根據(jù)這些命令產生盡可能少補丁文件?
有五條基本命令,這樣為了區(qū)別這五條命令,至少需要3個比特。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 基于鄰近節(jié)點分級的無線傳感網(wǎng)絡分簇路由算法 13次下載
- 無線傳感器網(wǎng)絡的中繼節(jié)點部署方式 8次下載
- 無線傳感器網(wǎng)絡中節(jié)點自定位經典算法DV-Hop的研究改進說明 8次下載
- LM3S9B96+CC2520平臺上無線通信節(jié)點的智能化設計的詳細中文介紹 11次下載
- 基于電力通信網(wǎng)關鍵節(jié)點識別方法 0次下載
- 物聯(lián)網(wǎng)移動節(jié)點匿名漫游認證 0次下載
- 一種光譜傳感物聯(lián)網(wǎng)節(jié)點的無線通信接口 0次下載
- 無線傳感器網(wǎng)絡中通信節(jié)點的信任模型 1次下載
- 基于ARM的WiFi無線通信終端的設計 15次下載
- 無線傳感器網(wǎng)絡節(jié)點實現(xiàn)模型 46次下載
- 無線傳感器網(wǎng)絡節(jié)點應用的硬件設計 34次下載
- SZ02系列Z-BEE無線通信設備使用手冊 22次下載
- 工業(yè)短程無線網(wǎng)絡通信節(jié)點的設計
- 無線通信的多址技術2
- 基于雙口RAM的LonWorks智能通信節(jié)點設計
- CAN通信節(jié)點多時,如何減少寄生電容和保障節(jié)點數(shù)量? 796次閱讀
- 基于微控制器和無線通信模塊實現(xiàn)無線傳感器網(wǎng)絡節(jié)點的設計 3509次閱讀
- 基于TinyOS操作系統(tǒng)實現(xiàn)無線傳感器節(jié)點Mica的設計 1453次閱讀
- 無線傳感器網(wǎng)絡節(jié)點定位是什么 7506次閱讀
- 如何降低無線瓦斯傳感器的節(jié)點能耗 1207次閱讀
- 基于無線傳感器網(wǎng)絡節(jié)點模塊化的SPI接口電路設計 1565次閱讀
- 無線傳感器節(jié)點功耗限制子系統(tǒng)的設計 958次閱讀
- 無線傳感器網(wǎng)絡節(jié)點的總體設計 3494次閱讀
- 無線傳感器的節(jié)點組成及能耗分析 1.6w次閱讀
- 基于無線傳感器網(wǎng)絡特點設計無線傳感節(jié)點 3637次閱讀
- 移動多Sink無線傳感器網(wǎng)絡監(jiān)測系統(tǒng) 1834次閱讀
- 無線自組網(wǎng)絡節(jié)點硬件設計 ZigBee協(xié)議棧軟件設計 9100次閱讀
- 無線傳感器網(wǎng)絡微型節(jié)點的實現(xiàn) 1592次閱讀
- 實現(xiàn)多ARM節(jié)點通過無線通信完成對批量節(jié)點的程序燒錄 1271次閱讀
- 基于Arduino的ZigBee無線傳感節(jié)點的硬件設計 8921次閱讀
下載排行
本周
- 1EMC電路設計工程師必備的EMC基礎
- 0.42 MB | 4次下載 | 2 積分
- 2AU3116 2×60W模擬輸入雙通道Class-D 音頻功率放大器數(shù)據(jù)手冊
- 1.19 MB | 1次下載 | 免費
- 3低壓降肖特基整流管SR340L數(shù)據(jù)手冊
- 0.78 MB | 1次下載 | 免費
- 4ZX8002E 觸摸調光LED集成IC數(shù)據(jù)手冊
- 2.27 MB | 次下載 | 免費
- 5SOD-323塑料封裝ESD保護二極管SD05T系列規(guī)格書
- 1.07 MB | 次下載 | 免費
- 6SOT-23塑料封裝ESD保護二極管SMxx Series系列規(guī)格書
- 0.93 MB | 次下載 | 免費
- 7高效率整流二極管HER151 THRU HER158數(shù)據(jù)手冊
- 0.54 MB | 次下載 | 免費
- 8低壓降肖特基整流管SL22 THRU SL210數(shù)據(jù)手冊
- 1.03 MB | 次下載 | 免費
本月
- 1三相逆變主電路的原理圖和PCB資料合集免費下載
- 27.35 MB | 111次下載 | 1 積分
- 2運算放大器基本電路中文資料
- 1.30 MB | 16次下載 | 免費
- 3蘋果iphone 11電路原理圖
- 4.98 MB | 11次下載 | 5 積分
- 4TL494工業(yè)用開關電源原理圖資料
- 0.22 MB | 10次下載 | 1 積分
- 5常用電子元器件介紹
- 3.21 MB | 8次下載 | 免費
- 6QW2893應急燈專用檢測芯片
- 590.40 KB | 4次下載 | 免費
- 7相關協(xié)議信號總結
- 0.94 MB | 4次下載 | 免費
- 8EMC電路設計工程師必備的EMC基礎
- 0.42 MB | 4次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935130次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191390次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183344次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81591次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評論