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