日本在线www-日本在线播放一区-日本在线不卡免费视频一区-日本在线不卡视频-成人影院久久久久久影院-成人影院一区二区三区

ABB25年11月
關(guān)注中國自動化產(chǎn)業(yè)發(fā)展的先行者!
工業(yè)智能邊緣計算2025年會
2025工業(yè)安全大會
CAIAC 2025
OICT公益講堂
當(dāng)前位置:首頁 >> 案例 >> 案例首頁

案例頻道

基于CAN總線連接的MEGA8遠(yuǎn)距離在線升級方案
  • 企業(yè):控制網(wǎng)     領(lǐng)域:運(yùn)動控制與伺服系統(tǒng)     行業(yè):礦業(yè)    
  • 點擊數(shù):1789     發(fā)布時間:2008-08-03 10:16:24
  • 分享到:
  本文介紹了如何利用MEGA8通過CAN總線進(jìn)行的遠(yuǎn)距離在線升級的方案。詳細(xì)論述了分布式控制系統(tǒng)中,通過CAN總線技術(shù)以及MEGA8的BOOT功能實現(xiàn)遠(yuǎn)距離在線升級,這對于系統(tǒng)調(diào)試及以后的升級維護(hù)都提供了極大的便利,大大減少了維護(hù)時間與成本。文中還給出了比較詳細(xì)的軟硬件程序流程圖和部分源程序。   關(guān)鍵詞:CAN總線,MEGA8,IAP,BOOT引導(dǎo),熔絲位

1、系統(tǒng)總體設(shè)計方案

  1.1 系統(tǒng)的拓?fù)浣Y(jié)構(gòu)

  CAN(Controller Area Network)即控制器局域網(wǎng),是目前廣泛應(yīng)該的總路線之一。CAN總線通信距離限制小,它的直接通信距離最大可達(dá)10km,最高通信速率可以達(dá)1Mb/s(此時距離最長為40m),節(jié)點數(shù)可多達(dá)110個。因此它特別適合于工業(yè)遠(yuǎn)程過程監(jiān)控設(shè)備的互聯(lián)和電網(wǎng)絡(luò)設(shè)備的調(diào)試和維護(hù)。基于CAN總線的分布式控制系統(tǒng)的一般組成模式如圖1所示。上位機(jī)PC機(jī)通過RS-232連接到總線上某一智能節(jié)點。可以對安裝在現(xiàn)場某些節(jié)點的程序進(jìn)行遠(yuǎn)距離在線升級和改變某些功能,因此利用CAN總線進(jìn)行單片機(jī)的在線編程就顯得非常必要。


圖1 基于CAN總路線的分布式控制系統(tǒng)

  根據(jù)圖1所示的CAN總線分布式系統(tǒng)的結(jié)構(gòu),在線編程采用主從結(jié)構(gòu)。智能節(jié)點1為主節(jié)點,其它節(jié)點為從節(jié)點。節(jié)點采用ATMEL公司推出的AVR系列單片機(jī)MEGA8,內(nèi)含8K FLASH程序存儲器,1K的內(nèi)部SRAM,512字節(jié)的內(nèi)部EEPROM。為了便于升級,除了提供ISP即在線編程功能(In System Programming)以外,還提供了BOOT引導(dǎo)功能,為實現(xiàn)IAP即在應(yīng)用中編程(In Application Programming)為系統(tǒng)升級提供了可能。

  1、2 節(jié)點升級過程

  主節(jié)點在編程監(jiān)控模式下,接收PC機(jī)發(fā)送的“編程”命令,若編程節(jié)點為主節(jié)點,則程序可以通過RS-232下載到主節(jié)點,主節(jié)點接收編程數(shù)據(jù),完成FLASH的在線編程,此時,從節(jié)點分別執(zhí)行各自缺省的應(yīng)用程序。若編程節(jié)點為從節(jié)點,則主節(jié)點就通過CAN總線進(jìn)行廣播,全部從節(jié)點監(jiān)控包括被選擇節(jié)點ID號在內(nèi)的“編程初始信息”,并與各自的節(jié)點ID進(jìn)行比較,被選擇的從節(jié)點與主節(jié)點和PC機(jī)建立編程通信連接,其它從節(jié)點繼續(xù)運(yùn)行其缺省應(yīng)用程序,從而實現(xiàn)了在線升級功能。可見,在從節(jié)點編程模式下,主節(jié)點在PC機(jī)的RS-232總線與從節(jié)點的CAN總線之起著路由器的作用。

  1、3 CAN總線系統(tǒng)智能監(jiān)控節(jié)點

  CAN總線系統(tǒng)智能監(jiān)控節(jié)點由5部分組成:微控制器Mega8,并串轉(zhuǎn)換電路,獨立CAN控制器SJA1000,CAN總線驅(qū)動器TJA1050和高速光電耦合6N137。如圖2所示


圖2 CAN智能監(jiān)控節(jié)點硬件原理圖

  為了提高穩(wěn)定性和安全性,在SJA1000的TX0和RX0與TJA1050的TXD和RXD相連時,采用了高速光電耦合6N137,并且兩個光電耦合器各自連接兩個完全隔離的電源,這樣就很好地實現(xiàn)了總線上各CAN節(jié)點間的電氣隔離。在SJA1000與Mega8通信中,中間加入了一個并串轉(zhuǎn)換電路。除了給Mega8留出更多的引腳用于外圍電路外,更重要的是傳輸多位數(shù)據(jù)時,可以通過并串轉(zhuǎn)換電路,連接到Mega8單片機(jī)的通用同/異步串行接口USART的RXD與TXD引腳。把接收過進(jìn)來的數(shù)據(jù)送入USART數(shù)據(jù)寄存器UDR中,通過ID認(rèn)證后,進(jìn)入FLASH編程監(jiān)控程序,進(jìn)行自編程修改,達(dá)到升級的目的。

2、MEGA8單片機(jī)升級功能

  2.1 引導(dǎo)加載自編程功能

  ATmega8具備引導(dǎo)加載支持的用戶程序自編程功能(In-System Programming by On-chip Boot Program),它提供了一個真正的由MCU本身自動下載和更新(采用讀/寫同時“Read-While-Write”進(jìn)行的方式)程序代碼的系統(tǒng)程序自編程更新的機(jī)制。使用該功能時,MCU可以靈活地運(yùn)行一個常駐Flash的引導(dǎo)加載程序(Boot Loader Program),實現(xiàn)對讀取代碼,或者從程序存儲器中讀取代碼,然后將代碼寫入(編程)到Flash存儲器中。引導(dǎo)加載程序有能力讀寫整個Flash存儲器,包括引導(dǎo)加載程序所在的引導(dǎo)加載區(qū)本身。引導(dǎo)加載程序還可以對自身進(jìn)行更新修改,甚至可以將自身刪除,使系統(tǒng)的自編程能力消失。基于這個因素,使得在線升級成為了可能。引導(dǎo)加載程序區(qū)的大小可以由芯片的熔絲位設(shè)置,該段程序區(qū)還提供兩組鎖定位,以便用戶選擇對該程序區(qū)的不同級別的保護(hù)。

  2、2 MEGA8的BOOT介紹

  由于MEGA8具有IAP可在應(yīng)用中升級的功能,本系統(tǒng)在軟件設(shè)計上采用了BOOT引導(dǎo)功能。主程序采用C語言編寫,BOOT程序則采用了匯編編寫。目的是為了提高下載速度,設(shè)計中放棄了ATMEL提供的AVRPROG燒錄軟件,另外采用了一個下載燒錄速度較高的ID通訊協(xié)議,在程序代碼量比較大的時候,具有更明顯的速度優(yōu)勢,并且也便于用戶二次開發(fā)。

  MEGA8的引導(dǎo)功能可通過相應(yīng)的熔絲位來確定,BOOT引導(dǎo)程序的入口、BOOT區(qū)的大小可以通過燒錄單片機(jī)的BOOTSZ1、BOOTSZ0兩個熔絲位來確定。單片機(jī)復(fù)位后向量入口也是通過燒錄單片機(jī)的BOOTRST熔絲位來確定。另外,單片機(jī)在執(zhí)行IAP編程時需要用到Store Program Memory Control Register(SPMCR)寄存器。

  SPMCR寄存器包含了頁擦除,頁寫入,BOOT區(qū)加密設(shè)置,頁填充及頁的RWW(Read While Write)等功能的設(shè)置。需要注意的是在執(zhí)行每個功能時,都需要設(shè)置SPMEN標(biāo)志,在隨后的4個時鐘周期內(nèi)運(yùn)行SPM指令,該標(biāo)志會在SPM執(zhí)行完成后自動清零。函數(shù)如下:

  Do_SPM:

  Wait_SPM: ; 等待頁操作完成

  in templ,SPMCR

  sbrc templ,SPMEN

  rjmp Wait_SPM

  out SPMCR,temp

  spm ; 執(zhí)行SPM指令

  .dw 0xffff

  nop

  ret

  有了以上的函數(shù),就可以很容易的進(jìn)行頁擦除、頁寫入、頁填充等程序的設(shè)計了。比如需要執(zhí)行頁擦除指令,則首先要將需要擦除的頁地址寫入Z寄存器,然后置位SPM的PGERS(頁擦除位)和SPMEN(SPM允許位),然后再調(diào)用Do_SPM函數(shù)即可。程序如下:

  ……

  ld temp,y+

  mov zl,temp ; Z指針地址賦值

  ld temp,y+

  mov zh,temp

  ldi temp,(1< 

  rcall Do_SPM ; 執(zhí)行頁寫入

  ……

3、BOOT程序介紹及流程圖

  Mega8單片機(jī)上電后設(shè)置冷啟動標(biāo)志,而熱啟動入口則設(shè)置熱啟動標(biāo)志。然后初始化堆棧、串口以及必要的I/O狀態(tài)等。初始化完成后,如果BOOT程序檢測到熱啟動標(biāo)志則直接進(jìn)入燒錄狀態(tài);如果為冷啟動標(biāo)志則繼續(xù)檢測下載位是否允許(本設(shè)計通過PB0開關(guān)選擇),如為高電平則進(jìn)入燒錄狀態(tài),如為低電平則進(jìn)入用戶程序。

  BOOT引導(dǎo)程序在設(shè)計時提供了兩個入口,一個是系統(tǒng)復(fù)位時的冷啟動入口,另一個是用戶程序在運(yùn)行時進(jìn)入升級程序的熱啟動入口。BOOT程序主要包括燒錄子程序、串口發(fā)送、串口接收、引導(dǎo)主程序等。

  串口發(fā)送采用了查詢發(fā)送完成標(biāo)志。這樣當(dāng)該標(biāo)志被設(shè)置時,證明串口的停止位已經(jīng)發(fā)送完成,這對于CAN總線通訊非常有用。燒錄程序主要使用“SPM”指令,該指令完成對MEGA8的燒錄等功能。而讀取MEGA8的指令則使用“LPM”。由于擦除,頁填充,寫入,讀出等基本命令單片機(jī)都已解釋完成,因此所有過程都可以由計算機(jī)端程序進(jìn)行控制。

  程序開始時,計算機(jī)端發(fā)送命令,先對單片機(jī)的頁進(jìn)行擦除,然后接收一幀數(shù)據(jù),接收完畢后執(zhí)行頁寫入命令,寫入完成再進(jìn)行讀出進(jìn)行校驗,如果校驗無誤再繼續(xù)寫入下一頁,直到所有頁都寫入完畢,即完成一次下載過程。如果傳輸或頁校驗出現(xiàn)錯誤,程序會連續(xù)進(jìn)行5次測試,如再仍不成功,則認(rèn)為本次下載失敗。主程序流程圖如圖3。

  MEGA8單片機(jī)的主程序通過CAN接口執(zhí)行計算機(jī)發(fā)送的命令,并且定義了一個更新代碼的特殊命令,當(dāng)接收到該命令時,主程序首先關(guān)閉中斷,關(guān)閉看門狗,然后跳轉(zhuǎn)到BOOT的熱啟動入口,再執(zhí)行BOOT下載燒錄程序。下載完成后再直接跳轉(zhuǎn)到$0000地址進(jìn)入用戶程序區(qū),這樣就完成了代碼的在線升級。為了保證該命令的可靠性,本程序設(shè)計時規(guī)定單片機(jī)必須在100ms內(nèi)同時接收到兩次該命令才認(rèn)為正確,超過100ms則不予認(rèn)可。


圖3

4、結(jié)束語

  由于采用了MEGA8單片機(jī)的BOOT功能,以及CAN總線高速遠(yuǎn)距離通信,同時抗干擾性強(qiáng),使得遠(yuǎn)距離在線升級,譬如通過以太網(wǎng)、無線等方式,成為了可能。這對于系統(tǒng)調(diào)試及以后的升級維護(hù)都提供了極大的便利,這也是今后單片機(jī)和CAN總線發(fā)展的一個方向。由于該部分具有通用性,所以可很容易地移植到AVR其它MEGA系列的設(shè)計方案中。

參考文獻(xiàn)

  [1] 馬朝,詹衛(wèi)前,耿德根. ATmega8原理及應(yīng)用手冊. 北京:清華大學(xué)出版社,2003

  [2] 王向周,王愛軍,鄭戌華 單片機(jī)在線編程的CAN總線技術(shù)實現(xiàn)[J]. 儀表技術(shù)與傳感器. 雙月刊,2003

  [3] 丁化成,耿德根,李君凱. AVR單片機(jī)應(yīng)用設(shè)計. 北京:北京航空航天大學(xué)出版社,2002

  [4] 雙龍電子公司新產(chǎn)品指南AVR專刊2006年十二版

  [5] 孫樹文 等. 基于CAN總線的分布監(jiān)控系統(tǒng)智能節(jié)點設(shè)計[J]. 微計算機(jī)信息,2006

  [6] 范瑞霞,李位星 針對CAN總線傳輸距離問題的兩種解決方案[J]. 微計算機(jī)信息 2006

熱點新聞

推薦產(chǎn)品

x
  • 在線反饋
1.我有以下需求:



2.詳細(xì)的需求:
姓名:
單位:
電話:
郵件:
日本特黄特色aa大片免费| 天天做日日爱夜夜爽| 亚洲 欧美 91| 亚洲精品久久久中文字| 天天色色色| 午夜欧美成人久久久久久| 国产综合成人观看在线| 久久精品免视看国产明星| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 99久久精品国产片| 欧美大片a一级毛片视频| 国产麻豆精品hdvideoss| 91麻豆国产级在线| 日韩中文字幕一区二区不卡| 黄视频网站在线观看| 成人免费观看的视频黄页| 深夜做爰性大片中文| 日韩一级黄色| 欧美大片一区| 精品视频免费看| a级精品九九九大片免费看| 欧美激情一区二区三区在线| 99热热久久| 日日日夜夜操| 亚洲第一色在线| 毛片成人永久免费视频| 国产一区二区精品久| 一级女人毛片人一女人| 日韩中文字幕一区| 免费国产在线观看| 二级片在线观看| 国产欧美精品| 日韩中文字幕一区二区不卡| 毛片成人永久免费视频| 国产91丝袜在线播放0| 国产亚洲精品成人a在线| 欧美激情一区二区三区在线| 日本特黄特色aaa大片免费| 亚洲爆爽| 999久久狠狠免费精品| 日韩中文字幕在线亚洲一区| a级毛片免费观看网站| 欧美a级成人淫片免费看| 高清一级片| 青青久久精品国产免费看| 精品国产三级a∨在线观看| 日韩一级黄色| 亚洲第一页乱| 久久久成人影院| 国产视频网站在线观看| 精品久久久久久中文字幕2017| 亚洲天堂一区二区三区四区| 欧美爱爱动态| 国产麻豆精品视频| 日韩一级黄色| 可以免费在线看黄的网站| 欧美a级大片| 四虎论坛| 成人免费观看男女羞羞视频| 99色精品| 黄色短视频网站| 国产激情一区二区三区| 国产麻豆精品免费密入口| 天天做日日爱夜夜爽| 日本乱中文字幕系列| 欧美大片a一级毛片视频| 国产视频一区二区在线观看| 成人高清护士在线播放| 国产视频一区在线| 麻豆系列国产剧在线观看| 午夜激情视频在线播放| 99热精品一区| 黄视频网站在线免费观看| 国产伦久视频免费观看视频| 成人免费观看的视频黄页| 国产不卡高清在线观看视频| 国产视频一区二区在线播放| 韩国毛片免费大片| 人人干人人草| 欧美国产日韩一区二区三区| 日日夜夜婷婷| 韩国三级一区| 一本伊大人香蕉高清在线观看| 天天色色网| 夜夜操网| 四虎论坛| 国产福利免费观看| 国产a视频| 91麻豆tv| 一级毛片看真人在线视频| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 色综合久久手机在线| 精品在线观看国产| 日本特黄特色aa大片免费| 成人高清护士在线播放| 麻豆网站在线看| 欧美a级片视频| 国产高清在线精品一区a| 人人干人人草| 亚洲天堂在线播放| 成人免费网站视频ww| 欧美a级大片| 国产视频网站在线观看| 97视频免费在线| 亚洲 激情| 午夜欧美成人久久久久久| 国产高清在线精品一区a| 麻豆系列国产剧在线观看| 日韩专区亚洲综合久久| 成人免费观看视频| 久草免费资源| 日本乱中文字幕系列| 日日夜夜婷婷| 日本伦理网站| 国产网站麻豆精品视频| 欧美激情一区二区三区在线| 色综合久久手机在线| 日本伦理黄色大片在线观看网站| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 免费一级片网站| 日本免费区| 成人高清视频免费观看| 高清一级片| 成人免费观看男女羞羞视频| 中文字幕一区二区三区精彩视频 | 91麻豆精品国产片在线观看| 成人在激情在线视频| 精品视频一区二区三区免费| 91麻豆爱豆果冻天美星空| 四虎精品在线观看| 亚洲精品中文一区不卡| 久久国产精品只做精品| 麻豆网站在线免费观看| 91麻豆国产级在线| 九九免费精品视频| 日韩专区第一页| 青青久在线视频| 欧美另类videosbestsex高清| 欧美激情一区二区三区中文字幕| 麻豆午夜视频| 精品国产一区二区三区久久久狼| 亚洲精品中文字幕久久久久久| 精品国产一区二区三区久| 成人免费网站久久久| 日本在线不卡视频| 韩国三级视频网站| 午夜在线亚洲| 日韩在线观看视频免费| 国产麻豆精品高清在线播放| 91麻豆tv| 久草免费在线观看| 亚欧成人毛片一区二区三区四区| 精品美女| 韩国三级香港三级日本三级| 久久精品欧美一区二区| 国产亚洲精品aaa大片| 精品在线观看国产| 国产一级生活片| 国产视频一区二区三区四区| 你懂的日韩| 欧美激情一区二区三区视频| 久草免费在线观看| 午夜在线亚洲男人午在线| 黄视频网站在线免费观看| 久久国产影视免费精品| 青青久热| 精品久久久久久中文字幕一区 | 黄色福利片| 国产91精品一区二区| 精品视频在线看 | 91麻豆爱豆果冻天美星空| 日本免费看视频| 精品毛片视频| 国产一区二区高清视频| 欧美一区二区三区在线观看| 国产国语在线播放视频| 久久99中文字幕| 午夜精品国产自在现线拍| 黄视频网站在线看| 亚飞与亚基在线观看| 黄视频网站免费观看| 精品视频免费观看| 九九热精品免费观看| 国产高清在线精品一区二区| 久草免费在线色站| 国产高清视频免费| 久久精品欧美一区二区| 999久久久免费精品国产牛牛| 亚洲精品中文字幕久久久久久| 精品在线视频播放| 精品国产一区二区三区久| 青青久在线视频| 日本免费看视频| 久久精品人人做人人爽97| 97视频免费在线| a级黄色毛片免费播放视频| 国产一区二区精品| 国产一区精品| 欧美日本免费| 欧美爱色|