?

一種移動存儲設備量產工具的開發

2016-11-14 02:05張萌
中國科技信息 2016年21期
關鍵詞:固件存儲設備線程

一種移動存儲設備量產工具的開發

使用Norelsys主控芯片的U盤、移動硬盤等移動存儲設備在出廠前需要在每個設備的SPI Flash芯片中燒錄固件程序。使用傳統的SPI Flash燒錄機燒錄固件程序費時費力,而且遠遠達不到工業生產中量產的要求。本文介紹了一種工具軟件,可以高效的燒錄SPI Flash固件程序,同時操作簡單、界面友好,還有很高的安全性。

軟件需求分析

使用Norelsys主控芯片的 U盤、移動硬盤等移動存儲設備在出廠前需要在每個設備的SPI flash芯片中燒錄固件程序。固件程序是U盤、移動硬盤等移動存儲設備的核心控制程序,用于和主機建立連接,控制設備的各種行為等。

使用傳統燒錄方法,如果想要更新移動存儲設備中的固件程序,需要使用SPI Flash燒錄機。在燒錄前需要先將移動設備上的SPI Flash芯片焊下來,放入SPI Flash燒錄機的卡槽中,然后在燒錄機的軟件上進行SPI Flash芯片型號的選擇,并且選擇要燒錄的固件程序,開始燒錄,結束后將SPI Flash芯片取出重新焊接到設備上,整個操作完成。這種方法操作步驟十分繁瑣,而且每次只能針對單獨的一個設備進行固件更新,效率低下,不能滿足工廠中大量生產的需要。

為了提高工廠中的生產效率,并使工作人員可以簡單、快捷的操作,設計開發用于量產的工具軟件就成為必然。該工具軟件基于Windows平臺,適用于Windows XP及以上各種版本的Windows系統,可以適應于產線上的各種機器配置和系統版本。該量產工具界面簡潔,使用簡單、方便,執行效率高,可以同時給最多16個設備進行固件更新等操作,并且結果鮮明,每個設備都有單獨的條目顯示,一目了然,方便產線工人剔出不良產品。

系統總體結構

系統總體結構圖如圖1所示。

模塊UIInterface用于顯示友好界面,配置操作選項,接收用戶操作指令,顯示當前執行狀態和最終執行結果。

模塊SecurityCheck是在運行UIInterface界面之前進行的安全認證檢查,只有輸入正確密碼的管理員才能更改UIInterface界面的配置選項,如:是否選擇更新固件,指定用于燒錄的固件程序,是否進行分區、格式化操作,是否進行讀寫測試操作,選擇并行的線程數量,設備列表如何排序等選項。而對于沒有密碼的普通操作工人,界面選項是固定的,不可以更改,只能進行執行、中斷、移除等操作。

模塊DeviceManager是整個程序的核心部分,管理所有連接的移動存儲設備。執行操作的時候,DeviceManager為各個設備分配可用的線程,調度各個設備獨立的完成各自的操作。

每個USBDevice對象代表一個連接到主機上的移動存儲設備,可以通過設備ID區分不同的USBDevice。執行操作的時候,每個USBDevice會在DeviceManager安排的線程環境中順序完成自己的任務,包括更新固件、對磁盤進行分區格式化、對磁盤進行讀寫測試等操作。

每個SPIFlash對象代表USBDevice中的SPI Flash芯片,它會完成SPI Flash的各種操作,包括擦除flash,寫入固件到flash,驗證flash等。

圖1 量產工具的總體結構圖

數據庫FlashDataBase存儲了所有的SPI Flash型號和每種Flash對應的各種參數。每連接一個新的移動存儲設備,DeviceManager會生產一個USBDevice對象,并驅動這個USBDevice中的SPIFlash對象自動到FlashDataBase數據庫中匹配對應的SPI Flash型號,找到相應的型號才能設置這個設備的SPI Flash的各種參數,為更新固件做準備。

系統關鍵部分程序的設計

安全性設計

為了讓產線上所有的移動存儲設備有統一的配置參數和一致的操作流程,量產工具增加了認證機制。只有管理員擁有可以更改配置的權限,其他人員只能執行管理員設置好的配置,不能隨意更改。量產工具在啟動時會要求輸入管理員密碼,密碼存儲在一個加密的本地文件中。如果密碼驗證正確就開放管理員權限,打開界面上的配置選項,包括更新固件、指定用于燒錄的固件程序、分區、格式化、讀寫測試、線程數量、設備顯示順序等;如果密碼不正確,就開放普通權限,界面上的選項變為不可選。

數據庫設計

由于SPI Flash型號眾多,而不同的廠家會給移動存儲設備配備不同的SPI Flash型號,所以需要量產工具對所有的SPI Flash型號都能識別并支持燒錄功能。數據庫FlashDataBase主要有兩張表,FLASH_TYPE和FLASH_PARAMETERS。表FLASH_TYPE用于通過獲得的SPI Flash的ID號,找到flash型號。表FLASH_PARAMETERS用于通過flash型號找到這種SPI Flash對應的各個參數。

設備的添加和刪除

圖2顯示了DeviceManager,USBDevice和SPIFlash幾個主要模塊之間的關系。移動存儲設備在主機上插入和拔出都會觸發系統事件,量產工具中由模塊DeviceManager來獲得并處理這些系統事件。每當獲得插入事件,DeviceManager就會調用AddDevice生成一個USBDevice對象并初始化。USBDevice對象在初始化中會生成一個SPIFlash對象,然后SPIFlash對象會通過FlashDataBase數據庫找到匹配的Flash型號和對應的各種參數。DeviceManager將完成初始化的USBDevice對象放入設備列表deviceList中,等待后續操作。

拔出或安全移除一個移動存儲設備時,DeviceManager會收到系統設備移除事件的通知,然后在設備列表中通過設備ID找到這個設備,釋放它所占用的所有資源并調用RemoveDevice刪除這個設備。

多線程處理

為了讓所有連接主機的設備可以高效率的進行操作,最理想的方法是讓所有設備同時工作即并行處理,而不是一個設備等待上一個設備完成才能開始工作的串行處理。并行處理需要使用到多線程機制,線程的數量是由DeviceManger決定的。如果線程過多,會造成系統資源負載過重,不但不會提高效率,反而會降低效率;如果線程太少,并行處理不明顯,又退化成串行處理,也會降低效率。所以DeviceManager會根據當前實際設備數和管理員設置的最大線程數計算出最佳的線程數量,然后啟動這些數量的線程開始工作。為了避免同一個設備被多個線程重復執行,造成執行混亂,每個線程會排隊依次從設備等待列表中選擇等待執行的設備進行指定的操作,被選擇的設備會從等待列表中移除,如圖3所示。當一個設備執行完成后,完成任務的線程會再次排隊到等待列表中選擇還未執行的設備,直到沒有未執行的設備可以選擇,線程自動結束。等到所有線程都結束了,全部操作完成。

圖2 設備關系類圖

圖3 多線程排隊選取設備示意圖

固件更新

固件更新操作是量產工具最重要的功能。不需要像SPI Flash燒錄機那樣手動焊接芯片再燒錄,直接選擇界面上的更新固件選項,點擊執行按鈕即可自動實現固件程序的更新。在連接一個移動存儲設備時,DeviceManager會在USBDevice對象的初始化時就進行SPI Flash匹配。執行更新固件的操作時,直接使用匹配的flash參數先對flash進行擦除,擦除成功后將指定的固件程序寫入flash的對應地址中,最后做flash的校驗,檢查是否寫入成功。

界面顯示

顯示界面分為三部分,最上面部分是管理員才能操作的配置選項,包括更新固件、選擇固件程序、分區、格式化、讀寫測試、線程數量、設備顯示順序等。只有選上的項目才能被執行,未選擇的項目不會被執行。中間部分是設備列表,顯示所有連接的移動存儲設備,每個設備占一行,設備的排序是按照管理員選擇的方式列出的。每一列顯示設備的各個屬性,包括廠商ID、產品ID、序列號、版本號、容量、等待執行的操作等信息。最下面部分是普通工作人員需要用到的按鈕,有三個:執行、中斷和安全移除。

為了減少工作人員的操作,設備的所有工作(包括更新固件、分區、格式化、讀寫測試)都集中在一個執行按鈕中。工作人員只需要連接移動存儲設備,然后按下一個執行按鈕,即可在中間列表中看到各個設備實時的執行狀態和工作進度。每完成一個設備,該設備所在的行會突出顯示完成結果,正確的顯示為綠色Pass,失敗的顯示為紅色Fail,一目了然。如果有突發事件,工作人員可以點擊中斷按鈕中斷操作。當所有設備都完成操作時,點擊安全移除按鈕,所有設備都會安全移除,然后再拔出設備不會對設備造成任何損傷。

結語

與傳統SPI Flash的固件燒錄方法相比,量產工具更加安全可靠,它的應用極大的提高了生產效率,平均每生產一個移動存儲設備只需要幾秒鐘時間,比燒錄機方便快捷很多。量產工具不但可以燒錄固件程序,還可以同時完成磁盤的分區、格式化、讀寫測試等操作,為移動存儲設備的出廠減少了很多生產步驟。同時它的操作簡單,界面友好,方便工廠產線工人在短時間內學會使用,在很多工廠都有著廣泛的應用。

10.3969/j.issn.1001- 8972.2016.21.029

猜你喜歡
固件存儲設備線程
基于C#線程實驗探究
基于國產化環境的線程池模型研究與實現
線程池調度對服務器性能影響的研究*
基于SHA1的SCADA系統PLC固件完整性驗證方法
基于固件的遠程身份認證
淺析鐵路視頻監控存儲設備設計
英特爾發布免費固件引擎
提取ROM固件中的APP
Windows環境下禁用USB存儲設備程序設計與實現
防止USB接口泄密
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合