CAN總線—PROFIBUS-DP總線網關的實現方法

2020-11-22 電子產品世界

1  引言

在80年代中期,為了滿足不同自動化領域的應用需求,出現了擁有不同技術特點的現場總線。每一種現場總線都有自己的應用領域,並且都力圖拓展其應用領域,以擴張其技術壟斷範圍。但每種現場總線都以一個或幾個大型跨國公司為背景,公司的利益與總線的發展息息相關。這些公司競爭的結果是多種總線協調共存。據不完全統計,目前國際上有200多種現場總線,而其中佔據市場主流的現場總線有十幾種[1]。現場總線的多樣性,為總線設備用戶提供了更多產品選擇的同時,也為總線用戶帶了總線設備間兼容性問題。工廠在擴建,改建等過程中很可能會選用與原先現場設備總線標準不同的產品,這些設備由於使用不同的現場總線,彼此間不能實現數據共享,於是就降低了設備間功能互補的優點。因此針對多種總線共存的客觀事實,探討如何解決不同現場總線系統的互聯有著重要的現實意義。本文主要研究PROFIBUS-DP[2]與CAN[3]兩種總線的協議轉換的原理,並設計出了一種網關實現了這兩種總線的互聯。

2  方案設計

對於兩個異構的現場總線,其數據鏈路層和應用層協議是截然不同的,要實現它們的互聯,需要採用網關進行協議轉換。協議轉換在網關內是按分層逐次進行的。網關將現場總線設備1發送來的數據在不同的協議層次進行解包,最終得到報文中的用戶數據。然後再按照現場總線協議2逐層打包,然後發送到現場總線2中的設備。

網關(gateway)是用於實現數據鏈路層以上層的網絡互聯設備,它相當於一個協議轉換器,可以是雙向的,也可以是單向的,用來連接不同協議的網絡。它不像網橋一樣要求數據鏈路層和應用層的協議完全一致。

通常見到的現場總線網關是單CPU結構的,在這種結構裡,CPU要完成兩種總線信息的傳輸與控制,同時還要完成兩種總線協議的轉換工作,該方案CPU負擔較重,控制複雜,軟體採用多重嵌套。這裡提出了一種基於雙CPU結構的網關設計方法,系統中的兩個CPU對兩種總線協議的數據各自進行處理與控制,並將需要傳遞的信息放在雙口RAM內,實現信息共享與傳遞,這種方案容易控制,軟體簡單,同時減輕了CPU的負擔,增強了可靠性。

 3  系統的硬體設計

系統的硬體根據功能可分為三大部分,一是CAN總線接口電路,完成CAN總線的數據收發與控制;二是PROFIBUS-DP總線接口電路,完成PROFIBUS總線數據的收發與控制;三是雙口RAM接口電路,用來完成兩種總線數據的交換。

 3.1  CAN總線接口硬體結構

CAN總線接口的整體硬體結構如圖1。電路主要由四部分所構成,微控制器89C52(1),獨立CAN通信控制器SJA1000,CAN總線收發器82C250和高速光電耦合器6N137。

   

89C52(1)負責SJA1000 的初始化,通過控制SJA1000 實現數據的接收和發送等通信任務,同時還負責與PROFIBUS總線接口側的的數據交換,選擇89C52(1)作為CPU的主要是因為它不僅與CAN控制晶片SJA1000兼容,而且內部集成8k flash RAM,可以滿足系統的存儲要求,不需要再外擴程序存儲器。

SJA1000為CAN總線控制器。它是一種獨立CAN 控制器,是PHILIPS公司的CA82C200 CAN控制器的替代產品,它在軟體和引腳上都保持了與PCA82C200的兼容。它具有BasicCAN和PeliCAN兩種工作方式,其中 BasicCAN是與PCA82C200兼容的方式;PeliCAN是擴展特性方式,支持具有很多新特性的CAN 2.0B協議。SJA1000的主要新功能有:標準結構和擴展結構報文的接收和發送;64 字節的接收FIFO;標準和擴展幀格式都具有單/雙接收濾波器含接收屏蔽和接收碼寄存器;可進行讀/寫訪問的錯誤計數器;可編程的錯誤報警限制;最近一次的錯誤代碼寄存器;每一個CAN 總線錯誤都可以產生錯誤中斷;具有丟失仲裁定位功能的丟失仲裁中斷;單發方式當發生錯誤或丟失仲裁時不重發;只聽方式監聽CAN 總線無應答無錯誤標誌;支持熱插拔無幹擾軟體驅動位速率檢測;硬體禁止CLKOUT輸出。

SJA1000的AD0-AD7連接到89C52(1)的P0口,CS 連接到89C52(1)的P2.7, P2.7為0的CPU片外存貯器地址可選中SJA1000,CPU通過這些地址可對SJA1000執行相應的讀寫操作SJA1000的RD,WR,ALE 分別與89C52的對應引腳相連。

為了增強CAN總線節點的抗幹擾能力,SJA1000的TX0和RX0並不是直接與82C250的TXD和RXD相連,而是通過高速光耦6N137後與82C250相連,這樣就很好的實現了總線上各CAN節點間的電氣隔離

,其中光耦部分電路所採用的兩個電源VCC和VDD完全隔離。另外82C 250與 CAN總線的接口部分也採用了一定的安全和抗幹擾措施。82C250的CANH和CANL引腳各自通過一個5Ω的電阻與CAN總線相連電阻可起到一定的限流作用,保護82C250免受過流的衝擊。CANH和CANL與地之間並聯了2個30P的小電容,可以起到濾除總線上的高頻幹擾和一定的防電磁輻射的能力,另外在兩根CAN總線接入端與地之間分別反接了一個保護二極體,當CAN總線有較高的負電壓時通過二極體的短路可起到一定的過壓保護作用, 82C250的Rs腳上接有一個斜率電阻。

3.2  PROFIBUS-DP總線接口電路

PROFIBUS-DP總線接口的硬體電路也由四部分所構成,微控制器89C52(2),PROFIBUS-DP通信控制器協議晶片SPC3,光耦 HCPL7101和6N137,RS485總線驅動電路。圖2為PROFIBUS-DP通信控制器到RS485總線驅動器的硬體電路圖。

89C52(2)主要負責控制SPC3,實現PROFIBUS-DP總線數據的轉換與共享。

SPC3已集成了PROFIBUS-DP物理層的數據收發功能,可獨立處理PROFIBUS DP協議,另外SPC3內部還集成有1.5k的雙口RAM,作為SPC3與用戶程序之間的接口,並且AT89C52(2)可對SPC3內部RAM訪問。

儘管SPC3已經集成了物理層的數據傳輸功能,但它不具備RS-485的驅動接口,因此添加了RS-485的驅動電路。
  
   

另外為了避免總線上的信號對電路的影響,在SPC3與RS485總線驅動電路之間採用光電隔離。TxD、RxD信號的隔離器件選用Hewlett Packard公司的12M高速光耦HCPL710,RTS信號的隔離器件選用了6N137。

3.3  雙口RAM的接口電路

兩種總線數據的共享與傳遞是通過雙口RAM實現的,系統裡選用了器件IDT7130。它是高速的1K雙口靜態RAM。該器件提供兩個獨立的埠,分別有獨立的控制、地址和I/O引腳,並允許獨立的異步讀寫訪問內存的任何地址,自動的電源管理特性由CE控制,允許晶片上的每一個埠電路進入一個非常低的電源模式。IDT7130的片內總線仲裁電路具有BUSY和INT兩種總線仲裁方式。基於所採用的單片機型號,在系統裡採用了中斷仲裁方案,這種方式的工作原理是一個內存地址(郵箱或者信息中心)被指派給每個埠。左埠的中斷標誌被宣稱當右埠寫到內存地址3FEH時,左埠通過訪問3FE內存地址清除中斷。相似的,當左埠寫內存地址3FFH時右埠標誌被宣稱,為了清除這個中斷標誌,右埠必須訪問內存地址3FFH,系統裡3FE和3FF兩個單元的內容賦予新的內涵,即定義兩個碼0FFH和00H。其中0FFH代表發送命令要求對方傳送數據,而00H代表發送的是對方所要求的數據。系統裡兩個CPU與雙口RAM的連接如圖3。雙口RAM的剩餘的存儲單元被分為四大部分,其中0000H-00FFH這256個單元用來存儲CAN總線上傳來的數據或地址,並且相鄰的兩個單元用於存儲一個CAN子站的數據信息;0100H-01F9H這250個單元用來存儲PROFIBUS總線上傳來的數據或地址,相鄰的兩個單元用於存儲一個PROFIBUS子站的信息,另外03FCH單元用於存放CAN總線設備所要讀的PROFIBUS站點的ID號,03FDH單元用於存放PROFIBUS總線設備所要讀的CAN站點的ID號。

   
 
由圖可知雙口RAM在負責CAN總線通信的微處理器的映射地址為0x7C00H-0x7FFFH,在負責PROFIBUS總線通信的微處理器的映射地址為0x2C00H-0x2FFFH。

4  系統軟體設計

網關的軟體可

分為兩大部分,一部分用於負責CAN總線的數據通信,另一部分用於負責PROFIBUS總線的數據通信。

每側的程序根據功能又可以分為三個子模塊:協議晶片初始化程序,接受數據接受子程序,數據發送子程序。其中數據接受子程序考外部中斷觸發執行。下面以網關的CAN總線接口側程序為例,列出程序流程圖,PROFIBUS側的接口程序與之相似,就不再贅述。

CAN總線側的初始化與發送程序流程如圖4:

   

因為SJA1000的初始化只有在復位模式下才可以進行,因此程序首先將SJA1000的中斷屏蔽,使它進入復位模式,然後對它進行初始化。初始化內容主要包括工作方式的設置、接受濾波方式的設置、接受屏蔽寄存器和接受代碼寄存器的設置、波特率參數設置和中斷允許寄存器的設置等。 SJA1000完成初始化設置後,再讓它返回到工作狀態,進行正常的通信任務。

在接受子程序裡,系統以查詢的方式接受CAN子站傳送過來的數據,網關通過接受緩衝區數據區的第一個字節的內容判斷接受的是真正的數據,還是發給 PROFIBUS-DP站點的發送數據請求。如果數據區第一個字節是00H,則傳送的是數據信息,於是根據ID查表求得該站所對應的存儲單元,並將數據區的第二、三字節的內容存在該單元內,同時把ID放在7FFCH中,告訴對方發送數據的站點號;如果該字節內容是FFH,則說明是發送數據請求,數據區第二個字節存放的是被要求發送數據的站點號,將他放入7FFCH內即可。

CAN總線接口發送數據子程序流程圖如圖5:

   

上面的發送程序是由雙口RAM的中斷信號觸發的,收到中斷信號後,首先讀取7FFEH單元的內容,將中斷信號消除,然後根據該單元的內容,判斷雙口RAM內存放的是數據,還是被要求發送數據的CAN子站的ID號。如果7FFEH內容為00H,則說明所要發送到CAN子站的為正常的數據,於是將發送緩衝區的第一個字節設置為00H,告訴CAN子站發送的為數據,然後讀取7FFDH單元內容,查表求得數據在雙口RAM中的地址,並從該地址取兩個字節存到SJA1000輸出緩衝區數據區的第二、三個字節,同時把7FFDH作為發送的ID號。如果7FFDH是FFH,則說明PROFIBUS- DP發送過來得是被要求發送數據的CAN子站的站點號,於是只要把它放到SJA1000發送緩衝區數據區的第二個字節,並把第一個字節設為FFH,以通知 CAN站點,發送的數據為ID號。以上工作完成後,最後通過寫命令字發送數據。

5  結束語

實踐證明,雙CPU結構的雙向網關可以很好地完成CAN總線到PROFIBUS-DP總線協議轉換的任務,並且解決了單CPU結構網關中存在的數據傳輸速率低,數據傳輸可靠性差等問題,滿足了CAN總線與PROFIBUS-DP總線協議轉換的要求。它將CAN總線設備與PROFIBUS總線設備的連接起來,使兩種現場總線設備可以高效的通信,最終達到數據共享與功能互補的目的。並且工作人員在使用過程中不必關心兩種總線物理層和數據鏈路層的全部內容,給總線產品的研究開發帶來極大方便。另外這種雙CPU結構的設計方案對其他現場總線之間的網關設計具有借鑑意義,是一種值得推廣的方法。

參考文獻

    [1] 鄔寬明. 現場總線應用選編. 北京:北京航空航天大學出版社,2004
    [2] 鄒益仁. 現場總線控制系統的設計和開發. 北京:國防工業出版社,2003
    [3] 饒運濤. 現場總線CAN原理與應用技術. 北京:北京航空航天大學出版社,2003
    [4] SIEMENS. SPC3 and DPS2 User Description Version2.0,2002
    [5] PNO.Draft GSD Specification for PROFIBUS-DP GSD Revision2,1998

  [6] PHILIPS.Semiconductor PCA82C250 CAN controlerinter-face,1997

相關焦點

  • 採用profibus-dp現場總線的直流調速器控制系統
    可實現現場設備層到車間級監控的分散式數字控制和現場通信網絡,從而為實現工廠綜合自動化和現場設備智能化提供了可行的解決方案。與其它現場總線系統相比,PROFIBUS的最大優點在於具有穩定的國際標準EN50170作保證,並經實際應用驗證具有普遍性。目前已應用的領域包括加工製造。過程控制和自動化等。
  • PROFIBUS總線在煙箱輸送線上的應用
    1 引 言 本文以煙箱輸送系統介紹西門子profibus現場總線控制系統,輸送系統實現四臺封箱機後成品煙箱的合流、輸送、提升,將煙箱輸送至成品高架倉庫入庫分揀輸送線上
  • PROFIBUS現場總線技術及發展趨勢分析
    PROFIBUS是一種用於工廠自動化車間級監控和現場設備層數據通信與控制的現場總線技術。可實現現場設備層到車間級監控的分散式數字控制和現場通信網絡,從而為實現工廠綜合自動化和現場設備智能化提供了可行的解決方案。
  • profibus總線的網絡特性及實現水廠快濾池自動控制系統的設計
    profibus總線的網絡特性及實現水廠快濾池自動控制系統的設計 賈振軍;許書文; 發表於 2020-04-02 10:03:16 1、引言 70年代以前
  • PROFIBUS-DP/MODBUS的網關結構設計
    但是其FCS系列產品在快速接入主流現場總線系統中有一些阻力,所佔市場份額比較小,其提供的系統設計方案大多還是在主推DCS系統。為了能夠快速接入主流現場總線,結合國家863課題,中國四聯儀器儀表集團有限公司與本教研室共同研發PROFIBUS-DP/MODBUS網關,以期實現其FCS系列輸入/輸出從站設備快速無縫接入PROFIBUS-DP網絡,並藉此來提高其自動化設備的應用範圍。
  • 在嵌入式網關中CAN總線有什麼應用?
    在嵌入式網關中CAN總線有什麼應用?而為了使這一趨勢得以實現,連接Internet網絡的嵌入式網關是其關鍵。 從現實來看,乙太網擴展了現有的系統,但是現場總線不可能完全被工業乙太網替代,後者的潛力巨大,其應用領域一定會不斷擴大。所以,將現場總線與乙太網結合,從而實現底層生產與上層管理的緊密集成,已經成為一種趨勢。
  • modbus通信協議,profibus、FF、CAN總線等幾種現場總線知識合集
    modbus通信協議,profibus、FF、CAN總線等幾種現場總線知識合集 李倩 發表於 2018-04-29 17:47:00 在工業的發展中,現場總線起著非常重要的作用
  • PROFIBUS-DP現場總線詳解
    RS-485傳輸技術基本特徵是:網絡拓撲為線性總線,兩端有有源的總線終端電阻;傳輸速率為9.6kbps~12Mbps;介質為屏蔽雙絞電纜,也可取消屏蔽,取決於環境條件;不帶中繼時每分段可連接32個站,帶中繼時可多到127個站。
  • PROFIBUS轉MODBUS網關在煙廠的應用
    約克空調機組系統目前採用的是MODBUS通訊,在很多情況下需要將空調機組系統接入到西門子S7300的PROFIBUS系統中,應用微硬創新的MODBUS轉PROFIBUS網關實現了兩種總線的轉換
  • MODBUS轉PROFIBUS網關在捲菸廠的應用
    各設備均配置能耗動態監測儀表,可對不同設備的瞬時能耗和累計能耗進行記錄和分析車間的空調系統採用全年多工況分區節能控制,實現空調系統節能運行。約克空調機組系統目前採用的是MODBUS通訊,在很多情況下需要將空調機組系統接入到西門子S7300的PROFIBUS系統中,應用微硬創新的MODBUS轉PROFIBUS網關實現了兩種總線的轉換.
  • PROFIBUS–DP與PROFIBUS-PA總線的區別解析
    打開APP PROFIBUS–DP與PROFIBUS-PA總線的區別解析 發表於 2018-01-25 16:50:02 總線循環時間必須要比主站(PLC)程序循環時間短。除周期性用戶數據傳輸外,PROFIBUS-DP還提供智能化設備所需的非周期性通信以進行組態。診斷和報警處理。
  • Profibus-DP現場總線及其在火電廠的應用
    它將專用微處理器置人傳統的測量控制儀表,採用簡單的雙絞線把它們連接成網絡,並按公開、規範的通信協議,實現信息交換和數據傳輸,形成適應各種實際需要的自動控制系統。  目前國際上存在多種總線標準,包括IEC61158—2、Foundation Fieldbus、Profrbus、Eonworks、HART、CAN 等。
  • RS485轉profibus-DP網關應用案例
    PM-160T應用案例:將用戶自定義協議的RS232設備接入西門子PLC控制系統  現場應用:PM-160T(RS232/RS485/RS422轉Profibus-DP網關
  • PROFIBUS—DP總線在氣動物流生產線中的應用
    現場總線技術被譽為自動化領域的計算機區域網,是當今自動化領域技術發展的熱點之一。現場總線是連接智能現場設備和自動化系統的數字式、雙向傳輸、多分支結構的通信網絡。現場總線技術的出現和發展,使得建構一種全數字、全分散、全開放的控制系統成為可能,導致了傳統控制系統結構的變革。
  • Profibus-DP總線技術在同步控制系統中的應用
    對於多電機同步控制系統.要實現電機轉速跟隨,當受到擾動的電機轉速變化時。其他電機轉速隨該電機的轉速變化而變化,在系統受到擾動後的初始狀態,電機之間的轉速趨於同步,即應儘快消除轉速偏差;當電機之間的轉速趨於同步時。要儘量減小轉速發生超調。因此,對於多電機同步系統需通過同步控制使各受控量的控制過程相互協調配合,使各變量之間保持協調.從而使整個系統達到技術合理、經濟合算的協調工作狀態。
  • PROFIBUS 現場總線技術標準
    本培訓教程全面闡述了PROFIBUS的技術特點、應用模式和產品開發方法。可靠的數字傳輸技術※ PROFIBUS減少40%的安裝費用:※ 1,200多個產品(到1998年1季),一個標準到目前為止,已250家不同的製造商可提供 1,200 多個產品,你可免費獲得最新的 PROFIBUS電子產品指南的拷貝:(1)從每一個PROFIBUS用戶的CD-ROM或軟盤(2)或訪問PROFIBUS的國際網頁http://www.profibus.com
  • PROFIBUS-DP主站與主站之間如何實現通信?
    現在有兩個獨立的PROFIBUS-DP總線網絡,A主站(cpu315-dp)和B主站cpu315+CP342-5)分別是兩個獨立總線網絡中的一個主站。
  • PROFIBUS-DP現場總線技術在磨床改造中的應用
    1  PROFIBUS現場總線技術簡介1.1 PROFIBUS - DP概述PROFIBUS是近年較為流行的工業現場總線,也是目前數據傳輸率較快的一種現場總線,其最高傳輸速率可達12Mbit/s。PROFIBUS現場總線由PROFI2BUS-FMS(現場總線信息規範)、PROFIBUS-PA(過程自動化)和PROFIBUS-DP(分布式I/O)3個兼容部分組成。
  • 現場profibus pA 總線儀表故障的判斷
    求助-現場profibus pA 總線儀表故障的判斷我公司應用的總線儀表是一條總線下掛數個溫度壓力儀表,但經常出現控制畫面溫度壓力瞬間回零現象。P+F耦合器,PA儀表和總線分配器使用安徽皖科電子工程有限公司的WNK7系列壓力變送器、WNK6系列溫度變送器和總線智能分配器WAFD。