1. gzyueqian
      18078865874
      首頁 > 新聞中心 > > 正文

      基于CAN總線的嵌入式監(jiān)控系統(tǒng)中智能節(jié)點(diǎn)研究

      更新時間: 2007-07-31 09:24:32來源: 粵嵌教育瀏覽量:822

        摘 要:本文介紹了基于CAN總線的嵌入式控制系統(tǒng)底層網(wǎng)絡(luò)中的現(xiàn)場智能節(jié)點(diǎn)的設(shè)計(jì),研究了其網(wǎng)絡(luò)體系結(jié)構(gòu)及功能,并對智能節(jié)點(diǎn)的通信功能進(jìn)行了詳細(xì)分析。

        關(guān)鍵詞:CAN總線   智能節(jié)點(diǎn)  實(shí)時監(jiān)控  數(shù)據(jù)通信

        1引言

        基于現(xiàn)場總線的控制系統(tǒng)(FCS)是一種開放的分布式控制系統(tǒng)。它把專用封閉協(xié)議變成標(biāo)準(zhǔn)開放協(xié)議,使系統(tǒng)具有完全數(shù)字計(jì)算和數(shù)字通信能力;在結(jié)構(gòu)上,采用了全分布式方案,把控制功能徹底下放到現(xiàn)場,提高了系統(tǒng)靈活性和可靠性;它突破了集散控制系統(tǒng)(DCS)中采用專用網(wǎng)絡(luò)的缺陷。因此對基于現(xiàn)場總線的工業(yè)控制系統(tǒng)研究具有重大的意義。CAN控制器局域網(wǎng)絡(luò)是德國BOSCH公司為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議。它支持分布式實(shí)時控制系統(tǒng)的串行通信局域網(wǎng),廣泛應(yīng)用于控制系統(tǒng)中的檢測和執(zhí)行機(jī)構(gòu)之間的數(shù)據(jù)通信。由它構(gòu)成的智能節(jié)點(diǎn),硬件接口簡單,編程方便,集成容易,在系統(tǒng)分布比較分散、實(shí)時性要求高、現(xiàn)場環(huán)境干擾大的場合尤其適用。

        2基于CAN總線智能節(jié)點(diǎn)設(shè)計(jì)

        2.1 基于CAN總線系統(tǒng)網(wǎng)絡(luò)模型

        在本系統(tǒng)中CAN總線采用多主方式工作,外掛多個(可達(dá)110多個)智能節(jié)點(diǎn)。整個系統(tǒng)網(wǎng)絡(luò)由監(jiān)控主機(jī)系統(tǒng)及多個現(xiàn)場智能節(jié)點(diǎn)通過CAN總線連接而成的。系統(tǒng)網(wǎng)絡(luò)模型如圖1所示,其中現(xiàn)場智能節(jié)點(diǎn)主要是由CAN控制芯片和微處理芯片(MCU)以及其上運(yùn)行的嵌入式應(yīng)用系統(tǒng)構(gòu)成。因此對智能節(jié)點(diǎn)的設(shè)計(jì)可以分為兩個部分:硬件設(shè)計(jì)及軟件設(shè)計(jì)部分,硬件設(shè)計(jì)包括芯片的選型,接口電路的設(shè)計(jì)等;軟件設(shè)計(jì)則是各功能模塊的劃分與實(shí)現(xiàn)。

        2.2  CAN智能節(jié)點(diǎn)的結(jié)構(gòu)   

        CAN智能節(jié)點(diǎn)是整個系統(tǒng)的關(guān)鍵部分,主要完成對現(xiàn)場設(shè)備的監(jiān)控調(diào)節(jié)、設(shè)備實(shí)時工作數(shù)據(jù)的采集、以及與其他節(jié)點(diǎn)以及與監(jiān)控主機(jī)通信來實(shí)現(xiàn)分布式控制。其結(jié)構(gòu)如圖2所示:

        智能節(jié)點(diǎn)的基本組成部件主要有:雙MCU可選用Microchip公司的PIC16F87X系列微控制器芯片;RS232接口芯片,這里先用 MAX232;CAN控制芯片可選用Microchip公司的MCP2510CAN控制芯片;雙MCU結(jié)構(gòu)成了用于對現(xiàn)場設(shè)備監(jiān)控的顯控機(jī)系統(tǒng)和主控機(jī)系統(tǒng)。主控機(jī)的主要功能有:接收操作主令,實(shí)現(xiàn)對被控對象的操作;采集被控對象的實(shí)時狀態(tài),并進(jìn)行故障判斷及處理等功能;通過RS232接口與顯控機(jī)通信;與CAN總線的通信。顯控機(jī)的主要功能有:鍵盤操作,液晶顯示,時鐘控制,以及通過RS232接口與主控機(jī)通信。

        2.3  智能節(jié)點(diǎn)軟件結(jié)構(gòu)

        智能節(jié)點(diǎn)上的嵌入式測控軟件是在MCU裸機(jī)條件下開發(fā)設(shè)計(jì)的,是與系統(tǒng)硬件緊密配合并且相互依存,但獨(dú)立運(yùn)行的監(jiān)控程序。智能節(jié)點(diǎn)的軟件系統(tǒng)組態(tài)如圖3所示:

        由圖3可知,智能節(jié)點(diǎn)的嵌入式應(yīng)用軟件軟件系統(tǒng)主要包括:通信模塊,人機(jī)交互模塊,數(shù)據(jù)采集模塊,控制算法模塊,故障檢測及處理模塊等。對于智能節(jié)點(diǎn)的嵌入式應(yīng)用軟件系統(tǒng)軟件開發(fā)可在對PIC系列控制芯片的集成開發(fā)環(huán)境軟件 MPLAB IDE上完成的,采用 PC匯編指令集進(jìn)行底層系統(tǒng)的開發(fā)。

        3智能節(jié)點(diǎn)的系統(tǒng)通信功能設(shè)計(jì)

        CAN智能節(jié)點(diǎn)系統(tǒng)功能主要采用事件驅(qū)動方式來實(shí)現(xiàn),主流程一般是:初始化及自檢后進(jìn)入工作主循環(huán),等待事件觸發(fā),通過事件觸發(fā)調(diào)用各功能模塊。限于篇幅的關(guān)系(其它模塊實(shí)現(xiàn)的資料較多,就不在此敘述),這里只對雙機(jī)異步通信模塊和CAN通信模塊進(jìn)行詳細(xì)分析:

        3.1  雙機(jī)異步通信模塊

        (1)硬件設(shè)計(jì)

        雙機(jī)異步通信模塊分別駐留主控機(jī)和顯控機(jī)上,實(shí)現(xiàn)雙機(jī)間的全雙工異步通信。這里異步通信是按照RS232協(xié)議要求來設(shè)計(jì)實(shí)現(xiàn)的。這里采用PIC系列芯片中串行通信接口SCI它是一個通用同步/異步收發(fā)器,簡稱為USART 。用USART的異步工作方式來實(shí)現(xiàn)雙機(jī)之間的RS232通信連接。MCU通過MAX232芯片將各自的輸出信號轉(zhuǎn)換為標(biāo)準(zhǔn)的RS232電平信號,同時將輸入信號轉(zhuǎn)換為單片機(jī)所需的信號。

         (2)通信軟件設(shè)計(jì):

        在通信軟件的設(shè)計(jì)分為兩個層次:一是底層通信,主要完成雙機(jī)的異步通信的物理上的連接;二是高層通信,主要是設(shè)計(jì)好的通信協(xié)議保證通信不會陷入死鎖,實(shí)現(xiàn)應(yīng)用邏輯上的通信要求。

        1)底層異步通信模塊,主要通過中斷方式來實(shí)現(xiàn)。USART異步收發(fā)器在完成收發(fā)緩沖寄存器中的一個字節(jié)的數(shù)據(jù)的通信任務(wù)后,置相應(yīng)的接收或發(fā)送中斷標(biāo)志位。若此時相應(yīng)的收發(fā)中斷使能位被置位的話,則程序會轉(zhuǎn)入接收或發(fā)送中斷服務(wù)程序來處理收發(fā)的數(shù)據(jù)。在收發(fā)中斷服務(wù)程序中,設(shè)置兩個緩沖區(qū),采用循環(huán)隊(duì)列處理,用來緩存要發(fā)送或接收的數(shù)據(jù)。在此中斷服務(wù)程序中,只完成將數(shù)據(jù)緩沖區(qū)和異步通信收發(fā)器的緩沖寄存器之間的數(shù)據(jù)傳遞,而對數(shù)據(jù)的處理交給高層的通信模塊來實(shí)現(xiàn)。

        2)在高層的通信模塊中,只需發(fā)送或接收的數(shù)據(jù)放入數(shù)據(jù)緩沖區(qū)即可。為了方便,可將雙機(jī)間的所有通信任務(wù)組織成命令的形式;再將所有命令建立一張命令表格。若要增刪任何通信命令只需修改命令表的表項(xiàng)即可,對通信程序沒有任何影響。表格的內(nèi)容主要有:命令碼,命令參數(shù)個數(shù),命令參數(shù)塊首地址,應(yīng)答參數(shù)個數(shù),應(yīng)答參數(shù)塊首地址,命令處理程序入口。高層通信的基本過程主要通過接收及處理命令和發(fā)送命令處理兩模塊來實(shí)現(xiàn)。

        接收及處理命負(fù)責(zé)接收和處理外部主機(jī)發(fā)來的命令及命令參數(shù)。輪循查詢外部主機(jī)是否有通信命令發(fā)送。若有,則接收命令子程序負(fù)責(zé)接收外部MCU芯片發(fā)送的命令及命令參數(shù)。在成功接收命令及命令參數(shù)后,向外部主機(jī)發(fā)送應(yīng)答信號,根據(jù)命令表中的命令轉(zhuǎn)到相應(yīng)的命令處理程序中進(jìn)行處理。

        發(fā)送命令負(fù)責(zé)發(fā)送主機(jī)的命令及其命令參數(shù)。對要發(fā)送的命令字,首先查命令表得到命令表,通過異步通信口發(fā)送該命令碼;判斷該命令是否有命令參數(shù),若有則繼續(xù)發(fā)送命令參數(shù),沒有則設(shè)置超時事件;等待應(yīng)答信號,接收到應(yīng)答信號后;應(yīng)答參數(shù)接收完成后撤銷超時事件,則發(fā)送命令處理完成。

        3.2 CAN通信模塊

        (1)硬件設(shè)計(jì)

        CAN通信模塊由主控機(jī)實(shí)現(xiàn),通過MCU與CAN控制器相連,完成CAN總線通信的功能。由于PIC16F87X系列芯片沒有集成CAN功能模塊,因此通過SPI方式和MCP2510芯片相連接實(shí)現(xiàn)CAN通信。MCP2510是一種獨(dú)立的CAN總線控制器,可以通過SPI方式與單片機(jī)接口,它支持CAN技術(shù)規(guī)范2.OA/B。通過MCP2510控制器的SPI通信指令,就可以對MCP2510進(jìn)行操作控制,實(shí)現(xiàn)MCU與MCP2510控制器的SPI同步串行通信,實(shí)現(xiàn)CAN通信功能。系統(tǒng)設(shè)計(jì)人員只需對原有應(yīng)用軟件稍做修改就可以通過SPI接口和MCP2510進(jìn)行數(shù)據(jù)交換。

        (2)通信軟件設(shè)計(jì)

        CAN總線的通信功能的實(shí)現(xiàn)主要包括PIC微處理器與MCP2510的SPI通信接口,以及對MCP2510控制器的CAN總線的通信控制。對SPI同步通信方式實(shí)現(xiàn),可將MCU設(shè)為主動方式,MCP2510設(shè)為從動方式,發(fā)送和接收數(shù)據(jù)共用一個緩沖區(qū),緩沖區(qū)采用循環(huán)隊(duì)列的形式進(jìn)行組織,由一指針指向它,MCU每發(fā)送一個數(shù)據(jù)就MCP2510交換數(shù)據(jù),將其放入同一個存儲單元即可。

        CAN總線控制器 MCP2510負(fù)責(zé)完成總線通信協(xié)議的物理層和數(shù)據(jù)鏈路層的功能,對于單片機(jī)應(yīng)用程序,只需要在發(fā)送接收模塊編寫中寫入相應(yīng)的配置參數(shù)即可。要發(fā)送時,只需將發(fā)送的內(nèi)容寫入發(fā)送緩沖區(qū)并觸發(fā)一次發(fā)送請求,即可完成一次發(fā)送過程;當(dāng)總線收發(fā)器收到數(shù)據(jù)時,啟動一次發(fā)向單片機(jī)的外部中斷,或由單片機(jī)定時查詢收發(fā)器上相應(yīng)狀態(tài)位,然后通過SPI串行口訪問MCP2510控制芯片的外部寄存器的讀寫、控制操作。

        4結(jié)束語

        本文基于CAN總線的分布式嵌入式監(jiān)控系統(tǒng)中的智能節(jié)點(diǎn),給出系統(tǒng)網(wǎng)絡(luò)模型及智能節(jié)點(diǎn)的系統(tǒng)結(jié)構(gòu)和軟件結(jié)構(gòu),重點(diǎn)對對系統(tǒng)通信至關(guān)重要的雙機(jī)異步通信和CAN通信進(jìn)行了分析。總之,在將來的工業(yè)控制領(lǐng)域中,現(xiàn)場總線技術(shù)將會是主流,對基于現(xiàn)場總線的工業(yè)底層控制網(wǎng)絡(luò)的現(xiàn)場智能節(jié)點(diǎn)研究具有一定的意義。

        參考文獻(xiàn):

        [1].蔣建文,林勇,韓江洪.CAN總線通信協(xié)議的分析和實(shí)現(xiàn).計(jì)算機(jī)工程, 2002,Vol.28 ,No.2
        [2].竇振中,汪立森,PIC系列單片機(jī)的應(yīng)用設(shè)計(jì)與實(shí)例.北京:北京航空航天大學(xué)出版社,1999
        [3]. MCP2510 DEVELOPMENT KIT USER’S GUIDE. Microchip Inc
        [4]. 鄒繼軍,饒運(yùn)濤,CAN總線系統(tǒng)智能節(jié)點(diǎn)設(shè)計(jì),廣州周立功單片機(jī)發(fā)展有限公司,http: www.Zlgmcu.com

      免費(fèi)預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲一区二区人妖: | 日韩一中文字幕在线 | 亚洲精品国产第一综合 | 中国国产一级精品片免费 | 亚洲精品成a人在线观看 | 亚洲一区二区视频在线观看 |