亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        核電廠電氣柜的PIC單片機(jī)遠(yuǎn)程程序升級

        2018-01-02 08:40:06李永科
        設(shè)備管理與維修 2017年5期
        關(guān)鍵詞:機(jī)軟件下位存儲(chǔ)器

        李永科

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

        核電廠電氣柜的PIC單片機(jī)遠(yuǎn)程程序升級

        李永科

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

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

        PIC單片機(jī);遠(yuǎn)程程序升級;內(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)場下載程序,對于偏遠(yuǎn)地區(qū)的設(shè)備,不僅路途遠(yuǎn),而且耗時(shí)長。遠(yuǎn)程程序升級能夠很好地解決這一問題,它利用無線網(wǎng)絡(luò)將程序傳給現(xiàn)場設(shè)備,現(xiàn)場設(shè)備將新程序?qū)懭氤绦虼鎯?chǔ)器從而完成程序升級。可大幅減少升級所需的人力物力,降低升級費(fèi)用,縮短升級時(shí)間。

        1 遠(yuǎn)程程序升級的原理

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

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

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

        圖1 遠(yuǎn)程程序升級原理

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

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

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

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

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

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

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

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

        圖3 上位機(jī)軟件流程

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

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

        圖4 下位機(jī)軟件流程

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

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

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

        4 結(jié)論

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

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

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

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

        TM933

        B

        〔編輯 王永洲〕

        猜你喜歡
        機(jī)軟件下位存儲(chǔ)器
        靜態(tài)隨機(jī)存儲(chǔ)器在軌自檢算法
        發(fā)射機(jī)房監(jiān)控系統(tǒng)之下位機(jī)
        道岔監(jiān)測系統(tǒng)上位機(jī)軟件設(shè)計(jì)
        景洪電廠監(jiān)控系統(tǒng)下位機(jī)數(shù)據(jù)傳輸網(wǎng)絡(luò)改造
        圍觀黨“下位”,吐槽帝“登基”
        基于正交試驗(yàn)法的北斗用戶機(jī)軟件測試用例設(shè)計(jì)
        PCI-e高速數(shù)據(jù)采集卡的驅(qū)動(dòng)與上位機(jī)軟件設(shè)計(jì)
        電子器件(2015年5期)2015-12-29 08:43:12
        CAN總線并發(fā)通信時(shí)下位機(jī)應(yīng)用軟件設(shè)計(jì)
        存儲(chǔ)器——安格爾(墨西哥)▲
        基于Nand Flash的高速存儲(chǔ)器結(jié)構(gòu)設(shè)計(jì)
        国产麻豆剧传媒精品国产av| 国产激情久久久久久熟女老人| av资源在线永久免费观看| 开心五月激动心情五月| 蜜桃网站免费在线观看视频| 无码h黄肉3d动漫在线观看| 午夜一区欧美二区高清三区| 色欧美与xxxxx| 日韩成精品视频在线观看| 国产熟女自拍av网站| 天堂av在线美女免费| 亚洲国产成人久久三区| 久久精品99久久香蕉国产色戒 | 日本高清不卡一区二区三区| 深夜日韩在线观看视频| 亚洲女人毛茸茸粉红大阴户传播| 韩日午夜在线资源一区二区| 国产成人影院一区二区| 亚洲色欲色欲大片WWW无码| 国产一品二品三品精品久久| 国内久久婷婷六月综合欲色啪| 亚洲精品蜜夜内射| 天美麻花果冻视频大全英文版| 国内自拍偷拍亚洲天堂| 在线看不卡的国产视频| 日本一级特黄aa大片| 大地资源网高清在线播放| 精品国产午夜福利在线观看| 仙女白丝jk小脚夹得我好爽| 蜜臀久久久精品国产亚洲av| 色哟哟亚洲色精一区二区| 青青草原精品99久久精品66| 丰满人妻无套中出中文字幕| 日韩一本之道一区中文字幕| 亚洲av一二三四区四色婷婷| 在线播放a欧美专区一区| 亚洲处破女av一区二区| 蜜桃a人妻精品一区二区三区| 亚洲香蕉成人av网站在线观看| 精品一区二区三区在线观看视频| 宅宅午夜无码一区二区三区|