一種嵌入式系統升級的設計和實(shí)現
1、引言
本文引用地址:http://dyxdggzs.com/article/150451.htm隨著(zhù)信息化,智能化,網(wǎng)絡(luò )化的發(fā)展,嵌入式系統技術(shù)也將獲得廣闊的發(fā)展空間。嵌入式技術(shù)全面展開(kāi),目前已成為通信和消費類(lèi)產(chǎn)品的共同發(fā)展方向。在通信領(lǐng)域,數字技術(shù)正在全面取代模擬技術(shù)。在廣播電視領(lǐng)域,美國已開(kāi)始由模擬電視向數字電視轉變,歐洲的DVB(數字電視廣播)技術(shù)已在全球大多數國家推廣。數字音頻廣播(DAB)也已進(jìn)入商品化試播階段。而軟件、集成電路和新型元器件在產(chǎn)業(yè)發(fā)展中的作用日益重要。所有上述產(chǎn)品中,都離不開(kāi)嵌入式系統技術(shù)。象前途無(wú)可計量的維納斯計劃生產(chǎn)機頂盒,核心技術(shù)就是采用32位以上芯片級的嵌入式技術(shù)。在個(gè)人領(lǐng)域中,嵌入式產(chǎn)品將主要是個(gè)人商用,作為個(gè)人移動(dòng)的數據處理和通訊軟件。本文提出了利用LPC2148的SD卡實(shí)現嵌入式系統升級的設計方案。
廠(chǎng)家生產(chǎn)出產(chǎn)品后,用戶(hù)購買(mǎi)回去使用,當設備出現了系統漏洞或者用戶(hù)不滿(mǎn)足現有功能而提出更多需求時(shí),就要對系統升級或者維護系統功能。廠(chǎng)家只需將SD卡取回,把更新后的程序放入SD卡中,然后發(fā)放給用戶(hù),用戶(hù)只需把SD卡插入終端設備。即可達到系統升級的目的。圖1給出廠(chǎng)商與用戶(hù)之間的交流流程圖。圖2給出整個(gè)系統設計流程圖。
按圖1所示,廠(chǎng)商與用戶(hù)交流過(guò)程如下:
(1)廠(chǎng)商將一個(gè)類(lèi)似Boot loader的程序通過(guò)ISP方式,將其下載到Flash中,如圖2所示的位置。
(2)將升級程序放入SD卡中,隨產(chǎn)品一起出廠(chǎng)。
(3)用戶(hù)拿到SD卡后,將其插入SD卡槽,終端設備開(kāi)始工作。
(4)用戶(hù)使用一段時(shí)間后,若出現問(wèn)題或者需要升級、維護時(shí).只需將SD卡返回廠(chǎng)家即可。
(5)廠(chǎng)家將升級后的程序放入返回的SD卡中,再返回給用戶(hù).或者廠(chǎng)家直接再發(fā)放SD卡給用戶(hù),而無(wú)需用戶(hù)返回SD卡。
(6)用戶(hù)拿到SD卡后,將其直接插入終端設備卡后,則可達到升級的目的。
出廠(chǎng)前,通過(guò)ISP編程方式燒入一個(gè)類(lèi)似于Boot loader的程序。該程序的實(shí)現大致分為3個(gè)步驟:
(1)SPI模式下的SD卡底層驅動(dòng);
(2)讀出SD卡中的系統程序,并放入指定的Flash地址段中:
(3)跳轉到指定的Flash地址段,執行升級后的系統。
在用戶(hù)插入SD卡前,程序不斷判斷SD卡是否插入。用戶(hù)插入SD卡后,程序首先驅動(dòng)SD卡,使其能正常工作,然后讀取SD卡中的升級程序,并將其放入指定的Flash地址段中。最后,跳轉到指定段,開(kāi)始工作。廠(chǎng)家可根據需要,任意安排升級程序放置的位置。
3、系統硬件設計
核心處理器采用PHILIPS公司的LPC2148。它是一個(gè)支持實(shí)時(shí)仿真和嵌入式跟蹤的32位ARM7微控制器。帶有32KB和512 KB嵌入的高速Flash存儲器。128位寬度的存儲器接口和獨特的加速結構,使32位代碼能夠在最大時(shí)鐘速率下運行,并帶有SPI總線(xiàn)。選用該處理器主要考慮其內部資源豐富,無(wú)需擴展存儲器和SPI總線(xiàn),且性能優(yōu)異,抗干擾能力強,價(jià)格低廉,具有極高的性?xún)r(jià)比。
該設計只是產(chǎn)品電路中的一部分。其硬件電路如圖3所示。LPC2148具有同步、全雙工串行接口(SPI),其最大數據位頻率為輸入時(shí)鐘頻率的1/8,可以設置為主機或從機工作方式。SD卡是通過(guò)SPI總線(xiàn)協(xié)議驅動(dòng)的,數據傳輸中。主機總是向從機發(fā)送一個(gè)字節數據,而從機也總是向主機發(fā)送一個(gè)字節數據。圖3中左邊為L(cháng)PC2148,右邊為SD卡插槽。SCKl為串行時(shí)鐘,用于LPC2148與SD卡之間的數據傳輸時(shí)鐘信號:MISOl是一個(gè)單向信號,用于將數據從SD卡傳輸至LPC2148;MOSll也是一個(gè)單向信號。用于將數據從LPC2148傳輸至SD卡;SSEL1為選通信號,用于選中SD卡。圖3中的引腳3和引腳6分別接地,引腳4接電源,引腳8用于檢測SD卡是否插入,并可根據實(shí)際要求選定。SD卡與LPC2148之間通過(guò)SPI協(xié)議和SD文件系統的組織形式.才能協(xié)調通訊。
4、系統軟件設計
系統軟件部分首先通過(guò)SPI協(xié)議對SD卡初始化,然后根據SD卡的FAF32文件系統組織形式讀取SD卡中的數據,將讀取數據通過(guò)IAP方式將其寫(xiě)入Flash中,最后用一個(gè)跳轉程序跳轉到該段,以達到升級的目的。
4.1 SD卡的初始化
SD卡(Secure Digital Memory Card)中文翻譯為安全數碼卡,是一種基于半導體快閃記憶器的新一代記憶設備,它被廣泛地于便攜式裝置上使用,例如數碼相機、個(gè)人數碼助理(PDA)和多媒體播放器等。SD卡由日本松下、東芝及美國SanDisk公司于1999年8月共同開(kāi)發(fā)研制。大小猶如一張郵票的SD記憶卡,重量只有2克,但卻擁有高記憶容量、快速數據傳輸率、極大的移動(dòng)靈活性以及很好的安全性。
用戶(hù)應用程序通常以文件的形式訪(fǎng)問(wèn)SD卡,并以文件的形式存取數據;文件系統層是通過(guò)調用SD卡物理層的有關(guān)函數來(lái)實(shí)現的,所以要想以文件系統的形式訪(fǎng)問(wèn)SD卡,則必須先驅動(dòng)SD。SD卡的讀寫(xiě)操作都是基于命令的,通過(guò)向SD卡發(fā)送相應的命令并讀取相應的響應控制SD卡。在對SD卡讀寫(xiě)前,首先要進(jìn)行初始化操作。這是確保SD卡能在SPI模式下正常讀寫(xiě)數據的前提。SD卡上電復位后,默認是SD模式。為了使SD卡進(jìn)入SPI模式,必須將CS置低(至少延遲74個(gè)時(shí)鐘)并通過(guò)SPI總線(xiàn)發(fā)送CMDn,使SD卡復位,同時(shí)激活,并進(jìn)行內部初始化處理,使SD卡退出空閑狀態(tài)。
SD卡初始化流程圖如圖4所示。
評論