基于CAN總線的礦用傳感器遠(yuǎn)程在線升級(jí)功能設(shè)計(jì)
發(fā)布時(shí)間:2021-10-21 22:45
針對(duì)目前煤礦井下礦用傳感器現(xiàn)場(chǎng)程序升級(jí)困難問(wèn)題,設(shè)計(jì)了一種基于CAN總線和IAP功能的程序遠(yuǎn)程更新方法,擺脫了嵌入式軟件升級(jí)對(duì)編程器的依賴。通過(guò)對(duì)STM32F103微處理器的Flash編程方法和程序啟動(dòng)引導(dǎo)方式進(jìn)行設(shè)計(jì),實(shí)現(xiàn)了煤礦井下礦用傳感器的在線升級(jí)。介紹了整體實(shí)現(xiàn)框架、升級(jí)程序結(jié)構(gòu)以及流程,詳細(xì)闡述了IAP程序更新原理。通過(guò)現(xiàn)場(chǎng)應(yīng)用驗(yàn)證可實(shí)現(xiàn)礦用總線傳感器程序在線更新。
【文章來(lái)源】:煤礦安全. 2020,51(08)北大核心
【文章頁(yè)數(shù)】:4 頁(yè)
【部分圖文】:
系統(tǒng)組成結(jié)構(gòu)圖
礦用傳感器主要由STM32F103Rx[7]處理器、穩(wěn)壓電源電路、晶振電路、復(fù)位電路、CAN總線通信電路、ADC轉(zhuǎn)換外圍電路、紅外遙控電路及LEC顯示電路組成。礦用傳感器結(jié)構(gòu)如圖2,STM32F103為Cortex-M3[8]內(nèi)核,具有成本低、功耗低、高性能、實(shí)時(shí)性好等特點(diǎn)。片上資源比較豐富,包括1路CAN通信接口,5個(gè)USART接口、JTAG調(diào)試口,4個(gè)16位定時(shí)器、3路ADC通道等;片內(nèi)具有256KB的Flash和48KB的SRAM。3 在線升級(jí)技術(shù)
STM32F103RCT6的片內(nèi)Flash寫保護(hù)以扇區(qū)為單位,每扇區(qū)4 KB,根據(jù)Flash容量不同,頁(yè)大小分為1 KB和2 KB,本文用處理器頁(yè)大小為2 KB。也就是對(duì)FLASH的編程寫入以2 KB為單位,本設(shè)計(jì)傳輸協(xié)議制定也以此為單位進(jìn)行數(shù)據(jù)傳輸。處理器片內(nèi)256 K的Flash劃分為3個(gè)區(qū)域:第1區(qū)域用來(lái)存儲(chǔ)Bootloader程序,包括Flash操作相關(guān)程序、中斷向量,硬件驅(qū)動(dòng)、通信協(xié)議驅(qū)動(dòng)等;第2區(qū)域用來(lái)存儲(chǔ)正常運(yùn)行的固件程序;第3區(qū)域存儲(chǔ)固件升級(jí)程序,片上FLASH存儲(chǔ)器分區(qū)如圖3。根據(jù)礦用傳感器固件大小進(jìn)行容量劃分,礦用傳感器固件為28 KB,相對(duì)于256 K的Flash有很大的預(yù)留空間,每一區(qū)域中間可以預(yù)留一定的空白區(qū)域,防止區(qū)域程序重疊。通過(guò)修改STM32F103的Bootloader程序或工程的鏈接腳本可以修改程序存儲(chǔ)的起始地址。礦用傳感器在出廠時(shí)是將Bootloader配置程序燒寫到Flash的第1部分,并對(duì)該區(qū)域進(jìn)行讀寫保護(hù),防止升級(jí)過(guò)程中的誤操作把Bootloader程序擦除。第1區(qū)域引導(dǎo)程序只能通過(guò)下載器編程;第2區(qū)域的固件應(yīng)用程序通過(guò)在線方式編程或下載器編程;第3區(qū)域升級(jí)更新程序通過(guò)IAP在線方式編程。當(dāng)?shù)V用傳感器需要進(jìn)行固件升級(jí)時(shí),用戶固件程序跳轉(zhuǎn)到Bootloader程序,Bootloader程序不需要對(duì)舊版本的用戶固件程序進(jìn)行擦除,直接將新版本的用戶固件程序通過(guò)CAN總線接口下載到第3區(qū)域的Flash中,通過(guò)將中斷向量表從新映射,使Bootloader程序跳轉(zhuǎn)到第3區(qū)域進(jìn)行運(yùn)行,從而完成固件程序的更新。
【參考文獻(xiàn)】:
期刊論文
[1]基于STM32的高可靠IAP在線燒寫設(shè)計(jì)[J]. 李光學(xué),郭燕紅,李超,岳宗帥,宋茜. 電子測(cè)量技術(shù). 2018(17)
[2]基于STM32系列電子產(chǎn)品的IAP研究[J]. 康燕萍,程小輝,黃鵬. 現(xiàn)代電子技術(shù). 2017(22)
[3]基于CAN總線節(jié)點(diǎn)的遠(yuǎn)程在線升級(jí)系統(tǒng)設(shè)計(jì)[J]. 王建斌,江冰. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用. 2015(07)
[4]基于Cortex-M3的引導(dǎo)程序分析與設(shè)計(jì)[J]. 朱傳宏,沈嚴(yán),顏云松,徐軍. 計(jì)算機(jī)與數(shù)字工程. 2012(10)
[5]STM32用戶基于IAP的程序更新技術(shù)[J]. 李興鶴,蔡亮,宋吉波,王鵬,金辛海,時(shí)迎亮. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用. 2012(01)
[6]CAN總線應(yīng)用層協(xié)議的研究與實(shí)現(xiàn)[J]. 王邦繼,劉慶想,李相強(qiáng),張健穹. 計(jì)算機(jī)工程與應(yīng)用. 2011(20)
[7]基于STM32單片機(jī)的RS485總線分布式數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J]. 彭剛,徐慶江,張崇金,王中南. 伺服控制. 2011(02)
[8]基于CAN總線的煤礦安全監(jiān)測(cè)監(jiān)控系統(tǒng)的設(shè)計(jì)[J]. 張濤,薛鵬騫,蔣靜坪. 煤炭科學(xué)技術(shù). 2007(06)
本文編號(hào):3449862
【文章來(lái)源】:煤礦安全. 2020,51(08)北大核心
【文章頁(yè)數(shù)】:4 頁(yè)
【部分圖文】:
系統(tǒng)組成結(jié)構(gòu)圖
礦用傳感器主要由STM32F103Rx[7]處理器、穩(wěn)壓電源電路、晶振電路、復(fù)位電路、CAN總線通信電路、ADC轉(zhuǎn)換外圍電路、紅外遙控電路及LEC顯示電路組成。礦用傳感器結(jié)構(gòu)如圖2,STM32F103為Cortex-M3[8]內(nèi)核,具有成本低、功耗低、高性能、實(shí)時(shí)性好等特點(diǎn)。片上資源比較豐富,包括1路CAN通信接口,5個(gè)USART接口、JTAG調(diào)試口,4個(gè)16位定時(shí)器、3路ADC通道等;片內(nèi)具有256KB的Flash和48KB的SRAM。3 在線升級(jí)技術(shù)
STM32F103RCT6的片內(nèi)Flash寫保護(hù)以扇區(qū)為單位,每扇區(qū)4 KB,根據(jù)Flash容量不同,頁(yè)大小分為1 KB和2 KB,本文用處理器頁(yè)大小為2 KB。也就是對(duì)FLASH的編程寫入以2 KB為單位,本設(shè)計(jì)傳輸協(xié)議制定也以此為單位進(jìn)行數(shù)據(jù)傳輸。處理器片內(nèi)256 K的Flash劃分為3個(gè)區(qū)域:第1區(qū)域用來(lái)存儲(chǔ)Bootloader程序,包括Flash操作相關(guān)程序、中斷向量,硬件驅(qū)動(dòng)、通信協(xié)議驅(qū)動(dòng)等;第2區(qū)域用來(lái)存儲(chǔ)正常運(yùn)行的固件程序;第3區(qū)域存儲(chǔ)固件升級(jí)程序,片上FLASH存儲(chǔ)器分區(qū)如圖3。根據(jù)礦用傳感器固件大小進(jìn)行容量劃分,礦用傳感器固件為28 KB,相對(duì)于256 K的Flash有很大的預(yù)留空間,每一區(qū)域中間可以預(yù)留一定的空白區(qū)域,防止區(qū)域程序重疊。通過(guò)修改STM32F103的Bootloader程序或工程的鏈接腳本可以修改程序存儲(chǔ)的起始地址。礦用傳感器在出廠時(shí)是將Bootloader配置程序燒寫到Flash的第1部分,并對(duì)該區(qū)域進(jìn)行讀寫保護(hù),防止升級(jí)過(guò)程中的誤操作把Bootloader程序擦除。第1區(qū)域引導(dǎo)程序只能通過(guò)下載器編程;第2區(qū)域的固件應(yīng)用程序通過(guò)在線方式編程或下載器編程;第3區(qū)域升級(jí)更新程序通過(guò)IAP在線方式編程。當(dāng)?shù)V用傳感器需要進(jìn)行固件升級(jí)時(shí),用戶固件程序跳轉(zhuǎn)到Bootloader程序,Bootloader程序不需要對(duì)舊版本的用戶固件程序進(jìn)行擦除,直接將新版本的用戶固件程序通過(guò)CAN總線接口下載到第3區(qū)域的Flash中,通過(guò)將中斷向量表從新映射,使Bootloader程序跳轉(zhuǎn)到第3區(qū)域進(jìn)行運(yùn)行,從而完成固件程序的更新。
【參考文獻(xiàn)】:
期刊論文
[1]基于STM32的高可靠IAP在線燒寫設(shè)計(jì)[J]. 李光學(xué),郭燕紅,李超,岳宗帥,宋茜. 電子測(cè)量技術(shù). 2018(17)
[2]基于STM32系列電子產(chǎn)品的IAP研究[J]. 康燕萍,程小輝,黃鵬. 現(xiàn)代電子技術(shù). 2017(22)
[3]基于CAN總線節(jié)點(diǎn)的遠(yuǎn)程在線升級(jí)系統(tǒng)設(shè)計(jì)[J]. 王建斌,江冰. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用. 2015(07)
[4]基于Cortex-M3的引導(dǎo)程序分析與設(shè)計(jì)[J]. 朱傳宏,沈嚴(yán),顏云松,徐軍. 計(jì)算機(jī)與數(shù)字工程. 2012(10)
[5]STM32用戶基于IAP的程序更新技術(shù)[J]. 李興鶴,蔡亮,宋吉波,王鵬,金辛海,時(shí)迎亮. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用. 2012(01)
[6]CAN總線應(yīng)用層協(xié)議的研究與實(shí)現(xiàn)[J]. 王邦繼,劉慶想,李相強(qiáng),張健穹. 計(jì)算機(jī)工程與應(yīng)用. 2011(20)
[7]基于STM32單片機(jī)的RS485總線分布式數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J]. 彭剛,徐慶江,張崇金,王中南. 伺服控制. 2011(02)
[8]基于CAN總線的煤礦安全監(jiān)測(cè)監(jiān)控系統(tǒng)的設(shè)計(jì)[J]. 張濤,薛鵬騫,蔣靜坪. 煤炭科學(xué)技術(shù). 2007(06)
本文編號(hào):3449862
本文鏈接:http://sikaile.net/kejilunwen/anquangongcheng/3449862.html
最近更新
教材專著