本文主要介紹一個(gè)基于SmartFusion更新M3程序的IAP在線升級(jí)應(yīng)用方案。在傳輸距離可靠的情況下,通過(guò)UART、sp喊者M(jìn)AC將用戶板和PC機(jī)連接即可實(shí)現(xiàn)遠(yuǎn)程升級(jí),無(wú)需采用PlashPr03等下載器下載程序,也無(wú)需手動(dòng)復(fù)位,一切工作均可由串口和上位機(jī)自動(dòng)完成。如圖1所示,LAP在線升級(jí)SmartFusion的M3程序主要有以下三種方式:UART、SPI以及MAC。
1.概述
(1)LAP技術(shù)的需求
由于SmartFusion系列FPGA是行業(yè)首個(gè)智能混合信號(hào)FPGA,在嵌入式行業(yè)中的應(yīng)用越來(lái)越廣泛。然而,無(wú)論是開發(fā)商還是初學(xué)者,在使用SmartFusion器件的時(shí)候,往往都需要額外購(gòu)買昂貴的調(diào)試工具,比如M3編程器和FlashPro3下載器等,而這些編程器的價(jià)格有時(shí)候比開發(fā)板還貴,這樣就打消了很多初學(xué)者購(gòu)買開發(fā)板的念頭。另一方面,調(diào)試和更新程序只局限于竇驗(yàn)室,使用者往往需要拿到板子之后,然后采用系統(tǒng)編程(ISP)的方式更新程序。這樣使得效率大大折扣。給后續(xù)的軟件更新和升級(jí)帶來(lái)了諸多不便。
基于SmartFusion更新M3程序的IAP在線升級(jí)應(yīng)用方案正是針對(duì)這種現(xiàn)象提出的,用戶不但可以省下購(gòu)買額外調(diào)試工具的費(fèi)用,只需串口線、網(wǎng)線甚至是普通的電線即可。而且調(diào)試和更新程序的范圍不再局限于實(shí)驗(yàn)室,而是可以通過(guò)網(wǎng)絡(luò)通信方式實(shí)現(xiàn)遠(yuǎn)程升級(jí)和維護(hù)。
(2)方案比較
如今,很多使用單片機(jī)的初學(xué)者和用戶幾乎只使用ISP和IAP兩種方式來(lái)進(jìn)行器件的實(shí)驗(yàn)和開發(fā),相比傳統(tǒng)編程方法的不足,這兩種方式更具有優(yōu)越性。它們各自的工作原理和特點(diǎn)如表1所示。
對(duì)比以上表格可見,無(wú)論是在價(jià)格方面,還是在使用方面,IAP比ISP更具優(yōu)越性,因此,采用IAP在線升級(jí)程序更具有靈活性。
(3)IAP系統(tǒng)框圖
本IAP在線升級(jí)方案主要包含了控制臺(tái)程序(人機(jī)界面部分)、傳輸線(連接pc機(jī)和目標(biāo)板的橋梁)和目標(biāo)板(包含Cortex-M3處理核和LAP模塊),結(jié)構(gòu)框圖如圖2所示。整個(gè)系統(tǒng)的連接和操作相當(dāng)簡(jiǎn)單。
2.功能模塊介紹
本方案的設(shè)計(jì)主要是軟件方面的設(shè)計(jì),總共包含4個(gè)功能模塊,分別是Bootloader、IAP、Application和控制臺(tái)程序。其中IAP是本設(shè)計(jì)的核心之一,同時(shí)也展示了一種在線更新M3程序的方法。
(1)Bootloader模塊
Bootloader~序的功能主要是移動(dòng)或者裝載其他eNVM區(qū)域的鏡像程序進(jìn)入運(yùn)行位置,同時(shí)使M3進(jìn)入運(yùn)行或者調(diào)試狀態(tài)。如圖3所示,本程序在目標(biāo)板上電初始化后運(yùn)行,在進(jìn)入本程序后,Bootloader將會(huì)提示用戶輸入命令,根據(jù)用戶輸入命令自動(dòng)引導(dǎo)程序進(jìn)入相應(yīng)的鏡像程序執(zhí)行。
(2)IAP模塊
IAP(hl-Application Programming)指Mcu可以在系統(tǒng)中獲取新代碼并對(duì)自己重新編程,即可用程序來(lái)改變程序。相比ISP,IAP的實(shí)現(xiàn)相對(duì)要復(fù)雜一些。
在實(shí)現(xiàn)LAP功能時(shí),單片機(jī)內(nèi)部至少要有兩塊存儲(chǔ)區(qū),一般一塊被稱為BOOT區(qū),另外一塊被稱為存儲(chǔ)區(qū)。單片機(jī)上電運(yùn)行在BOOT區(qū),如果有外部改寫程序的條件滿足,則對(duì)存儲(chǔ)區(qū)的程序進(jìn)行改寫操作。如果外部改寫程序的條件不滿足,程序指針跳到存儲(chǔ)區(qū),開始執(zhí)行放在存儲(chǔ)區(qū)的程序。
如圖4所示,假如現(xiàn)在處于IAP升級(jí)狀態(tài),此時(shí)IAP程序?qū)⒈蝗垦b載到SRAM區(qū),M3完全在SRAM區(qū)運(yùn)行IAP,然后將通過(guò)UART/SPI/MAC將dat文件寫入存儲(chǔ)XE(Application),從而實(shí)現(xiàn)了IAP功能。
(3)Application模塊
Application程序是用戶自定義的程序,根據(jù)用戶的不同需求和硬件的搭配而不同,因此用戶可以隨意改動(dòng)這部分程序,但是,編寫AppHcafion程序的時(shí)候還是有一定的要求,因?yàn)樾枰獙?shí)現(xiàn)串口遠(yuǎn)程更新程序,那就要求在程序運(yùn)行過(guò)程中能夠識(shí)別串口發(fā)送過(guò)來(lái)的更新命令,讓用戶板自動(dòng)復(fù)位進(jìn)入Bootloader程序,然后引導(dǎo)程序進(jìn)入LAP程序?qū)崿F(xiàn)遠(yuǎn)程升級(jí)。因此,對(duì)Application程序有以下幾點(diǎn)要求:
·需要初始化定時(shí)狗,定時(shí)喂狗,最好是啟動(dòng)一個(gè)定時(shí)器,在定時(shí)中斷程序中定時(shí)喂狗,同時(shí)此定時(shí)器也可給其它模塊復(fù)用:
·初始化串口為中斷模式,默認(rèn)采用串口0,配置波特率為230400bps,14位字節(jié)的位深度觸發(fā)方式:
·在串口中斷服務(wù)程序中,添加IAP升級(jí)協(xié)議。
(4)控制臺(tái)模塊
控制臺(tái)程序是采用VC6.0開發(fā)的小程序,結(jié)合前面三個(gè)程序模塊的設(shè)計(jì),控制臺(tái)程序可以輕松取代編程器和下載器等調(diào)試工具,實(shí)現(xiàn)中央控制、遠(yuǎn)程升級(jí)和維護(hù)目標(biāo)板的功能。管理人員只需將得到的更新程序dat文件的路徑導(dǎo)人控制臺(tái)模塊,然后點(diǎn)擊控制臺(tái)程序,即可完成IAP遠(yuǎn)程升級(jí)M3程序。
3.市場(chǎng)應(yīng)用
隨著軟件的不斷發(fā)展和壯大,以及信息技術(shù)的網(wǎng)絡(luò)化。很多已經(jīng)應(yīng)用在市面上的產(chǎn)品其軟件都沒(méi)能及時(shí)得到更新,與此同時(shí)暴露出來(lái)的漏洞也層出不窮。然而經(jīng)濟(jì)的全球化促使嵌入式產(chǎn)品、工控機(jī)等遍播全球,給產(chǎn)品的程序更新帶來(lái)重重阻礙。為此,IAP技術(shù)的實(shí)現(xiàn)將打破僵局,實(shí)現(xiàn)各個(gè)嵌入式產(chǎn)品得到遠(yuǎn)程軟件升級(jí),使其能夠適應(yīng)不同的應(yīng)用場(chǎng)合而及時(shí)得到軟件的更新。因此lAP技術(shù)的市場(chǎng)前景一片光芒。
本文介紹的IAp遠(yuǎn)程在線升級(jí)M3程序方案具有可執(zhí)行性高,性能可靠,以及降低開發(fā)商的開發(fā)成本等特點(diǎn)。在遠(yuǎn)程軟件更新方面具有很大的市場(chǎng)競(jìng)爭(zhēng)優(yōu)勢(shì)和開拓前景,可以為實(shí)現(xiàn)嵌入式產(chǎn)品網(wǎng)絡(luò)化的軟件更新、管理和維護(hù)提供一個(gè)理想的解決方案。
IAP技術(shù)的應(yīng)用很廣泛,以下為幾個(gè)應(yīng)用實(shí)例。如圖s所示,如果發(fā)現(xiàn)地下的煤礦瓦斯監(jiān)測(cè)系統(tǒng)需要添加新功能,那么此時(shí)可以利用IAP進(jìn)行升級(jí)。又比如圖6的集散型控制系統(tǒng),管理人員只需坐在辦公室即可控制和升級(jí)設(shè)備的程序,無(wú)需現(xiàn)場(chǎng)操作。
4.小結(jié)
本文主要介紹了一個(gè)IAP升級(jí)M3程序的解決方案。敬請(qǐng)關(guān)注周立功公司的網(wǎng)站www.zlgmcu.com以獲得更多的信息。我們有著一個(gè)接近30人的FPGA團(tuán)隊(duì)提供強(qiáng)有力的售后服務(wù)和,技術(shù)支持,解決用戶在產(chǎn)品使用和研發(fā)過(guò)程中遇到的困難。若有更多的需求可以與我們聯(lián)系,我們將會(huì)竭誠(chéng)為您服務(wù),并請(qǐng)關(guān)注下期的FPGA專題技術(shù)講座。



