在嵌入式網關中CAN總線有什麼應用?

2020-12-08 電子發燒友

在嵌入式網關中CAN總線有什麼應用?

工程師黃明星 發表於 2018-08-24 16:19:10

隨著網絡技術和微處理器技術的發展,網絡和信息家電已越來越多地出現在人們的生活之中,這一切使得家電總線網絡的趨勢已不可逆轉。而為了使這一趨勢得以實現,連接Internet網絡的嵌入式網關是其關鍵。

從現實來看,乙太網擴展了現有的系統,但是現場總線不可能完全被工業乙太網替代,後者的潛力巨大,其應用領域一定會不斷擴大。所以,將現場總線與乙太網結合,從而實現底層生產與上層管理的緊密集成,已經成為一種趨勢。CAN總線作為國際上應用最廣泛的現場總線之一,在我國也得到了很廣泛的應用,該設計以 CAN總線作為工業現場總線,實現其與乙太網的互聯。

乙太網(Ethernet)指的是由最早由Xerox(施樂)公司創建,在1980年,DEC、lntel和Xerox三家公司聯合開發成為一個標準。乙太網是應用最為廣泛的區域網,包括標準的乙太網(10Mbit/s)、快速乙太網(100Mbit/s)和10G(10Gbit/s)乙太網,採用的是CSMA/CD訪問控制法,它們都符合IEEE802.3.是當今現有區域網採用的最通用的通信協議標準。乙太網絡使用CSMA/CD(載波監聽多路訪問及衝突檢測)技術,並以10M/S的速率運行在多種類型的電纜上。乙太網與IEEE802·3系列標準相類似。

1 硬體結構

CAN是控制器區域網路(ControllerAreaNetwork,CAN)的簡稱,是由研發和生產汽車電子產品著稱的德國BOSCH公司開發了的,並最終成為國際標準(ISO118?8)。是國際上應用最廣泛的現場總線之一。在北美和西歐,CAN總線協議已經成為汽車計算機控制系統和嵌入式工業控制區域網的標準總線,並且擁有以CAN為底層協議專為大型貨車和重工機械車輛設計的J1939協議。近年來,其所具有的高可靠性和良好的錯誤檢測能力受到重視,被廣泛應用於汽車計算機控制系統和環境溫度惡劣、電磁輻射強和振動大的工業環境

目前,對於CAN和乙太網相連的嵌入式網關設計主要有兩種方法:一種是低檔MCU加接口晶片的設計方法,另一種是高檔MCU加EOS(實時多任務作業系統)再加接口晶片的設計方法。因CAN只採用了ISO/OSI參考模型的一、二層,協議相對簡單,比較適合用於低成本、速率要求不高的離散控制系統。從合理的成本和有效利用處理能力這兩方面考慮,該設計採用低檔MCU加接口晶片的方法,其硬體框圖見圖 1.

1.1 主控晶片及乙太網接口模塊

根據要求,該系統選擇了性能價格比較高的Atmel公司生產的AT89C55單片機。它是面向測控對象和嵌入式應用的,所以它的體系結構以及CPU、指令系統、外圍單元電路都是按照這種要求專門設計的。它內部帶高達20 KB的FLASH程序存儲器,AT89C55完全兼容8051指令集,片上FLASH方便了使用者進行在線編程,工作速率最高可達33 MHz,256 B的內部RAM,32個可編程的I/O口,3個16位的定時/計數器,8個中斷源,支持低功耗的空閒工作模式。乙太網接口選用的是RTL8019AS晶片,它是由Realtek公司生產的一種高度集成的乙太網控制器,能實現乙太網媒介訪問層(MAC)和物理層(PHY)的全部功能。RTL8019AS內部有兩個RAM區域:一是16 KB,地址為0x4000~0x7fff,要接收和發送數據包必須通過DMA讀寫RTL8019AS內部的16 KB的RAM,它實際上是雙埠RAM,即有兩條總線與其連接,一條總線用於RTL8019AS讀/寫或寫/讀該RAM,即本地DMA;另一條總線用於單片機讀或寫該RAM,即遠程DMA;二是32個字節,地址為0x0000~0x001F,用於存儲乙太網物理地址。主控晶片和乙太網接口晶片的硬體接口原理圖見圖2.值得注意的是由於乙太網的包最大可以超過1 500個字節,AT89C55的片內RAM只有256個字節,因此無法存儲這麼大的包,所以這裡擴展了一個32 KB的外部RAM,這樣同時也能提高單片機的數據傳輸速度。

RAM(隨機存取存儲器)RAM-randomaccessmemory隨機存儲器。存儲單元的內容可按需隨意取出或存入,且存取的速度與存儲單元的位置無關的存儲器。這種存儲器在斷電時將丟失其存儲內容,故主要用於存儲短時間使用的程序。按照存儲信息的不同,隨機存儲器又分為靜態隨機存儲器(StaticRAM,SRAM)和動態隨機存儲器(DynamicRAM,DRAM)。

1.2 CAN接口模塊

組成CAN系統的主要器件是CAN控制器和收發器。該設計中,CAN接口模塊選用SJA1000晶片和PCA82C250晶片。SJA1000是一個獨立的CAN控制器,它是Philips公司另一個CAN控制器PCA82C200的替代產品,且增加了一種新的工作模式(Peli CAN),這種模式支持CAN 2.0B協議。SJA1000主要完成CAN的通信協議,實現報文的裝配和拆分、接收信息的過濾和校驗等。

PCA82C250是CAN控制器與物理總線之間的接口,主要用於增強系統的驅動能力。採用收發器的系統中,節點數至少可以達到110個,同時還具有降低射頻幹擾(RFI)和很強的抗電磁幹擾 (EMI)能力。在處理這部分電路時,有幾個地方要特別注意:

(1)晶振電路的問題。89C55和SJA1000都應該有各自獨立的晶振電路,不能夠用SJA1000的時鐘輸出信號CLKOUT來驅動單片機。

(2)復位引腳的問題。雖然SJA1000的復位是低電平,但不能通過一個非門直接連接單片機的復位引腳。一般對解決復位引腳問題有兩種方式:第一種是使用單片機的I/O引腳控制SJA的復位引腳,其好處是單片機可以完全控制SJA的復位過程;第二種是採用適當的復位晶片,為了降低成本,該設計採取的是第一種方法。

(3)RX1引腳的電位必須維持在約0.5 VCC上,否則將不能形成CAN協議所要求的邏輯電平。

(4)一定要注意電纜的終端阻抗匹配,它直接影響CAN總線是否能正常工作和網絡性能。CAN接口模塊的硬體電路圖見圖3,在PCA82C250的RS腳上接有一個斜率電阻R,可根據總線通信速度適當調整電阻的大小。

2 通信模塊軟體設計

2.1 SJA1000驅動程序的實現

SJA1000是一種獨立的CAN控制器,主要用於移動目標和一般工業環境中的區域網絡控制。它是Philips半導體公司PCA82C200CAN控制器(BasicCAN)的替代產品,而且它增加了一種新的操作模式--PeliCAN,這種模式支持具有很多新特性的CAN2.0B協議。

SJA1000驅動程序是由SJA的初始化函數、發送函數、接收函數組成的,圖4所示為其流程圖。

(1)SJA1000的初始化。SJA1000在系統上電、硬體復位或主控制器發出復位命令後需要進行初始化,以設定它的工作模式、通信速率、輸出控制方式和標識符屏蔽格式等重要參數。CAN控制器SJA1000的初始化只能在復位模式下才能完成。程序的流程圖如圖4所示。

首先程序檢測CAN接口是否正常工作,即向SJA1000的測試寄存器寫入並讀出,校驗其結果是否一致,如果結果一致則進入復位模式進行初始化設置。在初始化的過程中,如果對某個寄存器的設置超過規定的時間還未完成,則認為初始化失敗,初始化程序自動發送錯誤信號。

(2)數據的發送與接收。SJA1000晶片有一個報文發送緩衝區和兩個報文接收緩衝區,用於CAN報文傳送。數據從CAN控制器SJA1000發送到 CAN總線首先是由CAN控制器自動完成的,發送數據程序把數據存儲區中待發送的數據取出,組成信息幀,並將主機的ID地址填人幀頭;然後將信息幀發送到 CAN控制器的發送緩衝區;最後啟動發送命令即可。信息從CAN總線到CAN接收緩衝區也是由CAN控制器自動完成的。接收程序只需從接收緩衝區讀取要接收的信息,並將其存儲在數據存儲區即可。

2.2 RTL8019AS驅動程序的實現

RTL8019AS乙太網控制器是由Realtek公司出的一款高集成度的乙太網控制晶片,具有8/16位總線模式,集成了IEEE802.3協議標準的介質訪問控制子層(MAC)和物理層的性能,與NE2000相兼容,支持乙太網全雙工通信方式,支持UTP,AUI和BNC自動檢測,支持16條I/O基本地址選項和額外I/O地址輸入輸出完全解碼方式,支持存儲器瞬時讀寫,收發可同時達到10Mbps的速率,內置16KB的SRAM,可以方便的與微處理器進行連接

RTL8019AS的驅動程序和SJA的驅動程序一樣,有3種功能:晶片初始化、收包、發包。

(1)RTL8019AS的初始化。RTL8019AS的初始化過程比較複雜,但十分重要,它決定了通信過程中的一些重要參數。如設置相關工作模式的寄存器,分配和初始化接收及發送緩衝區,初始化網卡接收地址等,其流程圖見圖5所示。

(2)數據的發送與接收。因為在RTL8019AS的初始化程序中已經完成了乙太網的物理地址設置,並指定了發送緩衝區起始頁面地址寄存器TPSR.此外,RTL8019AS的CRC校驗自動生成器也被使能,所以RTL8019AS的數據包發送程序相對要簡單。在數據包的發送過程中,AT89C55隻要通過遠程DMA將待發送的數據包寫至RTL8019AS片內SRAM的發送緩衝區,並啟動發送過程即可。

在接收數據包時,有查詢和中斷兩種方式,鑑於AT89C55的處理能力有限,在該設計中採用查詢方式,根據判斷CURB==BNRY+1,可以判斷是否收到新的數據包,如果有則通過DMA讀操作從網卡晶片RAM讀出數據。

2.3 網關協議轉換流程

嵌入式網絡接口實現兩種網絡的互連。當乙太網應用層有數據要發送到CAN節點時,首先將數據發送到網關,由乙太網控制器協議轉換模塊解析完整的CAN協議數據包,通過CAN控制器發送到CAN總線。反之,當CAN設備有數據要發送到用戶層時,首先將數據發送到透明網關,由CAN控制器協議模塊將完整的CAN協議數據包存放在緩衝區,再通知主控晶片,由它調用乙太網控制協議轉換模塊,將完整的 CAN協議數據包作為應用層數據封裝起來,再發送到乙太網的應用層。

3 結 語

這裡介紹的是一種低成本、高可靠性、快捷的CAN乙太網網關的硬體、軟體設計方案,通過實際應用證明,該設計可以作為CAN總線節點的一個模塊,能夠與儀器儀表等設備相結合,使其具有網絡通信的能力,比較同類產品的設計,該設計能大大提高其性價比。

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • CAN總線—PROFIBUS-DP總線網關的實現方法
    1  引言 在80年代中期,為了滿足不同自動化領域的應用需求,出現了擁有不同技術特點的現場總線。每一種現場總線都有自己的應用領域,並且都力圖拓展其應用領域,以擴張其技術壟斷範圍。本文主要研究PROFIBUS-DP[2]與CAN[3]兩種總線的協議轉換的原理,並設計出了一種網關實現了這兩種總線的互聯。2  方案設計對於兩個異構的現場總線,其數據鏈路層和應用層協議是截然不同的,要實現它們的互聯,需要採用網關進行協議轉換。
  • 嵌入式Win CE中CAN總線控制器的驅動設計與實現
    計算機、通信(3C)一體化趨勢日趨明顯,嵌入式系統再度成為研究和應用的熱點。嵌入式作業系統(Real-time Embedded OperatingSystem,RTOS或EOS)作為一種實時的、支持嵌入式系統應用的作業系統軟體,成為嵌入式系統(包括硬、軟體系統)極為重要的組成部分,通常包括與硬體相關的底層驅動軟體、系統內核、設備驅動接口、通信協議、圖形界面、標準化瀏覽器Browser等。
  • 現代汽車核心技術-CAN總線應用層協議標準SAE J1939
    CAN協議中每一幀的數據量都不超過8個字節,以短幀多發的方式實現數據的高實時性;CAN總線的糾錯能力非常強,從而提高數據的準確性;同時CAN總線的速率可達到1M bit/s,是一個真正的高速網絡。總之,將CAN總線應用在汽車中使用有很多優點:(1)用低成本的雙絞線電纜代替了車身內昂貴的導線,並大幅度減少了用線數量;提高可靠性,安全性、降低成本。
  • 基於嵌入式WinCE的CAN總線控制器驅動設計
    0 引 言本文引用地址:http://www.eepw.com.cn/article/262874.htm  近年來,由於消費電子、計算機、通信(3c)一體化趨勢日趨明顯,嵌入式系統再度成為研究和應用的熱點。
  • 現場總線系統有什麼特點?在低壓配電自動化系統中現場總線技術有...
    現場總線系統有什麼特點?在低壓配電自動化系統中現場總線技術有什麼應用? 工程師黃明星 發表於 2018-07-27 10:45:00 1.
  • 整車CAN網絡介紹
    在了解can網絡之前, 先了解1個問題:什麼是智能硬體與ECU?本文引用地址:http://www.eepw.com.cn/article/202002/409594.htm何為智能硬體,就是包含智能控制單元的硬體。比如發動機,發動機上有一塊兒專門負責控制發動機進氣量、噴油量、排氣量的控制單元,這塊單元相當於發動機的大腦。
  • 編碼器的CAN總線接口及其在光電跟蹤系統中的應用
    在靶場設備、數字經緯儀、雷達及一些大型軍用設備等數位化測量跟蹤和定位系統中得到廣泛應用。在這些實際應用的控制系統中由於各分系統傳感器和探測器輸出的數據結構不同,絕對式光電軸角編碼器會用到不同的內部數據通信方式,主要有RS232、RS485/488串口,並口等。
  • I2C總線驅動在嵌入式系統中的兩種實現
    結構緊湊,因此其構成系統的成本較低;並且在總線上增加器件不會影響系統的正常工作,所有的I。C器件共用一套總線,因此其系統修改和可擴展性好。即使有不同時鐘速度的器件連接到總線上,時間同步機制也能夠很方便地確定總線時鐘,因此在嵌入式系統中得到了廣泛的應用。
  • 嵌入式中常用的總線與接口有哪一些
    嵌入式中常用的總線與接口有哪一些 中國電子網 發表於 2019-09-27 16:28:38 任何一個微處理器都要與一定數量的部件和外圍設備連接,但如果將各部件和每一種外圍設備都分別用一組線路與
  • CAN總線協議概述
    在北美和西歐,CAN總線協議已經成為汽車計算機控制系統和嵌入式工業控制區域網的標準總線,並且擁有以CAN為底層協議專為大型貨車和重工機械車輛設計的J1939協議。​CAN總線以報文為單位進行數據傳送,報文的優先級結合在11位標識符中,具有最低二進位數的標識符有最高的優先級。這種優先級一旦在系統設計時被確立後就不能再被更改。總線讀取中的衝突可通過位仲裁解決。如圖2所示,當幾個站同時發送報文時,站1的報文標識符為011111;站2的報文標識符為0100110;站3的報文標識符為0100111。
  • 一文看懂CAN總線原理、特點及應用
    CAN與I2C總線的許多細節很類似,但也有一些明顯的區別。  當CAN總線上的一個節點(站)發送數據時,它以報文形式廣播給網絡中所有節點。對每個節點來說,無論數據是否是發給自己的,都對其進行接收。每組報文開頭的11位字符為標識符,定義了報文的優先級,這種報文格式稱為面向內容的編址方案。在同一系統中標識符是唯一的,不可能有兩個站發送具有相同標識符的報文。
  • PROFIBUS-DP/MODBUS的網關結構設計
    引 言 作為我國第一個工業通信領域現場總線技術國家標準的PROFIBUS現場總線,其應用範圍已經相當廣泛,佔有很大的市場份額。在PROFIBUS家族中,PROFIBUS-DP總線的應用最為廣泛。 國內的一些廠商都在開發並相繼推出自己的現場總線系列產品。
  • 基於CAN總線的運動控制系統設計
    這裡採用μCLinux作為嵌入式作業系統。μCLinux(microcontrol linux)即「微控制器領域中的Linux系統」,主要是針對目標處理器沒有存儲管理單元(MMU)的嵌入式系統而設計的。它保留了Linux的大多數優點:穩定、良好的移植性、優秀的網絡功能、對各種文件系統完備的支持和標準豐富的API.同時μCLinux包含大量的設備驅動程序,以及提供良好的驅動程序開發框架。
  • 基於CAN總線的分布式熱電阻智能節點的設計
    3.2 節點與上位機的can通信智能節點與主控卡或上位機的通信主要基於can通信協議來完成,它的優點是能夠實時處理數據、在惡劣環境下正常工作、成本低且擁有比較高的帶寬。由於上位機內部無can網絡適配器,因此需外接rs-232/can轉接卡,實現上位機與智能節點的通信。
  • MODBUS轉PROFIBUS網關在捲菸廠的應用
    目前,國內很多捲菸廠的技術改造中使用PROFINET和PROFIBUS技術,該技術有力的保證了系統高效和可靠運行。在鄭州捲菸廠的技術改造工程中,約克空調系統全部採用智能化控制,由中央監控室對所有約克空調設備(包括冷水機組、水泵、冷卻塔、空調機組等)進行遠程集中監控,可隨時掌握各車間溫、溼度變化以及設備運行狀況。各設備均配置能耗動態監測儀表,可對不同設備的瞬時能耗和累計能耗進行記錄和分析車間的空調系統採用全年多工況分區節能控制,實現空調系統節能運行。
  • PROFIBUS轉MODBUS網關在煙廠的應用
    約克空調機組系統目前採用的是MODBUS通訊,在很多情況下需要將空調機組系統接入到西門子S7300的PROFIBUS系統中,應用微硬創新的MODBUS轉
  • CAN總線的特點、幀類型以及應用中的注意事項
    1980年,Bosch的工程師開始研究汽車上高速串行通信的問題,並在1986年發布了CAN(Controller Area Network)總線。CAN以其多主,高速(最高1Mbps),抗幹擾的特性被廣泛應用汽車及各種工業環境。在此我們主要介紹一下CAN總線的特點,幀類型,以及應用中的注意事項。
  • MODBUS轉PROFIBUS網關應用於廣東某鋼廠
    在廣東某鋼廠的原料稱重系統中,應用了西門子S7400的PLC。整個系統選擇了工業乙太網和PROFIBUS現場總線相結合的通訊方式。此系統將乙太網的實時性和現場總線的通用性、可靠性展現的淋漓盡致。在現場一層的皮帶秤,採用了徐州某公司的皮帶秤系統。
  • RS485轉profibus-DP網關應用案例
    PM-160T應用案例:將用戶自定義協議的RS232設備接入西門子PLC控制系統  現場應用:PM-160T(RS232/RS485
  • 嵌入式PROFIBUS現場總線通信接口設計
    ,要求系統技術向現場總線技術 發展,同時也要求現場設備向智能化、網絡化方向發展。 4.2如何使用「用戶參數user—prm」 4.2.1「用戶參數user—prm」的選擇 對於工業現場設備,常需要用戶根據現場應用設定一些參數,其中有些參數不需要在設備運 行中實時改變,如變頻器的電流上限保護與報警值、溫度傳感器的測量溫度範圍、熱電偶選 型、輸出4~20 mA/1~5 V選擇等。