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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > can總線通訊協(xié)議

          can總線通訊協(xié)議

          作者: 時間:2016-12-12 來源:網(wǎng)絡(luò) 收藏
          隨著集成電路和嵌入式電腦在汽車上的廣泛應(yīng)用,現(xiàn)代汽車上的電子控制器的數(shù)量越來越多,常見的有發(fā)動機的電子燃油噴射裝置、防抱死制動裝置(ABS)、安全氣囊裝置、電動門窗裝置、主動懸架等。電控系統(tǒng)的增加雖然提高了轎車的動力性、經(jīng)濟性和舒適性,但隨之增加的復(fù)雜電路也降低了汽車的可靠性,增加了維修的難度。從布線角度分析,傳統(tǒng)的電子氣系統(tǒng)大多采用點對點的單一通信方式,相互之間少有聯(lián)系,這樣必然造成寵大的布線系統(tǒng)。因此,一種新的概念——汽車上電子控制器局域網(wǎng)絡(luò)CAN,也就應(yīng)運而生。為使不同廠家生產(chǎn)的零部件能在同一輛汽車上協(xié)調(diào)工作,必須制定標準。按照ISO有關(guān)標準,CAN的拓撲結(jié)構(gòu)總線,因此稱為CAN總線。CAN總線被設(shè)計作為汽車環(huán)境中的微控制器通信,在車載各電子控制裝置ECN之間交 換信息,在車載各電子控制裝置ECN之間交換信息,形成汽車電子控制網(wǎng)絡(luò)。
          控制器局域網(wǎng)CAN(Controller Area Network)是一種多主方式的串行通信總線,基本設(shè)計規(guī)范要求有高的位速率,高抗電磁干擾性,而且能夠檢測出產(chǎn)生的任何錯誤。CAN在汽車上的應(yīng)用,具有很多行業(yè)標準或者是國際標準,比如國際標準化組織(ISO)的ISO11992、ISO11783以及汽車工程協(xié)會(Societyof Automotive Engigeers)的SAE J1939。CAN總線已經(jīng)作為汽車的一種標準設(shè)備列入汽車的整車設(shè)計中。CAN總線簡介CAN通信協(xié)議規(guī)定了4種不同的幀格式,即數(shù)據(jù)幀、遠程幀、錯誤幀和超載幀?;谝韵聨讞l基本規(guī)則進行通信協(xié)調(diào):總線訪問、仲裁、編碼/解碼、出錯標注和超裁標注。CAN遵從OSI模型。按照OSI基準模型只有三層:物理層、數(shù)據(jù)鏈路層和哀告層,但應(yīng)用層尚需用戶自己定義。CAN總線作為一種有效支持分布式控制或?qū)崟r控制的串行通信網(wǎng)絡(luò),應(yīng)用范圍遍及從高速網(wǎng)絡(luò)到低成本的多線路網(wǎng)絡(luò)。如:CAN在汽車中的發(fā)動機控制部件、ABS、抗滑系統(tǒng)等應(yīng)用中的位速率可高達1Mbps。同時,它可以廉價地用于交通運載工具電器系統(tǒng)中,例如電氣窗口、燈光聚束、座椅調(diào)節(jié)等,以替代所需要的硬件連接。其傳輸介制裁為雙絞線,通信速率最高可達1Mbps/40m,直接傳輸距離最遠可達10km/5kbps,掛接設(shè)備數(shù)最多可達110個。CAN為多主工作方式,通信方式靈活,無需站地址等節(jié)點信息,采用非破壞性總線仲裁技術(shù),滿足實時要求。另外,CAN采用短幀結(jié)構(gòu)傳輸信號,傳輸時間短,具有較強的抗干擾能力。CAN總線與其它通信協(xié)議的不同之處主要有兩方面:一是報文傳送不包含目標地址,它是以全網(wǎng)廣播為基礎(chǔ),各接收站根據(jù)報文中反映數(shù)據(jù)性質(zhì)的標識符過濾報文,其特點是可在線上網(wǎng)下網(wǎng)、即插即用和多站接收;另外一個方面就是特別強化了數(shù)據(jù)安全性,滿足控制系統(tǒng)及其它較高數(shù)據(jù)要求系統(tǒng)的需求。在現(xiàn)代汽車的設(shè)計中,CAN總線已經(jīng)成為構(gòu)建汽車網(wǎng)絡(luò)的一種趨勢;而汽車網(wǎng)絡(luò)作為直接與汽車內(nèi)部各個ECU連接并負責命令的傳遞、數(shù)據(jù)的發(fā)送及共享,其可靠性和穩(wěn)定性與整車的性能緊密相關(guān)。本文的設(shè)計開發(fā)是在基于試驗條件下搭建的仿真平臺,節(jié)點之間的通信是通過對等的CAN通信節(jié)點進行的。試驗表明其運行性能穩(wěn)定可靠,但實用化仍需要進一步的研究和改進,且程序的通信處理能力、糾錯和容錯能力有待進一步的提高.比如:把CAN總線融合到嵌入式平臺中,在其ARM-EP9315和ARM-S3C2440嵌入式平臺上都做到了CAN總線功能的實現(xiàn)!ARM嵌入式控制平臺,具有開放、集成度高、尺寸小、可擴展性強、低功耗等特點,非常適合與數(shù)字家電、車載設(shè)備、通信終端、網(wǎng)絡(luò)設(shè)備等的應(yīng)用。如今有了CAN總線的實現(xiàn),使其在此方面的應(yīng)用更為有效!基于單片機AT89C52的CAN總線分布式測控系統(tǒng)的研制 1 CAN總線網(wǎng)絡(luò)的技術(shù)特點[1][2]  用通訊數(shù)據(jù)塊編碼,可實現(xiàn)多主工作方式,數(shù)據(jù)收發(fā)方式靈活,可實現(xiàn)點對點、一點對多點及全局廣播等多種傳輸方式;可將DCS結(jié)構(gòu)中主機的常規(guī)測試與控制功能分散到各個智能節(jié)點,節(jié)點控制器把采集到的數(shù)據(jù)通過CAN適配器發(fā)送到總線,或者向總線申請數(shù)據(jù),主機便從原來繁重的底層設(shè)備監(jiān)控任務(wù)中解放出來,進行更高層次的控制和管理功能,比如故障診斷、優(yōu)化協(xié)調(diào)等; 采用非破壞性基于優(yōu)先權(quán)的總線仲裁技術(shù),具有暫時錯誤和永久性故障節(jié)點的判別及故障節(jié)點的自動脫離功能,使系統(tǒng)其它節(jié)點的通信不受影響;同時,CAN具有出錯幀自動重發(fā)功能,可靠性高;   信號傳輸用短幀結(jié)構(gòu)(8字節(jié)),實時性好; 不關(guān)閉總線即可任意掛接或拆除節(jié)點,增強了系統(tǒng)的靈活性和可擴展性;  采用統(tǒng)一的標準和規(guī)范,使各設(shè)備之間具有較好的互操作性和互換性,系統(tǒng)的通用性好;   通訊介質(zhì)可采用雙絞線,無特殊要求;現(xiàn)場布線和安裝簡單,易于維護,經(jīng)濟性好。 總之,CAN總線具有實時性強、可靠性高、結(jié)構(gòu)簡單、互操作性好、價格低廉等優(yōu)點,克服了傳統(tǒng)的工業(yè)總線的缺陷,是構(gòu)建分布式測控系統(tǒng)的一種有效的解決方案。2系統(tǒng)總體硬件設(shè)計方案 首先,定義各節(jié)點的功能,確定各節(jié)點檢測或控制量的數(shù)目、類型、信號特征。這是進行微機測控系統(tǒng)網(wǎng)絡(luò)化的第一步。原則是盡量避免重復(fù)測試。智能節(jié)點模塊絕大部分是輸入輸出模塊,調(diào)節(jié)回路可以跨模塊構(gòu)成回路。但考慮到調(diào)節(jié)回路的安全性,為了保證在上位機或整個通信線路出現(xiàn)重大故障時回路調(diào)節(jié)不受到影響,設(shè)計了隔離型、自整定PID、隔離型溫度調(diào)節(jié)器等帶有調(diào)節(jié)功能的模塊。它們的輸入輸出通道都在同一模塊中,其底層軟件的功能很強,所有的輸入處理、輸出增量的計算(多種調(diào)節(jié)算法可通過組態(tài)選擇,包括串級調(diào)節(jié))、輸出,包括自整定模塊的過程參數(shù)的自動識別都在本模塊實現(xiàn),保證了調(diào)節(jié)回路的安全性、可靠性。其次,選擇各節(jié)點控制器和相應(yīng)的CAN適配元件。由于各測控節(jié)點功能相對單一,數(shù)據(jù)量少,因此對CPU的要求大大降低,采用8051系列單片機即可滿足要求。CAN 總線適配器件主要有:控制器接口、總線收發(fā)器和I/O器件。采用Philips公司生產(chǎn)的82C200CAN控制器和與其配套的82C250CAN收發(fā)器。82C200具有完成高性能通信協(xié)議所要求的全部必要特性。具有簡單總線連接的82C200可完成物理層和數(shù)據(jù)鏈路層的所有功能。最后,按照CAN總線物理層協(xié)議選擇總線介質(zhì),設(shè)計布線方案,連接成CAN總線分布式測控網(wǎng)絡(luò)。如圖1所示。3系統(tǒng)的硬件組成[3][4][5](1)CAN總線接口模塊① 微處理器目前廣泛流行的CAN總線器件有兩大類:一類是獨立的CAN控制器,如82C200,SJA1000及Intel 82526/82527等;另一類是帶有芯片CAN的微控制器,如P8XC582及16位微控制器87C196CA/CB等。根據(jù)當前市場、開發(fā)工具和課題的實際需要,系統(tǒng)的智能節(jié)點均選用ATMEL 8位單片機AT89C52為微處理器。② CAN控制器CAN控制器選用SJA1000作為控制器。SJA1000是高集成度CAN控制器。具有多主結(jié)構(gòu)、總線訪問優(yōu)先權(quán)、成組與廣播報文功能及硬件濾波功能。輸入時鐘頻率為16MHh時鐘,輸出可編程控制。由以下幾部分構(gòu)成:接口管理邏輯、發(fā)送緩存器、接收緩存器、位流處理器、位定時邏輯、收發(fā)邏輯、錯誤管理邏輯、控制器接口邏輯等。SJA1000有很多新功能 :標準結(jié)構(gòu)和擴展結(jié)構(gòu)報文的接受和發(fā)送;64字節(jié)的接收FIFO;標準和擴展幀格式都具有單/雙接收濾波器;可進行讀/寫訪問的錯誤計數(shù)器;可編織的錯誤報警限制:最近一次的錯誤代碼寄存器;每一個CAN總線錯誤都可以產(chǎn)生錯誤中斷;具有丟失仲裁定位功能的丟失仲裁中斷;單發(fā)方式(當發(fā)主錯誤或丟失仲裁時不重發(fā));只聽方式(監(jiān)聽CAN總線,無應(yīng)答,無錯誤標志);支持熱插拔(無干擾軟件驅(qū)動位速率監(jiān)測)。因此,系統(tǒng)的智能節(jié)點均選用SJA1000作為CAN控制器。③ CAN總線收發(fā)器CAN總線收發(fā)器選用PCA82C250作為總線收發(fā)器。 PCA82C250是CAN 協(xié)議控制器和物理總線之間的接口。82C250 可以為總線提供不同的發(fā)送性能,為CAN 控制器提供不同的接收性能。而且它與“ISO 11898”標準完全兼容。PCA82C250的目的是為了增大通信距離,提高系統(tǒng)的瞬間抗干擾能力,保護總線,降低射頻干擾(RFI)實現(xiàn)熱防護等。為了進一步提高抗干擾措施,在兩個CAN器件之間使用了由高速隔離器件6N137構(gòu)成的隔離電路。 CAN器件與微處理器的硬件連接如圖2所示。硬件電路的設(shè)計并不太困難,但有幾點應(yīng)引起注意:總線兩端兩個120Ω的電阻,對于匹配總線阻擾,起著相當重要的作用。忽略掉它們,會使數(shù)據(jù)通信的抗干擾性及可靠性大大降低,甚至無法通信。 82C50第8腳與地之間的電阻Rs稱為斜率電阻,它的取值決定了系統(tǒng)處于高速工作方式還是斜率控制方式。把該引腳直接與地相連,系統(tǒng)將處于高速工作方式,在這種方式下,為避免射頻干擾,建議使用屏蔽電纜作總線;而在波特率較低、總線較短時,一般采用斜率控制方式,上升及下降的斜率取決于民的阻值,實驗數(shù)據(jù)表明15~200kΩ為Rs較理想的取值范圍,在該方式下,可以使用平行線或雙絞線作總線。 SJA1000的TX1腳懸空,RX1引腳的電位必須維持在約0.5Vcc上,否則,將不能形成CAN協(xié)議所要求的電平邏輯。如果系統(tǒng)傳輸距離近,環(huán)境干擾小,可以不用電流隔離,這樣可直接把82C250的VREF端(約為0.5 Vcc)與RX1腳相連,從而簡化了電路。 在系統(tǒng)中,SJA1000的片選信號一般由地址總線經(jīng)譯碼獲得,并由此決定出CAN控制器各寄存器的地址。實際應(yīng)用中,采用單片機AT89C52的P2.7為片選信號。所以,SJA1000的地址為:7F00~7F32H。當上電復(fù)位時,AT89C52的上電復(fù)位,需要從低到高的電平變化來激活,而SJA1000的17腳RST被激活,需要出現(xiàn)一個由高電平到低電平的跳變,因此,這必須加一個反相器。(2)數(shù)據(jù)采集模塊數(shù)據(jù)采集模塊用來將各類傳感器的數(shù)據(jù)傳送到CAN總線上。整個電路包括:看門狗X5045,單片機89C52,鎖存器74LS373,A/D轉(zhuǎn)換器ADC0809以及CAN控制器SJA1000和收發(fā)器82C250。電路板如圖3。數(shù)據(jù)采集模塊的工作原理:各類傳感器采集到數(shù)據(jù)后將0—5V的模擬量傳送到ADC0809,0809將轉(zhuǎn)換成的數(shù)字量傳給89C52,最后單片機將采集到的數(shù)據(jù)送到SJA1000通過CAN總線收發(fā)器82C250傳上總線,完成數(shù)據(jù)采集工作。(3)控制模塊是一個帶有CAN通信功能的隔離型控制器。該模塊有一個數(shù)據(jù)輸入點,可以是命令或其他信號,有一個模擬量輸出,供輸出執(zhí)行機構(gòu)是連續(xù)變化的控制系統(tǒng)使用,例如控制步進電機;還有一路是數(shù)字量輸出,供執(zhí)行機構(gòu)是兩位式的控制系統(tǒng)使用,例如開關(guān)設(shè)備。這個控制器可以單獨作為一個調(diào)節(jié)器使用,因為在該模塊上提供了完整的顯示窗口和操作按鈕,可以設(shè)定溫度設(shè)定值、PID調(diào)節(jié)參數(shù)等運行過程中可以顯示被控對象的PV值和SV值。該模塊可以根據(jù)設(shè)定的控制點及升、降的時間實現(xiàn)自動調(diào)節(jié)。帶有CAN通信口,可以與微機實現(xiàn)通信,也就是說控制模塊可以接入CAN 網(wǎng)絡(luò)系統(tǒng)。通過上位機實現(xiàn)對多個節(jié)點上的控制模塊設(shè)定各控制點的上下限控制點、PID值、實現(xiàn)時間等控制參數(shù),并實時記錄各控制器的測量值,描繪出變化曲線,供實驗人員對實驗結(jié)果進行分析。如圖4所示。4系統(tǒng)軟件設(shè)計(1)CAN 總線通訊模塊CAN總線測控系統(tǒng)的通信軟件分為3部分:CAN初始化、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收。① CAN初始化其主要是設(shè)置CAN的通信參數(shù)。需要初始化的寄存器有:模式寄存器(Peli CAN模式)、時分寄存器、接收代碼寄存器、屏蔽寄存器、總線定時寄存器、輸出控制寄存器等。需要注意的是,這些寄存器僅能在復(fù)位期間可寫訪向,因此,在對這些寄存器初始化前,必須確保系統(tǒng)進入了復(fù)位狀態(tài),并且系統(tǒng)中各CAN控制器的總線定時寄存器的初始化字必須相同。② 數(shù)據(jù)發(fā)送現(xiàn)場的各傳感器把環(huán)境多參數(shù)的檢測信號(數(shù)字量、模擬量、開關(guān)量)進行轉(zhuǎn)換處理后,發(fā)向CAN控制器的發(fā)送緩沖區(qū),然后啟動CAN控制器的發(fā)送命令,此時CAN控制器將自動向總線發(fā)送數(shù)據(jù),不再需傳感器的微控制器進行干預(yù)。若系統(tǒng)中有多個傳感CAN控制器同時向總線發(fā)送數(shù)據(jù),則CAN控制器通過信息幀中的標識符來進行仲裁,標識符數(shù)值最小的CAN控制器具有對總線的優(yōu)先使用權(quán)。③ 數(shù)據(jù)接收整個溫室微機測控系統(tǒng)中的CAN控制器檢測到總線上有數(shù)據(jù)時會自動接收總線上的數(shù)據(jù),存入其接收緩沖區(qū),并向89C52微控制器發(fā)送接收中斷,啟動中斷接收服務(wù)程序,89C52通過執(zhí)行中斷接收服務(wù)程序,從CAN控制器的接收緩沖區(qū)讀取數(shù)據(jù),并對其進行進一步處理工作。(2)監(jiān)控模塊集成了所有的數(shù)據(jù)采集、參數(shù)設(shè)定、數(shù)據(jù)統(tǒng)計分析等功能。同時,為了實現(xiàn)操作人員對生產(chǎn)過程的人工干預(yù),如修改給定值、控制參數(shù)和報警限等,添加了參數(shù)的修改功能;為了建立人機信息聯(lián)系,并且能將各節(jié)點傳輸來的數(shù)據(jù)以圖形、圖表或其它動態(tài)方式顯示出來,本系統(tǒng)可以使用任何具有DDE(Dynamic Data Exchange)接口的MMI(Man-Machine interface)軟件;為了更好的管理各種數(shù)據(jù),采取了組態(tài)控制方式,能夠接收來自MMI軟件以及用戶軟件的DDE連接請求,并將該請求傳遞給通信驅(qū)動部分,由通信驅(qū)動轉(zhuǎn)換為通信信號通過傳輸媒體傳遞給智能模塊的固化軟件。并將模塊的應(yīng)答作為DDE操作的結(jié)果返回給MMI軟件及用戶軟件。5 結(jié)論將先進的現(xiàn)場總線技術(shù)(CAN BUS)應(yīng)用于智能測控系統(tǒng),大大提高了系統(tǒng)的可靠性;自主開發(fā)了符合國際標準的基于單片機的智能節(jié)點,不僅大量節(jié)約了資金,而且可以購置通用的同類設(shè)備,可節(jié)約大量的研發(fā)費用;基于工控機的上位機提供了良好的人機界面,使操作更加方便,直觀。


          關(guān)鍵詞: can總線通訊協(xié)

          評論


          技術(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); })();