一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于AT89C51單片機和總線技術(shù)實現(xiàn)智能繼電器的軟件設計

電子設計 ? 來源:現(xiàn)代電子技術(shù) ? 作者:王亮;王立忠;胡 ? 2020-04-05 11:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

過去的幾十年里,在很多電氣設備中,比如車輛、艦船、飛機等中的電氣用電設備,它們一直采用保險絲盒斷路器等被動防護裝置,致使無法故障預警,故障診斷起來也比較困難,嚴重影響了設備的整體性能;同時,由于總線類設備能提供信息查詢、故障記錄、參數(shù)保護等功能。因此在一些底層器件中引入總線技術(shù),能更方便用戶配置系統(tǒng),就像設備中多了很多對眼睛,可以很好地把握設備的工作情況。所以研發(fā)具有預警和診斷功能的新器件勢在必行。

本文中主要是在繼電器中引入總線技術(shù),使得繼電器具有總線通信功能。通過總線繼電器控制模塊可以將具有智能化、網(wǎng)絡化功能的電器節(jié)點模塊有機的組合起來,構(gòu)成一種新的電氣負載管理系統(tǒng),即針對系統(tǒng)發(fā)出的指令進行邏輯切換和信息反饋,以實現(xiàn)數(shù)據(jù)采集、過載保護、狀態(tài)檢測及故障記錄等功能,大大提高了系統(tǒng)的可靠性、可維護性、可擴展性。下面將結(jié)合總線智能繼電器的功能從5個方面來研究它的軟件設計:系統(tǒng)初始化、報文的收發(fā)處理、信號的數(shù)據(jù)采集、看門狗程序的軟件設計及數(shù)據(jù)保護等5部分。

1 、系統(tǒng)的初始化

系統(tǒng)的初始化包括2部分:一部分是單片機初始化;另一部分是SJA1000的初始化。

1.1 單片機的初始化

文中使用的單片機是美國Atmel公司生產(chǎn)的AT89C51單片機,該款單片機的特點是低電壓、高性能、CMOS工藝、片內(nèi)含有4 KB可反復擦寫只讀存儲器和128 B的隨機存儲器,兼容MCS-51指令集,片內(nèi)還含有8位的CPU和FLASH存儲單元,廣泛靈活運用于各種控制領(lǐng)域。設計中使用該單片機完成和SJA1000的端口初始化、外部中斷設置、定時器設置。其中和SJA1000的端口初始化用來片選SJA1000,外部中斷0用來檢測電源故障,外部中斷1用來讀取SJA1000收到的報文,定時器0用來看門狗定期復位,定時器1用來記錄繼電器觸點接通時間。圖1是單片機初始化流程圖。

1.2 SJA1000的初始化

SJA1000是一款總線控制器,它的作用是為了保證總線控制器局域網(wǎng)絡中的網(wǎng)絡層次結(jié)構(gòu)中數(shù)據(jù)鏈路層和物理層的可靠通信,這一功能的實現(xiàn)主要得益于該芯片上具有可編程的邏輯電路,并且還有和微處理器相連接的接口。它內(nèi)部由很多寄存器,微控制器通過對這些寄存器控制,可以設置它的工作方式、工作狀態(tài)、報文的收發(fā)格式。

SJA1000的初始化主要是完成一些寄存器的配置。要完成這些配置,該控制器必須處于復位模式下。它進入復位模式的情況通常有3種:上電復位、硬件復位和軟件復位。復位后,需要設置的寄存器通常有以下幾個:控制寄存器、模式寄存器、時鐘分頻寄存器、驗收濾波器、中斷使能寄存器、總線定時器和輸出控制器。完成這些寄存器的配置后,就要退出復位模式,進入工作模式。它的初始化流程圖如圖2所示。

基于AT89C51單片機和總線技術(shù)實現(xiàn)智能繼電器的軟件設計

2、 報文的收發(fā)處理

對SJA1000的操作通常有2種方案,一種是時序模擬模式;另一種便是用擴展RAM的模式來完成。該控制器通常有2種讀寫模式,一種是Intel模式;另一種是Motorola模式,由于它的管腳設置和普通的RAM管腳設置相似,因此文中采用擴展RAM的模式來實現(xiàn)總線的報文收發(fā)??偩€繼電器的報文的處理包括2部分,即數(shù)據(jù)的接收處理,報文的發(fā)送處理。

2.1 報文的接收

報文的接收是由該控制器自動完成,文中要做的就是要把信息從接收緩存中讀出來,然后將讀出來的信息存放在數(shù)據(jù)存儲器中。一條數(shù)據(jù)報文能否被成功地接收由驗收濾波器模式控制位、驗收代碼寄存器、驗收代碼屏蔽寄存器、報文標識符共同決定。只有通過驗收濾波器的過濾的報文才能被接收,否則是不能送到控制器接收緩沖區(qū)的。當報文成功通過驗收濾波器并被送入接收緩沖中后,會置位接收緩沖區(qū)狀態(tài)位,如果這個時候使能接收中斷RIE,就會產(chǎn)生接收中斷,使得控制器的INT的電平發(fā)生變化,此時中斷微控制器。接下來微處理器的任務大致由下面三步分組成,首先要監(jiān)視控制器的狀態(tài),確定一下是否有需要讀取的報文;其次便是將接收緩沖區(qū)中的數(shù)據(jù)讀出來存放到數(shù)據(jù)存儲器中并需要置位接收處理標志;最后便是處理接收到的報文。需要注意的是處理接收報文的目的主要是為驅(qū)動繼電器做準備。報文的接收處理流程圖如圖3所示。

基于AT89C51單片機和總線技術(shù)實現(xiàn)智能繼電器的軟件設計

2.2 報文的發(fā)送

報文的發(fā)送負責將待發(fā)數(shù)據(jù)發(fā)到總線上。第一屏蔽相關(guān)中斷,避免收到的數(shù)據(jù)對發(fā)送的影響;第二要對和報文發(fā)送相關(guān)的數(shù)據(jù)寄存器進行設置,確定通信的目標節(jié)點,同時準備好要發(fā)送的數(shù)據(jù);第三在發(fā)送之前要對SJA1000發(fā)送緩沖區(qū)是否有待發(fā)送的數(shù)據(jù)進行檢查,如果沒有待發(fā)送的數(shù)據(jù)或者正在發(fā)送的數(shù)據(jù),則可以將準備好的數(shù)據(jù)發(fā)送到控制器發(fā)送緩沖區(qū)做好發(fā)送準備,否則新的報文是不能寫入發(fā)送緩沖區(qū)的;第四就是把要發(fā)送的報文寫入控制器發(fā)送緩沖區(qū),準備發(fā)送;第五就是置位發(fā)送請求標志位,之后控制器會自動完成報文的發(fā)送。信息的發(fā)送流程圖如圖4所示。

3、 電流信號的數(shù)據(jù)采集

系統(tǒng)電流信號的采集,文中采用的是美國國家半導體生產(chǎn)的8位分辨率、雙通道A/D轉(zhuǎn)換芯片。文中之所以使用該款芯片,主要是考慮到它的體積較小、兼容性強、性價比高,更為重要的是它的數(shù)據(jù)是串行輸出,節(jié)約了單片機的管腳資源。

一般情況下,和單片通信的管腳由以下4個:片選端CS、時鐘輸入端CLK、數(shù)據(jù)輸出端DO、模式選擇輸入端DI。通過對時序圖的分析發(fā)現(xiàn),DI和DO不是始終同時有效,因此在設計電路時,可以將此二管腳并接到一起作為一個管腳連接到單片機上。ADC轉(zhuǎn)換流程大致如下。首先是使能選中芯片,即要拉低片選CS,并且要保持該電平到轉(zhuǎn)換完畢,因為當CS置位的時候,該芯片是不能使用的;其次是要發(fā)送一個起始信號,這就需要在第一個時鐘的下降沿到來之前拉高DI;再次是要輸入通道選擇控制字進行轉(zhuǎn)換通道選擇,通道控制的選擇需要在接下來第2、3個脈沖下降沿來臨之前輸入兩位數(shù)據(jù)文中先后對DI輸入1,0;最后是從DO端輸出AD轉(zhuǎn)換結(jié)果,即在先在第4時鐘下降沿到第11個時鐘下降沿之間的每一個下降沿都會輸出A/D轉(zhuǎn)換結(jié)果,高位在前,共8位,接下來在從第11個時鐘下降沿到第19個時鐘下降沿的每個時鐘下降沿又一次

輸出和之前相反的數(shù)據(jù),也是8位,只是這個時候是低位在前;最后便是拉高CS,禁止使能A/D轉(zhuǎn)換,對該2個8位數(shù)據(jù)進行比對,將轉(zhuǎn)換結(jié)果送到數(shù)據(jù)寄存器中。圖5是ADC轉(zhuǎn)換的流程圖。

基于AT89C51單片機和總線技術(shù)實現(xiàn)智能繼電器的軟件設計

4、 看門狗MAX813L

在單片機構(gòu)成的系統(tǒng)當中,單片機的工作往往會受到來自外界干擾,導致程序陷入死循環(huán),進而使得單片機無法正常工作,單片機的手動復位又有其局限性,為此文中采用專門監(jiān)測單片機運行狀態(tài)的芯片MAX813L。該芯片不僅能實現(xiàn)系統(tǒng)復位,還可以監(jiān)測電源狀態(tài),當出現(xiàn)掉電或者低壓等情況時保護重要數(shù)據(jù)。

4.1 系統(tǒng)復位

當系統(tǒng)受到某些干擾的影響,使得系統(tǒng)程序跑飛,當該芯片的看門狗信號輸入端WDI在超過1.6 s時間內(nèi)得不到清除定時器的脈沖時,看門狗輸出管腳WDO將由高電平變?yōu)榈碗娖?,根?jù)圖6會發(fā)現(xiàn),復位輸入端MR會被拉低成低電平,當這個低電平保持時間在140 ms以上時,復位信號輸出端RST會復位信號,從而復位CPU。根據(jù)前面分析,系統(tǒng)的正常運行需要最多以1.6 s的時間間隔給看門狗輸入端輸入脈沖。文中使用定時器0的工作方式1每隔50 ms給看門狗芯片一個清定時器脈沖。喂狗的實現(xiàn)代碼如圖7所示。

基于AT89C51單片機和總線技術(shù)實現(xiàn)智能繼電器的軟件設計

4.2 電源監(jiān)視

當電源故障輸入管腳的電位低于1.25 V時,電源故障輸出端的電平會由高變低,導致微處理器P32管腳的電平發(fā)生變化,進而觸發(fā)外部中斷0,執(zhí)行中斷服務程序,即凍結(jié)寄存器的內(nèi)容,保存RAM中的數(shù)據(jù),激活掉電模式,進入掉電工作狀態(tài)。要想退出掉電模式,系統(tǒng)必須復位。電源監(jiān)視的部分代碼如圖8所示。

基于AT89C51單片機和總線技術(shù)實現(xiàn)智能繼電器的軟件設計

5 、狀態(tài)參數(shù)保護

智能繼電器在信號處理的過程中,有很多參數(shù)需要存儲,而且需要在外部供電掉電的情況下,能夠繼續(xù)保持到下次外部供電恢復。一般的參數(shù)存儲方法是使用靜態(tài)RAM外加鉻鎳電池及外加輔助電路,但是該種方法存在很多弊端。因此,文中采用AT24C02來實現(xiàn)數(shù)據(jù)保護。這主要得益于它體積小、使用靈活,而且不會因為系統(tǒng)掉電、干擾等原因丟失數(shù)據(jù),有效地保存各種參數(shù)。圖8的參考代碼可以實現(xiàn)根據(jù)負載電流的過流情況發(fā)送不同的控制指令并及時保存保存此時的負載電流。

6 、結(jié)語

本文設計的CAN總線智能繼電器除了具備普通繼電器的接通和關(guān)斷功能以外,還具有如下功能:現(xiàn)場總線通信功能,即改變傳統(tǒng)系統(tǒng)中點對點控制方式,通過總線指令實現(xiàn)繼電器的通斷,減輕設備總量;負載電流檢測功能,即實時監(jiān)測繼電器負載電流狀況,并且是可查詢的;負載電流過載保護和短路跳閘功能,并且跳閘閾值可以離線設置;繼電器的觸點通斷狀態(tài)實時監(jiān)測功能,即可有效防止異常通斷的發(fā)生;歷史工作記錄查詢功能,即可以查詢諸如過載電流、短路情況、觸點狀態(tài)、觸點接通時間等狀態(tài)參數(shù),并且掉電后,不丟失這些數(shù)據(jù)。

責任編輯:gt


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 繼電器
    +關(guān)注

    關(guān)注

    133

    文章

    5433

    瀏覽量

    151292
  • 單片機
    +關(guān)注

    關(guān)注

    6067

    文章

    44969

    瀏覽量

    649517
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2958

    瀏覽量

    89613
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    如何實現(xiàn)(電腦)PC單片機AT89C51的串行通信

    如何實現(xiàn)(電腦)PC單片機AT89C51的串行通信 在Windows95下使用串口API函數(shù)實現(xiàn)PC
    發(fā)表于 04-07 09:45 ?4780次閱讀

    AT89C51單片機簡介

    AT89C51單片機簡介 AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位
    發(fā)表于 11-12 08:39 ?2w次閱讀
    <b class='flag-5'>AT89C51</b><b class='flag-5'>單片機</b>簡介

    單片機AT89C51設計的數(shù)字鐘

    單片機AT89C51設計的數(shù)字鐘,(1).開機時,顯示12:00:00的時間開始計時
    發(fā)表于 04-13 16:07 ?1w次閱讀
    用<b class='flag-5'>單片機</b><b class='flag-5'>AT89C51</b>設計的數(shù)字鐘

    AT89C51單片機實現(xiàn)頻率測量

    AT89C51單片機實現(xiàn)頻率測量,參考資料。
    發(fā)表于 05-06 10:25 ?0次下載

    基于AT89C51單片機的電子表設計

    AT89C51 單片機的電子表設計
    發(fā)表于 06-21 09:13 ?57次下載

    基于at89c51單片機智能型穩(wěn)壓電源的設計

    基于at89c51單片機智能型穩(wěn)壓電源的設計(通信電源技術(shù)期刊是核心期刊嗎)-該文檔為基于at89c51
    發(fā)表于 09-16 13:09 ?26次下載
    基于<b class='flag-5'>at89c51</b><b class='flag-5'>單片機</b>的<b class='flag-5'>智能</b>型穩(wěn)壓電源的設計

    AT89C51單片機

    AT89C51單片機學習一、AT89S51單片機的I/O端口二、AT89S51單片機的中斷系統(tǒng)?
    發(fā)表于 11-12 12:21 ?66次下載
    <b class='flag-5'>AT89C51</b><b class='flag-5'>單片機</b>

    基于AT89C51單片機與PC串口通訊仿真及代碼

    基于AT89C51單片機單片機與PC串口通訊仿真仿真及代碼
    發(fā)表于 05-05 10:30 ?5次下載

    基于AT89C51單片機繼電器控制照明設備仿真及代碼

    基于AT89C51單片機繼電器控制照明設備仿真及代碼
    發(fā)表于 05-05 10:25 ?3次下載

    基于AT89C51單片機用8255實現(xiàn)接口擴展Proteus仿真及程序

    基于AT89C51單片機用8255實現(xiàn)接口擴展Proteus仿真及程序
    發(fā)表于 05-05 09:57 ?12次下載

    基于89C51單片機的紅外遙控繼電器源程序

    基于89C51單片機的紅外遙控繼電器源程序
    發(fā)表于 05-15 11:06 ?3次下載

    基于89C51單片機的火焰?zhèn)鞲衅骺刂?b class='flag-5'>繼電器源程序

    基于89C51單片機的火焰?zhèn)鞲衅骺刂?b class='flag-5'>繼電器源程序
    發(fā)表于 05-15 11:06 ?26次下載

    基于89C51單片機繼電器控制原理源程序

    基于89C51單片機繼電器控制原理源程序
    發(fā)表于 05-15 11:05 ?10次下載

    基于AT89C51單片機的點擊轉(zhuǎn)速測量

    電子發(fā)燒友網(wǎng)站提供《基于AT89C51單片機的點擊轉(zhuǎn)速測量.pdf》資料免費下載
    發(fā)表于 10-20 11:39 ?1次下載
    基于<b class='flag-5'>AT89C51</b><b class='flag-5'>單片機</b>的點擊轉(zhuǎn)速測量

    AT89C51 單片機中文資料

    電子發(fā)燒友網(wǎng)站提供《AT89C51 單片機中文資料.pdf》資料免費下載
    發(fā)表于 06-24 15:29 ?0次下載