新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種嵌入式系統升級的設計和實現

        一種嵌入式系統升級的設計和實現

        作者: 時間:2011-07-20 來源:網絡 收藏

        1、引言

        本文引用地址:http://www.104case.com/article/150451.htm

        隨著信息化,智能化,網絡化的發展,技術也將獲得廣闊的發展空間。技術全面展開,目前已成為通信和消費類產品的共同發展方向。在通信領域,數字技術正在全面取代模擬技術。在廣播電視領域,美國已開始由模擬電視向數字電視轉變,歐洲的DVB(數字電視廣播)技術已在全球大多數國家推廣。數字音頻廣播(DAB)也已進入商品化試播階段。而軟件、集成電路和新型元器件在產業發展中的作用日益重要。所有上述產品中,都離不開技術。象前途無可計量的維納斯計劃生產機頂盒,核心技術就是采用32位以上芯片級的嵌入式技術。在個人領域中,嵌入式產品將主要是個人商用,作為個人移動的數據處理和通訊軟件。本文提出了利用LPC2148的SD卡嵌入式方案。

        2、總體系統方案

        廠家生產出產品后,用戶購買回去使用,當設備出現了系統漏洞或者用戶不滿足現有功能而提出更多需求時,就要對系統或者維護系統功能。廠家只需將SD卡取回,把更新后的程序放入SD卡中,然后發放給用戶,用戶只需把SD卡插入終端設備。即可達到系統升級的目的。圖1給出廠商與用戶之間的交流流程圖。圖2給出整個系統流程圖。


        按圖1所示,廠商與用戶交流過程如下:

        (1)廠商將一個類似Boot loader的程序通過ISP方式,將其下載到Flash中,如圖2所示的位置。

        (2)將升級程序放入SD卡中,隨產品一起出廠。

        (3)用戶拿到SD卡后,將其插入SD卡槽,終端設備開始工作。

        (4)用戶使用一段時間后,若出現問題或者需要升級、維護時.只需將SD卡返回廠家即可。

        (5)廠家將升級后的程序放入返回的SD卡中,再返回給用戶.或者廠家直接再發放SD卡給用戶,而無需用戶返回SD卡。

        (6)用戶拿到SD卡后,將其直接插入終端設備卡后,則可達到升級的目的。

        出廠前,通過ISP編程方式燒入一個類似于Boot loader的程序。該程序的大致分為3個步驟:

        (1)SPI模式下的SD卡底層驅動;

        (2)讀出SD卡中的系統程序,并放入指定的Flash地址段中:

        (3)跳轉到指定的Flash地址段,執行升級后的系統。

        在用戶插入SD卡前,程序不斷判斷SD卡是否插入。用戶插入SD卡后,程序首先驅動SD卡,使其能正常工作,然后讀取SD卡中的升級程序,并將其放入指定的Flash地址段中。最后,跳轉到指定段,開始工作。廠家可根據需要,任意安排升級程序放置的位置。

        3、系統硬件設計

        核心處理器采用PHILIPS公司的LPC2148。它是一個支持實時仿真和嵌入式跟蹤的32位ARM7微控制器。帶有32KB和512 KB嵌入的高速Flash存儲器。128位寬度的存儲器接口和獨特的加速結構,使32位代碼能夠在最大時鐘速率下運行,并帶有SPI總線。選用該處理器主要考慮其內部資源豐富,無需擴展存儲器和SPI總線,且性能優異,抗干擾能力強,價格低廉,具有極高的性價比。

        該設計只是產品電路中的一部分。其硬件電路如圖3所示。LPC2148具有同步、全雙工串行接口(SPI),其最大數據位頻率為輸入時鐘頻率的1/8,可以設置為主機或從機工作方式。SD卡是通過SPI總線協議驅動的,數據傳輸中。主機總是向從機發送一個字節數據,而從機也總是向主機發送一個字節數據。圖3中左邊為LPC2148,右邊為SD卡插槽。SCKl為串行時鐘,用于LPC2148與SD卡之間的數據傳輸時鐘信號:MISOl是一個單向信號,用于將數據從SD卡傳輸至LPC2148;MOSll也是一個單向信號。用于將數據從LPC2148傳輸至SD卡;SSEL1為選通信號,用于選中SD卡。圖3中的引腳3和引腳6分別接地,引腳4接電源,引腳8用于檢測SD卡是否插入,并可根據實際要求選定。SD卡與LPC2148之間通過SPI協議和SD文件系統的組織形式.才能協調通訊。

        4、系統軟件設計

        系統軟件部分首先通過SPI協議對SD卡初始化,然后根據SD卡的FAF32文件系統組織形式讀取SD卡中的數據,將讀取數據通過IAP方式將其寫入Flash中,最后用一個跳轉程序跳轉到該段,以達到升級的目的。

        4.1 SD卡的初始化

        SD卡(Secure Digital Memory Card)中文翻譯為安全數碼卡,是一種基于半導體快閃記憶器的新一代記憶設備,它被廣泛地于便攜式裝置上使用,例如數碼相機、個人數碼助理(PDA)和多媒體播放器等。SD卡由日本松下、東芝及美國SanDisk公司于1999年8月共同開發研制。大小猶如一張郵票的SD記憶卡,重量只有2克,但卻擁有高記憶容量、快速數據傳輸率、極大的移動靈活性以及很好的安全性。

        用戶應用程序通常以文件的形式訪問SD卡,并以文件的形式存取數據;文件系統層是通過調用SD卡物理層的有關函數來的,所以要想以文件系統的形式訪問SD卡,則必須先驅動SD。SD卡的讀寫操作都是基于命令的,通過向SD卡發送相應的命令并讀取相應的響應控制SD卡。在對SD卡讀寫前,首先要進行初始化操作。這是確保SD卡能在SPI模式下正常讀寫數據的前提。SD卡上電復位后,默認是SD模式。為了使SD卡進入SPI模式,必須將CS置低(至少延遲74個時鐘)并通過SPI總線發送CMDn,使SD卡復位,同時激活,并進行內部初始化處理,使SD卡退出空閑狀態。

        SD卡初始化流程圖如圖4所示。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 穆棱市| 禄劝| 宁都县| 方城县| 沭阳县| 隆子县| 建德市| 衡山县| 江川县| 泗洪县| 平阳县| 怀化市| 宜州市| 信阳市| 景德镇市| 长汀县| 沭阳县| 青铜峡市| 黔江区| 平果县| 平潭县| 文成县| 巩留县| 铜陵市| 明水县| 巴青县| 浙江省| 天水市| 鄢陵县| 富川| 孝义市| 菏泽市| 富源县| 洛浦县| 梅河口市| 丹东市| 横峰县| 万宁市| 龙川县| 连州市| 五指山市|