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