雙口RAM在自動化系統中的應用
摘要:對雙口RAM操作中共享沖突的幾種方式進行了討論和分析。給出了防止這些共享沖突的基本方法,同時結合其在自動化系統中的應用給出了雙口RAM和現場總線、工業以太網的接口應用方案。
1 引言
在現代工業測控系統中,由于對系統的功能和性能要求越來越高,一般都采用高性能的CPU(如DSP)或嵌入式系統(如386EX等?來實現測控功能,并將這些智能設備聯網組成自動化系統。在早期的應用中,設備聯網普遍采用RS232/RS422/RS485方式。隨著計算機技術的發展,現場總線技術在自動化系統中的應用逐漸普遍,而采用工業以太網技術則是今后技術發展的一個趨勢。
測控設備的設計可以采用單CPU系統完成整個測控功能和系統聯網功能,這樣做的缺點是使整個系統的軟件設計復雜,系統適應性差,CPU負擔較重,影響系統的整體性能。另外一種做法是采用雙CPU系統,即用一個CPU完成測控功能,另一個CPU完成系統聯網和接口通信功能。由于雙CPU系統可按功能分開設計,因此可簡化系統軟件設計,使系統具有良好的擴展性,以便更好地應對不同的組網要求,提高系統的整體性能。
CPU間的通信可以采用串口、并口等方式,但它們共同的缺點是操作復雜、速度慢。因此,隨著價格的不斷下降,采用雙口RAM方式在兩個CPU系統間交換數據是一個不錯的選擇。但雙口RAM有時會發生共享沖突問題。下面討論防止共享沖突的幾種方式。
2 雙口RAM防止共享沖突的方式
一般雙口RAM都提供了兩個完全獨立的端口,每個端口都有自己的控制線、地址線和數據線,CPU對雙口RAM端口的操作等效于對它的外部RAM進行操作。雙口RAM在使用上要注意的問題是如何避免兩端CPU對同一RAM單元的爭用,一般來說,雙口RAM可提供三種防沖突方式,下面結合CYPRESS公司的CY7C144進行說明。CY7C144是采用低功耗CMOS工藝生產的88k位容量、高速存取(20ns)的雙端口靜態RAM,它還可以用多芯片級聯來擴展字寬,其內部原理框圖如圖1所示。
2.1 插入等待狀態的防沖突方式
當左右端口同時對同一地址的RAM存儲單元進行存取時,CY7C144芯片內部的仲裁單元將會給出BUSY信號。具體來說,BUSYL、BUSYR信號的正常狀態為高電平,當左端口對一存儲單元進行存取時,若右端口也對該存儲單元進行操作,則芯片內部的仲裁單元會使信號BUSYR為低,直到左端口操作完成后再將BUSYR恢復為高電平。設計中可以利用BUSY信號作為CPU的等待狀態輸入,并利用該信號使CPU在操作過程中插入等待狀態,避免兩端同時對雙口RAM進行操作。
2.2 信號燈防沖突方式
雙口RAM通過申請和釋放端口的信號燈(也稱為令牌)來操作存儲單元可以避免發生沖突。一個信號燈對應相應數量的存儲單元。雙口RAM的兩端均可對信號燈進行存取。當左端口向信號燈寫入“0”再回讀信號燈時,若信號燈也為“0”表示左端口擁有對存儲單元的控制權,否則表示右端口擁有對存儲單元的控制權。不管是否取得對存儲單元的控制權,操作完成后都應向信號燈寫入“1”以釋放信號,從而避免資源的死鎖。
CY7C144芯片提供8個信號燈,每個信號燈的存儲單元為82k位。對信號燈進行操作時,片選信號(CEL、CER)應為高電平,信號燈使能信號(SEML、SEMR)為低電平。A0~A2表示信號燈地址,數據線最低位I/O0代表信號燈的值。對存儲單元存取的一般過程如圖2所示。
2.3 中斷防沖突方式
雙口RAM中最高地址的兩個存儲單元可以作為信箱使用,左右兩端可以同時對它進行操作。其中最高地址為右端口的信箱,次高地址為左端口信箱。以CY7C144芯片為例,偏移地址1FFEH為左端口信箱,偏移地址1FFFH為右端口信箱。右端口寫入左端口信箱1FFEH時,左端口的信號INTL將變為低,左端口讀自己的信箱1FFEH時,信號INTL將重新為高;同理,左端口寫入右端口信箱1FFFH時,右端口的信號INTR將變低,右端口讀自己的信箱1FFFH時,信號INTR將重新為高。可以將信號INTL和INTR作為CPU的中斷源,通過信箱向對方傳遞自己使用存儲單元的狀態來達到防止沖突之目的。
2.4 三種防沖突方式的比較
在上述三種方式中,插入等待狀態的方式對于高速接口來說會影響數據的傳送速率,而且要求CPU具有插入等待狀態的功能,而有些CPU(如8031)不具備該功能。信號燈方式主要用在兩個CPU共享內存空間時,如果雙口RAM主要用于兩個CPU之間交換數據,則交換的實時性很難用軟件來保證,而中斷方式則正好解決了這個問題。
3 在自動化系統中的應用方案
在變電站自動化系統中,保護、測量、控制一體化的設計應用越來越廣泛,一般來說,保護測控裝置的功能在設計之后不會有太大的變化,但數據通信網絡受性能、價格、硬件、軟件、用戶策略等諸多因素的影響,目前在選擇何種“接口網絡”上有許多不同的需求,很難達成一致的選擇。因此在通信網絡的設計中,筆者采用了雙CPU系統,其中一個CPU完成保護測控功能,一個CPU完成網絡通信功能,兩個CPU之間用雙口RAM交換信息。網絡通信CPU以插件的形式和保護測控CPU按照統一的接口連接,網絡通信介質接口也以插件的形式進行選擇。這樣設計的最大好處是可以根據系統性能和用戶要求來選擇不同的通信CPU插件以滿足自動化系統的組網需要,并可在通信插件上實現不同的通信協議,而保護測控功能部分不用進行任何修改;通信介質接口插件主要分為雙絞線方式和光信號方式兩種,可以根據現場應用需要進行選擇。
系統CPU的組成如圖3所示,將通信CPU插件和通信介質接口插件組合起來可滿足實際工程和不同用戶的需求。對保護測控CPU而言,雙口RAM被劃分為兩個區域,其中數據接收緩沖區是通信CPU插件向其發送命令和數據的區域;數據發送緩沖區是它向通信CPU插件發送數據的區域。為了保證數據交換的實時性和有效性,可采用雙口RAM的中斷方式通知對方,信號INTL和INTR可作為CPU的一個中斷輸入。數據交換時,先將數據放入對應的雙口RAM存儲區,然后寫入對方信箱,以通知對方有數據發送;接收方在相應的中斷中對數據進行處理,同時讀自己的信箱以清除中斷信號,然后再寫入對方信箱以告知其數據已處理完畢。
4 接口示例
根據上述設計思想,筆者選擇AD公司的AD-SP-21065作為測控CPU系統的主處理器。下面以CAN總線和以太網接口為例來介紹與雙口RAM的連接方法。
4.1 CAN總線通信插件
近年來,現場總線標準及其應用技術日益成為國際自動控制領域關注的一個焦點。CAN總線是德國Bosch公司為解決汽車中眾多數據交換問題而開發的一種串行數據通信協議,是目前公認的幾種最有前途的現場總線之一。它的通信介質可以是雙絞線、同軸電纜和光纖,其通信速率可達1Mbps。通信CPU選擇Philips公司的P80c592,它的內核為80C51單片機,并內帶CAN控制器,可支持CAN2.0B協議。其系統組成原理圖如圖4所示。
4.2 以太網接口通信插件
變電站通信體系結構IEC61850協議推薦使用的傳輸網絡是以太網,因此,以太網接口的設計具有非常重要的現實意義。由臺灣Realtek公司生產的RTL8019AS以太網控制器以其優良的性能、低廉的價格,而在市場上10Mbps網卡中占有相當的比例,設計時筆者就選擇了該以太網控制器,并選用89C52單片機來控制RTL8019AS實現以太網接口,其系統組成原理圖如圖5所示。
圖5只給出了通信CPU與以太網接口芯片的連接,它和雙口RAM的連接與CAN總線組成原理圖基本相同,不同之處在于片選信號的譯碼。在外存地址的分配中,高端32kB作為雙口RAM和RTL8019AS的尋址空間,雙口RAM的地址范圍為0x2000-0x3fff,RTL8019AS的端口地址范圍為0x8000-0x801f。89C52的中斷0作為以太網接口使用,中斷1用于雙口RAM的中斷輸入。
5 總結
利用雙口RAM在CPU之間傳送數據具有傳送速率高、實時性好、可靠性高、電路簡單等優點,而采用插件形式來構成自動化系統的通信網絡使系統具有良好的適應性和擴展性,能夠很好地滿足用戶的需求。筆者按照這種思路設計的鐵路牽引變電所自動化系統就充分利用了該特點。
評論