快速升級(jí)電子系統(tǒng)機(jī)箱內(nèi)單片機(jī)軟件程序的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是關(guān)于對(duì)電子系統(tǒng)中的單片機(jī)采用串行異步通訊進(jìn)行軟件升級(jí)的方法。
【背景技術(shù)】
[0002]單片機(jī)又稱為單片微控制器,相當(dāng)于一個(gè)微型的計(jì)算機(jī),具有體積小、質(zhì)量輕、性價(jià)比高等特點(diǎn)。如今,單片機(jī)的使用領(lǐng)域已十分廣泛,如智能儀表、實(shí)時(shí)工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。在上述電子系統(tǒng)中,各部件間的計(jì)算機(jī)微控制芯片(單片機(jī))都需要進(jìn)行數(shù)據(jù)交換建立通訊聯(lián)系,使用串行通訊手段是其中一種重要、常用的通訊方式。串行通訊工作方式分為同步方式和異步方式兩種,在實(shí)際工作中,異步方式用得最多,包括三個(gè)常用的總線標(biāo)準(zhǔn):RS-232、RS-422、RS-485。單片機(jī)(Mircocontrollers)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器R0M、多種I/O 口和中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器等功能(某些還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器、SPI等電路)集成到一塊硅片上構(gòu)成一個(gè)小而完善的微型計(jì)算機(jī)。
[0003]目前,單片機(jī)的程序存貯器一般都由可編程的FLASH存貯器組成,相對(duì)于原來的SRAM存儲(chǔ)器,具有不揮發(fā)性、高密度、低功耗、快速讀取、在線可重寫等優(yōu)點(diǎn),可實(shí)現(xiàn)電子設(shè)備需求更改時(shí),不需更換設(shè)備上單片機(jī),只需重新改寫單片機(jī)FLASH內(nèi)的軟件程序即可。隨著電子系統(tǒng)的發(fā)展,對(duì)其外形尺寸、重量的需求越來越高,電子系統(tǒng)機(jī)箱小型化、易維護(hù)性、可靠性等需求日益增長(zhǎng)。機(jī)箱越小,勢(shì)必造成機(jī)箱內(nèi)的電路板越來越小,這也造成機(jī)箱內(nèi)的電路板拆卸、維護(hù)、維修造成不便。而一般而言,電子系統(tǒng)的維護(hù)、維修需要對(duì)系統(tǒng)內(nèi)的單片機(jī)FLASH內(nèi)的軟件程序進(jìn)行改寫升級(jí)即可,但電子系統(tǒng)的小型化,給單片機(jī)的軟件程序改寫升級(jí)工作帶來不便。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是針對(duì)電子系統(tǒng)內(nèi)單片機(jī),實(shí)現(xiàn)不開箱、在線升級(jí)的方法及裝置,以解決現(xiàn)有電子系統(tǒng)機(jī)箱內(nèi)單片機(jī)軟件程序需開箱改寫升級(jí)的不足之處,提供一種直觀簡(jiǎn)單,設(shè)計(jì)流程短,可靠性高,不需打開電子系統(tǒng)機(jī)箱,通過串行異步通訊接口快速升級(jí)電子系統(tǒng)機(jī)箱內(nèi)單片機(jī)軟件程序的方法。
[0005]為了達(dá)到上述目的,本發(fā)明提供的一種快速升級(jí)電子系統(tǒng)機(jī)箱內(nèi)單片機(jī)軟件程序的方法,其特征在于包括如下步驟:其特征在于包括如下步驟:以帶有串行通訊接口的PC機(jī)為串行異步通訊軟件程序升級(jí)的上位機(jī),以電子系統(tǒng)機(jī)箱內(nèi)單片機(jī)作為串行異步通訊軟件程序升級(jí)的下位機(jī),二者通過標(biāo)準(zhǔn)的RS-232/RS-422/RS485接口進(jìn)行程序軟件數(shù)據(jù)的串行異步通訊傳輸;上位機(jī)和下位機(jī)中設(shè)有串口數(shù)據(jù)接收處理模塊、數(shù)據(jù)發(fā)送模塊構(gòu)成串行異步通訊數(shù)據(jù)傳輸程序軟件,串行異步通訊數(shù)據(jù)傳輸程序軟件根據(jù)工作流程需求,向上位機(jī)和下位機(jī)發(fā)送緩沖區(qū)分時(shí)發(fā)送串口數(shù)據(jù)幀信息,通過串口通訊模塊發(fā)給下位機(jī)和上位機(jī),上位機(jī)和下位機(jī)收到接收緩沖區(qū)串口數(shù)據(jù)幀信息后,串口數(shù)據(jù)接收處理模塊判斷上位機(jī)和下位機(jī)接收緩沖區(qū)接收到的串口數(shù)據(jù)幀信息是否有效,下位機(jī)中單片機(jī)串口數(shù)據(jù)接收處理模塊檢查flash存儲(chǔ)區(qū)域軟件程序數(shù)據(jù)校驗(yàn)和與收到軟件程序數(shù)據(jù)校驗(yàn)和是否一致,若為真則向上位機(jī)返回校驗(yàn)一致回令,采用緩存數(shù)組A1、Bi雙緩存存儲(chǔ)數(shù)據(jù)信息,若為假則向上位機(jī)返回校驗(yàn)不一致回令;有效串口數(shù)據(jù)幀通過接收緩沖區(qū)賦值給下位機(jī)中單片機(jī)內(nèi)緩存數(shù)組Ai,緩存數(shù)組Ai下標(biāo)變量Ni自加1,將與通訊幀協(xié)議一致的數(shù)組字串存入緩存數(shù)組Bi,再通過下位機(jī)發(fā)送緩沖器和串口數(shù)據(jù)發(fā)送模塊,向上位機(jī)返回接收成功數(shù)據(jù);下位機(jī)升級(jí)接收軟件程序數(shù)據(jù)包完成后,將下位機(jī)單片機(jī)閃存FLASH內(nèi)程序待存放區(qū)域擦除,然后將升級(jí)軟件程序數(shù)據(jù)包寫入FLASH內(nèi)程序待存放區(qū)域。
[0006]本發(fā)明相比于現(xiàn)有技術(shù)具有如下有益效果。
[0007]結(jié)構(gòu)模式直觀簡(jiǎn)單,設(shè)計(jì)流程短。本發(fā)明以上位機(jī)軟件升級(jí)設(shè)備PC機(jī)作為串行異步通訊的上位機(jī),以下位機(jī)子系統(tǒng)機(jī)箱內(nèi)單片機(jī)作為串行異步通訊的下位機(jī),二者通過標(biāo)準(zhǔn)的RS-232/RS-422/RS485接口和串口通訊電路連接組成串行異步通訊數(shù)據(jù)傳輸裝置,結(jié)構(gòu)模式直觀簡(jiǎn)單,設(shè)計(jì)流程短。
[0008]程序?qū)哟畏置?,易綜合。本發(fā)明在上位機(jī)和下位機(jī)中設(shè)有串口數(shù)據(jù)接收處理模塊、數(shù)據(jù)發(fā)送模塊構(gòu)成串行異步通訊數(shù)據(jù)傳輸程序軟件,串行異步通訊數(shù)據(jù)傳輸程序軟件根據(jù)工作流程需求,向上位機(jī)和下位機(jī)發(fā)送緩沖區(qū)分時(shí)發(fā)送串口數(shù)據(jù)幀信息,通過串口通訊模塊發(fā)給下位機(jī)和上位機(jī),上位機(jī)和下位機(jī)接收緩沖區(qū)接收到串口數(shù)據(jù)幀信息后,串口數(shù)據(jù)接收處理模塊判斷上位機(jī)和下位機(jī)接收緩沖區(qū)接收到的串口數(shù)據(jù)幀信息是否有效,程序?qū)哟畏置?,易綜合。
[0009]可靠性高,能夠在通訊時(shí)序、數(shù)據(jù)幀格式上保證通訊傳輸數(shù)據(jù)實(shí)時(shí)性、正確性。本發(fā)明在串行異步通訊數(shù)據(jù)傳輸中,上位機(jī)、下位機(jī)根據(jù)工作流程需求分時(shí)發(fā)送、接收數(shù)據(jù)信息,采用緩存數(shù)組A1、Bi雙緩存存儲(chǔ)數(shù)據(jù)信息,所使用數(shù)據(jù)延時(shí)最短,提高了異步串行通訊數(shù)據(jù)傳輸中的正確率及實(shí)時(shí)性,減少了通訊數(shù)據(jù)傳輸?shù)难訒r(shí),確保電子系統(tǒng)中計(jì)算機(jī)工作的高可靠性、穩(wěn)定性,進(jìn)而提高了計(jì)算機(jī)之間傳輸數(shù)據(jù)的實(shí)時(shí)性、正確性和可靠性。即使在通訊鏈路異常情況下出現(xiàn)錯(cuò)誤數(shù)據(jù)時(shí),也能保證通訊數(shù)據(jù)傳輸數(shù)據(jù)中計(jì)算機(jī)采用正確數(shù)據(jù)。
【附圖說明】
[0010]下圖結(jié)合附圖和實(shí)施例進(jìn)一步說明本發(fā)明,但并不因此將本發(fā)明限制在所屬的實(shí)施例范圍之中。
[0011]圖1是本發(fā)明串行異步通訊數(shù)據(jù)傳輸裝置的原理圖。
[0012]圖2是圖1的串行異步通訊發(fā)送接收數(shù)據(jù)的原理框圖。
[0013]圖3是本發(fā)明的串行異步通訊串口數(shù)據(jù)升級(jí)程序流程。
【具體實(shí)施方式】
[0014]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明。其中,附圖構(gòu)成本申請(qǐng)一部分,并于本發(fā)明的實(shí)施例一起用于闡述本發(fā)明的原理。
[0015]參閱圖1、圖2。在以下描述的實(shí)施例中,一種快速升級(jí)電子系統(tǒng)機(jī)箱內(nèi)單片機(jī)軟件程序的方法,以帶有串行通訊接口的PC機(jī)為串行異步通訊軟件程序升級(jí)的上位機(jī),以電子系統(tǒng)機(jī)箱內(nèi)單片機(jī)作為串行異步通訊軟件程序升級(jí)的下位機(jī),二者通過標(biāo)準(zhǔn)的RS-232/RS-422/RS485接口進(jìn)行程序軟件數(shù)據(jù)的串行異步通訊傳輸。上位機(jī)微控制芯片和上位機(jī)微控制芯片為計(jì)算機(jī)微控制芯片,二者通過標(biāo)準(zhǔn)的RS-232/RS-422/RS485接口和串口信號(hào)轉(zhuǎn)換電路連接組成串行異步通訊數(shù)據(jù)傳輸裝置,上位機(jī)軟件升級(jí)設(shè)備PC機(jī)通過串口信號(hào)轉(zhuǎn)換電路,向下位機(jī)電子系統(tǒng)機(jī)箱內(nèi)單片機(jī)發(fā)送升級(jí)軟件程序數(shù)據(jù)。上位機(jī)軟件升級(jí)設(shè)備PC機(jī)和下位機(jī)電子系統(tǒng)機(jī)箱內(nèi)單片機(jī)均具有串行異步通訊數(shù)據(jù)收發(fā)功能。在上位機(jī)和下位機(jī)中設(shè)有串口數(shù)據(jù)接收處理模塊、數(shù)據(jù)發(fā)送模塊構(gòu)成的串行異步通訊數(shù)據(jù)傳輸程序軟件;在串行異步通訊數(shù)據(jù)傳輸中,串行異步通訊數(shù)據(jù)傳輸程序軟件根據(jù)工作流程需求,上位機(jī)和下位機(jī)發(fā)送緩沖區(qū)分時(shí)發(fā)送串口數(shù)據(jù)幀信息,通過串口通訊模塊發(fā)給下位機(jī)和上位機(jī),上位機(jī)和下位機(jī)收到接收緩沖區(qū)串口數(shù)據(jù)幀信息后,串口數(shù)據(jù)接收處理模塊判斷上位機(jī)和下位機(jī)接收緩沖區(qū)接收到的串口數(shù)據(jù)幀信息是否有效,下位機(jī)中單片機(jī)串口數(shù)據(jù)接收處理模塊檢查FLASH存儲(chǔ)區(qū)域軟件程序數(shù)據(jù)校驗(yàn)和與收到軟件程序數(shù)據(jù)校驗(yàn)和是否一致,若為真則向上位機(jī)返回校驗(yàn)一致回令,采用緩存數(shù)組A1、Bi雙緩存存儲(chǔ)數(shù)據(jù)信息,若為假則向上位機(jī)返回校驗(yàn)不一致回令;有效串口數(shù)據(jù)幀通過接收緩沖區(qū)賦值給下位機(jī)中單片機(jī)內(nèi)緩存數(shù)組Ai,緩存數(shù)組Ai下標(biāo)變量Ni自加1,將與通訊幀協(xié)議一致的數(shù)組字串存入緩存數(shù)組Bi,再通過下位機(jī)發(fā)送緩沖器和串口數(shù)據(jù)發(fā)送模塊,向上位機(jī)返回接收成功數(shù)據(jù);下位機(jī)升級(jí)接收軟件程序數(shù)據(jù)包完成后,將下位機(jī)單片機(jī)閃存FLASH內(nèi)程序待存放區(qū)域擦除,然后將升級(jí)軟件程序數(shù)據(jù)包寫入FLASH內(nèi)程序待存放區(qū)域。在串行異步通訊中,上位機(jī)將升級(jí)軟件程序數(shù)據(jù)打包,存入發(fā)送