基于stm32mcu的控制器開機界面的串口通信方法
【技術領域】
[0001]本發(fā)明涉及一種串口通信的生成方法,具體的說,涉及了一種基于STM32MCU的控制器開機界面的串口通信方法。
【背景技術】
[0002]串口通信基于硬件電路設計常用的有RS232、RS485、RS422三種,根據(jù)不同的需求選擇不同的串口通信方式?;谲浖O計最常用的最普遍的就是Modbus串口通信協(xié)議,但是由于發(fā)電機組通訊行業(yè)有著其普通而又特殊的地方,常見的監(jiān)控數(shù)據(jù)使用Modbus串口通信協(xié)議即可,而發(fā)電機組開機界面有著其特殊的地方,數(shù)據(jù)相對繁多,不同客戶定制,不同液晶顯示,在做通信的過程中,使用通用的通信方法不免在這上面花費大量的時間精力去整理處理,而有的時候還經常出錯。
[0003]為了解決以上存在的問題,人們一直在尋求一種理想的技術解決方案。
【發(fā)明內容】
[0004]本發(fā)明的目的是針對現(xiàn)有技術的不足,提供一種操作統(tǒng)一、靈活,易于實現(xiàn)的基于STM32MCU的控制器開機界面的串口通信方法。
[0005]為了實現(xiàn)上述目的,本發(fā)明所采用的技術方案是:一種基于STM32MCU的控制器開機界面的串口通信方法,該方法包括以下步驟:
步驟1:建立開機界面數(shù)據(jù)模型
開機界面數(shù)據(jù)模型是一個具有行列的二維字節(jié)型數(shù)組,以點陣液晶驅動掃描BMP位圖的方式生成;
步驟2:建立Flash的操作模型
此操作模型包括解鎖Flash、頁擦除Flash、寫開機界面數(shù)據(jù)、加鎖Flash,首先解鎖Flash,接著擦除所需要用到的Flash的內存空間,然后寫入開機界面數(shù)據(jù),最后加鎖Flash ;
步驟3:建立通信數(shù)據(jù)包,所述通信數(shù)據(jù)包包括操作Flash、寫開機界面數(shù)據(jù);
設功能碼09H為操作Flash的功能碼,功能碼0為操作解鎖Flash的功能碼,功能碼1是頁擦除Flash的功能碼,功能碼2為加鎖Flash的功能碼;
操作Flash包括發(fā)送和接收,其中,操作Flash的數(shù)據(jù)包格式為,順次排列的模塊地址、功能碼09H、Flash地址、操作功能碼、開機界面數(shù)據(jù)、校驗碼;在解鎖或加鎖Flash時,F(xiàn)lash地址為開機頁面存儲在Flash的起始地址;
設功能碼10H是寫開機界面數(shù)據(jù)的功能碼;
寫開機界面數(shù)據(jù)包括發(fā)送和接收,其中,寫開機界面數(shù)據(jù)的數(shù)據(jù)包格式為,順次排列的模塊地址、功能碼10H、Flash地址、寫的字節(jié)數(shù)、開機界面數(shù)據(jù)、校驗碼;寫的字節(jié)數(shù)可以自定義,最大為256 ;
步驟4:通信實現(xiàn)在控制器的Flash預設一個保存開機界面的緩存區(qū),上位機的監(jiān)控器與控制器通信,從控制器獲取步驟3的通信數(shù)據(jù)包,運行步驟2。
[0006]本發(fā)明相對現(xiàn)有技術具有突出的實質性特點和顯著進步,具體的說,本發(fā)明通過構建開機界面數(shù)據(jù)模型、STM32MCU Flash的操作模型和通訊數(shù)據(jù)包,具備能像使用通用通信協(xié)議一樣使用基于STM32MCU的控制器的通信方法,具有操作規(guī)范、靈活、簡單的優(yōu)點。
【具體實施方式】
[0007]下面通過【具體實施方式】,對本發(fā)明的技術方案做進一步的詳細描述。
[0008]—種基于STM32MCU的控制器開機界面的串口通信方法,該方法包括以下步驟: 步驟1:建立開機界面數(shù)據(jù)模型
開機界面數(shù)據(jù)模型是一個具有行列的二維字節(jié)型數(shù)組,以點陣液晶驅動掃描BMP位圖的方式生成;
步驟2:建立Flash的操作模型
此操作模型包括解鎖Flash、頁擦除Flash、寫開機界面數(shù)據(jù)、加鎖Flash,首先解鎖Flash,接著擦除所需要用到的Flash的內存空間,然后寫入開機界面數(shù)據(jù),最后加鎖Flash ;
步驟3:建立通信數(shù)據(jù)包,所述通信數(shù)據(jù)包包括操作Flash、寫開機界面數(shù)據(jù);
設功能碼09H為操作Flash的功能碼,功能碼0為操作解鎖Flash的功能碼,功能碼1是頁擦除Flash的功能碼,功能碼2為加鎖Flash的功能碼;
操作Flash包括發(fā)送和接收,其中,操作Flash的數(shù)據(jù)包格式為,順次排列的模塊地址、功能碼09H、Flash地址、操作功能碼、開機界面數(shù)據(jù)、校驗碼;在解鎖或加鎖Flash時,F(xiàn)lash地址為開機頁面存儲在Flash的起始地址;
設功能碼10H是寫開機界面數(shù)據(jù)的功能碼;
寫開機界面數(shù)據(jù)包括發(fā)送和接收,其中,寫開機界面數(shù)據(jù)的數(shù)據(jù)包格式為,順次排列的模塊地址、功能碼10H、Flash地址、寫的字節(jié)數(shù)、開機界面數(shù)據(jù)、校驗碼;寫的字節(jié)數(shù)可以自定義,最大為256 ;
步驟4:通信實現(xiàn)
在控制器的Flash預設一個保存開機界面的緩存區(qū),上位機的監(jiān)控器與控制器通信,從控制器獲取步驟3的通信數(shù)據(jù)包,運行步驟2。
[0009]本發(fā)明方法,從通信數(shù)據(jù)包首先解鎖Flash,接著擦除所需要用到的Flash的內存空間,即保存開機界面的緩存區(qū),它是以一頁為單位的,如果開機界面的數(shù)據(jù)不是一頁的整數(shù)倍,但這個緩存區(qū)一定要大于等于開機界面數(shù)據(jù)的內存大小,然后寫開機界面數(shù)據(jù),最后加鎖Flash,防止Flash數(shù)據(jù)更改,起到安全保護的功能。寫開機界面數(shù)據(jù)的發(fā)送與接收都有嚴格的通信格式,防止錯誤的發(fā)生,規(guī)范操作,對于整個通信方法的移植性更好。
[0010]最后應當說明的是:以上實施例僅用以說明本發(fā)明的技術方案而非對其限制;盡管參照較佳實施例對本發(fā)明進行了詳細的說明,所屬領域的普通技術人員應當理解:依然可以對本發(fā)明的【具體實施方式】進行修改或者對部分技術特征進行等同替換;而不脫離本發(fā)明技術方案的精神,其均應涵蓋在本發(fā)明請求保護的技術方案范圍當中。
【主權項】
1.一種基于STM32MCU的控制器開機界面的串口通信方法,其特征在于:該方法包括以下步驟: 步驟1:建立開機界面數(shù)據(jù)模型 開機界面數(shù)據(jù)模型是一個具有行列的二維字節(jié)型數(shù)組,以點陣液晶驅動掃描BMP位圖的方式生成; 步驟2:建立Flash的操作模型 此操作模型包括解鎖Flash、頁擦除Flash、寫開機界面數(shù)據(jù)、加鎖Flash,首先解鎖Flash,接著擦除所需要用到的Flash的內存空間,然后寫入開機界面數(shù)據(jù),最后加鎖Flash ; 步驟3:建立通信數(shù)據(jù)包,所述通信數(shù)據(jù)包包括操作Flash、寫開機界面數(shù)據(jù); 設功能碼09H為操作Flash的功能碼,功能碼0為操作解鎖Flash的功能碼,功能碼1是頁擦除Flash的功能碼,功能碼2為加鎖Flash的功能碼; 操作Flash包括發(fā)送和接收,其中,操作Flash的數(shù)據(jù)包格式為,順次排列的模塊地址、功能碼09H、Flash地址、操作功能碼、開機界面數(shù)據(jù)、校驗碼;在解鎖或加鎖Flash時,F(xiàn)lash地址為開機頁面存儲在Flash的起始地址; 設功能碼10H是寫開機界面數(shù)據(jù)的功能碼; 寫開機界面數(shù)據(jù)包括發(fā)送和接收,其中,寫開機界面數(shù)據(jù)的數(shù)據(jù)包格式為,順次排列的模塊地址、功能碼10H、Flash地址、寫的字節(jié)數(shù)、開機界面數(shù)據(jù)、校驗碼;寫的字節(jié)數(shù)可以自定義,最大為256 ; 步驟4:通信實現(xiàn) 在控制器的Flash預設一個保存開機界面的緩存區(qū),上位機的監(jiān)控器與控制器通信,從控制器獲取步驟3的通信數(shù)據(jù)包,運行步驟2。
【專利摘要】本發(fā)明提供一種基于STM32MCU的控制器開機界面的串口通信方法,該方法包括,步驟1:以點陣液晶驅動掃描BMP位圖的方式生成開機界面數(shù)據(jù)模型;步驟2:建立Flash的操作模型,包括解鎖Flash、頁擦除Flash、寫開機界面數(shù)據(jù)、加鎖Flash,首先解鎖Flash,擦除所需要用到的Flash的內存空間,然后寫入開機界面數(shù)據(jù),最后加鎖Flash;步驟3:建立通信數(shù)據(jù)包,包括操作Flash、寫開機界面數(shù)據(jù);操作Flash包括發(fā)送和接收,寫開機界面數(shù)據(jù)包括發(fā)送和接收;步驟4:在控制器的Flash預設一個保存開機界面的緩存區(qū),上位機的監(jiān)控器與控制器通信,從控制器獲取步驟3的通信數(shù)據(jù)包,運行步驟2。
【IPC分類】G06F9/44
【公開號】CN105320524
【申請?zhí)枴緾N201510782410
【發(fā)明人】李朝暉, 楊新征, 馬雷, 高昌盛, 宋耀軍
【申請人】鄭州眾智科技股份有限公司
【公開日】2016年2月10日
【申請日】2015年11月16日