<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > CAN總線技術(shù)在車站信號系統(tǒng)中的應(yīng)用

          CAN總線技術(shù)在車站信號系統(tǒng)中的應(yīng)用

          作者: 時間:2011-08-04 來源:網(wǎng)絡(luò) 收藏
            隨著網(wǎng)絡(luò)技術(shù)的不斷進(jìn)步及工業(yè)控制器局域網(wǎng)技術(shù)的不斷完善,工業(yè)上遠(yuǎn)程控制技術(shù)的應(yīng)用也日趨廣泛。本地機(jī)通過局域網(wǎng)控制現(xiàn)場機(jī)器進(jìn)行各種操作是目前工業(yè)技術(shù)的應(yīng)用熱點[1]。鑒于電子化計算機(jī)聯(lián)鎖系統(tǒng)運行狀況必須滿足安全、可靠以及具有較強(qiáng)的實時性能和糾錯能力的要求,所以,在本設(shè)計中,我們采用代替RS-485總線,從而使能滿足國家鐵路技術(shù)各項指標(biāo)。

          1、的技術(shù)規(guī)范   

          技術(shù)規(guī)范的目的是使任意兩個CAN總線的執(zhí)行過程達(dá)到兼容,CAN技術(shù)規(guī)范版本2.0包括兩部分內(nèi)容:   

          1) CAN技術(shù)規(guī)范版本2.0A   

          CAN技術(shù)規(guī)范版本2.0A描述的是在CAN技術(shù)規(guī)范1.2中定義的CAN報文格式,其范圍是定義傳輸層和與CAN有關(guān)的外層。在CAN技術(shù)規(guī)范版本2.0A中,CAN節(jié)點的分層結(jié)構(gòu)如圖1(a)所示。

          由于串行通信進(jìn)入了更多應(yīng)用領(lǐng)域,因此要求各種應(yīng)用領(lǐng)域通信功能報文標(biāo)識符標(biāo)注實現(xiàn)標(biāo)準(zhǔn)化。如果把原有的11個標(biāo)識符定義的地址范圍加以擴(kuò)展,CAN總線的功能將更加完善。因而,在引入了第二種報文格式(擴(kuò)展格式)后,它可以提供由29位定義的更大地址范圍,這就很好的解決了系統(tǒng)設(shè)計者在定義結(jié)構(gòu)名稱方面存在的問題,從而CAN技術(shù)規(guī)范版本2.0B也就相應(yīng)的出現(xiàn)了。

                   ?。╝) 2.0A中節(jié)點的結(jié)構(gòu)圖 (b) 2.0B中分層結(jié)構(gòu)   圖1   

          2) CAN技術(shù)規(guī)范版本2.0B   

          CAN技術(shù)規(guī)范版本2.0B描述標(biāo)準(zhǔn)和擴(kuò)展兩種報文格式。在CAN技術(shù)規(guī)范版本2.0B中,CAN遵從OSI模型,按照OSI基準(zhǔn)模型,CAN節(jié)點結(jié)構(gòu)可以分為兩層:數(shù)據(jù)鏈路層和物理層,具體如圖1(b)所示。

          2、CAN總線通信控制器SJA1000的簡介   

          CAN總線通信控制器主要由實現(xiàn)CAN總線協(xié)議的電路和實現(xiàn)與微處理器接口的電路兩部分組成,它是完成通信協(xié)議的主體。對于不同型號的CAN總線通信控制器,實現(xiàn)CAN總線協(xié)議部分電路的結(jié)構(gòu)和功能大多相同,而與微處理器接口部分的電路結(jié)構(gòu)和連接方式存在一些差異。這里主要以SJAl000為代表對CAN總線通信控制器的功能作一簡單介紹。

          SJAl000是一種獨立CAN控制器。它是PHILIPS公司的PCA82C200CAN控制器的替代產(chǎn)品,SJAl000的內(nèi)部邏輯結(jié)構(gòu)和外部接口如圖2所示。

          圖2 SJA1000內(nèi)部邏輯框圖及外部接口   

          在性能方面,除了SJAl000在軟件和引腳上與它的前—款PCA82C200獨立CAN控制器兼容之外,其還增加了很多新的功能。在具體應(yīng)用中,SJAl000采用了兩種工作方式:Basic CAN方式(PCA82C200兼容方式)和PeliCAN方式(擴(kuò)展特性方式),這是SJAl000實現(xiàn)其兼容性的基礎(chǔ)。SJAl000的兩種工作方式是通過時鐘分頻寄存器中的CAN方式位來選擇的,其中上電復(fù)位的默認(rèn)工作方式是Basic CAN方式。在PeliCAN方式下,SJAl000有一個重新設(shè)計的含很多新功能的寄存器組。SJAl000包含PCA82C200中的所有位,同時增加了一些新的功能位。PeliCAN方式支持CAN2.0B協(xié)議規(guī)定的所有功能(29位的標(biāo)識符)[2]。

          3、SAJ1000與Atmega128單片機(jī)接口技術(shù)的實現(xiàn)   

          在SJA1000的主要特性介紹中,提到其支持多種微處理器接口,在具體設(shè)計中,我們主要研究了其與Atmega 128單片機(jī)的接口,設(shè)計了用于CAN通信的最小單片機(jī)系統(tǒng)(以下簡稱CAN通信系統(tǒng))接口方式如圖3所示。系統(tǒng)的通信部分主要有Atmega 128單片機(jī)、SJA1000CAN控制器、光電隔離部分和收發(fā)芯片組成。

            

          圖3 單片機(jī)與SJA1000接口框圖   

          TJA1050是PHILIPS公司生產(chǎn)的、用以替代82C250的高速CAN總線驅(qū)動器,是CAN控制器和物理總線之間的接口,可以提供向總線的差動發(fā)送能力和對CAN控制器的差動接收能力,其與ISO/DIS 11898標(biāo)準(zhǔn)完全兼容[3]。

          光電隔離部分是為了增強(qiáng)CAN總線節(jié)點的抗干擾能力,不過,應(yīng)該特別說明的一點是,光電耦合部分電路所采用的兩個電源必須完全隔離,否則采用光電耦合也就失去了意義。電源的完全隔離采用小功率電源隔離模塊實現(xiàn)。這部分雖然增加了接口電路的復(fù)雜性,但是卻提高了節(jié)點的穩(wěn)定性和安全性。

          4、CAN結(jié)點通信軟件的設(shè)計   

          SJA1000是I/O設(shè)備基于內(nèi)存編址的微控制器,雙設(shè)備獨立操作通過像RAM一樣的片內(nèi)寄存器修正來實現(xiàn)。因此CAN總線通信部分編程主要就是對SJAl000的片內(nèi)寄存器的讀寫操作。通信部分軟件設(shè)計總體上可以劃分為3大模塊:總線初始化、數(shù)據(jù)幀的接收和發(fā)送、總線出錯和異常處理。

          4.1 CAN通信初始化

            

          圖4 CAN初始化程序   

          其主要是設(shè)置CAN的通信參數(shù)。需要初始化的寄存器有:總線定時寄存器0、總線定時寄存器1、輸出控制寄存器、接收代碼寄存器、接收屏蔽寄存器等等。需要注意的是,只有當(dāng)控制寄存器中的復(fù)位要求位置為高時,這些寄存器才可被訪問。因此,在對這些寄存器初始化前,必須確保系統(tǒng)進(jìn)入了復(fù)位狀態(tài)。在訪問總線定時寄存器時,由于其內(nèi)容決定波特率的數(shù)值,總線定時寄存器的初始化字必須依據(jù)系統(tǒng)中各CAN控制器的晶振頻率而設(shè)定。初始化程序的流程圖如圖4所示[4]。

          4.2 數(shù)據(jù)發(fā)送和接收程序   

          信息從CAN控制器發(fā)送到CAN總線是由CAN控制器自動完成的。發(fā)送程序只需把發(fā)送的信息幀送到CAN的發(fā)送緩沖區(qū),啟動發(fā)送命令即可。需要注意的是,發(fā)送中斷不是由于發(fā)送完成而產(chǎn)生,而是由于發(fā)送緩沖區(qū)再次可用而產(chǎn)生的。

          信息從CAN總線到CAN接收緩沖區(qū)是由CAN控制器自動完成的。接收程序只需從接收緩沖區(qū)讀取要接收的信息即可。需要注意的是,讀取接收緩存器(RBF0或 RBF1)的內(nèi)容后,CPU必須通過置位釋放接收緩存位來釋放緩存器,使得另一個報文立即變得有效。數(shù)據(jù)發(fā)送和接收中斷流程圖如圖5所示。

            

          圖5 CAN通信數(shù)據(jù)發(fā)送和接收中斷  

          4.3 總線出錯和異常處理   

          CAN總線作為一種優(yōu)良的串行通信局域網(wǎng)絡(luò),它自身的查錯和排錯能力相當(dāng)強(qiáng)大,因此在設(shè)計時必須充分利用這一點,提高通信系統(tǒng)的可靠性。CAN協(xié)議規(guī)定網(wǎng)絡(luò)上的任何一個節(jié)點,根據(jù)其錯誤計數(shù)器中的數(shù)值,可能處于下列3種狀態(tài)之一:“錯誤—激活”狀態(tài)、“錯誤—認(rèn)可”狀態(tài)、“總線脫離”狀態(tài)。處于前兩種狀態(tài)時節(jié)點都可以參與總線通信,而當(dāng)處于“總線脫離”狀態(tài)時節(jié)點既不發(fā)送,也不接收任何數(shù)據(jù)幀。同時CAN協(xié)議還對脫離總線節(jié)點重新參與總線通信有嚴(yán)格規(guī)定。

          由于節(jié)點自身的原因或是其它原因,節(jié)點脫離總線,不參與通信,出現(xiàn)這種情況程序要做到及時發(fā)現(xiàn),并且迅速做出有效處理,使之恢復(fù)參與總線通信。判斷節(jié)點是否脫離總線同樣既可通過查詢方式,又可通過中斷方式。而處于“總線脫離”狀態(tài)的節(jié)點通信功能的恢復(fù),必須嚴(yán)格依照CAN協(xié)議規(guī)定的流程做,否則節(jié)點將一直處于“總線脫離”狀態(tài)。

          5、總結(jié)   在中,用CAN總線代替RS-485總線,其數(shù)據(jù)通信具有突出的可靠性、實時性和靈活性,而且通信距離也有了很大的提高,這些都在現(xiàn)場運行中得到了證實,具有較強(qiáng)的實用價值。

          本文作者創(chuàng)新點:用CAN總線代替所使用的RS-485總線,在軟/硬件設(shè)計中均采用了模塊化的方案,具有更高的靈活性和廣泛的適用性;同時,用Atmega128單片機(jī)代替車站信號系統(tǒng)中所使用的Atmel8535單片機(jī),使運行的速度也得到了提高。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();