當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]本文以對(duì)Phlilips LPC213x系列MCU進(jìn)行軟件升級(jí)為例,研究如何利用ISP技術(shù)與Internet結(jié)合,解決從串口進(jìn)行軟件升級(jí)的問題。

    在系統(tǒng)編程技術(shù)(In-System Programming,簡(jiǎn)稱ISP技術(shù))是Lattice半導(dǎo)體公司首先提出的一種使產(chǎn)品在設(shè)計(jì)、制造過程中的每個(gè)環(huán)節(jié),甚至在賣給最終用戶以后,具有對(duì)其器件、電路板或整個(gè)電子系統(tǒng)的邏輯和功能隨時(shí)進(jìn)行組態(tài)或重組能力的最新技術(shù)。ISP技術(shù)消除了傳統(tǒng)技術(shù)的某些限制和連接弊病,有利于在板設(shè)計(jì)、制造與編程。ISP硬件靈活且易于軟件修改,便于設(shè)計(jì)開發(fā)。由于ISP器件可以像任何其他器件一樣,在印刷電路板PCB上處理,因此編程ISP器件不需要專門編程器和較復(fù)雜的流程。在實(shí)際應(yīng)用中,有許多產(chǎn)品需要大批量的生產(chǎn)及現(xiàn)場(chǎng)維護(hù)升級(jí),利用嵌入系統(tǒng)開發(fā)的ISP應(yīng)用程序可以方便用戶進(jìn)行批量生產(chǎn)和系統(tǒng)升級(jí)。本文以對(duì)Phlilips LPC213x系列MCU進(jìn)行軟件升級(jí)為例,研究如何利用ISP技術(shù)與Internet結(jié)合,解決從串口進(jìn)行軟件升級(jí)的問題。


1 LPC213x Flash Bootloader介紹
    LPC213x Bootloader(啟動(dòng)裝載程序)控制復(fù)位后的初始化操作,并提供Flash ISP編程接口。它駐留在Flash的上8KB,只能讀不能寫。由于Philips公司并沒有提供Boot ROM內(nèi)部是如何實(shí)現(xiàn)ISP功能的,因此必須根據(jù)Philips公司提供的流程和協(xié)議來編寫上位機(jī)程序。

1.1 通信協(xié)議
   
所有的ISP命令都由上位機(jī)通過串口以單個(gè)ASCII字符串的形式發(fā)送。字符串應(yīng)當(dāng)以回車(CR)和/或換行(LF)控制字符作為結(jié)束,多余的將被忽略。所有ISP的響應(yīng)都以“<CR><LF>”結(jié)束的字符串形式發(fā)送。數(shù)據(jù)以UU編碼(將3字節(jié)的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成4字節(jié)可打印的ASCII字符集)的格式發(fā)送和接收。發(fā)送器發(fā)送20個(gè)UU編碼行之后發(fā)進(jìn)校驗(yàn)和,任何UU編碼行的長(zhǎng)度都不應(yīng)超過61字節(jié)。接收器將該校驗(yàn)和與接收數(shù)據(jù)的校驗(yàn)和相比較,若匹配,則接收器響應(yīng)“0K<CR><LF>”,并等待下一次發(fā)送;若不匹配,則接收器響應(yīng)“RESEND<CR><LF>”,發(fā)送器應(yīng)當(dāng)將字節(jié)重新發(fā)送。

1.2 ISP命令
    ISP命令處理程序所接受的常用命令如表1所列。

    每個(gè)命令有具體的狀態(tài)代碼,只有當(dāng)接收到的命令執(zhí)行完畢后,處理程序才通過串口發(fā)送CMD_SUCCESS;這時(shí)上位機(jī)才能發(fā)送新的ISP命令,但“設(shè)置波特率”、“寫RAM”、“讀存儲(chǔ)器”和“運(yùn)行”命令除外。上位機(jī)就是通過串口發(fā)送這些相關(guān)的ISP命令以及程序的UU編碼,完成程序的下載。


2 上位機(jī)軟件實(shí)現(xiàn)
2.1 應(yīng)用程序的網(wǎng)上下載
   
要實(shí)現(xiàn)軟件自動(dòng)升級(jí),首先必須將MCU應(yīng)用程序從網(wǎng)上下載到PC機(jī),然后再利用ISP通過串口把程序下載到MCU中。程序的下載可以采用HTTP方式,也可以采用FTP方式。在此是利用:MFC提供的FTP應(yīng)用程序接口實(shí)現(xiàn)程序下載,并把程序保存在指定位置。為避免每次升級(jí)程序時(shí),都要從網(wǎng)上下載,引入了計(jì)數(shù)器計(jì)算下載次數(shù);只在第~次升級(jí)時(shí),才從網(wǎng)上下載保存。

2.2 ISP的實(shí)現(xiàn)
   
LPC213x要調(diào)用Boot ROM中的ISP應(yīng)用程序接口,必須進(jìn)入ISP模式。這要求在系統(tǒng)復(fù)位時(shí),PO.14引腳為低電平。實(shí)際應(yīng)用中可以采用兩種方法使系統(tǒng)進(jìn)入ISP模式:一是通過開關(guān)控制P0.14引腳為低電平;二是通過串口的控制引腳控制晶體管的導(dǎo)通和截止,從而設(shè)置PO.14為低電平。第二種方法具有通用性,有些MCU進(jìn)入ISP模式要求的可能是引腳的不同脈沖序列,即必須滿足一定的脈沖時(shí)序要求(如MSP430系列的MCU)。在此采用的是第二種方法:把串口的DTR引腳連接到P0.14,串口的RTS引腳連接到LPC213x的復(fù)位引腳;通過在系統(tǒng)運(yùn)行時(shí)控制RTS引腳發(fā)出復(fù)位脈沖,DTR的引腳設(shè)置為低電平,控制晶體管的導(dǎo)通和截止,使系統(tǒng)強(qiáng)制進(jìn)入ISP模式;進(jìn)入ISP模式后,根據(jù)上位機(jī)傳來的ISP命令,調(diào)用Boot ROM固件中相應(yīng)的子程序自動(dòng)完成必要的操作。圖l描述了LPC2132從復(fù)位進(jìn)入ISP模式的流程。

    具體上位機(jī)要實(shí)現(xiàn)該程序下載,須完成如下工作:
    ①將從網(wǎng)上下載的Intel HEX格式的應(yīng)用程序打開,從文件中解析出要下載的程序文件,并把它轉(zhuǎn)換為二進(jìn)制格式。
    ②向下位機(jī)發(fā)送同步驗(yàn)證字符“?”(0x3F),供自動(dòng)確定波特率,并等待響應(yīng)。自動(dòng)波特率程序根據(jù)自身頻率測(cè)量接收到的同步字符的位時(shí)間,并對(duì)串口波特率發(fā)生器進(jìn)行編程;它還向下位機(jī)發(fā)送一個(gè)ASCII字符串(Synchro-nized<CR><LF>)。作為響應(yīng),下位機(jī)應(yīng)發(fā)送接收到的ASCII字符串(Synchrtmized<CR><LF>);上位機(jī)通過觀察接收到的字符來驗(yàn)證是否同步。如果同步驗(yàn)證沒有通過,則上位機(jī)重新發(fā)送同步驗(yàn)證字符“?”,再一次進(jìn)行同步驗(yàn)證。通過驗(yàn)證后,向下位機(jī)發(fā)送“OK<CR><LF>”;下位機(jī)通過發(fā)送正在運(yùn)行部分的晶振頻率(單位為kHz)作為響應(yīng);在接收到晶振頻率后再向下位機(jī)發(fā)送“OK<CR><LF>”,最終完成同步驗(yàn)證。
    ③向下位機(jī)發(fā)送讀器件ID命令“J<CR><LF>”,接收響應(yīng)信息,并提取出芯片的ID編號(hào);根據(jù)芯片的ID,設(shè)置相關(guān)數(shù)據(jù)(Flash和RAM大小)。
    ④向下位機(jī)發(fā)送擦除命令將Flash ROM分段擦除。
    ⑤向下位機(jī)發(fā)送寫命令“W<起始地址><字節(jié)數(shù)><CR><LF>”。
    ⑥對(duì)轉(zhuǎn)換后的二進(jìn)制程序進(jìn)行UU編碼,并計(jì)算校驗(yàn)和,每發(fā)送20行發(fā)送一次校驗(yàn)和;然后向下位機(jī)發(fā)送準(zhǔn)備寫操作扇區(qū)的命令“P<起始扇區(qū)><結(jié)束扇區(qū)><CR><LF>”和“C<Flash地址><RAM地址><CR><LF>”命令,下位機(jī)接收到命令后進(jìn)行程序的寫入。
    ⑦關(guān)閉串口,釋放系統(tǒng)資源,以便進(jìn)行下一次系統(tǒng)升級(jí)。


結(jié)語
  
通過本設(shè)計(jì)構(gòu)成的阿絡(luò)在線下載系統(tǒng),已在人民幣防偽鑒別儀的生產(chǎn)和售后維護(hù)中得到了實(shí)際應(yīng)用。只需一臺(tái)能夠上網(wǎng)的電腦和一條下載線,就能對(duì)目標(biāo)板里單片機(jī)的程序進(jìn)行修改,大大方便了工程技術(shù)人員,提高了工作效率,降低了成本。

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

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

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

倫敦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ū)動(dòng) 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)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

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

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

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

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

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

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

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

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

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

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

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