0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于LPC11C24微控制器組成的CAN網(wǎng)絡(luò),實現(xiàn)對節(jié)點MCU的軟件更新

電子設(shè)計 ? 作者:電子設(shè)計 ? 2018-09-05 09:20 ? 次閱讀

0引言

分散型控制系統(tǒng)中的現(xiàn)場終端一般由控制器和各檢測模塊構(gòu)成,它們之間通過一定的通信網(wǎng)絡(luò)建立數(shù)據(jù)的交換鏈路。這種系統(tǒng)具有高可靠、開放性、靈活性、協(xié)調(diào)性、易維護等優(yōu)點。然而,該分散型系統(tǒng)也具有終端數(shù)量多、分布范圍廣的特點。一旦終端系統(tǒng)軟件存在缺陷或用戶提出新的功能和指標要求時,其升級、維護的工作量和成本都非常大。本文針對上述情況,設(shè)計了一種方便、靈活、快速及穩(wěn)定地對MCU節(jié)點進行在線更新的機制?;?a href="http://wenjunhu.com/tags/lpc/" target="_blank">LPC11C24微控制器組成的CAN網(wǎng)絡(luò),采用IAP編程技術(shù)(In Application Programming),實現(xiàn)了對目標節(jié)點MCU的軟件更新功能。

1 LPC11C24單片機和CAN總線

恩智浦半導(dǎo)體(NXP)推出業(yè)界首款內(nèi)嵌易用型片上CANopen驅(qū)動,集成高速CAN物理層收發(fā)器的微控制器LPC11C22和LPC11C24.作為一種獨特的系統(tǒng)級封裝解決方案,LPC11C22和LPC11C24集成了TJF1051CAN收發(fā)器,在低成本LQFP48封裝中實現(xiàn)了完整的CAN功能。

控制器局域網(wǎng)絡(luò)(Controller Area Network,CAN)是由研發(fā)和生產(chǎn)汽車電子產(chǎn)品著稱的德國BOSCH公司開發(fā)了的,并最終成為國際標準(ISO11898)。它是國際上應(yīng)用最廣泛的現(xiàn)場總線之一。近年來,其所具有的高可靠性和良好的錯誤檢測能力受到重視,被廣泛應(yīng)用于汽車計算機控制系統(tǒng)和環(huán)境溫度惡劣、電磁輻射強和振動大的工業(yè)環(huán)境。

2在線更新機制架構(gòu)

系統(tǒng)架構(gòu)主要由2部分組成:由各個MCU組成的CAN網(wǎng)絡(luò);安裝在PC機上的USB-CAN通信卡,可以使PC機連上CAN網(wǎng)絡(luò),進行數(shù)據(jù)通信,系統(tǒng)構(gòu)架如圖1所示。軟件也包括2部分:運行在PC機的上位機軟件,提供用戶操作界面,將應(yīng)用程序代碼通過CAN總線發(fā)送給節(jié)點;運行在節(jié)點的啟動程序,主要是響應(yīng)下載命令,接受代碼,把代碼寫入FLASH,引導(dǎo)應(yīng)用程序。

基于LPC11C24微控制器組成的CAN網(wǎng)絡(luò),實現(xiàn)對節(jié)點MCU的軟件更新

圖1 系統(tǒng)架構(gòu)

3在線更新機制的設(shè)計

3.1 IAP編程技術(shù)

IAP是應(yīng)用在FLASH程序存儲器的一種編程模式,即在某段程序的控制下完成對FLASH的讀/寫操作,可以控制對某段、某頁、甚至某個字節(jié)的讀寫操作。

LPC11C24單片機支持并提供9條IAP命令:

①準備寫操作的扇區(qū);

②將RAM內(nèi)容復(fù)制到FLASH;

③擦除扇區(qū);

④扇區(qū)查空;

⑤讀器件ID;

⑥讀Boot代碼版本;

⑦比較;

⑧重新調(diào)用ISP;

⑨讀UID.

3.2 FLASH空間分配

LPC11C24有32KB的FLASH空間,共分為8個扇區(qū),每個扇區(qū)的大小為4KB.為了使程序更新和應(yīng)用程序更加獨立,本文將FLASH空間分為3個區(qū),分別為啟動程序區(qū),應(yīng)用程序區(qū),用戶數(shù)據(jù)區(qū)。

基于LPC11C24微控制器組成的CAN網(wǎng)絡(luò),實現(xiàn)對節(jié)點MCU的軟件更新

其中①啟動程序是一段特定的駐留代碼,專門用于接收來自主機新的代碼,將其燒寫到相應(yīng)的FLASH空間,完成后跳轉(zhuǎn)到應(yīng)用代碼區(qū)去執(zhí)行新的程序,代碼比較少,編譯生成的映像文件小于4KB,每次系統(tǒng)上電或重啟后先執(zhí)行啟動程序。

②應(yīng)用程序是真正實現(xiàn)用戶功能的代碼。

③用戶數(shù)據(jù)區(qū)是用于存儲應(yīng)用程序的一些設(shè)置和數(shù)據(jù)。

3.3中斷向量表重映射與復(fù)制

LPC11C24支持32個向量中斷,中斷向量表默認位于FLASH的第一個4KB空間,地址從0x00000000~0x00000079.按照前面的設(shè)計,啟動程序占用第一個4KB的空間,當(dāng)跳轉(zhuǎn)到應(yīng)用程序時,實際的中斷向量表是位于0x00001000~0x00001079的空間。但LPC11C24系列的單片機不支持自定義中斷向量表的地址,只支持將中斷向量表從FLASH重映射到RAM.

為了能讓應(yīng)用程序?qū)崿F(xiàn)正常的中斷處理,啟動程序在跳轉(zhuǎn)到應(yīng)用程序之前還需要將應(yīng)用程序的中斷向量表復(fù)制并映射到RAM[10].

代碼實例如下:

基于LPC11C24微控制器組成的CAN網(wǎng)絡(luò),實現(xiàn)對節(jié)點MCU的軟件更新

3.4啟動程序和應(yīng)用程序的設(shè)計與固化

程序都在Keil for ARM集成環(huán)境下編寫并編譯。

首先在Keil軟件下新建基于LPC11C24的工程,并配置FLASH和SRMA的起始地址和大小。具體如表2所示。

基于LPC11C24微控制器組成的CAN網(wǎng)絡(luò),實現(xiàn)對節(jié)點MCU的軟件更新

3.5啟動程序與應(yīng)用程序之前的跳轉(zhuǎn)

在啟動程序中定義應(yīng)用程序的地址,#defineAPP_CODE_ADDR (0x00001000),程序跳轉(zhuǎn)的代碼采用匯編語言編寫,代碼實例如下:

基于LPC11C24微控制器組成的CAN網(wǎng)絡(luò),實現(xiàn)對節(jié)點MCU的軟件更新

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7559

    瀏覽量

    151486
  • 單片機
    +關(guān)注

    關(guān)注

    6037

    文章

    44561

    瀏覽量

    635664
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16376

    瀏覽量

    178229
  • CAN總線
    +關(guān)注

    關(guān)注

    145

    文章

    1951

    瀏覽量

    130787
收藏 人收藏

    評論

    相關(guān)推薦

    客車網(wǎng)絡(luò)控制CAN/CAN網(wǎng)橋設(shè)計

    客車網(wǎng)絡(luò)控制CAN/CAN網(wǎng)橋設(shè)計摘要: 本文以LPC2119 微控制器為核心設(shè)計了客車
    發(fā)表于 12-01 10:29

    求助lpc11c24開發(fā)板

    請問我的lpc11c24開發(fā)板接上u***轉(zhuǎn)串口線為什么在電腦看不到com口,之前裝了51的u***轉(zhuǎn)串口的驅(qū)動,這個開發(fā)板沒有附帶驅(qū)動。請問這個問題怎么解決???謝謝
    發(fā)表于 08-18 00:12

    利用XC2300系列微控制器實現(xiàn)CAN網(wǎng)絡(luò)安全

    全新的XC2300系列微控制器專為安全關(guān)鍵系統(tǒng)而設(shè)計,可支持多個并行的CAN網(wǎng)絡(luò)。網(wǎng)關(guān)功能實現(xiàn)了不同CAN
    發(fā)表于 12-07 10:09

    LPC2194CAN控制器和ARM微控制器相關(guān)資料分享

    LPC2194是飛利浦公司生產(chǎn)的一款CAN控制器和ARM微控制器。它為四面64腳封裝。自帶4路CAN控制
    發(fā)表于 04-22 07:37

    以8051微控制器和82527獨立CAN總線控制器為核心組成

    介紹一種以8051微控制器和82527獨立CAN總線控制器為核心組成CAN總線智能傳感
    發(fā)表于 07-17 08:41 ?26次下載

    恩智浦推出首款內(nèi)嵌易用型片上CANopen驅(qū)動微控制器

    恩智浦半導(dǎo)體近日宣布推出業(yè)界首款內(nèi)嵌易用型片上CANopen驅(qū)動,集成高速CAN物理層收發(fā)微控制器LPC11C22和LPC11C24。
    發(fā)表于 01-19 08:14 ?912次閱讀

    NXP推出首款LPC11C22和LPC11C24整合式CAN收發(fā)微控制器解決方案

    恩智浦半導(dǎo)體(NXP Semiconductors N.V.)宣布推出業(yè)界首款內(nèi)嵌易用型on-chip CANopen驅(qū)動的整合式高速CAN實體層收發(fā)微控制器
    發(fā)表于 01-26 22:05 ?4912次閱讀

    基于LPC2294的CAN總線主節(jié)點設(shè)計

    為引入CAN總線技術(shù)以實現(xiàn)運動控制系統(tǒng)的網(wǎng)絡(luò)化,提出了基于LPC2294的CAN總線主
    發(fā)表于 06-21 15:17 ?61次下載
    基于<b class='flag-5'>LPC</b>2294的<b class='flag-5'>CAN</b>總線主<b class='flag-5'>節(jié)點</b>設(shè)計

    基于LPC2294的CAN總線智能節(jié)點設(shè)計

    CAN總線是一種應(yīng)用廣泛的實時性現(xiàn)場總線。本文提出了一種基于具有ARM7DMI內(nèi)核的32位ARM微控制器LPC2294的CAN總線智能節(jié)點設(shè)
    發(fā)表于 05-29 09:27 ?3879次閱讀
    基于<b class='flag-5'>LPC</b>2294的<b class='flag-5'>CAN</b>總線智能<b class='flag-5'>節(jié)點</b>設(shè)計

    LPC11CXX CAN ISP升級方法

    基于TinyM0-CAN和TinyM0-CAN-T開發(fā)套件講解LPC11C1x和LPC11C2x系列微控制器
    發(fā)表于 09-27 16:34 ?10次下載

    詳解LPC2000系列ARM微控制器CAN驗收濾波應(yīng)用

     LPC2000 系列ARM微控制器是采用ARM7TDMI-S內(nèi)核的32位嵌入式微處理,內(nèi)嵌2路或4路CAN控制器和驗收濾波
    發(fā)表于 02-08 19:24 ?2288次閱讀
    詳解<b class='flag-5'>LPC</b>2000系列ARM<b class='flag-5'>微控制器</b>的<b class='flag-5'>CAN</b>驗收濾波<b class='flag-5'>器</b>應(yīng)用

    LPC2131微控制器外部實現(xiàn)CAN總線通信設(shè)計

    Philips公司的LPC213l是基于ARM7TDMI-S的高性能32位RISC微控制器。它具有ARM處理的所有優(yōu)點——低功耗、高性能和較為豐富的片上資源,但LPC2131內(nèi)部沒有
    的頭像 發(fā)表于 04-18 08:08 ?3200次閱讀
    在<b class='flag-5'>LPC</b>2131<b class='flag-5'>微控制器</b>外部<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>CAN</b>總線通信設(shè)計

    微控制器(MCU)由什么組成

    微控制器MCU)由中央處理(CPU),非易失性存儲(ROM),易失性存儲(RAM),外圍設(shè)備和支持電路
    發(fā)表于 06-29 11:20 ?9467次閱讀

    基于LPC2292微控制器CAN控制器實現(xiàn)車輛行駛監(jiān)控系統(tǒng)的設(shè)計

    選用帶有ARM7TDMI-S內(nèi)核的LPC2292微控制器,可實現(xiàn)對車速、轉(zhuǎn)速信號、開關(guān)量信號以及水溫、剎車氣壓、輪胎壓力等模擬量信號的采集、處理以及數(shù)據(jù)的實時存儲和顯示,通過串口、USB接口可以
    的頭像 發(fā)表于 04-02 09:13 ?2601次閱讀
    基于<b class='flag-5'>LPC</b>2292<b class='flag-5'>微控制器</b>和<b class='flag-5'>CAN</b><b class='flag-5'>控制器</b><b class='flag-5'>實現(xiàn)</b>車輛行駛監(jiān)控系統(tǒng)的設(shè)計

    CAN控制器和收發(fā)

    SJA1000CAN控制器集成在微控制器中,如NXP半導(dǎo)體公司的Cortex-M0內(nèi)核LPC11Cxx系列微控制器、
    發(fā)表于 12-04 11:21 ?28次下載
    <b class='flag-5'>CAN</b><b class='flag-5'>控制器</b>和收發(fā)<b class='flag-5'>器</b>