《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > CAN總線在智能配電系統(tǒng)中的應(yīng)用
CAN總線在智能配電系統(tǒng)中的應(yīng)用
摘要: 本文為計算機機房開發(fā)的智能配電系統(tǒng)iPDS (Intelligent Power Distribution System)具有智能化和人性化兩大特點,采用CAN總線進(jìn)行數(shù)據(jù)的交互傳遞,,很好地滿足了系統(tǒng)可靠性,、實時性及成本方面的要求,。
Abstract:
Key words :

    1,、引言

  目前,,計算機機房的配電系統(tǒng)大都使用UPS,,保證了機房的可靠供電。UPS系統(tǒng)的每一路電流都采用自動空氣斷路器進(jìn)行過流保護(hù),,這種保護(hù)是有效的,,但不是智能的,不能設(shè)置,,不會報警,,更沒有供電及故障報警信息的紀(jì)錄,與高可靠性的要求不相符,,有進(jìn)一步改造的必要和需求,。本文為計算機機房開發(fā)的智能配電系統(tǒng)iPDS(Intelligent Power Distribution System)很好地滿足了以上要求,具有智能化和人性化兩大特點,。本系統(tǒng)采用CAN總線進(jìn)行數(shù)據(jù)的交互傳遞,,很好地滿足了系統(tǒng)可靠性、實時性及成本方面的要求,。

  2,、系統(tǒng)設(shè)計

  2.1 系統(tǒng)結(jié)構(gòu)設(shè)計

  本智能系統(tǒng)對機房內(nèi)各路電源的電流、漏電流,、零地電壓,、自動空氣斷路器的運行狀態(tài)等信息進(jìn)行實時監(jiān)測、顯示,,具有實時報警,、詳細(xì)記錄等功能,并可以根據(jù)用戶要求靈活地配置各路監(jiān)測信息,??梢栽陲@示屏上查詢機房各路電源的使用情況,盡早發(fā)現(xiàn)和消除隱患,,實時處理故障,,進(jìn)一步提高了系統(tǒng)的可靠性。

  本系統(tǒng)由數(shù)據(jù)處理單元,、數(shù)據(jù)采集節(jié)點、LED顯示節(jié)點,、觸摸屏等組成,,具體系統(tǒng)結(jié)構(gòu)如圖1所示。

  圖1 智能配電系統(tǒng)結(jié)構(gòu)圖

  2.2 系統(tǒng)功能設(shè)計

  整個系統(tǒng)結(jié)構(gòu)復(fù)雜,,功能完善,,觸摸屏通過RS-485與數(shù)據(jù)處理單元相連,,數(shù)據(jù)處理單元、數(shù)據(jù)采集節(jié)點和LED顯示節(jié)點都掛接在CAN總線上,,各組成部分提供不同的功能:

 ?。?) 數(shù)據(jù)處理單元有兩個CPU,單片機AT89C58和P87C591,,二者通過雙口RAM進(jìn)行數(shù)據(jù)交換,,其中AT89C58與觸摸屏通過RS-485通信,處理觸摸屏上的顯示和設(shè)置信息,,P87C591處理CAN總線上的交互信息,。

  (2) 觸摸屏是系統(tǒng)的主界面,,用于設(shè)置系統(tǒng)的配置信息,,顯示當(dāng)前各路的電流、漏電流,、零地電壓和自動空氣斷路器的狀態(tài)等,,并可以查看歷史報警記錄。

 ?。?) 數(shù)據(jù)采集節(jié)點采集各路模擬量和開關(guān)量信息,,通過CAN總線傳輸,以供數(shù)據(jù)處理單元處理,。

 ?。?) LED顯示節(jié)點主要顯示當(dāng)前各路的模擬量和開關(guān)量的報警信息,便于用戶查看,,使系統(tǒng)更加人性化,。

  3、CAN總線硬件設(shè)計

  3.1 P87C591簡介及硬件設(shè)計

  在系統(tǒng)中,,采用Philips公司生產(chǎn)的P87C591單片機,,該單片機是一個8位高性能微控制器,具有片內(nèi)CAN控制器,,大大簡化了硬件電路的設(shè)計,,提高了CAN接口的穩(wěn)定性。

  P87C591采用了強大的80C51指令集,,并集成了SJA1000 CAN控制器的PeliCAN功能,。

  P87C591連接的CAN節(jié)點電路設(shè)計比較簡單,所需的外部元件只是一個晶振加兩個電容驅(qū)動片內(nèi)震蕩器,、一個連接到復(fù)位腳的電阻,、電容。使用片內(nèi)上電復(fù)位電路以及一個收發(fā)器將P87C591連接到CAN總線上,。

  3.2 CAN總線通信過程及標(biāo)識符的分配

  本系統(tǒng)對實時性要求高,,數(shù)據(jù)傳輸量大,,數(shù)據(jù)采集節(jié)點采集的信息應(yīng)快速上傳到數(shù)據(jù)處理單元,以便及時處理,,數(shù)據(jù)處理單元將觸摸屏上的設(shè)置信息實時傳遞給數(shù)據(jù)采集單元,;數(shù)據(jù)處理單元處理完采集的信息后,將當(dāng)前的系統(tǒng)狀態(tài)及時地在LED顯示節(jié)點上顯示出來,,并指揮繼電器動作,。

  整個CAN總線系統(tǒng)采用CAN2.0B通訊協(xié)議,采用標(biāo)準(zhǔn)幀格式,、11位標(biāo)識符來區(qū)分CAN總線上的節(jié)點,。數(shù)據(jù)處理單元是CAN總線上最重要的節(jié)點,控制整個總線上數(shù)據(jù)的傳輸和處理,,優(yōu)先級最高,,其次是數(shù)據(jù)采集節(jié)點,它是數(shù)據(jù)的來源,,實時采集傳遞數(shù)據(jù),,再次是LED顯示節(jié)點。

  考慮到系統(tǒng)的擴(kuò)展問題,,預(yù)留了一部分標(biāo)識符,,根據(jù)用戶要求可以增加、減少數(shù)據(jù)采集節(jié)點和LED顯示節(jié)點,,而不影響系統(tǒng)的優(yōu)先級設(shè)計,。

  4、CAN總線軟件設(shè)計

  數(shù)據(jù)處理單元是CAN總線上優(yōu)先級最高的節(jié)點,,控制著整個總線上的數(shù)據(jù)傳輸流程,,其軟件設(shè)計主要包括兩大部分,即通信網(wǎng)絡(luò)的應(yīng)用層協(xié)議和功能實現(xiàn)的流程和編碼,。

  4.1 軟件功能分析及系統(tǒng)初始化設(shè)計

  P87C591主要完成數(shù)據(jù)的處理與傳輸,,通過CAN總線接收數(shù)據(jù)采集節(jié)點采集來的各路模擬量和開關(guān)量信息,整理后按協(xié)議存儲到雙口RAM中,,并根據(jù)處理結(jié)果給LED顯示節(jié)點發(fā)送信息,。主程序查詢雙口RAM中數(shù)據(jù)采集節(jié)點的設(shè)置信息,實時地傳送信息給數(shù)據(jù)采集節(jié)點,,并向其發(fā)送遠(yuǎn)程幀,,請求模擬量和開關(guān)量信息的傳送,這樣避免了多個數(shù)據(jù)采集節(jié)點同時上傳采集的信息,,有效地防止了接收溢出和數(shù)據(jù)丟失,,接收到采集的各路信息后,處理并存儲到雙口RAM中,、發(fā)送給LED節(jié)點,。

  在程序設(shè)計中,初始化程序是系統(tǒng)設(shè)計工作中極為重要的部分,,它是系統(tǒng)能否正常工作的前提,。因此,初始化設(shè)計是一個重點,,在系統(tǒng)初始化過程中要進(jìn)行雙口RAM的初始化,,打開看門狗,設(shè)置中斷優(yōu)先級,,初始化CAN控制器和I/O口,,打開總中斷等操作,以保證系統(tǒng)正常穩(wěn)定地工作,。

  4.2 CAN通信程序設(shè)計

  CAN通信軟件主要由以下幾部分組成:初始化,、接收處理、發(fā)送處理,、中斷處理及錯誤處理,。本文重點介紹初始化、發(fā)送,、接收處理子程序及錯誤處理,。

  (1) 初始化子程序

  CAN控制器的初始化包括操作模式,、驗收濾波器,、總線定時及中斷的設(shè)置等。驗收濾波器的設(shè)置決定了本節(jié)點所接收的信息的格式,。定時器用來設(shè)置CAN總線上數(shù)據(jù)傳輸?shù)牟ㄌ芈?,總線上各節(jié)點的波特率必須一致,否則就會導(dǎo)致數(shù)據(jù)傳輸錯誤,。

 ?。?) 發(fā)送程序

  發(fā)送子程序負(fù)責(zé)節(jié)點報文的發(fā)送。發(fā)送時用戶只需將待發(fā)送的數(shù)據(jù)按特定格式組合成一幀報文,,送入CAN控制器的發(fā)送緩存區(qū)中,,然后啟動發(fā)送命令即可。信息從CAN控制器發(fā)送到CAN總線是由CAN控制器自動完成的,。本系統(tǒng)采用查詢的方式發(fā)送,。

  (3) 接收程序

  接收子程序負(fù)責(zé)節(jié)點報文的接收以及其它情況的處理,,諸如對總線關(guān)閉,、錯誤報警、接收溢出等情況進(jìn)行處理。信息從CAN總線到CAN緩沖區(qū)是由CAN控制器自動完成的,。接收程序只需從接收緩沖區(qū)讀取要接收的信息即可,。考慮到實時性的要求,,采用了如圖2所示的中斷方式,。

  圖2 中斷接收流程圖

  (4) 錯誤處理

  在CAN初始化中,,打開了錯誤報警中斷使能和總線錯誤中斷使能,,當(dāng)錯誤計數(shù)器(發(fā)送錯誤計數(shù)器和接收錯誤計數(shù)器中的任何一個)計數(shù)值超過96時,說明總線被嚴(yán)重干擾,,產(chǎn)生錯誤報警中斷,;當(dāng)發(fā)送錯誤計數(shù)器值超過255時,節(jié)點進(jìn)入總線關(guān)閉狀態(tài),,CAN控制器將設(shè)置復(fù)位模式位為1(當(dāng)前)并產(chǎn)生一個錯誤報警和總線錯誤中斷,。錯誤報警中斷處理是清零所有錯誤計數(shù)器的值,維持CAN的運轉(zhuǎn),,但這樣做存在局限性:清零錯誤計數(shù)器只是將錯誤計數(shù)器簡單的清零,,不能從根本上消除錯誤來源;由于錯誤報警中斷產(chǎn)生的條件為錯誤計數(shù)器的值超過96,,而總線關(guān)閉中斷產(chǎn)生的條件為發(fā)送錯誤計數(shù)器的值超過255,,因此,發(fā)送錯誤計數(shù)器引起的錯誤報警中斷可以屏蔽掉總線錯誤中斷,。系統(tǒng)可能由于總響應(yīng)錯誤報警中斷導(dǎo)致系統(tǒng)不能產(chǎn)生總線關(guān)閉,,使CAN總線一直處于不穩(wěn)定狀態(tài)。

  為了避免這種情況,,只打開總線錯誤中斷使能,,這樣,在總線發(fā)生嚴(yán)重錯誤的情況下,,可馬上產(chǎn)生總線錯誤中斷,,使錯誤得到及時處理??偩€錯誤中斷的處理是復(fù)位該節(jié)點,,重新初始化CAN控制器,這樣可以消除錯誤,,給節(jié)點一個很好的初態(tài),。由于CAN總線兩條傳輸線之間的誤接觸,也易造成CAN總線關(guān)閉,,使節(jié)點無法工作,,在主程序中查詢狀態(tài)寄存器中當(dāng)前CAN總線狀態(tài),,及時復(fù)位該節(jié)點,使節(jié)點正常工作,。

  同時,,為了更方便直觀地查看CAN總線的工作狀態(tài),設(shè)計了一個指示燈,,當(dāng)總線正常地收發(fā)信息時,,指示燈閃爍,,一旦CAN總線關(guān)閉,,節(jié)點不參與總線活動,指示燈不再閃爍(此時指示燈長亮或長滅),,當(dāng)總線錯誤不能通過復(fù)位該節(jié)點解決時,,可以通過查看指示燈的狀態(tài)(長亮或長滅),及時地對不工作的節(jié)點進(jìn)行修理維護(hù),。

  5,、結(jié)語

  運用CAN總線技術(shù)構(gòu)建智能配電系統(tǒng),提高了系統(tǒng)的穩(wěn)定性和實時性,,系統(tǒng)價格低廉,,安裝維護(hù)簡單,具有良好的升級,、擴(kuò)展能力,。該系統(tǒng)已經(jīng)成功地裝配到經(jīng)貿(mào)、股票交易行業(yè)的機房中,,運行可靠,,實現(xiàn)了設(shè)計目標(biāo)。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。