国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

STM32雙核板的應用設計與ISP的從機軟件升級

2015-07-02 00:17:24綦聲波劉英男王圣南劉群
關鍵詞:雙核上位總線

綦聲波,劉英男,王圣南,劉群

(中國海洋大學 工程學院,青島266100)

?

STM32雙核板的應用設計與ISP的從機軟件升級

綦聲波,劉英男,王圣南,劉群

(中國海洋大學 工程學院,青島266100)

針對單片機應用設計中的資源不足、可靠性差和軟件升級問題,設計了一款基于Cortex-M3內核的雙核板。該雙核板在不增加開發(fā)難度的情況下使單片機資源翻倍;通過兩個MCU之間的任務合理分工和相互監(jiān)督,提高了整體系統(tǒng)的可靠性;利用CAN總線完成主機與上位機的通信和升級程序的下載,并通過控制引腳實現(xiàn)基于ISP功能的從機軟件升級。

STM32;雙核板;CAN;軟件升級

引 言

在單片機的應用設計中,常常會遇到如下問題:其一,某一熟悉類型的單片機功能可用,性價比也很好,但限于某種內部資源(如串口數(shù)、A/D路數(shù)等)不足,不得不選用更高檔或不太熟悉的單片機,造成資源的浪費和開發(fā)周期的延長。其二,在海洋遠程監(jiān)測等重要領域,對控制器的可靠性要求較高,而單片機存在死機的可能性,即使可以通過配備看門狗來避免這種情況,但這種“粗暴”的復位方式并不合理(首先,復位打亂了正常的數(shù)據(jù)采集和處理工作,導致重要數(shù)據(jù)丟失;其次,即便能記錄下復位時間和次數(shù),但復位原因和復位前狀態(tài)等信息無法偵測,一些本該解決的BUG被掩蓋,導致頻繁復位)。其三,由于開發(fā)周期不足或測試不充分,導致設備投入運行后出現(xiàn)故障,而這些故障往往通過軟件升級的方式可以解決,但由于設備的應用場所比較特殊(如水下),導致軟件升級的成本很高[1]。

針對上述3種情況,在實際的項目應用中設計了基于STM32的雙核板,較好地解決了資源不足、穩(wěn)定性差和基于CAN總線的遠程升級等問題,具有性價比高、開發(fā)周期短等優(yōu)點。

1 雙核板設計

STM32系列單片機具有高性能Cortex-M3內核和外設,功耗低,集成度高,性價比高。另外,ST公司還提供了外設的標準庫函數(shù),屏蔽了底層硬件細節(jié),能夠使開發(fā)人員輕松完成產(chǎn)品的開發(fā),縮短系統(tǒng)開發(fā)時間[2]。正因為如此,STM32系列單片機得到了開發(fā)者的青睞,其應用領域和客戶群不斷擴大。其中的STM32F107屬于互聯(lián)型系列,具有以太網(wǎng)和CAN總線接口,在數(shù)據(jù)通信方面具有獨特的優(yōu)勢。一種基于STM32F107的雙核板如圖1所示。

圖1 雙核板結構圖

圖2 A-CORE和M-CORE的狀態(tài)轉換圖

圖1中,兩個STM32F107最小系統(tǒng)模塊分別稱為A-CORE和M-CORE,A-CORE具有外看門狗,為主機模塊;M-CORE不具有外看門狗,但其RST/BOOT0引腳受A-CORE的控制,可以通過串口實現(xiàn)ISP總線升級,為從機模塊。由于A-CORE和M-CORE均具有電源系統(tǒng)、復位電路和下載接口等調試所需的基本要素,因此可以預先焊接和調試好。在具體項目的開發(fā)應用中,將雙核板作為一個獨立的元件嵌入,一些軟件可以提前驗證和編寫,大大縮短了產(chǎn)品的開發(fā)周期。

在正常工作時,主從機兩個模塊獨立工作,兩者通過SPI總線相互通信。SPI接口傳輸速率可達到18 Mbps,比I2C和UART通信要快得多。由于采用雙核,通用I/O引腳顯著增多,不僅可以完成更加復雜的設計,而且降低了布局布線的難度。對于熟悉STM32的開發(fā)者來說,開發(fā)難度基本不變,而可使用的資源卻幾乎成倍增加。

在該雙核板的設計中,還考慮了A-CORE對M-CORE的在線升級問題。圖1中M-CORE的RST、BOOT0兩個引腳受A-CORE控制,來實現(xiàn)M-CORE的復位和復位地址選擇;而ISP-AT-MR和ISP-AR-MT兩個引腳則是作為USART接口,實現(xiàn)對M-CORE的ISP升級。

2 可靠性設計

在本文的應用中,A-CORE和M-CORE分工合作。A-CORE主要完成系統(tǒng)的管理工作,如人機交互、數(shù)據(jù)存儲、通信等;M-CORE主要完成信息采集、外部設備控制等功能,這樣設計的優(yōu)點是功能分明、負荷分擔。負責采集控制的M-CORE可以集中精力完成數(shù)據(jù)采集和輔助的控制工作;而負責管理的A-CORE除了完成人機交互、數(shù)據(jù)存儲和通信外,還需要定期發(fā)起與M-CORE的通信,以保證相互監(jiān)督。

M-CORE收到A-CORE的指令后,會將當前的工作狀態(tài)報告給A-CORE,再由A-CORE通過CAN總線等手段上傳給更高層的通信主機。如果A-CORE發(fā)現(xiàn)M-CORE不能正?;貜托畔ⅲ瑒t說明M-CORE處于不正常狀態(tài),必要時可實現(xiàn)對M-CORE的“危機干預”。例如,在連續(xù)多次均不能正常通信的情況下,可以認為M-CORE已處于死機狀態(tài),A-CORE將復位M-CORE。A-CORE和M-CORE的狀態(tài)轉換圖如圖2所示。

顯然,這種雙核結構和定時通信機制,可以使每個MCU知道對方的工作情況。雖然在結構上分出了A-CORE和M-CORE,但由于每個MCU都有CAN總線與通信主機相連,因此每個MCU都可以單獨通向主機匯報工作狀態(tài),匯報的內容都可以通過CAN總線接收到,因此起到了相互監(jiān)督的作用。

3 基于CAN總線的軟件升級

具備遠程軟件升級的設備具有更廣泛的適用性,可以在設備安裝到位后,通過軟件升級在線修復一些問題,不但節(jié)省人力物力,也可以使設備的功能逐步完善[3]。

雙核板具有CAN總線,該總線不但是數(shù)據(jù)交換的通道,也是軟件升級的通道。上位機可以通過CAN總線將需要升級的程序代碼下傳到A-CORE,A-CORE控制M-CORE的RST/BOOT0引腳,使M-CORE復位并進入ISP狀態(tài),從而完成在線升級。由此可見,要實現(xiàn)基于CAN總線的在線軟件升級,需要3個條件:一是待升級系統(tǒng)M-CORE本身具有ISP功能,能通過串口實現(xiàn)程序的下載;二是A-CORE本身集成CAN總線,可通過CAN總線接收上位機發(fā)送的待升級程序代碼;三是A-CORE可以控制M-CORE的RST/BOOT0引腳,完成在線升級。

3.1 STM32的ISP升級

ISP(In-System Programming)方式相對于傳統(tǒng)的并行編程方式有了極大的進步,無需將單片機從電路板上卸下就可進行編程。STM32系列芯片復位時,可以通過BOOT1和BOOT0的邏輯電平來決定系統(tǒng)的啟動模式,見表1所列。

表1 STM32啟動模式配置

系統(tǒng)復位時,CPU根據(jù)這兩個引腳的邏輯電平把相應模式的起始地址映射到啟動空間(0x 0000 0000)。在啟動延遲之后,CPU從位于0x0開始的啟動存儲區(qū)執(zhí)行代碼[4]。由于實際應用中很少從內嵌SRAM中啟動,故可將BOOT1引腳直接設置為低電平,只通過判斷BOOT0引腳的高低電平來選擇從用戶閃存或系統(tǒng)存儲器中啟動。若復位時BOOT0的邏輯電平為高,則復位后從系統(tǒng)存儲器啟動,可通過USART1與Bootloader進行通信。

STM32芯片具有開放式的在線燒錄ISP協(xié)議,允許第三方根據(jù)該協(xié)議編寫ISP下載軟件,對STM32芯片進行FLASH的更新操作。在進行ISP方式升級時,先發(fā)送0x7F實現(xiàn)自動波特率匹配,能夠識別最高115 200 bps的串口波特率。如果正確回應0x79,表示命令執(zhí)行正常。握手正確后,就可以通過ISP命令實現(xiàn)對STM32的ISP操作,完成FLASH的擦除和編程。

3.2 FLASH分區(qū)存儲

STM32F107片內集成256 KB FLASH和64 KB SRAM,F(xiàn)LASH由主存儲塊(Main Block) 和信息塊( Information Block) 組成。主存儲塊用于存放用戶程序,每頁2 KB,共128頁,容量為32K×64位,地址范圍為0x 0800 0000~0x 0803 FFFF;信息塊容量為2 360×64位,分為啟動程序代碼和用戶選擇字節(jié)[5]。啟動程序代碼從 0x 1FFF B000~0x 1FFF F7FF,共18 KB,用戶選擇字節(jié)從0x 1FFF F800~0x 1FFF F80F,共16字節(jié)。

A-CORE的FLASH存儲器分區(qū)如圖3所示。

圖3 A-CORE的FLASH存儲器分區(qū)

0x0800 0000~0x0800 1FFF,共8 KB空間,為Bootloader代碼空間。

0x0800 2000~0x0801 FFFF,為120 KB空間,存放A-CORE自身程序。

0x0802 0000~0x0803 FFFF,為128 KB空間,存放M-CORE應用程序。

上述空間分配,雖然升級程序的空間受到了限制,但在大多數(shù)情況下是可行的,因為A-CORE和M-CORE任務分擔,其本身的程序量均不足總FLASH容量的一半。如果出現(xiàn)了空間不足的現(xiàn)象,完全可以換用更大容量的MCU。

3.3 軟件升級流程

要完成A-CORE對M-CORE的軟件升級,其過程可以分為兩個階段:基于CAN總線的數(shù)據(jù)傳輸和基于USART的ISP過程。

(1) 基于CAN總線的數(shù)據(jù)傳輸

當M-CORE需要更新用戶程序時,上位機將編譯成功的M-CORE升級程序的HEX文件通過CAN總線發(fā)送到A-CORE。上位機先發(fā)送升級指令,A-CORE接收到升級指令后,將FLASH中M-CORE升級程序區(qū)(0x 0800 2000~0x 0801 FFFF)擦除,擦除成功后回復上位機,若回復錯誤信息,則退出升級;上位機接收到回復后,按行發(fā)送HEX文件內容,A-CORE接收到數(shù)據(jù)后,依次寫入A-CORE的M-CORE升級程序區(qū)(0x 0800 2000~0x 0801 FFFF)中,接收完畢后向上位機發(fā)送寫入完畢指令[6]。

(2) 基于USART的ISP過程

當A-CORE接收到上位機發(fā)送的升級執(zhí)行指令后,升級流程如下:

① 置M-CORE的BOOT0引腳為高電平,然后置RST引腳為低電平,復位M-CORE,使其從系統(tǒng)的內存模式啟動,然后將RST引腳拉高。

② A-CORE向M-CORE發(fā)送0x7F,M-CORE接收該數(shù)據(jù),并根據(jù)該數(shù)據(jù)與A-CORE自動匹配波特率,進行回復。若回復0x79,則表示可以進行相關擦除和寫FLASH操作了,若回復 0x1F,則升級失敗。

③ A-CORE收到正確的應答,則發(fā)送0x44+0xBB,根據(jù)程序大小擦除FLASH,根據(jù) STM32F107內部固有的Bootloader串口協(xié)議,擦除完成后回復A-CORE。

④ A-CORE等待接收M-CORE的回復,收到正確的應答之后,發(fā)送0x31+0xCE,把存儲到A-CORE FLASH中的M-CORE升級程序區(qū)的內容寫到M-CORE的相應FLASH中,一次寫256個字節(jié),直到把所有的用戶程序寫入用戶存儲區(qū)。

⑤ A-CORE控制BOOT0引腳,并控制RST為低電平,對M-CORE進行硬件復位,M-CORE重新初始化程序,從而運行剛剛更新的用戶程序。

軟件升級交互流程如圖4所示。

圖4 軟件升級流程圖

結 語

[1] 張萌.基于ISP/IAP和CAN總線的遠程升級系統(tǒng)研制[D].青島:中國海洋大學,2013.

[2] 鮑玉龍.基于STM32的雙處理器牙花加工控制系統(tǒng)設計與實現(xiàn)[D].杭州:杭州電子科技大學, 2012.

[3] 周天兵,劉國忠.單片機程序遠程升級技術[J].儀表技術,2011(9):25-31.

[4] 張舞杰,南亦民.基于STM32F103VB的應用編程技術的實現(xiàn)[J].計算機應用,2009,29(10):2820-2822.

[5] 羅成娥,任海強.基于CAN總線的在線升級系統(tǒng)設計與實現(xiàn)[J].數(shù)字通信,2013,40(6):28-32.

[6] 江斌,黎明.基于CAN的遠程下載技術開發(fā)及應用[J].微計算機信息,2010,26(9-2):80-82.

綦聲波(副教授),主要研究方向為嵌入式系統(tǒng)、智能儀器儀表、海洋裝備。

Altera加入工業(yè)互聯(lián)網(wǎng)聯(lián)盟

Altera公司宣布加入工業(yè)互聯(lián)網(wǎng)聯(lián)盟(Industrial Internet Consortium,IIC),這一行業(yè)協(xié)作組織旨在促進物聯(lián)網(wǎng)(IoT)全球生態(tài)系統(tǒng)的發(fā)展。特別指出的是,Altera與聯(lián)盟成員在技術發(fā)展路線圖上一起工作,開發(fā)工業(yè)互聯(lián)網(wǎng),在這一智能設備和傳感器網(wǎng)絡上,數(shù)據(jù)通過不同的互聯(lián)協(xié)議進行交換,增強了多種終端市場應用的性能。這一智能連接網(wǎng)絡可支持企業(yè)開發(fā)“智能”的新業(yè)務應用,對資產(chǎn)和業(yè)務進行優(yōu)化、簡化,或者自動化現(xiàn)有流程。

工業(yè)互聯(lián)網(wǎng)聯(lián)盟執(zhí)行總監(jiān)Richard Soley博士表示:“IIC一直處于工業(yè)IoT創(chuàng)新和技術開發(fā)的最前沿。我們非常高興Altera能夠加入IIC,發(fā)揮其在FPGA和SoC解決方案方面的優(yōu)勢,開發(fā)更加靈活和安全的IoT系統(tǒng)。”

Application Design of STM32 Dual-core Board and Slave CoreSoftware Upgrade of ISP

Qi Shengbo,Liu Yingnan,Wang Shengnan,Liu Qun

(College of Engineering,Ocean University of China,Qingdao 266100,China)

Aiming at the application problems of MCU such as the lack of resources,poor reliability and the software upgrade,a dual-core board based on Cortex-M3 kernel is designed in this paper.The dual-core board almost doubles the MCU resources without increasing the difficulty of development,and it improves the reliability of the whole system through the rational burden division and mutual supervision between two MCUs.Upgrading program can be transmitted between the master core and the upper monitor by CAN bus.The slave core software upgrade based on ISP is realized through controlling pin.

STM32;dual-core board;CAN bus;software upgrade

TP212.6

A

士然

2014-12-23)

猜你喜歡
雙核上位總線
全球金融“F20”在此召開!橫瀝進入“雙核”時代
基于PCI Express總線的xHC與FPGA的直接通信
測控技術(2018年6期)2018-11-25 09:50:12
機載飛控1553B總線轉以太網(wǎng)總線設計
測控技術(2018年8期)2018-11-25 07:42:08
特斯拉 風云之老阿姨上位
車迷(2018年12期)2018-07-26 00:42:22
“三扶”齊上位 決戰(zhàn)必打贏
基于ZigBee和VC上位機的教室智能監(jiān)測管理系統(tǒng)
新型夾心雙核配和物[Zn2(ABTC)(phen)2(H2O)6·2H2O]的合成及其熒光性能
合成化學(2015年2期)2016-01-17 09:03:58
以新思路促推現(xiàn)代農(nóng)業(yè)上位
學習月刊(2015年3期)2015-07-09 03:51:04
多通道ARINC429總線檢查儀
三螺旋N-N橋連的雙核Co(Ⅲ)配合物的合成、結構和性質
苗栗市| 丰城市| 建瓯市| 武陟县| 永城市| 桑植县| 福州市| 拜泉县| 平武县| 论坛| 崇义县| 碌曲县| 滨海县| 乐安县| 西平县| 罗城| 黔东| 鲜城| 城步| 涞源县| 民县| 天镇县| 将乐县| 六安市| 高安市| 静安区| 合作市| 库车县| 天全县| 湘阴县| 盖州市| 清镇市| 万荣县| 三亚市| 徐水县| 宜黄县| 桂平市| 特克斯县| 莒南县| 民权县| 巴彦淖尔市|