基于CAN總線的智能繼電器研究
摘要:為解決電氣系統(tǒng)中控制距離短,開關響應實時性不強,一般智能節(jié)點容易受到外界干擾,系統(tǒng)掉電后數據丟失等一些列問題,結合微電子技術、微處理器的特點,以及CAN總線的優(yōu)勢,對以AT89C51和SJA1000為控制核心,采用模塊化編程設計的基于CAN總線的智能繼電器進行了研究。研究結果表明,能更進一步提高系統(tǒng)的控制距離,有效檢測系統(tǒng)中的大電流,并及時通斷開關,對突發(fā)性電源故障能進行可靠檢測,并及時保存重要數據,提高了系統(tǒng)的抗干擾性,也可以接入CAN總線網絡,使得對繼電器的控制變得更為靈活。
本文引用地址:http://m.butianyuan.cn/article/171425.htm0 引言
過去的幾十年里,在很多電氣設備中,比如車輛、艦船、飛機等中的電氣用電設備,它們一直采用保險絲盒斷路器等被動防護裝置,致使無法故障預警,故障診斷起來也比較困難,嚴重影響了設備的整體性能;同時,由于總線類設備能提供信息查詢、故障記錄、參數保護等功能。因此在一些底層器件中引入總線技術,能更方便用戶配置系統(tǒng),就像設備中多了很多對眼睛,可以很好地把握設備的工作情況。所以研發(fā)具有預警和診斷功能的新器件勢在必行。
本文中主要是在繼電器中引入總線技術,使得繼電器具有總線通信功能。通過總線繼電器控制模塊可以將具有智能化、網絡化功能的電器節(jié)點模塊有機的組合起來,構成一種新的電氣負載管理系統(tǒng),即針對系統(tǒng)發(fā)出的指令進行邏輯切換和信息反饋,以實現數據采集、過載保護、狀態(tài)檢測及故障記錄等功能,大大提高了系統(tǒng)的可靠性、可維護性、可擴展性。下面將結合總線智能繼電器的功能從5個方面來研究它的軟件設計:系統(tǒng)初始化、報文的收發(fā)處理、信號的數據采集、看門狗程序的軟件設計及數據保護等5部分。
1 系統(tǒng)的初始化
系統(tǒng)的初始化包括2部分:一部分是單片機初始化;另一部分是SJA1000的初始化。
1.1 單片機的初始化
文中使用的單片機是美國Atmel公司生產的AT89C51單片機,該款單片機的特點是低電壓、高性能、CMOS工藝、片內含有4 KB可反復擦寫只讀存儲器和128 B的隨機存儲器,兼容MCS-51指令集,片內還含有8位的CPU和FLASH存儲單元,廣泛靈活運用于各種控制領域。設計中使用該單片機完成和SJA1000的端口初始化、外部中斷設置、定時器設置。其中和SJA1000的端口初始化用來片選SJA1000,外部中斷0用來檢測電源故障,外部中斷1用來讀取SJA1000收到的報文,定時器0用來看門狗定期復位,定時器1用來記錄繼電器觸點接通時間。圖1是單片機初始化流程圖。
1.2 SJA1000的初始化
SJA1000是一款總線控制器,它的作用是為了保證總線控制器局域網絡中的網絡層次結構中數據鏈路層和物理層的可靠通信,這一功能的實現主要得益于該芯片上具有可編程的邏輯電路,并且還有和微處理器相連接的接口。它內部由很多寄存器,微控制器通過對這些寄存器控制,可以設置它的工作方式、工作狀態(tài)、報文的收發(fā)格式。
SJA1000的初始化主要是完成一些寄存器的配置。要完成這些配置,該控制器必須處于復位模式下。它進入復位模式的情況通常有3種:上電復位、硬件復位和軟件復位。復位后,需要設置的寄存器通常有以下幾個:控制寄存器、模式寄存器、時鐘分頻寄存器、驗收濾波器、中斷使能寄存器、總線定時器和輸出控制器。完成這些寄存器的配置后,就要退出復位模式,進入工作模式。它的初始化流程圖如圖2所示。
2 報文的收發(fā)處理
對SJA1000的操作通常有2種方案,一種是時序模擬模式;另一種便是用擴展RAM的模式來完成。該控制器通常有2種讀寫模式,一種是Intel模式;另一種是Motorola模式,由于它的管腳設置和普通的RAM管腳設置相似,因此文中采用擴展RAM的模式來實現總線的報文收發(fā)??偩€繼電器的報文的處理包括2部分,即數據的接收處理,報文的發(fā)送處理。
2.1 報文的接收
報文的接收是由該控制器自動完成,文中要做的就是要把信息從接收緩存中讀出來,然后將讀出來的信息存放在數據存儲器中。一條數據報文能否被成功地接收由驗收濾波器模式控制位、驗收代碼寄存器、驗收代碼屏蔽寄存器、報文標識符共同決定。只有通過驗收濾波器的過濾的報文才能被接收,否則是不能送到控制器接收緩沖區(qū)的。當報文成功通過驗收濾波器并被送入接收緩沖中后,會置位接收緩沖區(qū)狀態(tài)位,如果這個時候使能接收中斷RIE,就會產生接收中斷,使得控制器的INT的電平發(fā)生變化,此時中斷微控制器。接下來微處理器的任務大致由下面三步分組成,首先要監(jiān)視控制器的狀態(tài),確定一下是否有需要讀取的報文;其次便是將接收緩沖區(qū)中的數據讀出來存放到數據存儲器中并需要置位接收處理標志;最后便是處理接收到的報文。需要注意的是處理接收報文的目的主要是為驅動繼電器做準備。報文的接收處理流程圖如圖3所示。
2.2 報文的發(fā)送
報文的發(fā)送負責將待發(fā)數據發(fā)到總線上。第一屏蔽相關中斷,避免收到的數據對發(fā)送的影響;第二要對和報文發(fā)送相關的數據寄存器進行設置,確定通信的目標節(jié)點,同時準備好要發(fā)送的數據;第三在發(fā)送之前要對SJA1000發(fā)送緩沖區(qū)是否有待發(fā)送的數據進行檢查,如果沒有待發(fā)送的數據或者正在發(fā)送的數據,則可以將準備好的數據發(fā)送到控制器發(fā)送緩沖區(qū)做好發(fā)送準備,否則新的報文是不能寫入發(fā)送緩沖區(qū)的;第四就是把要發(fā)送的報文寫入控制器發(fā)送緩沖區(qū),準備發(fā)送;第五就是置位發(fā)送請求標志位,之后控制器會自動完成報文的發(fā)送。信息的發(fā)送流程圖如圖4所示。
繼電器相關文章:繼電器工作原理
時間繼電器相關文章:時間繼電器
評論