999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

核電廠電氣柜的PIC單片機遠程程序升級

2018-01-02 08:40:06李永科
設(shè)備管理與維修 2017年5期
關(guān)鍵詞:單片機程序

李永科

(海南核電有限公司,海南海口 570105)

核電廠電氣柜的PIC單片機遠程程序升級

李永科

(海南核電有限公司,海南海口 570105)

為降低單片機程序升級的難度,在不需要編程人員到現(xiàn)場的情況下完成新程序下載,以PIC18F258單片機為例,介紹一種單片機遠程程序升級的方法。上位機軟件將編譯器生成的16進制程序按規(guī)定協(xié)議編碼,由GPRS無線網(wǎng)絡(luò)發(fā)送給指定單片機,單片機接收到程序后按照協(xié)議解碼,通過內(nèi)部Flash擦寫功能完成對自身程序的升級。既能減少程序升級所需的成本,也適用于具有擦寫內(nèi)部Flash功能的其他單片機。

PIC單片機;遠程程序升級;內(nèi)部Flash擦寫

10.16621/j.cnki.issn1001-0599.2017.05.14

0 引言

隨著微電子行業(yè)的發(fā)展,以及工業(yè)化水平的不斷提高,許多系統(tǒng)終端設(shè)備需要定期更新程序以滿足人們?nèi)找嬖鲩L的需求。傳統(tǒng)的程序升級方法是編程人員到現(xiàn)場下載程序,對于偏遠地區(qū)的設(shè)備,不僅路途遠,而且耗時長。遠程程序升級能夠很好地解決這一問題,它利用無線網(wǎng)絡(luò)將程序傳給現(xiàn)場設(shè)備,現(xiàn)場設(shè)備將新程序?qū)懭氤绦虼鎯ζ鲝亩瓿沙绦蛏墶?纱蠓鶞p少升級所需的人力物力,降低升級費用,縮短升級時間。

1 遠程程序升級的原理

遠程程序升級是對可編程技術(shù)IAP的具體應(yīng)用,即在應(yīng)用程序正常運行情況下對另外一段程序存儲區(qū)進行讀寫操作,甚至可以控制對某段、某頁,甚至某個字節(jié)的讀寫操作。為數(shù)據(jù)存儲和固件的現(xiàn)場升級帶來了極大的靈活性,既可以利用單片機的串口接到電腦的RS232口,也可以通過現(xiàn)有的Internet或其他通訊方式很方便地實現(xiàn)遠端升級和維護。

不同的微控制器實現(xiàn)遠程程序升級包括2種方法,①內(nèi)嵌在應(yīng)用可編程IAP函數(shù)的單片機,如LPC系列ARM7,只需通過調(diào)用該函數(shù)就可以完成遠程程序升級;②不具備在應(yīng)用可編程函數(shù),但具有在運行時擦寫內(nèi)部程序存儲器(Flash)功能的單片機,如本文研究的PIC系列單片機PIC18F258,該款單片機是核電廠電氣控制機柜控制單元常用的芯片,主要優(yōu)勢是穩(wěn)定性好,符合核安全法規(guī)要求,需要將單片機存儲器的某段空間制作成引導區(qū),用于對其他存儲空間進行讀取、擦除、寫入操作,相當于重新編寫IAP函數(shù)。

當PIC單片機需要升級程序時,設(shè)計者將調(diào)試后編譯器生成的16進制程序代碼通過上位機軟件按照規(guī)定的協(xié)議編碼,然后將編碼后的數(shù)據(jù)包由無線調(diào)制解調(diào)器通過GPRS網(wǎng)絡(luò)發(fā)給與另1臺無線調(diào)制解調(diào)器相連的PIC單片機,通過UART口接收到的數(shù)據(jù)包按照協(xié)議解碼并臨時存儲到數(shù)據(jù)存儲器(RAM),再通過其他串行總線如SPI發(fā)送至外部存儲器保存。當全部程序接收完成后,在引導區(qū)程序的控制下,PIC單片機通過串行總線將外部存儲器中的待更新程序分批讀入RAM再寫入應(yīng)用程序區(qū),當程序全部更新完成后,復位單片機使其運行新的程序,自此遠程程序升級全部完成。遠程程序升級的原理(圖1)。

圖1 遠程程序升級原理

2 硬件系統(tǒng)設(shè)計

以PIC18F258為例設(shè)計遠程升級程序的硬件系統(tǒng),此款單片機具有1.5 KB RAM和32 KB Flash,因此在程序更新過程中需要外接存儲器臨時存放待更新的程序,選擇AT45DB161作為外部存儲器,該芯片具有16 MB存儲空間,采用SPI串行總線接口滿足本系統(tǒng)的設(shè)計要求,該系列的大容量版本廣泛用于制作SD卡。無線傳輸網(wǎng)絡(luò)采用GPRS網(wǎng)絡(luò),無線傳輸模塊采用摩托羅拉公司的G24模塊,該模塊在安裝手機卡后,由上、下位機通過RS232接口發(fā)送AT指令控制,利用GPRS或GSM網(wǎng)絡(luò)建立連接發(fā)送數(shù)據(jù),上位機通過MAX232芯片與G24通信。系統(tǒng)硬件原理(圖2)。

圖2 系統(tǒng)硬件原理

3 軟件系統(tǒng)設(shè)計

3.1 傳輸協(xié)議的設(shè)計

PIC單片機程序的準確傳輸是本設(shè)計的重點。編譯器生成的16進制文件包含程序和程序在Flash中的存儲地址,因此要將這2部分內(nèi)容準確地傳給下位機。由于較短的幀格式容易校驗,誤碼率低且出現(xiàn)錯誤后重新發(fā)送的時間較短,因此需要將源代碼進行拆分并通過數(shù)據(jù)幀發(fā)送程序地址和程序內(nèi)容。為驗證傳輸結(jié)果的正確性采用校驗和驗證接收到的數(shù)據(jù),每次接收到不同的幀時,下位機均需回復是否正確接收,如出現(xiàn)錯誤上位機會重新發(fā)送。本系統(tǒng)設(shè)計的上位機發(fā)送幀格式(表1),下位機回復幀格式(表2)。

3.2 上位機軟件設(shè)計

本系統(tǒng)上位機軟件采用C++語言編制,編譯環(huán)境為VC++ 6.0。上位機軟件的主要功能是將單片機編譯器生成的16進制程序代碼按照規(guī)定的協(xié)議進行編碼,并通過GPRS無線網(wǎng)絡(luò)將編碼后的數(shù)據(jù)包發(fā)給PIC單片機。由于PIC單片機數(shù)據(jù)存儲器容量較小,不能一次存儲全部待更新程序,因此要對源程序進行拆分發(fā)送,每個數(shù)據(jù)幀包括128字節(jié)的程序。上位機軟件主要包括系統(tǒng)初始化模塊、單片機程序編碼模塊和數(shù)據(jù)包發(fā)送模塊3部分。系統(tǒng)初始化模塊包括串口初始化和G24模塊初始化2部分,G24模塊的控制通過AT指令實現(xiàn)。本系統(tǒng)規(guī)定編碼后的數(shù)據(jù)包共分4種:起始幀、數(shù)據(jù)幀、結(jié)束幀和執(zhí)行幀。在編碼完成后上位機軟件就可以將要更新的程序逐一地發(fā)給下位機,且在每次發(fā)送數(shù)據(jù)包后,都要求下位機進行回應(yīng)以驗證數(shù)據(jù)傳輸?shù)恼_性。當數(shù)據(jù)傳輸錯誤時,下位機會向上位機發(fā)送錯誤幀以請求重新發(fā)送。上位機還會記錄程序更新的起始時間、終止時間、程序大小和數(shù)據(jù)包類型。上位機軟件流程見圖3。

圖3 上位機軟件流程

3.3 下位機軟件設(shè)計

本系統(tǒng)下位機軟件采用C語言編制,編譯環(huán)境為PICC。主要功能包括初始化系統(tǒng),使用G24模塊接收上位機傳來的數(shù)據(jù),對接收到的數(shù)據(jù)進行校驗,將每幀數(shù)據(jù)進行解碼,將代碼寫入Flash指定地址并復位單片機運行新程序。下位機軟件的總體流程(圖4)。

圖4 下位機軟件流程

下位機與上位機的無線傳輸通過G24模塊實現(xiàn),該模塊通過AT指令控制。在程序初始化時,為方便對接收數(shù)據(jù)的判斷,使用ATE0V0命令簡化 G24對每條指令的回復內(nèi)容。為了防止打錯電話等情況的發(fā)生,每次更新前先通過AT+CMGF指令短信通知 PIC單片機,再通過ATD+電話號碼建立數(shù)據(jù)連接,然后根據(jù)協(xié)議傳輸數(shù)據(jù)包,當數(shù)據(jù)全部傳輸完成后延時3 s時間,發(fā)送+++指令斷開網(wǎng)絡(luò)連接,之后使用ATH指令掛機,從而完成全部操作。

要實現(xiàn)PIC單片機在線擦寫Flash就要將下位機程序分為2部分:應(yīng)用程序和引導程序,引導程序要固定在Flash的某一特定存儲區(qū)內(nèi),以防誤擦除。PIC18F258共有32 K程序存儲器,地址空間為0000h~7fffh,復位向量地址0000h。本系統(tǒng)將地址5000h~7fffh的程序存儲區(qū)設(shè)定為引導程序存儲區(qū),用于在線擦寫Flash,其他應(yīng)用程序由編譯器自動分配地址,引導區(qū)地址可以根據(jù)引導程序的大小自行設(shè)置。程序更新主要分為準備階段和實施階段。準備階段是將上位機發(fā)來的分段程序解碼并存入外部存儲器,當程序全部傳完后準備階段結(jié)束。實施階段首先將要更新程序的Flash地址內(nèi)所有內(nèi)容擦除并確認該空間無數(shù)據(jù),然后將新的程序?qū)懭朐摰刂房臻g,最后復位單片機使其運行新的程序。PIC單片機在線擦寫Flash主要通過TBLPTRU,TBLPTRL,TBLPTRH,TABLAT,TBLWT的5個寄存器實現(xiàn)。寫Flash的順序為向TBLPTRU,TBLPTRL,TBLPTRH的3個寄存器賦值,確定程序在Flash中的地址;設(shè)置EECON1寄存器為0x90允許Flash編程;WREN寄存器設(shè)置為1允許寫Flash;TABLAT賦值向Flash中寫入的數(shù)據(jù),EECON2設(shè)置為0x55和0xAA,WR設(shè)置為1開始寫Flash;WREN和SWDTEN設(shè)置為0寫Flash結(jié)束。

表1 上位機編碼協(xié)議格式

表2 下位機編碼協(xié)議格式

4 結(jié)論

為了降低PIC單片機程序更新的難度,減少所需的人力物力,設(shè)計并實現(xiàn)一種核電廠配電柜常用的PIC單片機遠程程序升級的方法。該方法從編譯器獲得待更新程序,通過GPRS網(wǎng)絡(luò)使上位機與單片機建立點對點連接,然后用規(guī)定的數(shù)據(jù)格式將程序代碼傳給單片機,單片機先將分段程序存入外部存儲器,然后通過在線擦寫Flash的方法更新程序。為保證數(shù)據(jù)的可靠性,采用校驗和方法及特定的傳輸協(xié)議提高數(shù)據(jù)傳輸?shù)臏蚀_性。不僅適用于PIC單片機,也適用于具有在線擦寫Flash功能的單片機進行遠程程序升級。

[1]孫鑫,余安平.VC++深入詳解[M].北京:電子工業(yè)出版社,2006.

[2]李榮正,王誠杰,戴國銀.PIC單片機原理及應(yīng)用[M].北京:北京航空航天大學出版社,2010.

[3]李景峰,楊麗娜,潘恒.Visual C++串口通信技術(shù)詳解[M].北京:機械工業(yè)出版社,2010.

TM933

B

〔編輯 王永洲〕

猜你喜歡
單片機程序
基于單片機的SPWM控制逆變器的設(shè)計與實現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
試論我國未決羈押程序的立法完善
小議PLC與單片機之間的串行通信及應(yīng)用
電子制作(2018年12期)2018-08-01 00:48:04
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
基于單片機的平衡控制系統(tǒng)設(shè)計
電子制作(2017年19期)2017-02-02 07:08:27
創(chuàng)衛(wèi)暗訪程序有待改進
主站蜘蛛池模板: 91精品情国产情侣高潮对白蜜| 亚洲高清在线天堂精品| AV在线麻免费观看网站| 国产熟睡乱子伦视频网站 | 亚洲第一成年免费网站| 人妻丰满熟妇αv无码| 成人在线亚洲| 亚洲AⅤ无码国产精品| 亚洲无码精品在线播放| 五月激情综合网| 欧美成a人片在线观看| 国产尤物视频网址导航| 91视频99| 国产二级毛片| 日本精品中文字幕在线不卡| 亚洲天堂首页| 亚洲人成影视在线观看| 丝袜久久剧情精品国产| 国产嫖妓91东北老熟女久久一| 精品第一国产综合精品Aⅴ| 久久亚洲国产视频| 亚洲欧美在线看片AI| 国产无码精品在线播放| 99视频精品全国免费品| 中文字幕波多野不卡一区| 亚洲精品无码高潮喷水A| 色妞永久免费视频| 亚洲国产中文在线二区三区免| 国产精品三级专区| 国产精品永久久久久| 欧美自慰一级看片免费| 亚洲成人播放| 久久综合丝袜日本网| 国产一区二区色淫影院| 亚洲三级成人| 日韩色图在线观看| 亚洲欧洲自拍拍偷午夜色| 91偷拍一区| 中文字幕 91| 91人妻日韩人妻无码专区精品| 97视频免费在线观看| 青青青草国产| 97影院午夜在线观看视频| 欧美色图第一页| 国产激情无码一区二区APP| 国产青榴视频| 亚洲精品动漫| 精品伊人久久久大香线蕉欧美| 一级毛片免费播放视频| 69免费在线视频| 亚洲日韩高清在线亚洲专区| 一级毛片免费的| 天天躁狠狠躁| 亚洲成人一区二区三区| 免费三A级毛片视频| 精品91在线| 在线一级毛片| 欧美综合一区二区三区| 片在线无码观看| 欧美日韩北条麻妃一区二区| 免费a在线观看播放| 永久在线精品免费视频观看| 成人国产一区二区三区| 在线a网站| 在线看片中文字幕| 国产精品成人第一区| 国产成人精品亚洲日本对白优播| 免费不卡视频| 国产精品美女网站| 伊人网址在线| 一边摸一边做爽的视频17国产| 欧美日本在线一区二区三区| 日韩精品毛片| 曰AV在线无码| 国产午夜精品鲁丝片| 一级毛片在线播放| 夜夜操国产| 99re66精品视频在线观看| 免费一极毛片| 国产一在线观看| 99re66精品视频在线观看| 欧美怡红院视频一区二区三区|