隨著Ethernet(以太網)技術的發展,各種樓宇自控、智能家居、工業控制、智能儀器儀表、數據采集都在逐步實現網絡化。但由于Ethernet在實時性和可靠性的先天不足,各種現場總線技術應運而生;更因為其徹底的開放性、分散性和完全可互操作性等特點,正成為未來新型工業控制系統的發展方向。Ethernet以其應用的廣泛性和技術的先進性,逐漸壟斷了商用計算機的通信領域和過程控制領域的上層信息管理與通信。為實現上層管理網絡與下層控制網絡的集成,在實際中必須實現現場總線與以太網互聯。
LonWorks網絡技術是美國Echelon公司1991年推出的局部操作網絡。LonWorks現場總線在網絡通信方面具有突出優點,如網絡物理層支持多種通信介質,支持總線型、星形、環形、自由拓撲等多種網絡拓撲結構等。目前基于LonWorks技術的產品廣泛應用于工業自動化、智能建筑、智能家居、能源監管、電力自動化、軌道交通、船舶控制等自動化領域。
本文介紹一種LonWorks以太網適配器連接方案,能將LON控制網與Ethernet無縫連接,實現LON控制網絡與Ethernet網絡的透明傳輸。
1 互連適配器硬件電路設計
適配器使用的主要芯片為神經元芯片TMPN3150、51單片機89C51RD和Ethernet控制器RTL8019as.主要分為Lonworks控制模塊、協議轉換模塊和Ethernet通信模塊.其中,協議轉換由單片機內部軟件完成。
1.1 LonWorks控制模塊
Lonworks控制模塊主要完成對LON網數據的管理并向單片機傳輸數據,其核心是神經元芯片.神經元芯片與其他設備的互連是通過其11個I/O口,編程人員可以定義多個引腳為輸入/輸出對象。用戶程序可通過io_in()和io_out()訪問這些I/O對象,并在程序執行期間完成輸入/輸出操作。本文設計的適配器采用Neuron芯片預定義的并行I/O對象,實現了高數據速率和全雙工工作方式。
并行I/O對象利用Neuron的11個I/O口進行通信。其中IO0~IO7為雙向數據線,IO8~IO10為控制信號線.借助令牌傳遞握手協議,并行I/O口可外接處理器,實現Neuron芯片與外接各類微處理器之間的雙向數據通信。并行口的速率可達3.3Mbps,工作方式有三種,即主模式、從A模式和從B模式.不同的模式下,IO8~IO10這三根控制信號線的意義不同。本文應用從A模式熡氳テ機連接如表1所示。
表1 Neuron芯片與單片機的連接
IO8 |
片選信號線(CS)接P2.5 |
IO9 |
讀寫信號線(R/W)接P3.6 |
IO10 |
握手信號線(HS)接P1.0 |
IO0~IO7 |
數據總線接P0.0~P0.7 |
從A模式中,Neuron芯片為從機,51單片機為主機。主機與從機間的數據傳輸通過虛擬的寫令牌傳遞協議(Virtual Write Token-Passing Protocol)實現。主機和從機交替地獲得寫令牌,只有擁有寫令牌的一方可以寫數據(不超過255字節),或者不寫任何數據傳送一個空令牌。傳送的數據要遵從一定的格式,即在要傳送的數據前面加上命令碼和傳送的數據長度.命令碼有CMD_XFER(寫數據)、CMD_NULL(傳遞空令牌)、CMD_RESYNC(要求從機同步)、CMD_ACKSYNC(確認同步)四種,最后以EOM字節結束。寫數據和傳遞空令牌的格式分別如表2、表3所示。
表2 寫數據的格式
CMD_XFER |
Length |
Data |
EOM |
表3 傳遞空令牌的格式
CMD_NULL |
EOM |
1.2 Ethernet通信模塊
Ethernet通信模塊由51單片機和RTL8019as組成。Ethernet控制器RTL8019as由臺灣Realtek公司生產,100腳PQFP封裝。它支持8/16位數據總線及16個I/O基地址選擇,使用Ne2000兼容的寄存器結構。它有一塊16K字節的RAM,地址為0x4000~0x7fff。實際上它是雙端口RAM,可以同時被網卡讀/寫和用戶讀/寫,相互之間不影響。網卡讀寫比用戶讀寫的優先級高。RAM分頁存儲,每256字節稱為一頁。將前12頁作為發送緩沖區(0x4000~0x4bff),后52頁作為接收緩沖區(0x4c00~0x7fff)。
Ethernet的介質訪問控制、CRC校驗及數據幀的接收和發送都由網卡自動完成,只需將IP包加上目的MAC地址和源地址,再通過遠端DMA接口對RTL8019as內部RAM進行讀寫即可。網卡的地址線共20根。用到的網卡地址為十六進制的0240H~025FH,基地址為0240H,從地址240H~25FH。地址線的A19~A5是固定的000000000010010,只需5根地址線即可。所以RTL8019as輸入輸出地址共32個,地址偏移量為00H~1FH(對應于240H~25FH)。對于8位操作方式,32個地址中只有18個有用:00H~0FH共16個寄存器地址,10H為DMA地址,1FH為復位地址。本適配器采用輪詢方式,不使用中斷。故RTL8019as與單片機的連接如表4所示。
表4 RTL8019as單片的連接
IORB |
讀信號,接P3.6 |
IOWB |
寫信號,接P3.7 |
RSTDRV |
復位信號,P3.4 |
AEN |
地址信號,接地 |
IOCS16 |
接下拉電阻,選擇8位模式 |
S0~S7 |
數據總線,接單片機P0口 |
A19~A10,A6 |
地址線接地 |
A9,A5 |
接P2.5(高電平時選中) |
A4~A0 |
接單片機P2.0×P2.4 |
表5 單片機發往RTL8019as的數據格式
以太網首部 |
IP首部 |
UDP首部 |
數據 |
14字節 |
20字節 |
20字節 |
128×n字節 |
本適配器使用UDP傳送數據,同時支持ICMP的回應應答和回應請求報文(Ping命令),單片機發往RTL8019as的數據幀格式如表5所示。
用單片機實現UDP協議要作一些簡化,不考慮數據分片和優先權。因此,在IP首部中不討論服務類型和標志偏移域,只需填“0”即可。
1.3 互連適配器的硬件電路設計
由于P89C51RD2只有四個8位I/O口,無法同時與RTL8019as 和TMPN3150通信,故使用P0口作為數據總線。P2.5作為片選信號,高電平為RTL8019as,低電平為TMPN3150.圖1給出了互連適配器的電路框圖。其中3150和RTL8019as復用同一條8位數據線,依靠P2.5進行片選。當P2.5高電平時,RTL8019as地址(1XXXXX)有效,被選中。Max232作為單片機的下載線,互聯適配器也可使用RS232口與計算機通信。
2 互連適配器的軟件設計
適配器的軟件編寫包括兩部分:一部分是TMPN3150上用Neuron C語言編寫;另一部分是在P89C51上用C51語言開發TCP/IP協議棧和與TMPN3150、RTL8019as的通信軟件,可讀性強,可方便地移植到其他51核心單片機上。
2.1 適配器的初始化
P89C51單片機和TMPN3150之間先建立握手信號,即HS信號有效(由TMPN3150的固件自動實現);然后,主機發送一個CMD_RESYNC命令,要求從機同步,而從機接收到這個信號后,則發送CMD_ACKSYNC,表示已同步,可以通信了.RTL8019在通信前要先讀取93C46的內容并設置內部寄存器的值(配置寄存器CONFIG1~4,網絡節點地址),再由89C51對RTL8019的頁0與頁1相關寄存器進行初始化,即可正常工作。
2.2 適配器工作流程
考慮到LON網主要作為監控網絡,特別在樓宇自動化中的監控,由LON網發往Ethernet的數據較多,應首先保證其優先權。且89C51RD只有1024字節的內存,無法處理大的以太網幀。經過實驗比較,在最后具體實現時,選擇LON最大為每幀64字節,盡量做到每收10個LON幀,發一個以太網幀,流程如圖2所示。
2.3 服務器監控軟件的設計
LonWorks現場總線使用網絡變量的方式傳送數據。一個網絡變量是LonWorks網絡節點的一個對象,各個節點之間的聯系通過網絡變量實現。當一個網絡變量在一個節點中被應用程序改變時,LonTalk協議自動將新值構成隱式消息透明地發往可與之共享的其他節點,而應用程序則不必考慮發送、接收和尋址的問題.安裝在服務器上的監控軟件將需要改變的網絡變量數據利用UDP通過Ethernet發往指定IP地址的適配器,適配器將自動完成各個數據向相應設備的傳輸。同樣,適配器也將設備發來的網絡變量使用UDP發往指定IP的服務器.使用Delphi6.0編寫了一個簡單的設備監控軟件。實驗中,它能同時管理16路的數據采集和控制,適配器達到了12kbps的峰值速率.實驗模型如圖3所示。
2.4 結束語
海思自動化公司現已推出新一代的LonWorks適配器iAdapt601,該型號采用了全隔離、全封閉式設計,運用ECHELON公司最新一代的Neuron芯片及高性能的單片機技術,滿足了高端應用的需求 。
海思自動化LON控制網絡適配器