張光旭 楊 都 賴東鋒 葉鐵英
(珠海格力電器股份有限公司 珠海 519070)
由于多聯(lián)機系統(tǒng)復雜,設備節(jié)點多,通訊距離遠,工程現場環(huán)境復雜多變。在用戶實際使用過程中,一旦出現功能使用異常問題需要控制器方面的售后處理時,如果采用逐個拆卸更換電路板的方式進行維修,既面臨更換操作復雜,人身安全隱患,又有效率底下,維修成本高昂的問題。因此通過機組的現有通訊網絡,對多聯(lián)機組的設備進行批量程序升級,可以很好地解決控制器售后維修問題,提升用戶滿意度。
基于機組通訊網絡的多聯(lián)機設備批量程序升級系統(tǒng),需要實現以下功能:
1)利用機組正常運行時的機組網絡,無需改變機組原有通訊接線,升級設備只需通過工程維修口接入機組網絡即可。
2)對于機組網絡中,采用同一個程序的設備節(jié)點,一次性完成批量程序升級,操作簡便,大大提升升級效率,短時間內完成設備程序更新,最大限度降低因程序升級操作對用戶使用的影響。程序升級設備自動識別待升級設備程序升級信息,提供交互接口,完成程序升級流程的指令與數據下發(fā),實現批量程序升級。
3)具備高可靠性,抵御因工程現場環(huán)境電磁干擾,安裝接線規(guī)范問題,以及設備差異性導致的可能干擾,確保程序升級的正常完成。在遇到異常情況,例如升級過程中意外斷電,通訊連接異常,其他設備干擾時,可以通過抗干擾機制以及其他機制,確保批量程序升級可靠實現。
程序升級系統(tǒng)包括升級設備、機組通訊網絡以及待升級設備,升級設備通過機組通訊網絡與待升級設備進行通訊連接。實際使用過程中,升級設備作為維修時加入的通訊設備,通過識別機組網絡的波特率、極性等通訊參數,加入到當前機組網絡。
升級設備的功能包括:獲取當前機組網絡下待升級設備的類型、數量、地址信息、運行程序信息等,發(fā)送程序升級相關升級指令、待升級程序文件數據,接收待升級設備升級過程狀態(tài)信息等,進行升級過程中異常情況下的處理。
待升級設備需要實現的功能包括:發(fā)送當前設備的類型、地址信息、運行程序信息等,接收程序升級相關升級指令、待升級程序文件數據,反饋當前設備升級過程狀態(tài)信息等。
機組通訊網絡作為升級設備與待升級設備之間進行通訊的網絡,允許升級設備的隨時就接入和斷開。
如圖1所示程序升級系統(tǒng)中,多聯(lián)機外機、室內機、升級設備通過機組通訊網絡連接。作為待升級設備,外機數量m和室內機數量n根據實際工程需要數量不定,室內機數量可多達上百臺。多聯(lián)機的機組通訊網絡通常為CAN通訊、RS485通訊等,從批量程序升級的效率和可靠性來看,采用CAN通訊網絡的機組[1],具備更好的表現。
升級設備作為程序升級系統(tǒng)的發(fā)起者,負責整個升級流程時序以及狀態(tài)切換,具備程序升級入口,用戶交互,數據發(fā)送接收,狀態(tài)顯示等功能,待升級設備具備In-Application Programming(IAP)功能,程序通常分為兩個部分:Bootloader部分[2]和應用部分程序,Bootloader部分負責實現IAP功能,應用部分用于實現機組相關功能,程序升級只是更新應用部分程序,Bootloader部分始終存在。通過升級設備的指令進入IAP狀態(tài),接收指令及數據后,完成擦除、燒錄及校驗工作,實現程序升級。
圖2為多聯(lián)機設備程序升級流程圖。
圖1 程序升級系統(tǒng)框圖
圖2 多聯(lián)機設備程序升級流程圖
多聯(lián)機設備程序升級流程圖如下。
1)升級設備接入多聯(lián)機機組通訊網絡,上電運行,識別機組通訊網絡參數如波特率、極性等,加入到機組通訊網絡。用戶操作升級設備,選擇需要升級的設備,升級設備將會點名當前設備類型,查詢當前設備類型的程序名稱,數量,地址信息等,匯總當前設備類型的程序信息列表。
2)用戶選擇當前設備類型下需要升級的程序以及程序文件,將程序文件信息發(fā)送給相應待升級設備,待升級設備與自身信息進行匹配比較,確認是否升級,然后反饋升級確認信息。當至少有一臺設備需要程序升級時,允許進入到程序正式燒錄階段。
3)待升級設備答復可以接收程序文件數據時,升級設備通過機組通訊網絡發(fā)送程序文件片段數據,校驗無誤后,待升級設備完成片段燒錄,并將燒錄狀態(tài)反饋給升級設備,升級設備根據反饋信息,確定是否重發(fā)該片段數據。為提高程序升級可靠性,并且由于待升級設備通常性能有限,沒有足夠的空間一次性收發(fā)全部程序文件數據。因此,基于待升級設備的程序地址空間特性,同時考慮到升級過程的可靠聽,通常將程序文件拆分為數kb字節(jié)大小的片段,進行數據收發(fā)處理。
4)當待升級設備完成所有片段數據燒錄后,校驗無誤后,待升級設備完成程序更新,可以完成跳轉以運行新程序。
在程序升級過程中,一旦出現意外斷電,或者其他異常情況,導致程序升級失敗,可通過制定數據重發(fā)機制處理升級過程中的干擾[3]。由于待升級設備Bootloader部分始終存在,待升級設備可以再次進入IAP狀態(tài),以完成程序升級。
1)主芯片部分
主芯片部分是整個升級設備的核心,是實現程序升級功能的基礎。選擇一款具備機組通訊外設如CAN或者UART、USB接口、存儲設備接口如SD接口、液晶顯示接口等功能的主芯片,同時需具備一定的程序空間和RAM空間以及類似SDRAM或者DDR空間,可以滿足程序升級的需求。
2)通訊部分
升級設備控制器需具備通訊功能,可以接入機組網絡,識別通訊參數,與內外機通訊,進行數據收發(fā)。目前多聯(lián)機大多采用的CAN通訊,CAN通訊的無主通訊方式,短幀結構,數據幀抗干擾特性,可以很好的滿足設備程序升級所需的效率與高可靠性。
3)顯示部分
升級設備室需要在工程現場由專業(yè)人員進行升級操作的,需要良好具備人機交互接口,通常采用電容觸摸屏,用戶進行頁面操作,頁面反饋當前程序升級相關信息。
4)存儲部分
程序升級設備需要存儲待升級設備的程序升級文件以及相關配置信息,以及存儲升級設備自身運行所需的UI相關文件,通常采用SPI FLASH、eMMC等存儲方案。
5)其余部分
升級設備其余部分主要包括電源電路,提供升級設備正常工作的電源,電源的品質與升級設備工作的抗干擾性有著重大影響。
多聯(lián)機設備程序升級系統(tǒng)中的升級設備軟件部分主要包括通訊部分、顯示部分、程序文件處理等。
通訊部分實現的功能是,通過主芯片通訊接口外設與機組網絡連接,自動識別通訊波特率、極性等參數,加入到機組網絡,當用戶操作升級某類設備的程序時,發(fā)送程序升級相關指令與數據,接收來自于升級設備的狀態(tài)信息,根據狀態(tài)信息確定程序升級流程,完成升級設備與待升級設備之間的數據交互。
顯示部分主要是顯示機組網絡相關狀態(tài)參數,程序升級時,顯示待升級設備的運行程序信息、數量信息等,以及程序升級文件的信息包括程序名稱、版本信息、程序大小、修改時間、校驗信息等。在升級過程中,實時顯示升級進度、狀態(tài)信息等。
程序文件的處理,包括待升級設備程序文件的導入、顯示、輸出等,為便于操作,通常升級設備具備類似USB、SD卡接口,如果是其他類型的如eMMC,通常需要對該類設備進行文件系統(tǒng)格式化,掛載文件系統(tǒng),便于文件管理。升級設備自身也需要移植文件系統(tǒng),常見的如FATFS[4]。升級設備以文件的形式處理程序升級文件,包括程序文件信息的獲取,程序文件數據的解析等。
作為程序升級系統(tǒng)中的待升級設備,硬件部分主芯片需具備通過機組網絡與升級設備進行通訊以及運行機組正常功能與程序升級功能。具備程序升級功能的主芯片,需具備IAP功能,待升級設備的通過Boolloader部分代碼,對片上程序存儲器完成擦除、編程、校驗等功能,實現運行程序的更新。
待升級設備的軟件部分主要是Bootloader部分和應用程序部分,程序升級更新的也是應用部分程序。應用部分主要用于實現機組正常功能,同時也可以識別升級設備發(fā)送的升級信息,當確認需要進行程序升級時,應用部分程序跳轉至運行Bootloader部分程序,實現應用部分跳轉功能,可以在無需對待升級設備進行硬件復位的情況下,進入Bootloader部分,簡化了程序升級操作。Bootloader部分是實現程序升級的部分,同時在此部分也可以識別升級設備發(fā)送的升級指令,避免由于應用部分升級失敗或者其他原因導致無法運行的情況下,可以直接在Bootloader部分識別程序升級指令,進入程序升級狀態(tài)。進入程序升級流程后,Bootloader程序接收來自于升級設備的指令及程序數據,完成擦除、燒錄、校驗等,并反饋燒錄狀態(tài)信息給升級設備,直至完成整個程序的燒錄。燒錄無誤后,可以自行跳轉運行更新后的應用部分程序,或者由硬件復位的方式、升級設備指令的方式運行更新后的應用部分程序。
實際測試中,多聯(lián)機設備通過CAN網絡進行批量程序升級,在一次性升級上百臺室內機時,完成時間在10分鐘之內,成功率為100 %;對于機組網絡中的通訊干擾以及異常情況下的升級中斷,通過各項容錯機制,可以最終實現程序升級成功。
基于機組通訊網絡的多聯(lián)機設備程序升級系統(tǒng),以批量的形式對網絡中的機組進行程序升級,具備效率高、可靠性高、成本低的特點,應用于多聯(lián)機的工程項目中,可以大大降低售后維修的難度,減少由于售后處理對于用戶使用的影響,提升用戶的舒適度和滿意度。