版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第12章 綜合實例——工業(yè)CAN網絡控制系統(tǒng)節(jié)點設計,本章通過一個在工業(yè)上實際使用的實例,講解CAN網絡控制系統(tǒng)的設計方法,及其CAN通訊協(xié)議的基本制定過程。通過該實例,讀者能夠學習到CAN網絡通訊、CAN通訊協(xié)議制定各方面的知識。,12.1 系統(tǒng)結構與分析,在工業(yè)現場,往往需要通過一個主機對分布在廠房各處的設備進行控制和監(jiān)控,利用CAN網絡,可以有效的組織各個設備的通訊與管理。,12.1.1 工業(yè)CAN網絡控制系統(tǒng)節(jié)點功能分析,
2、在工業(yè)現場,大部分控制與監(jiān)控只需要對輸入輸出的數字信號進行管理即可,因此本章設計的工業(yè)CAN網絡控制系統(tǒng)節(jié)點,需要具備以下的功能。硬件具備足夠數量的數字信號輸入端口(>=12);硬件具備足夠數量的數字信號輸出端口(>=12);硬件具備總線通訊能力,總線負荷結點數>=50個,通訊能力不小于250kbsp,根據需要綜合考慮選用CAN總線通訊系統(tǒng);,12.1.1 工業(yè)CAN網絡控制系統(tǒng)節(jié)點功能分析,硬件具備顯示時鐘能
3、力,時鐘可以根據需要由總線設置;硬件具備232/485接口,與智能儀表進行通訊;硬件具備相當的抗干擾能力,能夠滿足現場條件的穩(wěn)定運行;在滿足上述條件下盡可能減小成本。,12.1.2 工業(yè)CAN網絡控制系統(tǒng)分析,本章介紹的工業(yè)CAN網絡控制系統(tǒng),通過CAN網絡對各個分布節(jié)點的數字量輸出信號進行控制,同時監(jiān)控分布節(jié)點的數字量輸入信號,并通過232/485協(xié)議讀取智能儀表的測量值,通過CAN網絡采集到系統(tǒng)主機,在各個節(jié)點處相應有LED
4、顯示狀態(tài)。,12.2 CAN總線知識簡介,CAN,全稱為“Controller Area Network”,即控制器局域網,是國際上應用最廣泛的現場總線之一。最初,CAN是作為汽車環(huán)境中的微控制器通訊而設計的,因此在車載各電子控制裝置ECU之間交換信息,形成汽車電子控制網絡方面得到了大量的應用。例如發(fā)動機管理系統(tǒng)、變速箱控制器、儀表裝備、電子主干系統(tǒng)等等,均具備CAN通訊的能力。隨著CAN總線的發(fā)展,CAN總線也被廣泛應用于工業(yè)控制。
5、,12.2.1 CAN總線的特點,CAN總線是一種多節(jié)點的無主從競爭網絡,其具備以下一些突出的特點。低成本;極高的總線利用率;很遠的數據傳輸距離(長達10Km);高速的數據傳輸速率(高達1Mbit/s);,12.2.1 CAN總線的特點,可根據報文的ID決定接收或屏蔽該報文;可靠的錯誤處理和檢錯機制;發(fā)送的信息遭到破壞后,可自動重發(fā);節(jié)點在錯誤嚴重的情況下具有自動退出總線的功能;報文不包含源地址或目標地址,僅用標志符
6、來指示功能信息、優(yōu)先級信息。,12.2.2 CAN總線的物理層,CAN總線的物理層通過兩根導線將所有設備連接到一起,這兩個導線稱為CANH和CANL。由于CAN協(xié)議沒有對CAN總線的通訊介質作出規(guī)定,因此CAN總線的通訊介質可以是屏蔽雙絞線或者光纜等常用的通訊線路。如圖所示為簡單的CAN總線拓撲結構。,12.2.3 CAN總線的報文幀,為了實現CAN總線的通訊功能,CAN通訊協(xié)議中定義了四種不同的通訊報文幀。 數
7、據幀:數據幀攜帶數據從發(fā)送器至接收器; 遠程幀:總線單元發(fā)出遠程幀,請求發(fā)送具有同一識別符的數據幀; 錯誤幀:任何單元檢測到總線錯誤就發(fā)出錯誤幀; 過載幀:過載幀用以在先行的和后續(xù)的數據幀(或遠程幀)之間提供一附加的延時。12.2.3.1 數據幀12.2.3.2 遠程幀12.2.3.3 錯誤幀12.2.3.4 過載幀,12.2.4 CAN總線的仲裁,當CAN總線上兩個節(jié)點同時發(fā)送信息時
8、,就需要進行CAN總線的仲裁。CAN總線以報文為單位進行數據傳送,報文的優(yōu)先級結合在11位/29位標識符中,具有最低二進制數的標識符有最高的優(yōu)先級。這種優(yōu)先級一旦在系統(tǒng)設計時被確立后就不能再被更改,總線讀取中的沖突可通過位仲裁解決。當CAN網絡上兩個節(jié)點同時發(fā)送消息時,就要發(fā)生CAN總線的仲裁,總線狀態(tài)由節(jié)點中的顯性位所決定,因此,當一個節(jié)點發(fā)送的仲裁域出現隱形位時,節(jié)點將檢查總線狀態(tài)是否與自己狀態(tài)一致,當發(fā)現總線被顯性狀態(tài)所占據時,
9、說明有更高優(yōu)先級的節(jié)點正在發(fā)送信息,該節(jié)點自動停止發(fā)送,等待下一次總線空閑時再嘗試發(fā)送。,12.3 工業(yè)CAN網絡控制系統(tǒng)節(jié)點硬件電路設計,在本節(jié)中從各個子系統(tǒng)詳細介紹工業(yè)CAN網絡控制系統(tǒng)節(jié)點的硬件電路設計,包括單片機最小系統(tǒng)、CAN控制器電路、CAN收發(fā)器電路、時鐘顯示電路、輸入輸出控制電路和跑馬燈電路等部分。,12.3.1 AT89S51單片機最小系統(tǒng)電路,在該設計中采用了AT89S51單片機作為核心處理器,因此在電路中首先需
10、要設計的是AT89S51的最小系統(tǒng)。AT89S51單片機的最小系統(tǒng)電路包含以下幾個部分:單片機供電電路:AT89S51需要具有可靠的5V供電,在電路圖中的VCC和GND為供電網絡標識符;振蕩電路:AT89S51需要一個穩(wěn)定的振蕩電路才能夠正常工作,在該電路采用了24Mhz的晶振作為AT89S51的時鐘源;復位電路:復位電路是單片機正常運行的一個必要部分,復位電路應該保證單片機在上電的瞬間進行一次有效的復位,在單片機正常工作時將R
11、ST引腳置低。此外通過一個按鍵進行手動復位,在單片機運行不正常時使用。,12.3.2 CAN總線控制電路,CAN控制器電路采用Philips公司生產的SJA1000并行接口CAN控制器,SJA1000是一款獨立的控制器,用于汽車和一般工業(yè)環(huán)境中的控制器局域網絡(CAN)。12.3.2.1 SJA1000的性能指標SJA1000是PHILIPS半導體PCA82C200 CAN控制器(BasicCAN)的替代產品,它增加了一種新的工
12、作模式(PeliCAN),這種模式支持具有很多新特性的CAN 2.0B協(xié)議,具體性能指標如下。12.3.2.3 SJA1000的濾波工作方式使用SJA1000時要注意SJA1000的驗收濾波器的使用才能夠正確的從CAN總線上接收正確的數據。12.3.2.4 SJA1000的接口電路,12.3.3 CAN收發(fā)器電路,CAN收發(fā)器采用Philips公司生產的PCA82C250專用高速CAN收發(fā)器,PCA82C250是CAN協(xié)議控
13、制器和物理總線之間的接口,該器件對總線提供差動發(fā)送能力,并對CAN控制器提供差動額接收能力,具有體積小,耗電低,工作穩(wěn)定,抗干擾能力強的特點。 12.3.3.1 PCA82C250的性能指標12.3.3.2 PCA82C250的引腳定義12.3.3.3 PCA82C250的CAN驅動電路設計,12.3.4 時鐘顯示電路,時鐘顯示采用了共陰極的LED數碼管,為了減小對單片機引腳的占用和降低成本,采用Maxim公司生產的MAX
14、7219串行LED數碼管驅動器,MAX7219是美國MAXIM公司生產的串行輸入/輸出共陰極顯示驅動器。該芯片可直接驅動最多8位7段數字LED顯示器,或64個LED和條形圖顯示器。它與微處理器的接口非常簡單,僅用3個引腳與微處理器相應端連接即可實現最高10MHz串行口。12.3.4.1 時鐘顯示電路設計具體電路設計如圖12.23所示,MAX7219與AT89S51單片機連接采用三線串行接口。對于MAX7219,串行數據是以16
15、位數據包的形式從DIN腳串行輸入,在CLK的每一個上升沿一位一位地送入芯片內部16位移位寄存器。,12.3.5 數字量輸入輸出,數字量輸入/輸出接口電路主要是用于工業(yè)控制時的邏輯輸入和輸出,設計要求大于12路輸入/輸出,由于數字核心單片機的引腳有限,要實現如此之多的輸入輸出必須要進行IO擴展。如果使用邏輯電路進行擴展,電路復雜程度和成本都會比較高,因此采用Atmel公司生產的AVR單片機Atmega 48進行數字端口的擴展,該單片機
16、成本只要5元左右,卻能夠實現19路的數據量,在該電路使用中無需晶振電路,幾乎所有的引腳都可以用來作為IO擴展接口,,12.3.6 跑馬燈及其他接口電路,為了調試方便,在電路中外擴了8位跑馬燈,為了減少端口使用,將跑馬燈電路與ID設置電路進行了復用,具體電路設計如圖所示,此外,也為電路留出了RS232接口,CAN和電源接口。,,12.3.7 工業(yè)CAN網絡控制節(jié)點總電路,由以上的設計分析可以得到如圖所示的節(jié)點硬件電路圖。,,12.4
17、 工業(yè)CAN網絡控制系統(tǒng)通訊協(xié)議設計,本節(jié)講解工業(yè)CAN網絡控制系統(tǒng)節(jié)點的通訊協(xié)議設計,該通訊協(xié)議基于CAN總線在工業(yè)上的標準通訊協(xié)議CANOpen進行簡化并制定,本章僅僅選取了部分重要的協(xié)議部分進行講解,具體細節(jié)讀者可以參考CANOpen協(xié)議標準。,12.4.1 拓撲結構與接口定義,本章介紹案例的工業(yè)現場控制系統(tǒng)的網絡拓撲圖如圖所示,控制主機通過CAN總線控制現場設備進行數字量的輸入和輸出操作。,12.4.2 通訊約定協(xié)議,通訊約
18、定協(xié)議是指網絡中約定的統(tǒng)一通訊參數,通訊約定是所有節(jié)點能夠正常連接的基本條件。12.4.2.1 通信節(jié)點及約束通信節(jié)點包括控制主機(MCC)和現場設備節(jié)點(ETN),一個網絡允許一個MCC及一個或多個ETN,網絡中至多允許126個ETN。,12.4.2 通訊約定協(xié)議,12.4.2.2 信息交換方式網絡工作在主/從通訊模式,網絡中只允許MCC和ETN之間的通信,MCC為主設備,ETN為從設備。MCC以單播或廣播的方式進行通信,
19、ETN接收對應ID的單播數據和所有的廣播數據;ETN只向MCC發(fā)送單播數據。不允許ETN發(fā)送多播數據,不允許ETN之間的通信。,12.4.2 通訊約定協(xié)議,12.4.2.3 通信數據速率CAN網絡速率為250Kbps。12.4.2.4 數據刷新速率以250Kbps運行的CAN網絡,網絡的滿負荷幀率約為2000frps。為保證各ETN有足夠時間處理數據,ETN發(fā)送幀率小于5frps。,12.4.2 通訊約定協(xié)議,12.4.2
20、.5 幀格式網絡中采用CAN標準幀進行通信,每幀包括11位標識符(ID)、數據長度碼(DLC)、遠程傳送請求位(RTR)、最多8個字節(jié)的數據等由用戶設置的內容。此外,每幀還有CAN標準規(guī)定的幀起始、校驗、分割、應答等。,12.4.3 標識符定義,在采用標準幀進行通信時,CAN對象標識符(COB-ID)為11位,其中高四位為功能代碼,低7位是節(jié)點標識符。標識符的定義如表12.1所示。12.4.3.1 功能代碼功能代碼定義了功能
21、代碼值的范圍是0x00H – 0x0EH,其中0x00H - 0x02H對應于CANOpen中預定義主從連接集的廣播對象,0x03H – 0x0EH對應于CANOpen中主從連接集的對等對象。,12.4.3 標識符定義,12.4.3.2 廣播對象廣播對象包括網絡管理(NMT,Network ManagemenT)模塊控制(Module Control)、同步(SYNC,SYNChronize)、時間戳(TIME,Time Stam
22、p),如表所示。,12.4.3 標識符定義,12.4.3.3 對等對象對等對象包括緊急消息(EMCY,EMergenCY)、過程數據對象(PDO,Process Data Object)、服務數據對象(SDO,S1ervice Data Object)、網絡管理錯誤控制(NMT,NMT Error Control)五類。,12.4.3 標識符定義,12.4.3.4 節(jié)點標識符(NID)分配NID從01H到7EH為ETN所用,
23、7FH(全1)為MCC所用。在實際的網絡通信中,所有對等對象的NID始終表現為ETN的NID,即在所有的對等對象通信中,主控電腦發(fā)送的幀以實驗臺節(jié)點的NID作為的地址,實驗臺節(jié)點發(fā)送的幀以自身的NID作為源地址,所有廣播幀的NID為0,如表所示。,12.4.4 過程數據對象(PDO),網絡報文數據共8個字節(jié),分別表示為Byte 0, Byte 1, …, Byte 7。每個字節(jié)8位,表示為:b0, b1, …, b7,位序表示為b7
24、, b6, …, b0。即在網絡上串行發(fā)送數據時,每字節(jié)的最高位被首先發(fā)送,最低位被最后發(fā)送。字節(jié)序及位序的定義見如表所示。,12.4.4 過程數據對象(PDO),12.4.4.1 PDO1PDO1發(fā)送對象負責關于現場設備狀態(tài)的一切設定與讀取,如開關量設定、初始狀態(tài)設定、狀態(tài)讀取、其他數據讀取等。PDO1接收對象完成PDO1發(fā)送對象中設定情況的反饋,依據命令返回現場設備的開關狀態(tài)及其他狀態(tài)。PDO1和PDO2對象成對出現。PD
25、O1發(fā)送的COB-ID為384+NID,數據長度為自定義,數據幀。PDO1接收的COB-ID為512+NID,數據長度為自定義,數據幀。,12.4.4 過程數據對象(PDO),12.4.4.2 PDO2PDO2發(fā)送對象負責向現場設備上的智能儀表發(fā)送命令,PDO2接收對象將智能儀表的反饋發(fā)送回主機。智能儀表接在485總線上。PDO2發(fā)送的COB-ID為640+NID,數據長度自定義,數據幀。PDO2接收的COB-ID為768+NI
26、D,數據長度自定義,數據幀。,12.4.4 過程數據對象(PDO),12.4.4.3 PDO3PDO3用來實現現場設備上LCD等顯示信息的控制,現場設備內容的反饋等。12.4.4.4 PDO4PDO4保留,用于未來的使用。,12.4.5 服務數據對象(SDO),服務數據對象參考CANOpen協(xié)議標準CiA DS/301,9.2.2制定。SDO對象用來實現對現場設備管理、過程控制等信息。12.4.5.1 SDO(發(fā)送/服
27、務器)12.4.5.2 SDO(接收/客戶),12.4.6 同步對象(SYNC),同步對象參考CANOpen標準協(xié)議:CiA DS/301,9.2.3制定。同步對象由NMT主機周期性的廣播發(fā)出,間隔時間約定為5秒。消息自主機初始化完畢后開始發(fā)出,所有從節(jié)點在進入“預運行”狀態(tài)后,須等待此消息。該對象的COB-ID為128,數據長度為0,數據幀。,12.4.7 時間戳對象(TIME),時間戳對象參考CANOpen標準協(xié)議:CiA
28、DS/301,9.2.4制定。ETN在收到時間戳對象后,將本地時間設定為時間戳指定的時間,并重新開始計時。由于網絡傳輸等原因造成的時間誤差暫不予考慮。該對象的COB-ID為256,數據長度為3,數據幀。數據格式為“時、分、秒”,數據格式為unsigned char,如表所示。,12.4.8 緊急對象(EMCY),緊急對象參考CANOpen標準協(xié)議:CiA DS/301,9.2.5制定。CAN通信過程中,在執(zhí)行某些命令時發(fā)生的響應錯誤在
29、相應對象中已經實現的,均不在此實現。另,ETN的嚴重錯誤需要通過SDO對象通知MCC。ETN的其余錯誤均通過EMCY發(fā)出,但不影響整個實驗的進行,具體錯誤代碼如表所示。,12.5 工業(yè)CAN網絡控制節(jié)點程序設計,本章介紹該案例的程序設計,同樣,對一這樣一個大的工程,需要將程序利用不同的C文件和H頭文件進行組織,該系統(tǒng)程序的工程文件結構。,12.5.1 SJA1000芯片寄存器與關鍵字定義,SJA1000.h定義了和CAN控制器芯片S
30、JA1000相關的所有寄存器和控制字,及其SJA1000相關寄存器地址,具體代碼如下。,12.5.2 SJA1000.c底層驅動函數庫,SJA1000.c包含了SJA1000的底層驅動函數,具體代碼如下。(具體內容請參照本書),12.5.3 時鐘操作定義,Timer_defs.h頭文件里定義了與時鐘操作相關的具體變量,具體代碼如下。(具體內容請參照本書),12.5.4 時鐘操作函數庫,Timer_funcs.c文件中包含了所有關于
31、時鐘操作的函數,是這些函數的實體文件,具體代碼如下所示。(具體內容請參照本書),12.5.5 485信息定義,_485_defs.h頭文件中包含了485通訊需要的相關頭文件定義,具體代碼如下所示。(具體內容請參照本書),12.5.6 485通訊函數庫,_485_funcs.c包含了所有關于485通訊的函數,注意在本案例設計中,485驅動芯片是外置,在本案例中僅僅輸入和輸出邏輯信號。(具體內容請參照本書),12.5.7 Max721
32、9寄存器與關鍵字定義,max7219.h中定義了所有關于LED數碼管驅動的寄存器和寄存器地址,具體代碼如下所示。(具體內容請參照本書),12.5.8 Max7219數碼管驅動函數庫,max7219.c定義了操作MAX7219對LED數碼管進行驅動的函數,具體代碼如下。(具體內容請參照本書),12.5.9 數碼管操作函數庫,DIG_funcs.c函數中包含了所有關于數碼管操作的功能函數,具體代碼如下。(具體內容請參照本書),12.5.
33、10 CAN總線操作函數庫,CAN_funs.c函數中包含了CAN總線的一般操作函數,這些函數都是在SJA1000底層函數的基礎上編寫的,具體代碼如下。(具體內容請參照本書),12.5.11 輸入輸出管理函數,atmega48.c是管理節(jié)點19路輸入輸出接口的函數,內部實際上就是和atmega48進行SPI通訊的函數,具體代碼如下。(具體內容請參照本書),12.5.12 綜合節(jié)點功能函數,該文件是實現整個CAN網絡系統(tǒng)的綜合功能節(jié)
34、點,其中的函數實現了整個定義的CAN通訊協(xié)議,具體代碼如下所示。(具體內容請參照本書),12.5.13 引腳定義,pin_defs.h定義了所有的引腳功能分布,具體代碼如下所示。(具體內容請參照本書),12.5.14 CAN操作函數聲明,xkcan.h對大部分功能函數進行了聲明,具體代碼如下。(具體內容請參照本書),12.5.15 特殊變量定義,xkcan_defs.h定義了在操作中需要用到的一些特殊變量和特殊定義,具體代碼如下。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第12章控制系統(tǒng)的狀態(tài)空間設計
- 車載網絡控制系統(tǒng)及基于CAN的電噴節(jié)點的研究.pdf
- 汽車CAN網絡控制系統(tǒng)的設計研究.pdf
- 第12章 綜合
- 基于CAN總線的工業(yè)控制系統(tǒng)的設計與實現.pdf
- can總線的雙機冗余系統(tǒng)設計——工業(yè)控制網絡課程設計
- 基于CAN總線的直流無刷電機協(xié)調控制系統(tǒng)智能節(jié)點設計.pdf
- 第9章 信息系統(tǒng)綜合應用開發(fā)實例
- 工業(yè)控制網絡課程設計論文_基于can總線的大棚溫濕度檢測節(jié)點設計__190191921
- 網絡控制系統(tǒng)節(jié)點驅動方式及其控制研究.pdf
- 第3章內容 第5章4控制系統(tǒng)
- 汽車CAN總線網絡控制系統(tǒng)設計與實現.pdf
- 電動汽車驅動控制系統(tǒng)及CAN總線網絡控制系統(tǒng).pdf
- 工業(yè)ct控制系統(tǒng)設計
- CAN總線網絡控制系統(tǒng)設計及調度算法研究.pdf
- 基于CAN總線網絡控制系統(tǒng)的研究與設計.pdf
- 基于CAN總線的工業(yè)園區(qū)智能照明控制系統(tǒng)設計.pdf
- dsp與can總線通信系統(tǒng)設計-工業(yè)控制網絡課程設計(論文)
- 控制系統(tǒng)實例32個
- 基于CAN總線的網絡控制系統(tǒng)研究.pdf
評論
0/150
提交評論