當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]摘要:介紹了ATMEGA128單片機(jī)應(yīng)用中的在線編程方法。給出了軟件IAP升級設(shè)計(jì)中應(yīng)注意的一些關(guān)鍵技術(shù),結(jié)合某市地鐵調(diào)度系統(tǒng)對IAP升級的可靠 性和保密性等問題

摘要:介紹了ATMEGA128單片機(jī)應(yīng)用中的在線編程方法。給出了軟件IAP升級設(shè)計(jì)中應(yīng)注意的一些關(guān)鍵技術(shù),結(jié)合某市地鐵調(diào)度系統(tǒng)對IAP升級的可靠 性和保密性等問題進(jìn)行了簡單的論述。 關(guān)鍵詞:IAP F[/b][b]lash bootloader 存儲器 遠(yuǎn)程升級 在線升級 閃速程序存儲器的編程方法常見的有以下幾種: (1)傳統(tǒng)的并行編程方法; (2)通過串行口進(jìn)行在線編程ISP?In System Programmability:對器件或電路甚至整個系統(tǒng)進(jìn)行現(xiàn)場升級或功能重構(gòu); (3)在運(yùn)行中,應(yīng)用程序控制下的應(yīng)用在線編程IAP?In Application Programming;IAP模式簡單地說就是在某一個section中運(yùn)行程序,同時(shí)對另一個section進(jìn)行擦除、讀取、寫入等操作。 ISP方式相對于傳統(tǒng)方式有了極大的進(jìn)步,它不需要將芯片從電路板上卸下就可對芯片進(jìn)行編程,減少了開發(fā)時(shí)間,簡化了產(chǎn)品制造流程,并大大降低了現(xiàn)場升級 的困難。而IAP方式是對芯片的編程處于應(yīng)用程序控制之下,對芯片的編程融入在通信系統(tǒng)當(dāng)中,通過INTERNET網(wǎng)絡(luò)來升級指定目標(biāo)芯片的軟件。 圖1 某城市地鐵調(diào)度指揮系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu) 隨著芯片技術(shù)的高速發(fā)展,各廠家相繼推出了自己的支持ISP/IAP編程模式的芯片,如美國ATMEL公司的ATMEGA128、 ATMEGA169,Silicon Storage Technology公司的SST89C54/58j等。其中美國ATMEL公司推出的ATMEGA128是基于AVR RISC的低功耗8位單片機(jī),最高工作頻率可達(dá)16MHz,具有128KB FLASH內(nèi)部存儲應(yīng)用器、4KB EEPROM和SRAM數(shù)據(jù)存儲空間,最大可達(dá)4096字節(jié)的獨(dú)立加密位的可選bootloader程序代碼區(qū),以及相應(yīng)的專門用來支持(IAP)操作的 操作控制寄存器SPMCR。近年來該型單片機(jī)以其優(yōu)良而穩(wěn)定的性能廣泛應(yīng)用于各種電子產(chǎn)品中。 1 利用ATMEGA128構(gòu)成的遠(yuǎn)程升級系統(tǒng) 1.1系統(tǒng)組成 圖1給出了某城市地鐵調(diào)度指揮系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)。該系統(tǒng)的網(wǎng)絡(luò)通信采用輪詢方式。 該系統(tǒng)主要設(shè)備包括若干個基臺站、主控單元、基站控制中心、語音交換單元。 各設(shè)備的主要功能為:基站臺用來接收車載臺的數(shù)字信令和語音信號;主控單元協(xié)調(diào)各子節(jié)點(diǎn)動作并監(jiān)視各子節(jié)點(diǎn)狀態(tài);基站控制中心既是主控單元的子節(jié)點(diǎn)又是各 基站臺的主節(jié)點(diǎn),輔助主控單元完成對各基站臺的控制,協(xié)調(diào)各基站臺動作,搜集各基站臺傳來的消息和監(jiān)視各基站臺狀態(tài);PCM交換單元在主控單元控制下完成 語音交換功能。 1.2 系統(tǒng)軟件IAP升級 在不影響整個系統(tǒng)正常運(yùn)行情況下,為實(shí)現(xiàn)對系統(tǒng)某個節(jié)點(diǎn)的軟件升級,可將要升級的程序代碼通過寫碼軟件轉(zhuǎn)換為系統(tǒng)信令,以透明傳輸?shù)姆绞絺鬏?下載到目 標(biāo)節(jié)點(diǎn)。本系統(tǒng)的信令格式采用表1所示的代碼幀格式。其中幀傳輸控制字節(jié)為5字節(jié),操作控制字節(jié)為4字節(jié),代碼數(shù)據(jù)為32字節(jié)。 表1 代碼幀格式 目的地址 源地址 字節(jié)長度 Y 下載目標(biāo)地址 控制字 RAMPZ ZH ZL 代碼數(shù)據(jù) 為保證代碼傳輸?shù)臏?zhǔn)確性,本系統(tǒng)采用反饋比對的方式,以監(jiān)控終端向基臺站的代碼傳輸為例,代碼由監(jiān)控終端傳輸?shù)交_站,基臺站收到代碼后,再反饋回監(jiān)控終 端。監(jiān)控終端將收到的代碼與發(fā)送的代碼作比較,比較結(jié)果一致時(shí)傳輸下一代碼幀,不一致時(shí)重復(fù)傳輸上一代碼幀。 系統(tǒng)根據(jù)代碼幀的下載目標(biāo)地址,自動尋址將代碼幀通過各級網(wǎng)絡(luò)節(jié)點(diǎn)下載到目標(biāo)節(jié)點(diǎn)。寫入代碼的位置原則上可在系統(tǒng)中的任何一點(diǎn)進(jìn)行,但考慮到實(shí)際情況,本 系統(tǒng)中只有兩個寫入點(diǎn)?顯示終端和監(jiān)控終端,寫入代碼時(shí)不影響系統(tǒng)的正常運(yùn)行。收到軟件升級消息的節(jié)點(diǎn)通過判斷代碼幀的控制字完成相應(yīng)的讀、寫、擦除等 操作,并且可根據(jù)不同的需求配置不同的控制字實(shí)現(xiàn)遠(yuǎn)程終端對目標(biāo)節(jié)點(diǎn)的各種資源的監(jiān)控。 例如要通過監(jiān)控終端升級基站1中ATMEGA128的軟件,則要在監(jiān)控終端中啟動寫碼軟件,將編譯完成的升級代碼按照表1所示的系統(tǒng)幀格式打包,依照代碼 在程序存儲區(qū)的先后次序依次發(fā)出。從圖1中可看出要通過監(jiān)控終端升級基站1中的軟件,還要經(jīng)由兩個中間節(jié)點(diǎn):主控單元和基站控制中心,其時(shí)序流程如圖2所 示。 首先,監(jiān)控終端發(fā)出一代碼幀到主控單元,主控單元根據(jù)代碼幀中的下載目標(biāo)地址判斷應(yīng)傳送的下一節(jié)點(diǎn)——基站控制中心。當(dāng)主控單元輪詢到基站控制中心時(shí),將 收到的代碼幀發(fā)送給基站控制中心。同樣,基站控制中心根據(jù)代碼幀中的下載目標(biāo)地址,將代碼幀下載并傳送到要升級的基站1的處理器ATMEGA128單片機(jī) 中。單片機(jī)接收到代碼幀后首先將此代碼幀回傳給基站控制中心,然后將程序跳轉(zhuǎn),運(yùn)行bootloader程序區(qū)段。此時(shí)應(yīng)用程序區(qū)段處于忙狀態(tài),運(yùn)行 bootloader程序區(qū)段的程序,根據(jù)代碼載入地址將程序代碼寫入應(yīng)用程序存儲區(qū)的正確位置,并在bootloader程序區(qū)段繼續(xù)運(yùn)行,等待后續(xù)到 達(dá)的代碼幀。而回傳的代碼幀同樣經(jīng)過兩級節(jié)點(diǎn)返回到監(jiān)控終端。監(jiān)控終端收到后與發(fā)送的代碼幀進(jìn)行比較,準(zhǔn)確無誤后方可傳送下一幀數(shù)據(jù),否則重發(fā)。 圖3給出了代碼寫入主程序流程圖。當(dāng)代碼幀下載到基站1的控制單片機(jī)ATMEGA128后,當(dāng)檢測到幀類型為升級代碼幀“Y”時(shí),觸發(fā)代碼升級程序,程序 由應(yīng)用程序區(qū)段跳轉(zhuǎn)至bootloader程序區(qū)段。在此區(qū)段可以對應(yīng)用程序區(qū)段進(jìn)行讀、寫等操作,同時(shí)接收通過USART串口不斷傳來的代碼幀。 在代碼開始寫入前,首先將存于EEPROM中的寫入操作開始標(biāo)志位置位,然后判斷操作控制字以檢測是要進(jìn)行哪一種操作。若是進(jìn)行寫入操作,則調(diào)用寫入操作 子程序。圖4給出了代碼寫入子程序流程圖。首先將代碼寫入緩沖區(qū),將要寫入的程序代碼的頭兩個字節(jié)讀入專用于IAP操作的數(shù)據(jù)存儲寄存器R0:R1,同時(shí) Z寄存器指針的低8位指向代碼將要寫到的指定緩沖區(qū)的位置。然后將SPMCR控制寄存器的SPMEN位置1,這樣這兩個字節(jié)的代碼就被寫入到緩沖區(qū)中指定 位置。寫下兩個字節(jié)時(shí)將Z寄存器指針加2,重復(fù)上述操作;依次進(jìn)行直到將代碼幀中的代碼數(shù)據(jù)全部寫入緩沖區(qū)。然后判斷寫入緩沖區(qū)的代碼是否寫滿?代碼計(jì)數(shù) 器是否為128。緩沖區(qū)寫滿后要執(zhí)行頁擦除操作。執(zhí)行頁擦除每次可擦除1頁(128words),將要擦除的頁地址存入Z寄存器高8位,將SPMCR控制 寄存器的SPMEN和PGERES位置1,擦除完畢后這兩位會被硬件清0。 執(zhí)行頁寫操作時(shí)每次只可寫入1頁,將Z寄存器指針指向要寫入的應(yīng)用程序區(qū)段代碼頁,將SPMCR控制寄存器的SPMEN和PGWRT位置1。當(dāng)寫完后這兩 位會被硬件清0同時(shí)頁緩沖區(qū)中內(nèi)容被清除。 升級代碼傳送全部完成后,監(jiān)控終端會發(fā)出一幀操作控制字為FF的代碼幀,升級節(jié)點(diǎn)收到后將存于EEPROM中的寫入操作開始標(biāo)志位置位清0。退出升級操 作,并由bootloader區(qū)段返回應(yīng)用程序區(qū)段,完成對該節(jié)點(diǎn)軟件的升級。 2 IAP升級可靠性和保密性的考慮 系統(tǒng)在進(jìn)行IAP升級過程中不免受到外界干擾,如系統(tǒng)突然掉電或線路故障等意外事故而導(dǎo)致代碼傳輸失敗的情況,此時(shí)要有一套可靠的軟硬件機(jī)制來保障IAP 升級的正常運(yùn)作,以下介紹本系統(tǒng)所采取的一些措施。 (1)消除傳輸過程中產(chǎn)生的誤碼 下載代碼的準(zhǔn)確性直接關(guān)系到系統(tǒng)能否正常運(yùn)行。本系統(tǒng)采用大回路比對的方式。這種方式雖然使升級過程時(shí)間加長,但可以保證代碼準(zhǔn)確無誤,并且回傳的代碼幀 同時(shí)可作為IAP升級的握手信號。當(dāng)然也可以采用CRC等其它方式解決。 (2)IAP升級過程中系統(tǒng)掉電情況分析 系統(tǒng)設(shè)計(jì)必須要避免系統(tǒng)掉電等類似情況所造成的系統(tǒng)運(yùn)行故障的發(fā)生,即使發(fā)生了也應(yīng)將損失降低到最低限度。在IAP升級過程中,可通過軟件方式解決。在應(yīng) 用程序區(qū)段,用第一條語句跳轉(zhuǎn)至bootloader區(qū)段,并在bootloader區(qū)段的程序中,檢驗(yàn)寫碼操作開始標(biāo)志位?此標(biāo)志位被寫入EEPROM 中。如未被置位,則跳轉(zhuǎn)至應(yīng)用程序區(qū)段繼續(xù)運(yùn)行應(yīng)用程序區(qū)段中的程序,否則繼續(xù)守候在bootloader區(qū)段直到升級完成。 (3)下載代碼的保密性 為防止沒有寫碼權(quán)限的用戶對代碼的操作,實(shí)際運(yùn)用中可對bootloader程序段加入權(quán)限校驗(yàn)程序。根據(jù)不同的節(jié)點(diǎn)設(shè)置了不同的加密碼,以及特權(quán)碼(供 系統(tǒng)設(shè)計(jì)或管理人員使用),并將密碼存入EEPROM中,以便隨時(shí)更改密碼。 該方案已成功應(yīng)用于上海地鐵調(diào)度指揮系統(tǒng)中,實(shí)現(xiàn)了基于ATMEGA128 IAP軟件的升級,并通過上述可靠性和保密性的設(shè)計(jì),使IAP軟件升級的可靠性得到了保證。通過該技術(shù)大大提高了系統(tǒng)的可維護(hù)性,減少了產(chǎn)品開發(fā)時(shí)間,簡 化了產(chǎn)品制造流程,并大大降低了現(xiàn)場升級的困難,實(shí)現(xiàn)了在不影響節(jié)點(diǎn)正常工作的情況下對該節(jié)點(diǎn)的軟件升級。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉