0 引言
1 CAN總線" title="CAN總線">CAN總線與485總線的比較
1)485總線的特點
相對于RS一232,,RS一485半雙工異步通信總線具有通信距離遠(yuǎn),、通信速率高、成本低等特點,,是一種被廣泛使用的數(shù)據(jù)通信總線,。但485總線的波特率設(shè)置受到單片機(jī)的波特率設(shè)置的限制,在單片機(jī)使用24M晶振的情況下,,也只可以設(shè)置到9600bps的波特率,。485總線的容錯和應(yīng)用層的協(xié)議,可以自己通過軟件來實現(xiàn),,比較靈活,,但是編程的工作就變得復(fù)雜。因此在對速度要求高、數(shù)據(jù)傳送量大的大型系統(tǒng)中,,485總線在實時性和可靠性方面的性能就顯得比較脆弱,。
2)CAN總線的特點
CAN全稱為Controller Area Network,即控制器局域網(wǎng),,是國際上應(yīng)用最廣泛的現(xiàn)場總線之一,。CAN總線主要具有以下的特點:
(1)CAN總線通信最高波特率可高達(dá)lMbps(采用雙絞線通訊距離40m)、最遠(yuǎn)通訊距離為10km(可達(dá)5kbps),。
(2)CAN總線采用了短幀結(jié)構(gòu),,每一幀為8個字節(jié),傳輸時間短,,受干擾概率低,,每幀信息都有CRC校驗和其他檢錯措施,保證了數(shù)據(jù)的出錯率極低,,從而提高了傳送數(shù)據(jù)的可靠性,。
(3)和485總線一樣,采用平衡傳輸,,抗干擾能力強(qiáng),。
(4)采用非破壞性總線仲裁,當(dāng)有幾個節(jié)點同時發(fā)送信息的時候,,根據(jù)幀開始部分的標(biāo)識符,,進(jìn)行逐位仲裁,優(yōu)先級別高的信息會不受影響地繼續(xù)發(fā)送,,優(yōu)先級別低的信息就會停止發(fā)送,,從而保證重要信息的及時傳送。
(5)借助CAN控制器里面的接收濾波器,,CAN總線能實現(xiàn)點對點,,一點對多點以及全局廣播等方式傳送,無需專門的調(diào)度,。
由此可見,,CAN總線具有傳送數(shù)據(jù)實時性和可靠性高的優(yōu)點,能應(yīng)用于數(shù)據(jù)傳送量大,、數(shù)據(jù)傳輸?shù)乃俣纫蟾叩南到y(tǒng)中,。
2 電源智能監(jiān)控" title="電源智能監(jiān)控">電源智能監(jiān)控系統(tǒng)的構(gòu)成
郵電通信線路的供電電源是±48V。監(jiān)控系統(tǒng)對現(xiàn)場的溫度,、總電源和各通支路電源的電壓和電流進(jìn)行采集,。本監(jiān)控系統(tǒng)由位于監(jiān)控中心的上位機(jī)(PC機(jī))和現(xiàn)場多個智能節(jié)點組成。每一個智能節(jié)點可以采集64路的數(shù)據(jù)(電壓,、電流或溫度),、具有現(xiàn)場的界面顯示,、鍵盤操作、報警和與上位機(jī)通信等功能,。在正常的情況下,,位于現(xiàn)場的各個智能節(jié)點每隔一段時間就要把當(dāng)前64路的數(shù)據(jù)上傳給上位機(jī)。當(dāng)線路的電源出現(xiàn)故障時,,無論當(dāng)前正在進(jìn)行什么操作,,智能節(jié)點都會馬上發(fā)送故障信息給上位機(jī),并且在現(xiàn)場發(fā)出報警信號,。由于電源的電壓、電流和溫度是通過分流器來采樣取得的,,而采用不同的分流器,,則要進(jìn)行不同的數(shù)值變換。所以在上下位機(jī)中都需要有一套相同的配置表,,當(dāng)其中一方的配置表有改動,,就要通知另一方,進(jìn)行及時更新,。監(jiān)控中心的計算機(jī)由RS一232串口接到通信適配器上,,實現(xiàn)計算機(jī)與智能節(jié)點網(wǎng)絡(luò)的傳輸。由于傳輸?shù)臄?shù)據(jù)量大,,要求傳輸速度較快,,并且對重要信息的傳送的可靠性和實時性要求高,因此為了提高系統(tǒng)的可靠性和實時性,,該系統(tǒng)的通信接口采用了CAN總線技術(shù),。整個系統(tǒng)的結(jié)構(gòu)圖如圖1所示。
3 智能節(jié)點的硬件設(shè)計
智能節(jié)點硬件框圖見圖2,。由于智能節(jié)點在同一時間可能要進(jìn)行很多動作,,如數(shù)據(jù)的采集,與上位機(jī)的通信,,界面的顯示等,,為了保證數(shù)據(jù)的正確采集和可靠傳輸,本系統(tǒng)采用雙MCU結(jié)構(gòu),,從MCU負(fù)責(zé)數(shù)據(jù)的采集,、保存和報警功能。而主MCU負(fù)責(zé)數(shù)據(jù)的轉(zhuǎn)發(fā),,現(xiàn)場的界面顯示等功能,。主、從MCU都采用AT89C55,。其內(nèi)部具有20K的EPROM,,并且自帶看門狗電路,,簡化了電路連接,提高了系統(tǒng)的抗干擾性,。它具有雙DPTR結(jié)構(gòu),,從而使片外尋址的編程更加靈活和簡化。
ADC8016是逐次比較式16路8位A/D轉(zhuǎn)換器,。它包含有一個8位A/D轉(zhuǎn)換器和16路的單端模擬信號多路轉(zhuǎn)換開關(guān),。在一個智能節(jié)點中需要4塊ADC8016對64路的數(shù)據(jù)進(jìn)行轉(zhuǎn)換。
由于電壓,、電流和溫度信號是通過分流器變換成電壓量之后才進(jìn)行采集的,。由于分流器變換出來的電壓量是毫伏級的,而ADC8016的輸入范圍是0~5V,,所以由分流器變換出來的電壓量要通過信號放大電路之后才進(jìn)入AD轉(zhuǎn)換器,。信號放大電路由兩級的運(yùn)算放大器構(gòu)成,從而提高了系統(tǒng)的精度,。
為了提高系統(tǒng)的抗干擾能力,,在數(shù)據(jù)采集芯片ADC0816和AT87C55之間加入光耦隔離。要注意的是,,這里要采用快速光耦,,因為如果采用光耦的開關(guān)速度太慢,由ADC出來的數(shù)據(jù)是傳送不到采集MCU那邊的,。因此我們采用了快速光耦6N137,。而現(xiàn)場報警的功能是通過蜂鳴器來實現(xiàn)。
主,、從MCU之間的數(shù)據(jù),、信息的傳遞是通過雙口RAM(CY7C007)來實現(xiàn)的。從MCU采集到的數(shù)據(jù)儲存到雙口RAM中,,主MCU在適當(dāng)時候從雙口RAM中取出數(shù)據(jù),,并對數(shù)據(jù)進(jìn)行發(fā)送。為了保證采集的數(shù)據(jù)不因下位機(jī)掉電或其他故障而丟失,,主MCU在數(shù)據(jù)發(fā)送之前,,先把數(shù)據(jù)存放在掉電非易失存儲器里。在CY7C007中地址最高的兩個字節(jié)7FFE,、7FFF和兩邊的INTL,、INTR引腳可作為左右兩邊的控制信號來用。當(dāng)左邊向7FFE寫數(shù)據(jù)時,,右邊的INTR引腳會變低,,當(dāng)右邊向7FFE讀數(shù)據(jù)時,INTR引腳復(fù)位,,而INTR引腳是低電平有效的,。對7FFF做類似的操作時,,INTL引腳也會有同樣的功能。而本系統(tǒng)中,,就是根據(jù)CY7C007這一特點,,把CY7C007的INTR引腳連到主MCU的INT0引腳。當(dāng)從MCU檢測到有故障時,,就向雙口RAM的7FFE寫數(shù)據(jù),,從而向主MCU發(fā)出報警信號,讓MCU馬上進(jìn)入中斷,,進(jìn)行相應(yīng)的處理,。
液晶顯示屏和鍵盤實現(xiàn)下位機(jī)的人機(jī)交換功能。通過鍵盤操作可以修改配置表,,主動將更新的配置表上傳,,向上位機(jī)索取最新的配置表等功能。并且與液晶顯示屏配合,,進(jìn)行各種顯示界面的更換。
CAN控制器SJAl000是一個帶有CAN2.0控制協(xié)議的集成器件,。只要對它內(nèi)部的各種寄存器的值進(jìn)行初始化,,便能實現(xiàn)不同的通信功能,這簡化了軟件程序的編寫,,使開發(fā)者能更集中于通信控制策略的研究,。
收發(fā)器82C250作為SJAl000和CAN總線的接口,能提供差動發(fā)送和差動接收,,滿足CAN2.0協(xié)議的要求,,并提高了系統(tǒng)通信的抗干擾性能。通過對腳8(RS)的不同連接可以實現(xiàn)三種不同的工作方式:高速,、斜率控制和待機(jī),。本系統(tǒng)中采用斜率控制,以降低射頻干擾,。
4 監(jiān)控中心的管理軟件
電源監(jiān)控硬件系統(tǒng)的規(guī)劃設(shè)計要保證系統(tǒng)工作的可靠性,、穩(wěn)定性,它反映了系統(tǒng)的基本性能,。而系統(tǒng)的管理軟件是面向用戶的,,它應(yīng)充分發(fā)揮協(xié)調(diào)硬件的技術(shù)能力,同時要盡可能易于操作,,提供所需的信息,,方便管理。監(jiān)控室的管理軟件采用中文版Visual Basic語言編寫,。監(jiān)控軟件的主體功能如圖3所示,。它具有CAN通信進(jìn)程,,配置表的設(shè)置,電壓電流值的換算,,當(dāng)前數(shù)據(jù)值顯示,,故障信息顯示,故障前后數(shù)據(jù)曲線圖顯示,,時鐘同步等功能,。
通信進(jìn)程是完成數(shù)據(jù)進(jìn)出的核心功能。它要接收或發(fā)送配置表,,使上下位機(jī)的配置表一致,;接收故障信息;完成正常數(shù)據(jù)傳送的握手協(xié)議,;發(fā)送對時幀,,使各節(jié)點時鐘同步。
為了避免其他人隨便改動配置表的信息,,在進(jìn)入配置表設(shè)置之前必須進(jìn)行密碼認(rèn)證,。而配置表的設(shè)置用于分流器類型的設(shè)定,定義標(biāo)識地址上節(jié)點的數(shù)據(jù)鏈接指向,,包括該節(jié)點監(jiān)控的是哪一個位置的數(shù)據(jù),,該路采集的是總電源、支路電源還是溫度的數(shù)據(jù),。由于數(shù)據(jù)是通過分流器變換之后才進(jìn)行采集的,,并且上傳來的數(shù)據(jù)是十六進(jìn)制的,所以在上位機(jī)要對接收到的數(shù)據(jù)進(jìn)行一定的換算,。
通過觀察接收數(shù)據(jù)的變化,,可以遠(yuǎn)程監(jiān)控現(xiàn)場的通信電源工作情況,及時發(fā)現(xiàn)出現(xiàn)故障的位置和類型,。當(dāng)出現(xiàn)故障時,,可以調(diào)用故障出現(xiàn)前后的數(shù)據(jù),畫出曲線,,通過觀察曲線,,可以對故障進(jìn)行分析。
監(jiān)控室的上位機(jī)每隔12個小時就會把當(dāng)前的時間發(fā)送給智能節(jié)點,,智能節(jié)點一旦發(fā)現(xiàn)本身的時鐘和上位機(jī)的時鐘的差值超過允許范圍,,就對本身的時鐘進(jìn)行修改,保證數(shù)據(jù)采集的同時陛,。
5 結(jié)束語
該多路電源智能監(jiān)控系統(tǒng)已在某郵電通信公司中使用,。經(jīng)過調(diào)試和運(yùn)行,證明該多路電源智能監(jiān)控系統(tǒng)采用CAN總線技術(shù)能夠達(dá)到很好的實時性和可靠性的要求,。