《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于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亚洲国产精品_日韩亚洲一区二区
亚洲美女免费精品视频在线观看| 午夜激情久久久| 一区二区三区精品视频| 亚洲黑丝一区二区| 一色屋精品视频在线看| 国产主播喷水一区二区| 国产视频一区在线| 国产一区二区三区在线观看免费 | 亚洲尤物视频网| 一区二区三区国产精华| 一区二区日韩伦理片| 一区二区日韩精品| 亚洲视频欧洲视频| 亚洲视频一区二区在线观看 | 亚洲天堂成人在线观看| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲精品视频中文字幕| 亚洲美女在线观看| 99re热精品| 一区二区三区四区在线| 亚洲综合久久久久| 欧美亚洲自偷自偷| 欧美主播一区二区三区| 亚洲国产精品成人久久综合一区| 久久精品官网| 亚洲人成在线影院| 一卡二卡3卡四卡高清精品视频 | 午夜伦欧美伦电影理论片| 午夜久久美女| 久久免费高清视频| 欧美激情精品久久久久久黑人| 欧美久久久久久久久久| 欧美揉bbbbb揉bbbbb| 国产精品美女黄网| 国产日产欧美a一级在线| 国产中文一区二区| 91久久精品久久国产性色也91| 99精品99| 校园春色综合网| 亚洲肉体裸体xxxx137| 亚洲午夜国产一区99re久久 | 一区二区三区日韩欧美精品| 午夜精品999| 亚洲高清视频一区| 日韩午夜在线播放| 亚洲欧美精品suv| 久久只精品国产| 欧美日韩国产在线一区| 国产精品入口夜色视频大尺度| 国产专区一区| 日韩亚洲视频在线| 欧美一区二区三区四区在线观看| 亚洲青色在线| 西瓜成人精品人成网站| 久久男人av资源网站| 欧美日韩亚洲综合在线| 国产午夜亚洲精品羞羞网站| 亚洲黄色天堂| 午夜精彩视频在线观看不卡 | 亚洲人成网站在线播| 亚洲欧美另类综合偷拍| 久久免费一区| 国产精品扒开腿做爽爽爽视频| 黄色成人91| 一区二区三区精品久久久| 久久精品国产免费观看| 亚洲一区二区免费视频| 久久中文久久字幕| 国产精品久久一区二区三区| 在线日韩av片| 午夜精品久久久久| 一本久道久久久| 久久久久久色| 国产精品美女久久久| 91久久一区二区| 久久成人精品无人区| 亚洲一区免费| 欧美成人亚洲| 国产综合在线视频| 亚洲男人的天堂在线| 一本大道久久精品懂色aⅴ | 欧美国产日本韩| 国产在线精品二区| 一区二区高清| 一本久久a久久精品亚洲| 久久青青草原一区二区| 国产精品久久久999| 亚洲三级免费观看| 亚洲国产精品第一区二区三区| 亚洲欧洲av一区二区| 欧美紧缚bdsm在线视频| 尤物99国产成人精品视频| 亚洲欧美日韩在线综合| 在线视频欧美一区| 欧美国产日本在线| 雨宫琴音一区二区在线| 欧美一区三区二区在线观看| 先锋资源久久| 欧美性色综合| 日韩亚洲欧美综合| 99视频有精品| 欧美精品www| 亚洲国产精品电影| 亚洲国产日韩在线| 久久在精品线影院精品国产| 国产性天天综合网| 亚洲欧美日韩国产成人| 亚洲欧美视频| 国产精品久久精品日日| 正在播放亚洲一区| 亚洲一区999| 欧美香蕉视频| 一区二区激情小说| 亚洲视频第一页| 欧美色欧美亚洲另类七区| 亚洲美女一区| 一区二区三区日韩精品| 欧美日韩激情网| 日韩视频免费大全中文字幕| 一本色道久久88亚洲综合88| 欧美精品aa| 日韩视频免费观看高清完整版| 夜夜爽99久久国产综合精品女不卡| 欧美韩国在线| 亚洲三级观看| 亚洲特黄一级片| 国产精品国产三级国产aⅴ无密码| 一区二区三区免费观看| 亚洲一区网站| 国产噜噜噜噜噜久久久久久久久 | 亚洲欧美在线播放| 国产老肥熟一区二区三区| 欧美一区二区三区在线免费观看| 久久久精品动漫| 一区二区亚洲精品国产| 亚洲青涩在线| 欧美日韩成人综合在线一区二区| 亚洲久久在线| 亚洲男人的天堂在线| 国产精品综合视频| 久久国产欧美日韩精品| 六月婷婷久久| 亚洲精品麻豆| 性欧美1819sex性高清| 国产综合香蕉五月婷在线| 亚洲欧洲日产国码二区| 欧美日韩视频在线| 亚洲一区国产| 快射av在线播放一区| 亚洲毛片av在线| 欧美一区二区三区视频在线| 伊人精品视频| 一本一本大道香蕉久在线精品| 国产精品国产亚洲精品看不卡15 | 国产精品xvideos88| 香蕉亚洲视频| 欧美激情视频网站| 中日韩午夜理伦电影免费| 久久久久www| 亚洲人成网在线播放| 亚洲欧美一区二区三区极速播放 | 久久riav二区三区| 亚洲第一福利视频| 亚洲一区在线直播| 国语自产在线不卡| 99精品国产热久久91蜜凸| 国产精品中文在线| 亚洲人体大胆视频| 国产精品网站在线观看| 亚洲区在线播放| 国产精品久久久久77777| 亚洲国产高清视频| 欧美性猛片xxxx免费看久爱| 欧美在线高清| 欧美日韩一区二区欧美激情| 性欧美长视频| 欧美日韩亚洲一区在线观看| 久久av免费一区| 欧美三级小说| 91久久精品国产91性色tv| 国产精品久线观看视频| 亚洲激情第一页| 国产伦精品一区二区三区视频黑人 | 99国产精品久久| 久久综合九色综合网站| 亚洲视频网在线直播| 欧美成年人网站| 午夜在线精品| 国产精品白丝黑袜喷水久久久 | 在线综合亚洲| 激情五月综合色婷婷一区二区| 亚洲在线观看视频| 亚洲国内在线| 久久久久久亚洲综合影院红桃| 99pao成人国产永久免费视频| 麻豆成人av| 欧美中文日韩| 国产精品人成在线观看免费| 99国产精品99久久久久久| 极品少妇一区二区三区|