當前位置:編程學習大全網 - 編程語言 - Can總線通信協議

Can總線通信協議

隨著集成電路和嵌入式計算機在汽車中的廣泛應用,現代汽車中的電子控制器越來越多,如電子燃油噴射裝置、防抱死制動裝置(ABS)、安全氣囊裝置、電動門窗裝置、主動懸架等。電控系統的增加雖然提高了汽車的動力性、經濟性和舒適性,但隨之增加的復雜電路也降低了汽車的可靠性,增加了維修的難度。從布線來看,傳統的電子燃氣系統大多采用單壹的點對點通信方式,相互之間聯系很少,必然導致布線系統龐大。因此,汽車上出現了壹個新概念——CAN(電子控制器局域網)。為了讓不同廠家生產的零件在同壹輛車上和諧工作,必須制定標準。根據ISO標準,CAN的拓撲結構是總線,所以稱為CAN總線。CAN總線設計為汽車環境中的微控制器通信,在車輛上的電子控制裝置ECN之間交換信息,在車輛上的電子控制裝置ECN之間交換信息,形成汽車電子控制網絡。

CAN(控制器局域網(CAN)是壹種多主串行通信總線。基本設計規格要求高比特率、高抗電磁幹擾能力和檢測任何錯誤的能力。CAN在汽車上的應用有很多行業標準或國際標準,如ISO11992、ISO11783和汽車工程師協會的SAE J1939。CAN總線作為汽車的標準設備,已被納入整車設計。

CAN總線簡介

CAN通信協議規定了四種不同的幀格式,即數據幀、遠程幀、錯誤幀和過載幀。通信協調基於以下基本規則:總線訪問、仲裁、編碼/解碼、錯誤標記和過切標記。CAN遵循OSI模型。按照OSI基準模型,只有三層:物理層、數據鏈路層和應用層,但應用層仍然需要用戶自己定義。CAN總線作為壹種有效支持分布式控制或實時控制的串行通信網絡,廣泛應用於高速網絡到低成本多線網絡。比如在汽車發動機控制部件、ABS、防滑系統等應用中,CAN的比特率可以高達1Mbps。同時可以用在交通工具的電氣系統中,價格低廉,如電動車窗、聚光、座椅調節等。,以替換所需的硬件連接。其傳輸介質為雙絞線,最高通信速率可達1Mbps/40m,最遠直接傳輸距離可達10km/5kbps,最大掛鉤器件數可達110。CAN為多主工作模式,通信方式靈活,無需站點地址等節點信息,采用無損總線仲裁技術,滿足實時性要求。另外,CAN采用短幀結構傳輸信號,傳輸時間短,抗幹擾能力強。

CAN總線與其他通信協議的區別主要有兩個:壹是消息傳輸不包含目標地址,是基於全網廣播的。每個接收站根據報文中反映數據性質的標識符對報文進行過濾,具有在線和離線、即插即用、多站接收的特點;另壹方面,特別加強了數據安全性,以滿足控制系統和其他對數據要求較高的系統的需要。

在現代汽車設計中,CAN總線已經成為構建汽車網絡的壹種趨勢。由於汽車網絡直接與汽車內部的ECU相連,負責命令的傳遞、數據的傳輸和* * *的享受,其可靠性和穩定性與整車的性能密切相關。本文設計開發的是基於實驗條件的仿真平臺,節點間的通信通過點對點的CAN通信節點進行。實驗表明,其運行性能穩定可靠,但其實用性仍需進壹步研究和完善,程序的通信處理能力、糾錯能力和容錯能力有待進壹步提高。

例如:

CAN總線集成到嵌入式平臺中,在其ARM-EP9315和ARM-S3C2440嵌入式平臺上實現了CAN總線的功能!ARM嵌入式控制平臺具有開放性、高集成度、體積小、擴展性強、低功耗等特點,非常適合高清多媒體、車載設備、通信終端和網絡設備的應用。現在隨著CAN總線的實現,其在該領域的應用更加有效!

基於AT89C52單片機的CAN總線分布式測控系統的開發

1 CAN總線網絡的技術特點[1][2]

采用通信數據分組編碼,可實現多主工作模式,靈活的數據收發方式,可實現點對點、點對多點、全球廣播等多種傳輸方式。DCS結構中主機的例行測試和控制功能可以分散到各個智能節點,節點控制器將采集到的數據通過CAN適配器發送到總線,或者從總線上申請數據,這樣主機就可以從原來繁重的底層設備監控任務中解脫出來,進行更高級別的控制和管理功能,如故障診斷、優化和協調等。

采用非破壞性的基於優先級的總線仲裁技術,具有區分暫時性錯誤和永久性故障節點並自動分離故障節點的功能,使系統中其他節點的通信不受影響;同時,CAN具有高可靠性的錯誤幀自動重傳功能。

信號傳輸幀結構短(8字節),實時性好;

節點可以在不關閉總線的情況下隨意附著或脫離,增強了系統的靈活性和可擴展性;

采用統壹的標準和規範,使所有設備具有良好的互操作性和互換性,系統具有良好的通用性;

通信介質可以是雙絞線,沒有特殊要求;現場布線和安裝簡單、易於維護且經濟實惠。

總之,CAN總線具有實時性強、可靠性高、結構簡單、互操作性好、價格低廉等優點,克服了傳統工業總線的缺陷,是構建分布式測控系統的有效解決方案。

2系統總體硬件設計方案

首先定義各節點的功能,確定各節點檢測或控制的量的數量、類型和信號特征。這是微機測控系統聯網的第壹步。原則是盡可能避免重復測試。智能節點模塊多為輸入輸出模塊,調節回路可以跨模塊形成回路。但考慮到調節回路的安全性,為了保證主機或整個通信線路出現重大故障時回路調節不受影響,設計了隔離、自整定PID、隔離溫度調節器等具有調節功能的模塊。它們的輸入輸出通道都在同壹個模塊中,其底層軟件的功能非常強大。所有的輸入處理、輸出增量的計算(可通過組態選擇多種調節算法,包括串級調節)和輸出,包括自校正模塊過程參數的自動識別,都在該模塊中實現,保證了調節回路的安全可靠。

其次,選擇每個節點控制器和相應的CAN適配器。由於各測控節點功能相對單壹,數據量小,對CPU的要求大大降低,8051系列單片機即可滿足要求。CAN總線適配器主要包括:控制器接口、總線收發器和I/O設備。采用飛利浦公司生產的82C200CAN控制器及其配套的82C250CAN收發器。82C200具有完成高性能通信協議所需的所有必要特性。82C200通過簡單的總線連接可以完成物理層和數據鏈路層的所有功能。

最後,根據CAN總線物理層協議,選擇總線介質,設計布線方案,連接CAN總線分布式測控網絡。如圖1所示。

3系統的硬件組成[3][4][5]

(1)CAN總線接口模塊

①微處理器

目前廣泛流行的CAN總線設備有兩種:壹種是獨立的CAN控制器,如82C200、SJA1000、Intel 82526/82527;另壹種是帶芯片CAN的微控制器,如P8XC582和16位微控制器87C196CA/CB。根據當前市場的實際需求、開發工具和課題,系統的智能節點均選擇ATMEL 8位微控制器AT89C52作為微處理器。

② CAN控制器

CAN控制器選擇SJA1000作為控制器。SJA1000是壹款高度集成的CAN控制器。它具有多主結構、總線訪問優先權、分組和廣播消息功能以及硬件過濾功能。輸入時鐘頻率為16MHh時鐘,輸出可編程。它由以下幾個部分組成:接口管理邏輯、發送緩沖區、接收緩沖區、比特流處理器、位定時邏輯、收發器邏輯、錯誤管理邏輯、控制器接口邏輯等。

SJA1000有很多新功能:收發標準結構和擴展結構消息;64字節接收FIFO;標準和擴展幀格式都有單/雙接收濾波器;具有讀/寫權限的錯誤計數器;錯誤報警上限:最新的錯誤代碼寄存器;每個CAN總線錯誤都會產生壹個錯誤中斷;具有丟失仲裁定位功能的丟失仲裁中斷;單引擎模式(仲裁丟失或出錯時不重新傳輸);只聽模式(監控CAN總線,無響應,無錯誤標誌);支持熱插拔(無幹擾軟件驅動比特率監控)。因此,系統的智能節點都選擇SJA1000作為CAN控制器。

③ CAN總線收發器

CAN總線收發器選用PCA82C250。PCA82C250是CAN協議控制器和物理總線之間的接口。82C250可以為總線提供不同的發送性能,為CAN控制器提供不同的接收性能。並且完全兼容“ISO 11898”標準。PCA82C250的作用是增加通信距離,提高系統的瞬時抗幹擾能力,保護總線,降低射頻幹擾(RFI),實現熱保護。為了進壹步提高抗幹擾措施,在兩個CAN設備之間使用了由高速隔離器件6N137組成的隔離電路。CAN設備和微處理器之間的硬件連接如圖2所示。

硬件電路的設計並不太難,但有幾點需要註意:

總線兩端120ω的兩個電阻在匹配總線幹擾方面起著非常重要的作用。忽略它們會大大降低數據通信的抗幹擾性和可靠性,甚至無法通信。

82C50的8腳與地之間的電阻Rs稱為斜坡電阻,其值決定了系統是處於高速工作模式還是斜坡控制模式。將此引腳直接接地,系統將處於高速工作模式。在這種模式下,為了避免射頻幹擾,建議使用屏蔽電纜作為總線。但在波特率較低,總線較短的情況下,壹般采用斜坡控制方式,上升和下降的斜坡取決於人民的阻力。實驗數據表明,15 ~ 200 kω是Rs的理想範圍,在這種模式下,可以使用平行線或雙絞線作為總線。

SJA1000的TX1引腳懸空,RX1引腳的電位必須維持在0.5Vcc左右,否則無法形成CAN協議要求的電平邏輯。如果系統傳輸距離短,環境幹擾小,則不需要電流隔離,使82C250的VREF端(約0.5 Vcc)可以直接與RX1引腳相連,簡化了電路。

在系統中,SJA1000的片選信號壹般是通過解碼地址總線得到的,並據此確定CAN控制器的寄存器地址。在實際應用中,采用AT89C52的P2.7作為片選信號。所以SJA1000的地址是7F00~7F32H。

上電復位時,AT89C52的上電復位需要由低到高的電平變化才能激活,而SJA1000的1000引腳的RST激活,需要由高電平跳變到低電平。因此,必須添加壹個逆變器。

(2)數據采集模塊

數據采集模塊用於將各種傳感器的數據傳輸到CAN總線。整個電路包括:看門狗X5045、微控制器89C52、鎖存器74LS373、A/D轉換器ADC0809、CAN控制器SJA1000和收發器82C250。電路板如圖3所示。

數據采集模塊的工作原理:各種傳感器采集數據後,將0-5v的模擬量傳輸給ADC0809,ADC 0809將轉換後的數字量傳輸給89C52。最後單片機將采集到的數據發送到SJA1000,通過CAN總線收發器82C250傳輸到總線上,完成數據采集。

(3)控制模塊

它是壹個具有CAN通信功能的隔離控制器。該模塊具有數據輸入點和模擬輸出,數據輸入點可以是命令或其他信號,模擬輸出由輸出致動器連續變化的控制系統使用,例如控制步進電機;還有壹個數字輸出,用於帶雙位執行器的控制系統,如開關設備。這個控制器可以單獨作為調節器使用,因為模塊提供了完整的顯示窗口和操作按鈕,可以設置溫度設定值、PID調節參數等,可以顯示運行時被控對象的PV值和SV值。該模塊可以根據設定的控制點和上升下降時間實現自動調節。有了CAN通訊口,就可以和微機通訊,也就是說控制模塊可以接入CAN網絡系統。通過上位機為多個節點上的控制模塊設置上下控制點、各控制點的PID值、執行時間等控制參數,並實時記錄各控制器的測量值,繪制變化曲線供實驗人員分析實驗結果。如圖4所示。

4系統軟件設計

(1)CAN總線通信模塊

CAN總線測控系統的通信軟件分為三部分:CAN初始化、數據發送和數據接收。

① CAN初始化

它主要設置CAN的通信參數。需要初始化的寄存器包括:模式寄存器(Peli CAN模式)、時分寄存器、接收碼寄存器、屏蔽寄存器、總線時序寄存器、輸出控制寄存器等。需要註意的是,這些寄存器只能在復位期間被訪問,所以在初始化這些寄存器之前,需要確保系統已經進入復位狀態,並且系統中所有CAN控制器的總線時序寄存器的初始化字必須相同。

②數據傳輸

現場的傳感器將環境多參數檢測信號(數字量、模擬量、開關量)轉換後發送到CAN控制器的發送緩沖區,然後啟動CAN控制器的發送命令。此時,CAN控制器將自動向總線發送數據,而無需傳感器的微控制器的幹預。如果系統中多個傳感器CAN控制器同時向總線發送數據,則CAN控制器通過信息幀中的標識符進行仲裁,標識符值最小的CAN控制器擁有使用總線的優先權。

③數據接收

整個溫室微機測控系統中的CAN控制器檢測到總線上有數據時,會自動接收總線上的數據並存儲在其接收緩沖區中,並向89C52單片機發送接收中斷,啟動中斷接收服務程序。通過執行中斷接收服務程序,89C52從CAN控制器的接收緩沖器中讀取數據並進壹步處理。

(2)監控模塊

它集數據采集、參數設置和數據統計分析於壹體。同時,為了實現操作人員在生產過程中的手動幹預,如修改給定值、控制參數、報警限等,增加了參數修改功能;為了建立人機信息聯系,以圖形、圖表或其他動態方式顯示各節點傳輸的數據,本系統可以使用任何具有DDE(動態數據交換)接口的MMI(人機界面)軟件;為了更好地管理各種數據,采用了組態控制方式,可以接收來自MMI軟件和用戶軟件的DDE連接請求,並將請求傳送給通信驅動程序,通信驅動程序將其轉換成通信信號,通過傳輸介質傳送給智能模塊的固化軟件。模塊的響應作為DDE操作的結果返回給MMI軟件和用戶軟件。

5結論

將先進的現場總線技術(CAN總線)應用到智能測控系統中,大大提高了系統的可靠性。自主開發符合國際標準的基於單片機的智能節點,不僅可以節省大量資金,還可以采購常見的同類設備,可以節省大量研發費用;基於工控機的上位機提供了良好的人機界面,使操作更加方便直觀。

  • 上一篇:初中畢業學編程難嗎?
  • 下一篇:湖南大學軟件學院是本科還是專科?
  • copyright 2024編程學習大全網