在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于CAN的遠程下載技術開發(fā)及應用

            基于CAN的遠程下載技術開發(fā)及應用

            作者: 時間:2010-12-07 來源:網(wǎng)絡 收藏


            1.2 系統(tǒng)功能設計

            在整個設計開發(fā)中,關鍵之處是目標端 Bootloader 自舉程序的開發(fā)。結合到VRV 空調(diào)系統(tǒng)的實際應用,整個系統(tǒng)應該至少具有以下功能:

            (1)多種下載方式的提供。VRV 空調(diào)系統(tǒng)運行當中,可能需要根據(jù)實際情況采用不同的方式來進行遠程下載。因而需要實現(xiàn)對單點、多點及廣播等通訊方式的支持。

            (2)軟件復位功能。即便是目標端設備已經(jīng)具備利用Bootloader 自舉程序來實現(xiàn)遠程下載的能力,但由于Bootloader 機制需要目標端先復位,才能重新再執(zhí)行Bootloader 自舉程序。

            然而現(xiàn)場環(huán)境往往不能實施掉電或其他硬件方式復位目標端設備,這便需要有軟件實現(xiàn)復位的手段。在此,將軟件復位作為自定義的通訊協(xié)議中一個命令,由主機端發(fā)送給目標端,目標端的用戶應用程序內(nèi)接收到這一命令,經(jīng)過解析、確認后進行復位。

            (3)加/解密功能。鑒于多聯(lián)機空調(diào)系統(tǒng)的商用價值,Bootloader 程序應當具備加密的功能,保護知識產(chǎn)權。這可以通過主機端和目標端之間采用一種密鑰或加、解密算法,融合到通訊數(shù)據(jù)中實現(xiàn)。

            (4)異常處理功能。在通訊過程中,很有可能出現(xiàn)如主機端出現(xiàn)故障,造成當前的數(shù)據(jù)不能繼續(xù)成功發(fā)給目標端。目標端運行自舉程序時,只有等到主機端數(shù)據(jù)全部通訊完畢,才可以跳轉到用戶應用程序,繼續(xù)執(zhí)行。此會造成目標端一直處于等待狀態(tài),效率低下或者接收錯誤數(shù)據(jù)并執(zhí)行,以致出現(xiàn)嚴重后果。在系統(tǒng)設計開發(fā)時需要預留一個能夠實現(xiàn)異常處理的命令以便主機端恢復后,將這個命令下發(fā),目標段根據(jù)這個命令,重新接收正確的數(shù)據(jù)。

            2 協(xié)議設計

            要將系統(tǒng)的目標端和主機端之間,設計成支持單點、多點以及廣播等多種遠程下載方式,并且支持、軟件復位和異常處理、加解密等功能,可以充分利用 總線數(shù)據(jù)幀的29 位(遵循2.0B 協(xié)議)標識符來實現(xiàn)。定制的通訊協(xié)議中 的幀格式如表1 所示,將CAN 的29 位標示符分為五段:優(yōu)先級、控制域、通訊方式、節(jié)點編號、命令編號。

            表 1 數(shù)據(jù)幀29 位標識符分配表
            數(shù)據(jù)幀29 位標識符分配表
            數(shù)據(jù)幀29 位標識符分配表

            優(yōu)先級:00->01->10->11 優(yōu)先級別依次降低,默認優(yōu)先級別為11,故障報警優(yōu)先級最高為00,數(shù)據(jù)傳輸優(yōu)先級為01,命令下傳優(yōu)先級為10,應答返回優(yōu)先級為11。

            控制域:ID26/ID22,用以表示當前的數(shù)據(jù)幀屬于哪一種類型:故障為00、數(shù)據(jù)為01、命令10、應答11。

            通訊方式:ID24/ID15,指定當前的數(shù)據(jù)幀是廣播傳輸或者單點傳輸,全為0 是單點而全為1 是廣播。

            節(jié)點編號:ID14/ID8,共7 位,足夠標識CAN 總線支持的多達112 個節(jié)點的最大負載。

            命令編號:這里存放的是根據(jù)實際需要定制的一些命令,如軟件復位命令、異常處理命令。主機端將定制的命令編號下發(fā),目標端接收到命令后,解析后執(zhí)行相應動作。仿照上表,配置各個目標端的接收過濾碼和接收屏蔽碼,便可以實現(xiàn)單點、多點以及廣播通訊。另外,對于單點通訊方式下的遠程下載,為保證主機端和目標端的通訊數(shù)據(jù)的正確和可靠傳輸,采用應答機制來實現(xiàn),并定制了一套圖3 所示的通訊鏈路機制。

            主機端和目標端應答鏈路機制圖
            主機端和目標端應答鏈路機制圖
            圖 3 主機端和目標端應答鏈路機制圖

            遠程下載的通訊只能由主機端開啟。主機端先發(fā)送讀取器件型號命令,讀取目標端器件芯片型號,目標端收到這個命令,回復本身的型號數(shù)據(jù)作為一個應答,主機端根據(jù)這個型號,再開辟動態(tài)內(nèi)存和組織要下傳的數(shù)據(jù)。主機端接著下發(fā)一個讀取器件PROM 命令,以獲取目標端器件位于地址0x00 處的數(shù)據(jù),將和從主機端讀取并解析、組織后的HEX 文件一起下傳。主機端收到這一步的應答后,開始發(fā)送寫PROM 命令和PROM 數(shù)據(jù),目標端將接收到的數(shù)據(jù)寫入相應的地址段,每完成一頁寫操作,返回一個應答,接著接收主機端下傳的下一頁數(shù)據(jù)。PROM 寫數(shù)據(jù)發(fā)送完后,主機端接著發(fā)送寫CM 數(shù)據(jù)命令和寫CM 數(shù)據(jù),過程和寫PROM 是一樣的。最后,主機端下發(fā)一個跳轉命令,目標端收到這個命令后,跳轉到程序存儲器的0x00 地址處。然后,目標端根據(jù)地址0x00 處存放的數(shù)據(jù),跳轉到用戶應用程序。

            而對于多點或廣播,通常都是對數(shù)百甚至上千目標端進行下載。如果目標端都應答,會造成總線上數(shù)據(jù)的堵塞,浪費大量的總線時間。所以采用非應答機制,直接燒寫程序存儲器。

            此時主機端數(shù)據(jù)的下傳,采用定時器觸發(fā)方式。每當定時時間到達時,觸發(fā)一次數(shù)據(jù)的發(fā)送。

            直至最后,發(fā)送一個跳轉命令。如果目標端沒有執(zhí)行跳轉,那么認為當前目標端沒能正確接收主機端發(fā)送的數(shù)據(jù),主機端重新對當前目標端進行一次單點方式下的遠程下載。

            3 目標端設計方案

            目標端Bootloader 自舉程序一般只是一個簡單的通訊程序,負責接收和發(fā)送數(shù)據(jù),通常只需極少的存儲空間,可以位于程序存儲器特定的Boot Segment 區(qū)域。程序存儲器還有一段稱為General Segment 區(qū)域可用于存儲用戶應用程序。的程序存儲器大多都是FLASH 閃存,數(shù)據(jù)是以一個個數(shù)據(jù)頁的形式存儲,必須先對當前存儲頁擦除,然后才能寫入數(shù)據(jù)。自舉程序還需使用dsPIC33 器件中斷向量表 (IVT) 中的復位向量實現(xiàn)程序的跳轉、以及器件上的CAN 通信模塊。單片機的程序存儲器的地址映射如下圖4 所示。

            dsPIC33F 程序存儲器地址映射圖
             dsPIC33F 程序存儲器地址映射圖
            圖 4 dsPIC33F 程序存儲器地址映射圖


            關鍵詞: 單片機 CAN

            評論


            相關推薦

            技術專區(qū)

            關閉