《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于CAN的遠程下載技術開發及應用
基于CAN的遠程下載技術開發及應用
維庫
摘要: 摘要:變制冷劑流量(VRV)空調控制系統具有多傳感器、溫度數據具有時滯特性,維護程序代碼和功能調試非常困難,因而提出利用VRV系統的通信網絡和單片機的Bootloader特性,開發基于CAN總線的遠程下載功能。根據V
關鍵詞: 單片機 CAN
Abstract:
Key words :

  摘要: 變制冷劑流量(VRV) 空調控制系統具有多傳感器、溫度數據具有時滯特性,維護程序代碼和功能調試非常困難,因而提出利用VRV 系統的通信網絡和單片機的Bootloader 特性,開發基于CAN 總線的遠程下載功能。根據VRV 控制系統的應用需求,制訂了通訊協議,實現了包括單點、多點及廣播等多種遠程下載方式,并具有軟件復位、數據加解密、異常處理等新功能。該技術已經應用于VRV 空調控制系統的開發調試,應用效果良好。

0 引 言

變制冷劑流量(Variable Refrigerant Volume, VRV)空調系統是一種網絡空調系統,由制冷劑管路網絡和通訊信息流網絡組成,并且一臺室外機通過配管和通訊總線連接多臺室內機,由在監控室的監控PC 機,監控整個系統的運行狀態。系統結構簡圖如圖1 所示。

VRV 空調系統結構簡圖
VRV 空調系統結構簡圖
圖 1 VRV 空調系統結構簡圖

系統控制信息通過通信網絡傳輸,實現對制冷劑管路網絡中制冷劑流量的精確調配,可使系統具有控溫舒適可靠、節能環保、節省建筑空間等優勢,近十幾年得到迅猛的普及。

通訊信息流網絡是VRV 系統的重要組成部分。下文為敘述方便,將監控PC 機稱為主機端、室外機和室內機統稱為目標端。

由于每套系統都有多個參數需要傳感器實時檢測,并且溫度數據本身具有很大的時滯性,因而維護程序代碼和功能調試非常困難。本文提出一種利用VRV 的通信網絡和監控PC機進行程序遠程下載的方法。

另外,VRV 空調系統的通信信息流網絡目前還沒有統一的總線標準,國際上各大廠家都是制定自己的總線標準,兼容性不夠。我們在系統設計VRV 控制系統時,經多方比較,最后鑒于CAN 總線高安全性、故障自動退出等優勢,選擇CAN 總線作為系統的通訊總線。

VRV 系統的室外機和室內機選一款支持CAN 模塊的Microchip公司的dsPIC33FJ 單片機作為主控制芯片。并且這款單片機本身支持Bootloader 功能,這為開發遠程下載,進而實現系統維護和程序更新提供了一種可能。

本文開發出一種基于 CAN 總線,支持單點、多點及廣播等多種方式的遠程下載的技術,并具有軟件復位、異常處理、數據加/解密等突出功能。這些功能極大方便了對VRV 空調控制系統的維護和應用,也為初期進行空系統的設計、開發、調試提供了一種極為便利的手段。

1 總體設計方案

1.1 遠程下載原理

目標端復位后,在一個指定的時間內,目標端都監測與主機端相連的通訊總線是否有數據流活動。如果有,則跳轉到Bootloader 自舉程序,執行Bootloader 自舉功能,將接收的數據,寫入目標端的用戶應用程序段,直到全部數據接收完成后,再跳轉到用戶應用程序段,執行剛接收到的新代碼,實現用戶應用程序的更新。如果超過時限,都沒有監測到該總線上有數據流活動,則直接跳轉到用戶應用程序段,執行原有的程序功能。

在此一共有三段程序:

⑴目標端的自舉程序和用戶應用程序。這兩個程序都是基于MAPLAB IDE 工具開發。

⑵主機端程序。這個程序是用Visual Studio C++開發,只有主機端程序才能主動發起與目標端自舉程序間的通信。

整個通訊過程如圖2 所示,其中:

(1)主機端程序讀取和解析MAPLAB IDE 編譯器生成的用戶應用程序,并組織數據。

(2)通過CAN 總線將解析、重組后的數據傳輸給目標端器件。

(3)目標端自舉程序(Bootloader),將收到的數據加載到目標端器件相應的FALSH 段上。

通訊過程示意圖
 通訊過程示意圖
圖 2 通訊過程示意圖

1.2 系統功能設計

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

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

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

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

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

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

2 協議設計

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

表 1 數據幀29 位標識符分配表
數據幀29 位標識符分配表
數據幀29 位標識符分配表

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

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

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

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

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

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

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

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

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

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

3 目標端設計方案

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

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

上圖給出了dsPIC33 單片機器件的程序存儲器的物理地址映射,由圖可知用戶應用代碼應放置在用戶應用程序地址段,而Bootloader 代碼放在自舉程序地址段。不論目標端自舉程序(Bootloader)需多少存儲空間,自舉程序(Bootloader)和用戶應用程序的存儲位置都必須嚴格遵守目標端存儲器構架。在具體設計中,須注意:

(1)慎用中斷:Bootloader 自舉程序不建議使用中斷方式。目標端器件在寫Flash 程序存儲器時,有一個擦除程序存儲器的操作,可能會擦除掉位于程序存儲器上的中斷向量表和備用中斷向量表地址處的值,造成系統的死機。另外,一個功能強大的程序,一般都是用中斷方式實現用戶應用程序以提高實時性,這會生成一個中斷向量表,存儲在目標端器件程指定中斷向量表和備用中斷向量表地址處。如果在 Bootloader 自舉程序也用中斷方式,會使得一個目標端器件產生兩個不一樣的中斷向量表和備用中斷向量表區,造成系統的死機。

(2)存儲位置:Bootloader 程序和用戶應用程序不應處于同一頁。自舉程序(Bootloader)要先執行擦除程序存儲器,才能將接收的新代碼存入其中。如果處于同一頁,在遠程下載時,很可能擦除Bootloader 程序本身。

(3)自舉延時:必須為目標端自舉程序的執行指定一個延時值,這個延時值作為檢測總線數據流活動的時限。

(4)鏈接文件配置:單片機默認的自舉程序地址段是0X400 到0XC00。如果實際的自舉程序代碼量超過上述空間,需要修改鏈接文件,重新配置,以適合工程需要。

4 主機端設計方案

主機端的設計主要包含主機端通訊程序的實現,并為用戶提供一個管理遠程下載、軟件復位、異常處理等功能的監控界面。主機端程序,采用了多線程的通信存儲技術,一共包含線程:主線程、接收線程、遠程下載線程,使得程序執行效率較高。

上位機軟件界面圖
上位機軟件界面圖
圖5 上位機軟件界面圖

軟件界面如上圖 5 所示,在這里實現的主要功能有:

(1)參數設置功能,包括CAN 的連接、斷開、復位、啟動、接收過濾碼和接收屏蔽碼等CAN 自身參數的設置。

(2)文件導入功能,載入存儲在任意目錄下目標端用戶應用程序的HEX 文件。

(3)遠程下載功能,這一功能由“更新按鈕”觸發產生,啟動主機端程序和目標端的通信,實現遠程下載。

(4)狀態顯示功能,由兩個列表框,用于顯示導入的HEX 文件的數據,和實時顯示當前的通訊狀態。

(5)軟件復位功能,這一功能由“自舉復位”觸發產生,發送一個復位命令和異常處理命令,目標端根據命令進行相應操作。

5 結束語

本文結合VRV 空調控制系統開發的實際應用需求,以dsPIC33 單片機為硬件基礎,開發了基于CAN 的遠程下載系統。系統同時支持單點、多點、廣播等下載方式,具有數據加密、軟件復位、異常處理等以往所開發的遠程下載技術所不具備的功能。

本文主機端程序的設計采用了多線程的通信存儲技術,保證了程序的高效性和擴展性,并且可實時監測系統的狀態,界面風格簡潔明了,符合工程人員操作習慣。目標端嚴格按照dsPIC33F 單片機的體系構架,進行代碼開發和鏈接文件的修改及配置,程序簡潔易讀、安全可靠。本系統2009 年初進行實驗平臺的聯機調試,性能良好。

本文作者創新點:結合VRV 空調控制系統具有多傳感器、溫度數據具有時滯特性,利用VRV 空調系統的通訊信息網絡,開發遠程下載技術,節省成本提高效能;實現了軟件復位和故障處理以及加解密等實際工況的需要,使得更為符合實際現場的需要。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品国产三级国产专区53| 激情六月婷婷综合| 久久久久久穴| 亚洲欧美国产日韩天堂区| 日韩亚洲欧美在线观看| 亚洲激情电影在线| 久久精品官网| 午夜欧美精品久久久久久久| 久久精品视频免费观看| 国产精品福利久久久| 欧美搞黄网站| 欧美jizz19性欧美| 另类av导航| 欧美a级一区二区| 蜜桃av久久久亚洲精品| 久久乐国产精品| 久久免费观看视频| 久久久在线视频| 乱人伦精品视频在线观看| 久久久夜夜夜| 免费的成人av| 欧美大片在线影院| 欧美久久影院| 欧美日韩精品系列| 国产精品成人久久久久| 国产精品久久久久77777| 国产精品日韩欧美一区二区三区| 国产精品福利在线观看| 国产精品一卡二卡| 国产亚洲精品一区二555| 好吊色欧美一区二区三区四区| 国外视频精品毛片| 在线免费观看成人网| 91久久在线视频| 一级日韩一区在线观看| 亚洲网站视频福利| 欧美一区二区成人| 亚洲国产精品一区二区第四页av | 欧美国产精品一区| 欧美理论在线播放| 国产精品国产三级国产专区53 | 久久综合影视| 欧美激情无毛| 国产精品v欧美精品v日韩精品| 国产欧美日韩一区二区三区在线| 国内精品一区二区| 亚洲免费精彩视频| 亚洲欧美影音先锋| 亚洲欧洲一区二区三区久久| 99国产精品99久久久久久粉嫩| 午夜精品久久久| 久久综合五月| 欧美视频中文字幕| 国产一区视频观看| 亚洲片在线资源| 亚洲欧美日韩在线不卡| 亚洲国产欧美一区二区三区久久 | 亚洲校园激情| 欧美专区亚洲专区| 欧美h视频在线| 国产精品日韩一区二区| 亚洲电影第三页| 亚洲在线视频一区| 亚洲精选91| 欧美伊人精品成人久久综合97| 欧美成人自拍| 国产区日韩欧美| 亚洲精品欧美日韩专区| 亚洲一卡久久| 亚洲免费高清| 久久久99国产精品免费| 欧美日韩国内自拍| 狠狠色综合网站久久久久久久| 亚洲最新视频在线播放| 亚洲国产成人在线视频| 亚洲综合色婷婷| 欧美激情一区二区在线 | 亚洲免费视频观看| 亚洲伦理在线观看| 久久久久国产精品麻豆ai换脸| 欧美视频在线观看一区| 亚洲国产成人av| 午夜精品视频一区| 中文一区在线| 欧美成人久久| 国产亚洲精品aa午夜观看| 99视频在线观看一区三区| 亚洲国产欧美日韩另类综合| 久久国产精品网站| 欧美性久久久| 亚洲精品国偷自产在线99热| 亚洲盗摄视频| 久久疯狂做爰流白浆xx| 国产精品国产三级国产普通话蜜臀| 亚洲国产精品t66y| 欧美专区在线观看| 香港久久久电影| 国产精品国产自产拍高清av| 亚洲人成人一区二区三区| 亚洲国产高清自拍| 久久精品国产99精品国产亚洲性色| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲精品乱码久久久久久| 亚洲国产你懂的| 久久午夜羞羞影院免费观看| 国产欧美日韩精品丝袜高跟鞋 | 亚洲福利视频网站| 久久国产主播精品| 久久精品人人做人人爽| 国产美女扒开尿口久久久| 亚洲午夜电影在线观看| 亚洲一区二区成人在线观看| 欧美女人交a| 亚洲国产精品一区在线观看不卡 | 久久精品国产亚洲5555| 久久精品国产精品亚洲综合| 国产欧美日韩在线播放| 亚洲免费一区二区| 香蕉久久夜色精品国产| 国产精品美女主播| 亚洲图片欧洲图片av| 亚洲欧美在线看| 国产精品久久久久久久午夜| 亚洲一区尤物| 欧美在线在线| 国产无遮挡一区二区三区毛片日本| 午夜亚洲性色视频| 久久久国产一区二区| 一区二区三区在线视频播放| 亚洲国产精品99久久久久久久久| 久久深夜福利免费观看| 在线欧美日韩精品| 99精品热视频只有精品10| 欧美日韩国产综合久久| 亚洲图片你懂的| 久久国产精品久久精品国产| 海角社区69精品视频| 亚洲国产精品美女| 欧美精品二区三区四区免费看视频| 亚洲免费观看高清完整版在线观看| 亚洲一区二区三区欧美| 国产精品美女999| 欧美一区2区三区4区公司二百| 久久噜噜亚洲综合| 亚洲电影免费观看高清| 99re6这里只有精品视频在线观看| 欧美午夜激情在线| 午夜精品久久久| 免费看的黄色欧美网站| 亚洲人体影院| 亚洲一区二区在| 一本大道久久精品懂色aⅴ | 亚洲欧美视频在线观看视频| 国产精品亚洲精品| 亚洲欧美日韩中文在线制服| 久久er精品视频| 在线看一区二区| 亚洲一区二区三区久久| 国产欧美一区二区三区在线老狼| 久久精品欧美| 欧美精品在线看| 亚洲图中文字幕| 久热国产精品| 一本久久青青| 久久久久久久激情视频| 亚洲精一区二区三区| 欧美在线播放视频| 亚洲电影一级黄| 亚洲欧美日韩精品| 在线看片成人| 午夜国产一区| 亚洲国产精彩中文乱码av在线播放| 亚洲一二三四区| 好吊色欧美一区二区三区四区| 999在线观看精品免费不卡网站| 国产精品自拍小视频| 亚洲精品日韩欧美| 国产精品久久久久av| 亚洲高清自拍| 欧美色精品在线视频| 久久精品国产综合精品| 欧美三级视频在线| 久久国产视频网站| 欧美日韩三区四区| 久久精品人人爽| 国产精品久久久久久久久果冻传媒 | 亚洲高清色综合| 欧美三区美女| 亚洲国产精品一区制服丝袜| 国产精品国产a级| 亚洲破处大片| 国产精品亚洲综合一区在线观看| 亚洲精品视频一区| 国产欧美日韩亚洲精品| 一区二区av| 伊人成年综合电影网| 午夜激情综合网| 亚洲精品免费看| 老司机精品福利视频| 亚洲欧美久久久|