基于CAN總線的數(shù)據(jù)通訊接口的設(shè)計_第1頁
基于CAN總線的數(shù)據(jù)通訊接口的設(shè)計_第2頁
基于CAN總線的數(shù)據(jù)通訊接口的設(shè)計_第3頁
基于CAN總線的數(shù)據(jù)通訊接口的設(shè)計_第4頁
基于CAN總線的數(shù)據(jù)通訊接口的設(shè)計_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 基于CAN總線的數(shù)據(jù)通訊接口的設(shè)計展恩穎(自動化部特鋼維護車間技術(shù)組)摘 要:現(xiàn)場總線是自動化領(lǐng)域的計算機網(wǎng)絡,是當今自動化領(lǐng)域技術(shù)發(fā)展的熱點之一。它以總線為紐帶,將現(xiàn)場設(shè)備連接起來成為一個能夠相互交換信息的控制網(wǎng)絡,是一種雙向串行多節(jié)點數(shù)字通信的系統(tǒng)。CAN總線也是現(xiàn)場總線的一種,它最初被應用于汽車的控制系統(tǒng)中。由于其卓越的性能,CAN總線的應用范圍已不再局限于汽車工業(yè),被廣泛應用到自動控制、樓宇自動化、醫(yī)學設(shè)備等各個領(lǐng)域。關(guān)鍵詞:CAN總線;dspic30f5011;M9020-FNU20;CTM1050;ABSTRACT:Field bus is a kind of computer

2、network in automatization field and it has been one of the hotspots of automatization fields technique development. Field bus connects the field equipments with a bus and makes a network through which information can be exchanged mutually. So field bus is a system which can transmit digital signals

3、in two directions among many nodes. CAN is also one kind of field bus. Originally, its applied in the control systems of car industry But its application is not limited in automobile industry for its excellent performance now. Its also applied in Automatic control. Building automatization, Mechanica

4、l treatment equipments and so on.KEY WORDS: CAN bus; dspic30f5011; M9020-FNU20; CTM1050;0 引言現(xiàn)場總線(Field bus) 是指開放式、國際標準化、數(shù)字化、相互交換操作作者簡介:展恩穎(1988),男,山東省萊蕪市,2010年畢業(yè)于青島科技大學測控技術(shù)與儀器專業(yè),現(xiàn)為自動化部特鋼維護車間技術(shù)員。的雙向傳送、連接智能儀表和控制系統(tǒng)的通信網(wǎng)絡。CAN總線全稱為Controller Area Network,即控制器局域網(wǎng),CAN總線是國際上應用最廣泛的現(xiàn)場總線之一?,F(xiàn)場總線是20世紀90年代迅速發(fā)展起來的工

5、業(yè)控制系統(tǒng)技術(shù),是信息化帶動工業(yè)化和工業(yè)化推動信息化的實用技術(shù)之一。近年來才在中國獲得初步發(fā)展。當計算機網(wǎng)絡技術(shù),特別是互聯(lián)網(wǎng)技術(shù)得到廣泛應用后,人們對企業(yè)生產(chǎn)過程的控制提出了更高的要求,企業(yè)與外界信息溝通的范圍不斷擴大,這就需要把大量的現(xiàn)場信息送到外面,又需要遠程對現(xiàn)場進行診斷、維護和服務,實現(xiàn)從現(xiàn)場控制到監(jiān)控、管理、決策等各層次的信息交換和集成?,F(xiàn)場總線順應了這種要求的發(fā)展,具有便于系統(tǒng)功能擴充,結(jié)構(gòu)改型方便,系統(tǒng)結(jié)構(gòu)簡潔,可靠性高,全數(shù)字化信號精度比傳統(tǒng)的模擬信號高,高度分散控制使風險得到徹底分散,維護性好,可預防性診斷和維護,具有高度的系統(tǒng)集成主動權(quán),提供更豐富的現(xiàn)場信息等優(yōu)點。被認為

6、是工業(yè)控制發(fā)展的必然趨勢,將逐步取代傳統(tǒng)的控制方法。1 CAN總線技術(shù)規(guī)范1.1 CAN總線的分層結(jié)構(gòu)CAN遵從ISO/OSI標準模型,按照這個標準的模型,CAN結(jié)構(gòu)劃分為兩層:數(shù)據(jù)鏈路層(包括邏輯鏈路控制子層LLC和媒體訪問控制子層MAC)和物理層。在CAN技術(shù)規(guī)范2.0版本中,數(shù)據(jù)鏈路層的LLC和MAC子層服務及功能被描述為“對象層”和“傳輸層”。CAN的分層結(jié)構(gòu)如下圖1-1。數(shù)據(jù)鏈路層邏輯鏈路控制子層LLC接收濾波超載通知恢復管理介質(zhì)訪問控制子層MAC數(shù)據(jù)封裝/拆裝幀編碼(填充/消除填充)介質(zhì)訪問管理錯誤檢測錯誤標定應答串行化/解串行化物理層物理信令PLS位編碼/解碼位定時同步驅(qū)動器/接

7、收器特征圖1-1 CAN分層結(jié)構(gòu)圖Fig 1-1 CAN hierarchical structure diagramLLC子層的主要功能是:為數(shù)據(jù)傳送和遠程數(shù)據(jù)請求提供服務,確認由LLC子層接收的報文已被接收,并為恢復管理和通知超載提供信息。MAC子層的功能主要是傳送規(guī)則,亦即控制幀的結(jié)構(gòu)、執(zhí)行仲裁、錯誤檢測、出錯標定和故障界定。物理層的功能是有關(guān)全部電氣特性在不同節(jié)點問的實際傳送。CAN技術(shù)規(guī)范2.0B定義了數(shù)據(jù)鏈路中的MAC子層和LLC子層的一部分,并描述與CAN有關(guān)的外層。物理層定義了信號怎樣進行發(fā)送,因而,涉及位定時、位編碼元和同步的描述。在這部分技術(shù)規(guī)范中,未定義物理層中的驅(qū)動器接

8、收器特性,以便允許根據(jù)具體應用,對發(fā)送媒體和信號電平進行優(yōu)化,使信號傳輸更加方便。MAC子層是CAN協(xié)議的核心,它描述由LLC子層接收到的報文和對LLC子層發(fā)送的認可報文。MAC子層可響應報文幀、仲裁、應答、錯誤檢測標定。MAC子層有稱為故障界定的一個管理實時監(jiān)控,它具有識別永久故障或短暫擾動的自檢機制。LLC子層的主要功能是報文濾波、超載通知和恢復管理。按照IEEE 8022和8023標準,物理層劃分為:(1)物理信令(PLS Physical Signaling)。(2)物理媒體附屬裝置(PMA Physical Medium Attachment)。(3)媒體相關(guān)接口(MDI Mediu

9、m Dependent Interface)。數(shù)據(jù)鏈路層又劃分為:(1)邏輯鏈路控制(LLC Logic Link Contr01)。(2)媒體訪問控制(MAC Medium Access Contr01)。1.2 CAN的報文發(fā)送和幀在進行數(shù)據(jù)傳送時,發(fā)出報文的單元稱為報文的發(fā)送器,該單元在總線空閑或丟失仲裁前恒為發(fā)送器。如果一個單元不是報文發(fā)送器,并且總線不處于空閑狀態(tài),則該單元為接收器。對于報文發(fā)送器和接收器,報文實際有效時刻是不同的。對于發(fā)送器而言,如果周到幀結(jié)束末尾一直未出錯,則對于發(fā)送器報文有效。如果報文受損,則允許按照優(yōu)先權(quán)順序自動重發(fā)送。為了能同其他報文驚醒總線訪問競爭,總線一

10、旦空閑,重發(fā)送將立即開始。對于接收器而言,如果直到幀結(jié)束的最后一位一直未出錯,則對于接收器報文有效。1.2.1 幀格式規(guī)范中有兩種不同的幀格式,不同之處在于每幀的標識符的長度不同。標準幀的標識符長度為11位,而擴展幀的長度則為29位。1.2.2 幀類型CAN總線的數(shù)據(jù)傳輸由以下4個不同的幀類型所表示和控制:數(shù)據(jù)幀:數(shù)據(jù)幀將數(shù)據(jù)從發(fā)送器傳送到接收器。遠程幀:總線單元發(fā)出遠程幀,請求發(fā)送具有相同標識符的數(shù)據(jù)幀。錯誤幀:任何節(jié)點檢測到總線錯誤就發(fā)出錯誤幀。超載幀:超載幀用以在先行的和后續(xù)的數(shù)據(jù)幀(或遠程幀)之間提供一附加的延時。數(shù)據(jù)幀和遠程幀可以使用標準幀及擴展幀兩種格式,它們用一個幀空間與前面的幀

11、分開。2 基于dspic30f5011單片機CAN總線的硬件設(shè)計dsPIC30F5011單片機是Microchip公司的高性能數(shù)字信號控制器。其CPU是高性能改進型RISC CPU,采用改進型哈佛結(jié)構(gòu),具有優(yōu)化的C 編譯器指令集架構(gòu)和靈活的尋址方式, 66KB片上閃存程序空間、4 KB片上數(shù)據(jù)RAM、1 KB非易失性數(shù)據(jù)EEPROM。最高30MIPS的工作速度,最多41個中斷源。其DSP特性能輕松實現(xiàn)雙數(shù)據(jù)取操作、模尋址和位反轉(zhuǎn)尋址模式。dsPIC30F5011外設(shè)上具備數(shù)據(jù)轉(zhuǎn)換器接口(Data Converter Interface),3路SPI總線模塊(支持4 種幀模式),I2C模塊支持多

12、主器件主/從模式,支持7位/10位尋址,兩個帶FIFO緩沖區(qū)的可尋址UART 模塊,兩個與CAN 2.0B 標準兼容的CAN 總線模塊。下行數(shù)據(jù)采集板的設(shè)計中主要用到了其中的CAN總線模塊和SPI總線模塊。PIC單片機在本系統(tǒng)中的主要功能是CAN傳輸(負責將數(shù)據(jù)打成CAN包然后傳送到ARM主板),負責處理抄表協(xié)議,與485通訊等。因此CAN模塊和SPI模的作用猶為重要。2.1 CTM1050CTM1050 是一款帶隔離的高速CAN 收發(fā)器芯片,該芯片內(nèi)部集成了所有必需的CAN隔離及CAN 收、發(fā)器件,這些都被集成在不到3平方厘米的芯片上。芯片的主要功能是將CAN 控制器的邏輯電平轉(zhuǎn)換為CAN

13、總線的差分電平并且具有DC 2500V 的隔離功能及ESD 保護作用。該芯片符合 ISO11898標準,因此,它可以和其他遵從ISO11898標準的CAN收發(fā)器產(chǎn)品互操作。2.1.1電路連接使用CTM1050芯片時,必須將CTM1050芯片假如用戶的電路板中;如圖2-1所示為CAN控制器與CTM1050接口芯片的連接原理圖。圖2-1 CTM1050接口電路Fig 2-1 CTM1050 interface circuit2.2 電路設(shè)計本設(shè)計里主要部分采用了LPC2290微控制器和dsPIC30F5011單片機,它們內(nèi)部都含兩個CAN控制器,基于LPC2290 的工業(yè)級微控制器M9020-FN

14、U20提供LPC2290 標準化驅(qū)動,并固化協(xié)議棧,調(diào)用API 函數(shù)即可實現(xiàn)嵌入式設(shè)備CAN 總線通信功能。完整的CAN 總線設(shè)備由CAN 控制器、總線收發(fā)器以及相應的隔離電路組成。本系統(tǒng)中LPC2290微控制器和dsPIC30F5011單片機之間的CAN通訊就相對簡單只需加入隔離電路-CAN隔離收發(fā)器和其它相關(guān)器件就可實現(xiàn)。CAN總線的接口電路如下圖2-2所示。M9020-FNU20中已固化協(xié)議棧,通訊時調(diào)用API函數(shù)即可實現(xiàn)嵌入式設(shè)備的CAN 總線通信功能。CAN隔離收發(fā)器采用廣州致遠電子開發(fā)的CTM1050(帶TVS 保護的高速隔離 CAN 收發(fā)器,DC2500V 電氣隔離)。隔離收發(fā)模

15、塊集電源隔離、電氣隔離、CAN 收發(fā)器、CAN 總線保護于一體,模塊TXD、RXD 引腳兼容+3.3V、+5V 電平連接,直接將CAN 控制器收發(fā)引腳與CTM 模塊的收發(fā)引腳連接即可構(gòu)成完整的CAN 設(shè)備。隔離電路能確保CAN 總線在遭受嚴重干擾時控制器仍正常工作。圖2-2 CAN總線接口電路圖Fig 2-2 CAN bus interface circuit3 基于M9020-FNU20微控制器CAN總線的硬件設(shè)計M9020-FNU20 基于LPC2290 工業(yè)級微控制器,支持10M 以太網(wǎng)通信、CAN 總線通信,具有CF 卡接口、USB 接口、板載大容量NAND Flash 電子盤、A/D

16、 轉(zhuǎn)換、RTC 等功能。產(chǎn)品提供保護型總線設(shè)計,使模塊在EMC 性能及穩(wěn)定性方面均有良好的表現(xiàn)。產(chǎn)品提供LPC2290 標準化驅(qū)動庫,并固化協(xié)議棧,調(diào)用API 函數(shù)即可實現(xiàn)嵌入式設(shè)備的TCP/IP 網(wǎng)絡通信、CAN 總線通信功能和USB、CF 卡、海量電子盤等存儲功能,特別適合電力自動化、煤礦產(chǎn)量監(jiān)控、機電控制等行業(yè)。用戶程序可在線升級,不但使產(chǎn)品更快投入市場,而且升級簡單可靠,明顯增強產(chǎn)品的市場競爭力。3.1 M9020-FNU20結(jié)構(gòu)M9020-FNU20 嵌入式工控板主要由LPC2290(ARM7TDMI)微控制器、程序存儲器、數(shù)據(jù)存儲器、工業(yè)級以太網(wǎng)控制器CS8900A、USB 主機控

17、制器和大容量NAND Flash 存儲器組成??偩€通過緩沖保護電路與底板接口以保證微控制器總線運行不受外界干擾。產(chǎn)品標配可校準的實時時鐘和帶256Bytes E²-PROM 的復位監(jiān)控電路。3.2 電路設(shè)計完整的CAN 總線設(shè)備由CAN 控制器、總線收發(fā)器以及相應的隔離電路組成。M9020-FNU20 工控板使用如圖 3-1 所示CAN 接口電路(圖中只有1 路),圖中CTM1050為隔離CAN 收發(fā)器模塊,能確保CAN 總線在遭受嚴重干擾時控制器仍正常工作。圖3-1接口電路Fig 3-1 Interface circuit致遠CTM 系列CAN 隔離收發(fā)模塊集電源隔離、電氣隔離、C

18、AN 收發(fā)器、CAN 總線保護于一體,模塊TXD、RXD 引腳兼容+3.3V、+5V 電平連接,毋需外接其他元器件,直接將CAN 控制器收發(fā)引腳與CTM 模塊的收發(fā)引腳連接即可構(gòu)成完整的CAN 設(shè)備。4 CAN總線數(shù)據(jù)通訊接口的軟件設(shè)計4.1 初始化設(shè)置CAN總線操作需要初始化,以創(chuàng)建CAN控制器所需要的軟硬件資源,并進行引腳配置等。CAN初始化函數(shù)原型為:void *CAN_Create(INT8U CAN_Ch, INT16U RxBufSize, INT32U BaudRate, void *pfun)4.2 接收程序CAN 總線模塊有3 個接收緩沖器。但是,其中總是有一個緩沖器用于監(jiān)視

19、總線是否有進入的報文。這個緩沖器叫做報文合成緩沖器(Message Assembly Buffer,MAB)。因此只有2 個接收緩沖器可見(RXB0 和RXB1),基本上可以即時接收來自協(xié)議引擎的完整報文。當一個接收緩沖器在接收報文或保持上次接收到的報文時, CPU仍可以使用另一個接收緩沖器工作。MAB保存來自總線的解填充比特流,以允許并行訪問整個數(shù)據(jù)幀或遠程幀,以進行接收匹配測試并將幀并行傳輸?shù)浇邮站彌_器。MAB將組合所有接收到的報文。這些報文只有在符合接收過濾器標準時才被傳送到RXBn 緩沖器。當接收到報文時, RXnIF 標志(CiINTF<0> 或CiINRF<1&g

20、t;)將置位。此位只有在報文被接收時才被模塊置位。該位在CPU處理完緩沖器中的報文后將由CPU清零。該位提供的正向鎖定功能確保CPU 已經(jīng)完成了報文緩沖器的處理。如果RXnIE 位(CiINTE<0>或CiINTE<1>)置位,當接收到報文時將會產(chǎn)生一個中斷。有2 個與接收緩沖器相關(guān)的可編程的接收過濾屏蔽器,兩個緩沖器各有一個。當接收到報文時,F(xiàn)ILHIT位(接收緩沖器0的CiRX0CON<0>和接收緩沖器1的CiRX1CON<2:0>)會表明報文的接收標準。除了表明使能接收的接收過濾屏蔽器個數(shù)外,還有一個指出所接收的報文是遠程傳輸請求的狀態(tài)位。

21、圖4-1 接收流程圖Fig 4-1 receive flowchart4.3 發(fā)送程序CAN 模塊有三個發(fā)送緩沖器。每個緩沖器可容納14 字節(jié)的數(shù)據(jù)。其中的8 個字節(jié)用于存放發(fā)送的報文(最大8 個字節(jié))。另外5 個字節(jié)用來存放標準或擴展報文標識符和其他報文仲裁信息。最后一個字節(jié)是與每個報文相關(guān)的控制字節(jié)。該字節(jié)中的信息決定在何種情況下報文將被發(fā)送以及表示報文發(fā)送的狀態(tài)。TXnIF 位(CiINTF<2>、CiINTF<3>或CiINTF<4>)將被置位,并且TXREQ位(CiTXnCON<3>)清零,表明報文緩沖器完成了發(fā)送。隨后CPU 把將要發(fā)

22、送的報文內(nèi)容裝入報文緩沖器。至少,必須裝載標準標識符寄存器CiTXnSID。如果報文中有數(shù)據(jù)字節(jié),還應裝載TXBnDm寄存器。如果報文使用擴展標識符,CiTXnEID 寄存器和EID<5:0>位(CiTXnDLC<15:10>)會被加載并置位TXIDE位(CiTXnSID<0>)。在發(fā)送報文前,用戶必須初始化TXnIE位(CiINTE<2>、CiINTE<3> 或CiINTE<4>)以便在發(fā)送報文后使能或禁止中。必須置位TXREQ位(CiTXnCON<3>)來開始發(fā)送報文。CAN 總線模塊解決了由TXREQ位與

23、SOF 時間設(shè)置造成的所有時序沖突,確保當優(yōu)先級改變時,能在發(fā)送SOF 之前正確解決時序沖突。當TXREQ 置位時, TXABT(CiTXnCON<6>)、TXLARB (CiTXnCON<5>)和TXERR(CiTXnCON<4>)標志位將由模塊清零。置位TXREQ 位并沒有真正開始發(fā)送報文,它標志一個報文緩沖器正在排隊以等待發(fā)送。當模塊檢測到總線上有可用的SOF時,發(fā)送開始。模塊然后開始發(fā)送設(shè)定為具有最高優(yōu)先級的報文。如果發(fā)送第一次嘗試就成功完成,TXREQ位將清零,如果TXnIE位(CiINTE<2>、CiINTE<3>和CiINTE<4>)已經(jīng)置位,還會產(chǎn)生一個中斷。如果報文發(fā)送失敗,其他的某些狀態(tài)標志位將被置位, TXREQ 位將保持置位,表示該報文仍然等待發(fā)送。如果報文嘗試發(fā)送但遇到出錯情況, TXERR 位(CiTXnCON<4>)將被置位。在這種情況下,出錯情況也可能會引起中斷。如果報文嘗試發(fā)送但仲裁失敗, TXLARB 位(CiTXn

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論