【關鍵詞】現場總線,LonWorks,并行通信,神經元芯片
【摘要】本文首先簡要地介紹了LonWorks現場總線技術以及LonWorks控制模塊,在此基礎上提出了一種LonWorks控制模塊與MCS-51單片機并行通信節點的組成原理及其設計與實現。1 引 言
現場總線是在自動化領域中出現的一種嶄新的控制技術,它以其全數字化、全分散式、全開放性、互操作性以及開放式的互連網絡等特點為傳統的自動控制系統帶來了革命性的變革,已成為未來控制系統的發展方向。在眾多流動的現場總線中,由美國Echelon公司研制的LonWorks現場總線是唯一遵循了國際標準化組織ISO定義的開放系統互連OSI全部7層模型的現場總線標準,因其能充分滿足未來發展對測控網絡的要求,具有廣闊的應用前景。Lon Works現場總線技術的優勢在于其高性能低成本的網絡接口產品 、含3個CPU的超大規模Neuron芯片、固化的LonTalk通信協議以及方便的開發調試服務工具 。實現LonWorks技術的關鍵是LonWorks智能設備,即控制網絡節點的應用開發。本文將著重討論并提出了一種LonWorks控制模塊與MCS-51單片機并行通信節點的組成原理及其設計與實現。
2 原理
2.1 神經元芯片
神經元芯片是LonWorks技術的核心,它有3個CPU,每個CPU各自分工不同,如圖2—1所示。
CPU-1是介質訪問控制處理器,處理LonTalk協議的第一和第二層,包括驅動通信子系統硬件和執行MAC算法。CPU-2是網絡處理器,它實現LonLalk協議的第三到第六層,包括處理網絡變量、尋址、事件處理、軟件計時器、網絡管理和路由等,同時還控制網絡通信端口,發送和接收數據包。CPU-3是應用處理器,它執行用戶的代碼以及用戶代碼調用的操作系統命令。CPU-1和CPU-2用共享存儲區中的網絡緩存區進行通信。CPU-2和CPU-3用共享存儲區中的應用緩存區進行通信。在多數應用中,編程采用Neuron C語言。
2.2 Lon Works節點與控制模塊
LonWorks網上的每個控制點,即LonWorks節點是和在物理上與之相連的現場I/O設備交互作用并在控制網絡中使用LonTalk協議與其他節點互相通信的一類對象。
LonWorks網絡控制節點有兩種類型。如圖2—2所示:
在圖2—2a中,Neuron芯片是唯一的處理器,此類LonWorks節點適合于I/O設備簡單 、處理任務不復雜的系統,稱為基于Neuron芯片的節點;而在圖2—2b中,Neuron芯片只作為通信處理器,充當Lon-Works網絡的網絡接口,節點應用程序由主處理器來執行,此類MIP結構的LonWorks節點適合于對I/O設備及處理任務要求較高的系統,稱為基于主機的節點,其中的主處理器可以是任何微控制器或PC等。
不論哪種類型的LonWorks節點都有一個電源、一片Neuron芯片用于通信和控制、一個I/O接口以及一個收發器負責將節點連接到LonWorks網絡。為了便于LonWorks現場總線的應用,Echelon公司開發出了多種型號的LonWorks控制模塊,將Neuron芯片、收發器以及存儲器集成在一起,如圖中虛線框所示,極大地方便了LonWorks總線的應用設計開發人員,使開發人員將注意力更集中于控制系統的選擇、應用和實現。
3 節點硬件的設計
LonWorks控制模塊與MCS-51單片機并行通信節點的硬件電路原理示意圖如圖3—1所示,它屬于圖2—2b類基于主機的LonWorks節點。
圖3—1是其硬件電路原理圖。需要說明的是:Neuron芯片提供有11個可編程的I/O引腳(IO-0至IO-10),它們可以配置為多達34種不同的應用對象,從而借助于最小的外接電路實現靈活的輸入輸出功能。Neuron芯片的并行I/O對象需要使用全部11個引腳 ,其中IO-0~IO-7用于雙向數據線,IO-8~IO-10用于控制信號線,它有3種工作方式 :即主方式(Master)、從A方式(Slave A)和從B方式(SlaveB)。對于要求建立Neuron芯片與微處理器或微控制器之間的連接,即建立基于主機的LonWorks節點來說,Neuron芯片的并行接口工作在從B方式是最佳的選擇。工作在從B方式的Neuron芯片,在主機的地址空間,就像是兩個寄存器,一個是讀寫數據寄存器(偶地址),另一個是只讀狀態寄存器(奇地址)。主機正是通過對這兩個寄存器的訪問實現主機與Neuron芯片之間的數據并行傳輸的。在從B方式下,IO-0除作為數據低位外,還兼作握手HS位,用于主機與Neuron芯片的握手應答;IO-8則作為片選信號位;IO-9作為讀寫信號線;IO-10作為寄存器尋址輸入位。另外,由于并行通信要求雙方設備必須同步,無論MCS-51處理器和Neuron芯片哪一方復位,雙方都必須重新進行同步,因此在MCS-51處理器和Neuron芯片復位電路的設計上應遵循以下原則:要求雙方都能意識到對方的復位,MCS-51處理器的復位要觸發Neuron芯片的復位,這是通過直接控制(硬件連接)實現的;而Neuron芯片在由于某種原因引起復位時,會在其RESET端自動產生低電平輸出,利用這一復位輸出信號,通過一個D觸發器以中斷方式來通知MCS-51處理器,以使MCS-51處理器作出相應處理,這是通過中斷服務子程序實現的。
4 節點軟件的設計
由于Neuron芯片內裝有LonTalk通信協議固件,因此無論Neuron芯片并行I/O對象工作于何種方式下,對于Neuron芯片來說,其實現軟件相對容易。故對于LonWorks控制模塊與MCS-51單片機的并行通信節點的實現,關鍵在于MCS-51單片機的軟件設計,這是因為MCS-51處理器內不含LonTalk通信協議固件,因此要實現與Neuron芯片的并行數據傳輸,MCS-51處理器這一方必須復制Neuron芯片的行為,即能執行Neuron芯片的握手/令牌傳遞算法。Neuron芯片并行I/O對象的令牌命令字節格式描述如圖4—1所示。
上述每一命令的第一字節代表的是該命令類型,其中,CMD-XFER=0x01,CMD-NULL=0x00,CMD-RESYNC=0x5A,CMD-ACKSYNC=0x07,數據長度是實際發送的數據長度,不包括EOM,EOM是命令結束字節,可以為任意字節,它只被發送,接收方不讀該字節,主要是通過寫該字節保持HS位為讀方可寫的狀態以便傳遞令牌。令牌傳遞過程如圖4—2所示。
為實現與并行I/O設備的通信并保證安全可靠,Neuron芯片由固件自動執行令牌傳遞協議,以防止總線沖突。在任何給定的時間內,僅有一個設備擁有令牌。該令牌是一虛擬令牌,它決定著哪一設備擁有寫總線權。若主機擁有令牌,它將有權將準備好的數據發送給或將令牌交給Neuron芯片,若Neuron芯片擁有令牌,它可將準備好的數據發送給主機或交出令牌。因而令牌在主機與Neuron芯片之間以乒乓方式來回傳遞。
當Neuron芯片復位后,MCS-51處理器將自動獲得令牌并負責令牌的傳遞。Neuron芯片在任何復位的情況下都通過并行總線要求同步,其目的是為了防止Neuron芯片作出錯誤的假定,比如錯誤的傳送開始或錯誤的傳送數據,這將由Neuron芯片通過同步作用自動結束。持有令牌的MCS-51處理器在任何時候應用RESYNC命令可以初始化重新同步操作 。無論Neuron芯片和MCS-51處理器哪一方設備復位,都要求雙方必須重新同步,因此雙方都應能意識到對方的復位,MCS-51處理器要監視Neu-ron芯片的復位,且MCS-51處理器的復位要觸發Neuron芯片的復位。
HS位(即IO-0)是主要的握手控制信號,用于控制實際數據的傳輸。在Neuron芯片并行I/O對象從B方式下,HS由Neuron芯片驅動,它通知MCS-51處理器目前Neuron芯片是忙還是閑,當Neuron芯片執行一次讀寫數據操作后,HS狀態位被置“0”,當MCS-51處理器執行一次讀寫操作后,HS狀態位被置“1”,由于這是由硬件而非由固件控制的,因此,MCS-51處理器必須在程序中輪詢該狀態位,從而正確地啟動自身的讀寫操作。
為了實現LonWorks控制模塊與MCS-51處理器的并行通信,MCS-51處理器這一方需要人為地完成Neuron芯片的握手/令牌傳遞協議,在編制程序時,還要注意的是要保證Neuron芯片一方保持令牌的時間不能超過Neuron芯片看門狗定時器的定時時間,以防止Neuron芯片意外復位而導致通信失敗。
5 結束語
基于Neuron芯片的LonWorks控制網絡節點,只能用于I/O及控制較簡單的系統。對于工業應用中I/O及控制較復雜的控制系統,往往要采用基于主要處理器的LonWorks網絡節點。本文所設計的控制網絡節點,其主處理器采用的是MCS-51系列單片機,主處理器與Neuron芯片之間采用的是并行雙向數據通信,其傳輸速率最高可達9600bps,目前該節點已經應用于智能小區安保控制系統。