雙口RAM在自動化系統中的應用
發布時間:2008/5/26 0:00:00 訪問次數:2469
    
    摘要:對雙口ram操作中共享沖突的幾種方式進行了討論和分析。給出了防止這些共享沖突的基本方法,同時結合其在自動化系統中的應用給出了雙口ram和現場總線、工業以太網的接口應用方案。
    關鍵詞:雙口ram;現場總線;工業以太網;can;dsp
    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工藝生產的8×8k位容量、高速存取(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個信號燈,每個信號燈的存儲單元為8×2k位。對信號燈進行操作時,片選信號(cel、cer)應為高電平,信號燈使能信號(seml、semr)為低電平。a0~a2表示信號燈地址,數據線最低位i/o0代表信號燈的值。對存儲單元存取的一般過程如圖2所示。
    2.3 中斷防沖突方式
    雙口ram中最高地址的兩個存儲單元可以作為信箱使用,左右兩端可以同時對它進行操作。其中最高地址為右端口的信箱,次高地址為左端口信箱。以cy7c144芯片為例,偏移地址1ffeh為左端口信箱,偏移地址1fffh為右端口信箱。右端口寫入左端口信箱1ffeh時,左端口的信號intl將變為低,左端口讀自己的信箱1ffeh時,信號intl將重新為高;
    
    摘要:對雙口ram操作中共享沖突的幾種方式進行了討論和分析。給出了防止這些共享沖突的基本方法,同時結合其在自動化系統中的應用給出了雙口ram和現場總線、工業以太網的接口應用方案。
    關鍵詞:雙口ram;現場總線;工業以太網;can;dsp
    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工藝生產的8×8k位容量、高速存取(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個信號燈,每個信號燈的存儲單元為8×2k位。對信號燈進行操作時,片選信號(cel、cer)應為高電平,信號燈使能信號(seml、semr)為低電平。a0~a2表示信號燈地址,數據線最低位i/o0代表信號燈的值。對存儲單元存取的一般過程如圖2所示。
    2.3 中斷防沖突方式
    雙口ram中最高地址的兩個存儲單元可以作為信箱使用,左右兩端可以同時對它進行操作。其中最高地址為右端口的信箱,次高地址為左端口信箱。以cy7c144芯片為例,偏移地址1ffeh為左端口信箱,偏移地址1fffh為右端口信箱。右端口寫入左端口信箱1ffeh時,左端口的信號intl將變為低,左端口讀自己的信箱1ffeh時,信號intl將重新為高;