基于CAN的遠程下載技術(shù)開(kāi)發(fā)及應用
上圖給出了dsPIC33 單片機器件的程序存儲器的物理地址映射,由圖可知用戶(hù)應用代碼應放置在用戶(hù)應用程序地址段,而B(niǎo)ootloader 代碼放在自舉程序地址段。不論目標端自舉程序(Bootloader)需多少存儲空間,自舉程序(Bootloader)和用戶(hù)應用程序的存儲位置都必須嚴格遵守目標端存儲器構架。在具體設計中,須注意:
(1)慎用中斷:Bootloader 自舉程序不建議使用中斷方式。目標端器件在寫(xiě)Flash 程序存儲器時(shí),有一個(gè)擦除程序存儲器的操作,可能會(huì )擦除掉位于程序存儲器上的中斷向量表和備用中斷向量表地址處的值,造成系統的死機。另外,一個(gè)功能強大的程序,一般都是用中斷方式實(shí)現用戶(hù)應用程序以提高實(shí)時(shí)性,這會(huì )生成一個(gè)中斷向量表,存儲在目標端器件程指定中斷向量表和備用中斷向量表地址處。如果在 Bootloader 自舉程序也用中斷方式,會(huì )使得一個(gè)目標端器件產(chǎn)生兩個(gè)不一樣的中斷向量表和備用中斷向量表區,造成系統的死機。
(2)存儲位置:Bootloader 程序和用戶(hù)應用程序不應處于同一頁(yè)。自舉程序(Bootloader)要先執行擦除程序存儲器,才能將接收的新代碼存入其中。如果處于同一頁(yè),在遠程下載時(shí),很可能擦除Bootloader 程序本身。
(3)自舉延時(shí):必須為目標端自舉程序的執行指定一個(gè)延時(shí)值,這個(gè)延時(shí)值作為檢測總線(xiàn)數據流活動(dòng)的時(shí)限。
(4)鏈接文件配置:單片機默認的自舉程序地址段是0X400 到0XC00。如果實(shí)際的自舉程序代碼量超過(guò)上述空間,需要修改鏈接文件,重新配置,以適合工程需要。
4 主機端設計方案
主機端的設計主要包含主機端通訊程序的實(shí)現,并為用戶(hù)提供一個(gè)管理遠程下載、軟件復位、異常處理等功能的監控界面。主機端程序,采用了多線(xiàn)程的通信存儲技術(shù),一共包含線(xiàn)程:主線(xiàn)程、接收線(xiàn)程、遠程下載線(xiàn)程,使得程序執行效率較高。
上位機軟件界面圖

圖5 上位機軟件界面圖
軟件界面如上圖 5 所示,在這里實(shí)現的主要功能有:
(1)參數設置功能,包括CAN 的連接、斷開(kāi)、復位、啟動(dòng)、接收過(guò)濾碼和接收屏蔽碼等CAN 自身參數的設置。
(2)文件導入功能,載入存儲在任意目錄下目標端用戶(hù)應用程序的HEX 文件。
(3)遠程下載功能,這一功能由“更新按鈕”觸發(fā)產(chǎn)生,啟動(dòng)主機端程序和目標端的通信,實(shí)現遠程下載。
(4)狀態(tài)顯示功能,由兩個(gè)列表框,用于顯示導入的HEX 文件的數據,和實(shí)時(shí)顯示當前的通訊狀態(tài)。
(5)軟件復位功能,這一功能由“自舉復位”觸發(fā)產(chǎn)生,發(fā)送一個(gè)復位命令和異常處理命令,目標端根據命令進(jìn)行相應操作。
5 結束語(yǔ)
本文結合VRV 空調控制系統開(kāi)發(fā)的實(shí)際應用需求,以dsPIC33 單片機為硬件基礎,開(kāi)發(fā)了基于CAN 的遠程下載系統。系統同時(shí)支持單點(diǎn)、多點(diǎn)、廣播等下載方式,具有數據加密、軟件復位、異常處理等以往所開(kāi)發(fā)的遠程下載技術(shù)所不具備的功能。
本文主機端程序的設計采用了多線(xiàn)程的通信存儲技術(shù),保證了程序的高效性和擴展性,并且可實(shí)時(shí)監測系統的狀態(tài),界面風(fēng)格簡(jiǎn)潔明了,符合工程人員操作習慣。目標端嚴格按照dsPIC33F 單片機的體系構架,進(jìn)行代碼開(kāi)發(fā)和鏈接文件的修改及配置,程序簡(jiǎn)潔易讀、安全可靠。本系統2009 年初進(jìn)行實(shí)驗平臺的聯(lián)機調試,性能良好。
本文作者創(chuàng )新點(diǎn):結合VRV 空調控制系統具有多傳感器、溫度數據具有時(shí)滯特性,利用VRV 空調系統的通訊信息網(wǎng)絡(luò ),開(kāi)發(fā)遠程下載技術(shù),節省成本提高效能;實(shí)現了軟件復位和故障處理以及加解密等實(shí)際工況的需要,使得更為符合實(shí)際現場(chǎng)的需要。本文引用地址:http://dyxdggzs.com/article/173118.htm
評論