您現(xiàn)在的位置:
中國(guó)傳動(dòng)網(wǎng)
>
技術(shù)頻道
>
應(yīng)用方案
>
基于ARM和GPRS的嵌入式遠(yuǎn)程IAP在配變監(jiān)控終端上的實(shí)現(xiàn)
時(shí)間:2006-12-14 11:39:00來(lái)源:wangsl
IAP(In-Application Programming)是應(yīng)用在Flash程序存儲(chǔ)器的一種編程模式。即在應(yīng)用程序控制下,對(duì)程序某段存儲(chǔ)空間進(jìn)行讀取、擦除、寫(xiě)入操作。與ISP操作非常相似,具有在線編程功能。且克服了ISP不足之處,它可以在應(yīng)用程序正常運(yùn)行的情況下對(duì)另外一段程序Flash進(jìn)行讀寫(xiě)操作,甚至可以控制對(duì)某段、某頁(yè)、甚至某個(gè)字節(jié)的讀寫(xiě)操作。這為數(shù)據(jù)存儲(chǔ)和固件的現(xiàn)場(chǎng)升級(jí)帶來(lái)了極大的靈活性。
3 IAP功能的硬件設(shè)計(jì)
由以上分析可知,使用IAP對(duì)Flash存儲(chǔ)器進(jìn)行編程是合適的方案。下面介紹一種基于GPRS的遠(yuǎn)程IAP系統(tǒng)方案,系統(tǒng)框圖如圖1所示。
AT45DB041B為4MB串行Flash存儲(chǔ)器,兼有ROM的掉電數(shù)據(jù)保存和RAM的讀寫(xiě)速度,最快支持20MHz的時(shí)鐘頻率,擦寫(xiě)次數(shù)達(dá)10000次,內(nèi)配置了兩個(gè)264BSRAM緩沖器,使得對(duì)主存儲(chǔ)體的編程可以連續(xù)進(jìn)行,省去編程等待時(shí)間;AT45DB041B采用CASON-8封裝,支持2.5~3.6V低電壓,操作功耗低,支持模式0和3的SPI總線接口,與MCU接口簡(jiǎn)單,穩(wěn)定可靠。非常適用于數(shù)字語(yǔ)音、圖像、程序代碼和數(shù)據(jù)的存儲(chǔ)應(yīng)用中。
GPRS模塊使用Siemens公司生產(chǎn)的MC35i,雙頻GPRS/GSM模塊(EGSM900/1800MHz或EGSM900/1900MHz),內(nèi)置TCP/IP,與標(biāo)準(zhǔn)AT指令完全兼容;其設(shè)計(jì)開(kāi)發(fā)符合ETSI GSM Phase2+標(biāo)準(zhǔn)。
4 IAP功能的軟件設(shè)計(jì)
4.1 IAP編程接口
LPC2114的IAP程序位于Boot扇區(qū),復(fù)位后整個(gè)Boot扇區(qū)被映射到存儲(chǔ)地址0x7FFFE000~0x7FFFFFFF處,而IAP的入口地址為0x7FFFFFF0,程序?yàn)門humb代碼。IAP編程命令使用RAM的最高端32B,所以應(yīng)用程序應(yīng)保留這部分RAM。在使用IAP擦除/編程操作過(guò)程中,片內(nèi)Flash存儲(chǔ)器不可訪問(wèn)。當(dāng)用戶應(yīng)用程序運(yùn)行時(shí),用戶Flash區(qū)域的中斷向量有效,所以在調(diào)用Flash擦除/寫(xiě)IAP之前,用戶應(yīng)當(dāng)禁止中斷或確保用戶中斷向量在RAM中有效和中斷處理程序位于RAM中。IAP代碼不使用或禁止中斷。
4.2 IAP編程C語(yǔ)言實(shí)現(xiàn)
對(duì)于在應(yīng)用編程,LPC2114是通過(guò)寄存器RO中的字指針指向RAM存儲(chǔ)單元包含的命令代碼和參數(shù)來(lái)調(diào)用IAP程序。IAP命令的結(jié)果返回到寄存器R1所指向的RAM空間。
LPC2114的IAP調(diào)用可使用如下C語(yǔ)言代碼調(diào)用:
(1)定義IAP程序入口地址。
# define IAP_ LOCATION 0x7FFFFFF1
(2)定義數(shù)據(jù)結(jié)構(gòu)來(lái)傳遞IAP命令表和結(jié)果給IAP程序。
unsigned long Command[5];//輸入?yún)?shù)最多為5個(gè)
unsigned long Result[2];//輸出參數(shù)最多為2個(gè)
(3)定義函數(shù)類型指針,函數(shù)包括兩個(gè)參數(shù),無(wú)返回值。
typedef void (*IAP) (unsigned int[ ],unsigned int[ ]);
IAP iap_entry;//定義函數(shù)指針
(4)設(shè)置函數(shù)指針。
iap_entry = (IAP)IAp_ LOCATION;
(5)使用下面的語(yǔ)句來(lái)調(diào)用IAP。
iap_entry (command, result);
本系統(tǒng)是基于LPC2114工程模板上進(jìn)行移植,在ASD1.2嵌入式軟件開(kāi)發(fā)平臺(tái)上用C語(yǔ)言直接調(diào)用IAP程序代碼實(shí)現(xiàn)IAP編程,IAP的命令碼、狀態(tài)碼和命令詳解以及IAP功能的詳細(xì)應(yīng)用見(jiàn)文獻(xiàn)[2]。
5 LPC2114的IAP遠(yuǎn)程升級(jí)在用電現(xiàn)場(chǎng)監(jiān)控終端的應(yīng)用
終端軟件系統(tǒng)的設(shè)計(jì)包括用戶引導(dǎo)程序設(shè)計(jì)(與Boot裝載程序有區(qū)別,前者由用戶設(shè)計(jì),后者由芯片生產(chǎn)商設(shè)計(jì)并固化)和應(yīng)用程序的設(shè)計(jì)。它們?cè)贚PC2114中的入口地址不同,終端正常復(fù)位后,則首先執(zhí)行用戶引導(dǎo)程序,由用戶引導(dǎo)程序決定是否啟動(dòng)IAP升級(jí)程序;應(yīng)用程序完成終端的各種功能,包括新版本應(yīng)用程序升級(jí)包的下載。
5.1 終端用戶引導(dǎo)程序設(shè)計(jì)
終端用戶引導(dǎo)程序是基于文件系統(tǒng)的思想來(lái)設(shè)計(jì)的,用戶引導(dǎo)程序設(shè)計(jì)成單獨(dú)的程序,裝載于LPC2114的Flash扇區(qū)起始位置處,終端重新啟動(dòng)時(shí),LPC2114總是從0地址開(kāi)始讀取指令并執(zhí)行,將IAP升級(jí)代碼安排到用戶引導(dǎo)部分,實(shí)驗(yàn)證明這種安排是合理的。如果采用應(yīng)用程序調(diào)用的方式執(zhí)行IAP命令編程Flash,當(dāng)Flash編程遇到失敗時(shí),整個(gè)系統(tǒng)就完全崩潰,應(yīng)用程序代碼被破壞,再無(wú)能力遠(yuǎn)程更新。采用本文的升級(jí)方式可完全避免這種情況的出現(xiàn),用戶引導(dǎo)程序出廠后固化,而外圍存儲(chǔ)器AT45DB041B中始終保存一份最新的應(yīng)用程序代碼備份,引導(dǎo)程序有能力多次編程Flash扇區(qū),確保應(yīng)用程序代碼的完整性,增加了升級(jí)的可靠性。
終端用戶引導(dǎo)程序運(yùn)行執(zhí)行后,首先檢查應(yīng)用程序升級(jí)標(biāo)志和版本號(hào),當(dāng)升級(jí)標(biāo)志被置位且出現(xiàn)新版本號(hào)時(shí),MCU通過(guò)SPI接口從AT45DB041B中讀取應(yīng)用程序升級(jí)代碼,然后調(diào)用IAP命令執(zhí)行Flash編程,實(shí)現(xiàn)對(duì)應(yīng)用程序的升級(jí),當(dāng)升級(jí)任務(wù)完成后,清除升級(jí)標(biāo)志和更新應(yīng)用程序版本,最后轉(zhuǎn)移到應(yīng)用程序入口并執(zhí)行應(yīng)用程序代碼,引導(dǎo)過(guò)程流程圖如圖2所示。
5.2 終端應(yīng)用程序設(shè)計(jì)
終端應(yīng)用程序負(fù)責(zé)完成終端的各項(xiàng)功能,其中包括接收前置機(jī)的遠(yuǎn)程升級(jí)命令。終端接收到前置機(jī)的遠(yuǎn)程升級(jí)命令后,應(yīng)用程序?qū)⑸?jí)包按照幀的方式通過(guò)GPRS Modem從前置機(jī)下載到終端,并保存到終端的AT45DB041B存儲(chǔ)器,下載成功后置位升級(jí)標(biāo)志和記錄升級(jí)包版本號(hào)以備用戶引導(dǎo)程序升級(jí)。
在升級(jí)包的下載過(guò)程中可看成是數(shù)據(jù)傳輸過(guò)程,應(yīng)用程序可同步完成終端的其他各種功能,不影響終端的正常運(yùn)行。應(yīng)用程序升級(jí)包下載成功后,終端進(jìn)行必要的現(xiàn)場(chǎng)保存并主動(dòng)復(fù)位,從而執(zhí)行用戶引導(dǎo)程序升級(jí)的最后一步——Flash編程。另外也可以在終端里配置升級(jí)時(shí)間,避開(kāi)終端任務(wù)重負(fù)荷階段,使得升級(jí)過(guò)程對(duì)終端正常工作影響降低到最低程度。應(yīng)用程序升級(jí)包的下載流程如圖3所示。
5.3 通信協(xié)議的設(shè)計(jì)
GPRS與Internet連接建立后,進(jìn)人數(shù)據(jù)透明傳輸階段。本系統(tǒng)在完善的TCP/IP機(jī)制基礎(chǔ)上設(shè)計(jì)用戶應(yīng)用層協(xié)議。為實(shí)現(xiàn)對(duì)系統(tǒng)某個(gè)終端的系統(tǒng)軟件升級(jí),前置機(jī)將要升級(jí)的程序代碼轉(zhuǎn)化為寫(xiě)終端升級(jí)代碼幀,接入Internet到GPRS網(wǎng)絡(luò),透明傳輸下載到目標(biāo)終端[8]。參照通信規(guī)約,自定義了前置機(jī)升級(jí)請(qǐng)求幀、升級(jí)代碼數(shù)據(jù)幀和終端回應(yīng)幀,幀格式如表2所示。
在通信協(xié)議的幀格式中,三種數(shù)據(jù)幀的前五項(xiàng)相同,起始字符表示幀的開(kāi)始,固定用68H表示;終端邏輯地址在通信時(shí)用來(lái)唯一識(shí)別一個(gè)通信的最終發(fā)起端和接收端,它包括地市區(qū)碼和終端地址碼兩部分;主站地址在通信時(shí)用來(lái)唯一識(shí)別通信的主站端對(duì)象;控制碼表示要求執(zhí)行的操作,8AH表示升級(jí)代碼下載操作;數(shù)據(jù)長(zhǎng)度則表示此項(xiàng)直到校驗(yàn)符的前項(xiàng)的所有數(shù)據(jù)字節(jié)數(shù);廠商編號(hào)是與本終端匹配前置機(jī)的唯一編號(hào);權(quán)限等級(jí)和密碼應(yīng)用于前置機(jī)升級(jí)請(qǐng)求幀和升級(jí)代碼數(shù)據(jù)幀中,權(quán)限和密碼保護(hù)機(jī)制保證升級(jí)幀的可靠性;在升級(jí)請(qǐng)求幀中還包括升級(jí)軟件版本號(hào),總長(zhǎng)度和總校驗(yàn)和,是升級(jí)文件的相關(guān)信息;在升級(jí)代碼數(shù)據(jù)幀中還包括當(dāng)前的幀序號(hào)和本幀的數(shù)據(jù)內(nèi)容,數(shù)據(jù)長(zhǎng)度固定為792B,不足補(bǔ)OOH;在終端回應(yīng)幀中給出錯(cuò)誤信息和下一幀序號(hào),以便前置機(jī)的后續(xù)傳輸處理;檢驗(yàn)碼CS和幀尾是三種共同的部分,校驗(yàn)碼是幀頭與校驗(yàn)碼之間字節(jié)累加和,幀尾固定用16H表示。
6 遠(yuǎn)程IAP應(yīng)用的可靠性探討
終端應(yīng)用程序的升級(jí)過(guò)程不免要受到環(huán)境的干擾,如終端掉電、異常的終端復(fù)位、網(wǎng)絡(luò)通信阻塞等故障,都會(huì)導(dǎo)致終端遠(yuǎn)程升級(jí)包下載或者IAP編程的失敗,因此必須提供一套可靠的軟硬件機(jī)制來(lái)保證終端IAP過(guò)程的正常工作。本系統(tǒng)中采取的措施[7]如下。
(1)終端掉電及異常復(fù)位處理 由于終端的停電及電網(wǎng)波動(dòng)等干擾引起的終端復(fù)位都將中止終端的升級(jí)過(guò)程,導(dǎo)致升級(jí)失敗。本系統(tǒng)采用下載和IAP過(guò)程完全分離的升級(jí)方式,IAP部分位于用戶引導(dǎo)程序部分,不被擦除,AT45DB041B中總是備份最新版本終端應(yīng)用程序,所以任何階段操作失敗都能保證終端的正常工作。另外,在終端配備蓄電池和充電電路,在終端主電源來(lái)電時(shí)對(duì)蓄電池充電,使得終端掉電時(shí)也可正常運(yùn)行,遠(yuǎn)程IAP過(guò)程更為可靠。
(2)遠(yuǎn)程通信的誤碼處理數(shù)據(jù)傳輸過(guò)程產(chǎn)生的誤碼。通用的、有效的解決辦法就是用CRC循環(huán)冗余效驗(yàn)和重傳機(jī)制。數(shù)據(jù)校驗(yàn)碼校驗(yàn)正確后存入AT45DB041B,錯(cuò)誤時(shí)返回錯(cuò)誤編碼發(fā)和幀序號(hào)請(qǐng)求重發(fā),直到檢測(cè)到結(jié)束幀。結(jié)束幀數(shù)據(jù)長(zhǎng)度不夠,用00填充,不影響校驗(yàn)碼。
(3)網(wǎng)絡(luò)阻塞、故障處理 由于地形和環(huán)境因素的影響,GPRS網(wǎng)絡(luò)在遠(yuǎn)程IAP的通信過(guò)程中可能出現(xiàn)阻塞或斷開(kāi)的情況,這時(shí)終端和前置機(jī)對(duì)無(wú)回應(yīng)幀采用延時(shí)重發(fā)的機(jī)制,連續(xù)五次不成功則斷開(kāi)GPRS網(wǎng)并重新連接,終端保存升級(jí)的下載斷點(diǎn)信息,以待網(wǎng)絡(luò)恢復(fù)后繼傳數(shù)據(jù)。
7 結(jié)束語(yǔ)
該設(shè)計(jì)方案基本解決了本系統(tǒng)的遠(yuǎn)程代碼升級(jí)的困難,提高了系統(tǒng)軟件維護(hù)的方便性,加快了新產(chǎn)品的上市時(shí)間,也為用戶提供了更安全、快捷的服務(wù),提高了產(chǎn)品搶占市場(chǎng)的競(jìng)爭(zhēng)力。用GPRS網(wǎng)絡(luò)為傳輸通道,對(duì)接入Internet困難的邊遠(yuǎn)地區(qū)的現(xiàn)場(chǎng)用電監(jiān)控終端的遠(yuǎn)程維護(hù)提出了一種全新的、可靠的設(shè)計(jì)方案。
來(lái)源:電氣應(yīng)用
標(biāo)簽:
上一篇:智能閥門定位器在石油化工裝...
傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為傳動(dòng)網(wǎng)(www.wangxinlc.cn)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>一機(jī)多能,才是真性價(jià)比!維宏NK290M正...
2025-12-19
聚焦場(chǎng)景,功能進(jìn)化:維宏型鋼套料全面...
2025-12-19
2025-12-12
全自動(dòng)石灰活性度化驗(yàn)設(shè)備 電腦石灰活性...
2025-12-12
380VAC/540VDC大功率無(wú)刷驅(qū)動(dòng)器
2025-12-10
推薦專題
更多>