<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計(jì)應(yīng)用 > 雙口RAM在自動化系統(tǒng)中的應(yīng)用

          雙口RAM在自動化系統(tǒng)中的應(yīng)用

          作者: 時(shí)間:2005-08-08 來源:網(wǎng)絡(luò) 收藏

          摘要:操作中共享沖突的幾種方式進(jìn)行了討論和分析。給出了防止這些共享沖突的基本方法,同時(shí)結(jié)合其在給出了和現(xiàn)場總線、工業(yè)以太網(wǎng)的接口應(yīng)用方案。

          關(guān)鍵詞:;現(xiàn)場總線;工業(yè)以太網(wǎng);CAN;DSP

          1 引言

          在現(xiàn)代工業(yè)測控系統(tǒng)中,由于對系統(tǒng)的功能和性能要求越來越高,一般都采用高性能的CPU(如DSP)或嵌入式系統(tǒng)(如386EX等?來實(shí)現(xiàn)測控功能,并將這些智能設(shè)備聯(lián)網(wǎng)組成。在早期的應(yīng)用中,設(shè)備聯(lián)網(wǎng)普遍采用RS232/RS422/RS485方式。隨著計(jì)算機(jī)技術(shù)的發(fā)展,現(xiàn)場總線技術(shù)在逐漸普遍,而采用工業(yè)以太網(wǎng)技術(shù)則是今后技術(shù)發(fā)展的一個(gè)趨勢。

          測控設(shè)備的設(shè)計(jì)可以采用單CPU系統(tǒng)完成整個(gè)測控功能和系統(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完成測控功能,另一個(gè)CPU完成系統(tǒng)聯(lián)網(wǎng)和接口通信功能。由于雙CPU系統(tǒng)可按功能分開設(shè)計(jì),因此可簡化系統(tǒng)軟件設(shè)計(jì),使系統(tǒng)具有良好的擴(kuò)展性,以便更好地應(yīng)對不同的組網(wǎng)要求,提高系統(tǒng)的整體性能。

          CPU間的通信可以采用串口、并口等方式,但它們共同的缺點(diǎn)是操作復(fù)雜、速度慢。因此,隨著價(jià)格的不斷下降,采用雙口RAM方式在兩個(gè)CPU系統(tǒng)間交換數(shù)據(jù)是一個(gè)不錯(cuò)的選擇。但雙口RAM有時(shí)會發(fā)生共享沖突問題。下面討論防止共享沖突的幾種方式。

          2 雙口RAM防止共享沖突的方式

          一般雙口RAM都提供了兩個(gè)完全獨(dú)立的端口,每個(gè)端口都有自己的控制線、地址線和數(shù)據(jù)線,CPU對雙口RAM端口的操作等效于對它的外部RAM進(jìn)行操作。雙口RAM在使用上要注意的問題是如何避免兩端CPU對同一RAM單元的爭用,一般來說,雙口RAM可提供三種防沖突方式,下面結(jié)合CYPRESS公司的CY7C144進(jìn)行說明。CY7C144是采用低功耗CMOS工藝生產(chǎn)的88k位容量、高速存?。ǎ玻埃睿螅┑碾p端口靜態(tài)RAM,它還可以用多芯片級聯(lián)來擴(kuò)展字寬,其內(nèi)部原理框圖如圖1所示。

          2.1 插入等待狀態(tài)的防沖突方式

          當(dāng)左右端口同時(shí)對同一地址的RAM存儲單元進(jìn)行存取時(shí),CY7C144芯片內(nèi)部的仲裁單元將會給出BUSY信號。具體來說,BUSYL、BUSYR信號的正常狀態(tài)為高電平,當(dāng)左端口對一存儲單元進(jìn)行存取時(shí),若右端口也對該存儲單元進(jìn)行操作,則芯片內(nèi)部的仲裁單元會使信號BUSYR為低,直到左端口操作完成后再將BUSYR恢復(fù)為高電平。設(shè)計(jì)中可以利用BUSY信號作為CPU的等待狀態(tài)輸入,并利用該信號使CPU在操作過程中插入等待狀態(tài),避免兩端同時(shí)對雙口RAM進(jìn)行操作。

          2.2 信號燈防沖突方式

          雙口RAM通過申請和釋放端口的信號燈(也稱為令牌)來操作存儲單元可以避免發(fā)生沖突。一個(gè)信號燈對應(yīng)相應(yīng)數(shù)量的存儲單元。雙口RAM的兩端均可對信號燈進(jìn)行存取。當(dāng)左端口向信號燈寫入“0”再回讀信號燈時(shí),若信號燈也為“0”表示左端口擁有對存儲單元的控制權(quán),否則表示右端口擁有對存儲單元的控制權(quán)。不管是否取得對存儲單元的控制權(quán),操作完成后都應(yīng)向信號燈寫入“1”以釋放信號,從而避免資源的死鎖。

          CY7C144芯片提供8個(gè)信號燈,每個(gè)信號燈的存儲單元為82k位。對信號燈進(jìn)行操作時(shí),片選信號(CEL、CER)應(yīng)為高電平,信號燈使能信號(SEML、SEMR)為低電平。A0~A2表示信號燈地址,數(shù)據(jù)線最低位I/O0代表信號燈的值。對存儲單元存取的一般過程如圖2所示。

          2.3 中斷防沖突方式

          雙口RAM中最高地址的兩個(gè)存儲單元可以作為信箱使用,左右兩端可以同時(shí)對它進(jìn)行操作。其中最高地址為右端口的信箱,次高地址為左端口信箱。以CY7C144芯片為例,偏移地址1FFEH為左端口信箱,偏移地址1FFFH為右端口信箱。右端口寫入左端口信箱1FFEH時(shí),左端口的信號INTL將變?yōu)榈?,左端口讀自己的信箱1FFEH時(shí),信號INTL將重新為高;同理,左端口寫入右端口信箱1FFFH時(shí),右端口的信號INTR將變低,右端口讀自己的信箱1FFFH時(shí),信號INTR將重新為高。可以將信號INTL和INTR作為CPU的中斷源,通過信箱向?qū)Ψ絺鬟f自己使用存儲單元的狀態(tài)來達(dá)到防止沖突之目的。

          2.4 三種防沖突方式的比較

          在上述三種方式中,插入等待狀態(tài)的方式對于高速接口來說會影響數(shù)據(jù)的傳送速率,而且要求CPU具有插入等待狀態(tài)的功能,而有些CPU(如8031)不具備該功能。信號燈方式主要用在兩個(gè)CPU共享內(nèi)存空間時(shí),如果雙口RAM主要用于兩個(gè)CPU之間交換數(shù)據(jù),則交換的實(shí)時(shí)性很難用軟件來保證,而中斷方式則正好解決了這個(gè)問題。

          3 在自動化系統(tǒng)方案

          在變電站自動化系統(tǒng)中,保護(hù)、測量、控制一體化的設(shè)計(jì)應(yīng)用越來越廣泛,一般來說,保護(hù)測控裝置的功能在設(shè)計(jì)之后不會有太大的變化,但數(shù)據(jù)通信網(wǎng)絡(luò)受性能、價(jià)格、硬件、軟件、用戶策略等諸多因素的影響,目前在選擇何種“接口網(wǎng)絡(luò)”上有許多不同的需求,很難達(dá)成一致的選擇。因此在通信網(wǎng)絡(luò)的設(shè)計(jì)中,筆者采用了雙CPU系統(tǒng),其中一個(gè)CPU完成保護(hù)測控功能,一個(gè)CPU完成網(wǎng)絡(luò)通信功能,兩個(gè)CPU之間用雙口RAM交換信息。網(wǎng)絡(luò)通信CPU以插件的形式和保護(hù)測控CPU按照統(tǒng)一的接口連接,網(wǎng)絡(luò)通信介質(zhì)接口也以插件的形式進(jìn)行選擇。這樣設(shè)計(jì)的最大好處是可以根據(jù)系統(tǒng)性能和用戶要求來選擇不同的通信CPU插件以滿足自動化系統(tǒng)的組網(wǎng)需要,并可在通信插件上實(shí)現(xiàn)不同的通信協(xié)議,而保護(hù)測控功能部分不用進(jìn)行任何修改;通信介質(zhì)接口插件主要分為雙絞線方式和光信號方式兩種,可以根據(jù)現(xiàn)場應(yīng)用需要進(jìn)行選擇。

          系統(tǒng)CPU的組成如圖3所示,將通信CPU插件和通信介質(zhì)接口插件組合起來可滿足實(shí)際工程和不同用戶的需求。對保護(hù)測控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的中斷方式通知對方,信號INTL和INTR可作為CPU的一個(gè)中斷輸入。數(shù)據(jù)交換時(shí),先將數(shù)據(jù)放入對應(yīng)的雙口RAM存儲區(qū),然后寫入對方信箱,以通知對方有數(shù)據(jù)發(fā)送;接收方在相應(yīng)的中斷中對數(shù)據(jù)進(jìn)行處理,同時(shí)讀自己的信箱以清除中斷信號,然后再寫入對方信箱以告知其數(shù)據(jù)已處理完畢。

          4 接口示例

          根據(jù)上述設(shè)計(jì)思想,筆者選擇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)注的一個(gè)焦點(diǎ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所示。

          設(shè)計(jì)時(shí),可將ADSP-21065的MS3作為讀寫雙口RAM的片選信號,對應(yīng)地址為0x03000000-0x03001fff。若將P80c592外部存儲器尋址空間的高端32kB作為雙口RAM的地址,則雙口RAM的尋址范圍為0x8000-0x9fff,它的外部中斷1可用于雙口RAM的中斷輸入。

          4.2 以太網(wǎng)接口通信插件

          變電站通信體系結(jié)構(gòu)IEC61850協(xié)議推薦使用的傳輸網(wǎng)絡(luò)是以太網(wǎng),因此,以太網(wǎng)接口的設(shè)計(jì)具有非常重要的現(xiàn)實(shí)意義。由臺灣Realtek公司生產(chǎn)的RTL8019AS以太網(wǎng)控制器以其優(yōu)良的性能、低廉的價(jià)格,而在市場上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總線組成原理圖基本相同,不同之處在于片選信號的譯碼。在外存地址的分配中,高端32kB作為雙口RAM和RTL8019AS的尋址空間,雙口RAM的地址范圍為0x2000-0x3fff,RTL8019AS的端口地址范圍為0x8000-0x801f。89C52的中斷0作為以太網(wǎng)接口使用,中斷1用于雙口RAM的中斷輸入。

          5 總結(jié)

          利用雙口RAM在CPU之間傳送數(shù)據(jù)具有傳送速率高、實(shí)時(shí)性好、可靠性高、電路簡單等優(yōu)點(diǎn),而采用插件形式來構(gòu)成自動化系統(tǒng)的通信網(wǎng)絡(luò)使系統(tǒng)具有良好的適應(yīng)性和擴(kuò)展性,能夠很好地滿足用戶的需求。筆者按照這種思路設(shè)計(jì)的鐵路牽引變電所自動化系統(tǒng)就充分利用了該特點(diǎn)。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();