本發明涉及自動化技術領域,尤其涉及一種ethercat從站中fmmu的控制方法及系統。
背景技術:
目前,以太網控制自動化技術(ethernetcontrolautomationtechnology,以下簡稱ethercat)最初是在2003年由德國倍福自動化有限公司(beckhoffautomationgmbh)基于以太網技術提出的一種實時工業以太網技術,該技術不僅具有高速和高數據有效率的特點,還具有靈活網絡拓撲結構,并在協議中封裝了ip/udp,所以不需要ip協議就能實現通信。因此,ethercat具有以下優點:適應性廣泛;符合以太網標準;無需使用從屬子網,都可用作ethercat從站;數據傳輸效率高;刷新周期短;同步性能好。該技術采用主從式結構,主站具有總線控制權,主站按照控制周期下發報文,數據幀遍歷所有的從站設備,每個從站設備在數據幀經過時尋址到本站報文,根據數據幀中的命令寫入數據或者讀入數據到報文中指定位置。直到數據幀訪問到整個總線中的最后一個從站。
如申請號為201310003789.1發明中提供了用于存儲設備的地址映射方法。該方法包括:接收來自存儲單元的用于所述存儲單元的物理地址;將所述物理地址映射為邏輯地址;將所述邏輯地址發送給訪問所述存儲設備的主機。該方法雖然能夠實現物理地址映射到邏輯地址,但是由于該方法不能實現按位映射,且此方法需要將所述邏輯地址發送到訪問所述存儲設備的主機,因此不能實現ethercat協議中主站連接多個地址映射的功能。
技術實現要素:
本發明提供的ethercat從站中fmmu的控制方法及系統,能夠實現fmmu的快速讀寫操作,同時還能夠減少硬件資源的消耗。
第一方面,本發明提供一種ethercat從站中fmmu的控制方法,包括:
獲取開始字節比特個數計數器的初始值、字節個數計數器的初始值和結束字節比特個數計數器的初始值;
根據開始字節比特個數計數器的初始值、字節個數計數器的初始值和結束字節比特個數計數器的初始值分別對開始字節比特個數計數、字節個數計數和結束字節比特個數計數;
根據開始字節比特個數、字節個數和結束字節比特個數確定映射激活信號,以使fmmu能夠根據映射激活信號得出偏移地址并實現邏輯地址與從站物理地址間的按位映射。
可選地,開始字節比特個數計數器獲取開始字節比特個數計數器的初始值并根據所述初始值對開始字節比特個數計數,然后根據開始字節比特個數確定開始字節比特個數計數器對應的第一映射激活信號,包括:
獲取由主站所配置的數據邏輯起始位并得出開始字節比特個數計數器的初始值;
根據所述初始值對開始字節比特個數計數;
對所述開始字節比特個數做減法,直至開始字節比特個數為0并作為第一映射激活信號。
可選地,當所述開始字節比特個數為0時,用于產生字節個數計數器使能信號的比特個數計數器在每個時鐘周期將比特個數加1,其中,
當所述比特個數為7時,則將比特個數計數器置0,并且當字節個數計數器對字節個數計數至0后,則比特個數計數器停止計數并將字節個數計數器使能信號發送至字節個數計數器。
可選地,字節個數計數器獲取字節個數計數器的初始值并根據所述初始值對字節個數計數,然后根據字節個數確定字節個數計數器對應的第二映射激活信號,包括:
獲取數據長度并得出字節個數計數器的初始值;
根據所述初始值對字節個數計數;
接收字節個數計數器使能信號;
根據所述字節個數和字節個數計數器使能信號將所述初始值減1,直至字節個數為0并作為第二映射激活信號。
可選地,結束字節比特個數計數器獲取結束字節比特個數計數器的初始值并根據所述初始值對結束字節比特個數計數,然后根據結束字節比特個數確定結束字節比特個數計數器對應的第三映射激活信號,包括:
獲取由主站所配置的數據邏輯終止位并得出結束比特字節個數計數器的初始值;
根據所述初始值對結束字節比特個數計數;
接收字節個數,當字節個數減至0時,將所述結束字節比特個數減1,直到結束字節比特個數為0并作為第三映射激活信號。
可選地,所述根據開始字節比特個數、字節個數和結束字節比特個數確定映射激活信號,包括:
判斷開始字節比特個數、字節個數和結束字節比特個數是否同時為0,如果是,則映射激活信號為0,然后得出偏移地址;如果否,則映射激活信號為1,然后實現邏輯地址與從站物理地址間的按位映射。
可選地,當映射激活信號為0時,得出偏移地址,包括:
接收從站物理內存起始位;
根據從站物理內存起始位計算得出偏移地址。
可選地,當映射激活信號為1時,實現邏輯地址與從站物理地址間的按位映射,包括:
接收從站物理內存起始位和偏移地址;
根據從站物理內存起始位和偏移地址實現邏輯地址與從站物理地址間的按位映射。
第二方面,本發明提供一種ethercat從站中fmmu的控制系統,包括:
開始字節比特個數計數器,用于對開始字節比特個數計數;
字節個數計數器,用于對字節個數計數;
結束字節比特個數計數器,用于對結束字節比特個數計數;
確定單元,用于根據開始字節比特個數、字節個數和結束字節比特個數確定映射激活信號,以使fmmu能夠根據映射激活信號得出偏移地址并實現邏輯地址與從站物理地址間的按位映射。
可選地,所述系統還包括:
倍頻器,用于將25mhz的系統時鐘倍頻至100mhz,以增加fmmu的映射速度。
可選地,所述開始字節比特個數計數器包括:
第一獲取單元,用于獲取由主站所配置的數據邏輯起始位并得出開始字節比特個數計數器的初始值;
第一計數單元,用于根據所述初始值對開始字節比特個數計數;
第一信號單元,用于對所述開始字節比特個數做減法,直至開始字節比特個數為0并作為第一映射激活信號。
可選地,所述系統還包括:
比特個數計數器,用于在每個時鐘周期將比特個數加1,其中,當所述比特個數為7時,則重置為0,并且當字節個數計數器對字節個數計數至0后,則停止計數并將其產生的使能信號發送至字節個數計數器。
可選地,所述字節個數計數器包括:
第二獲取單元,用于獲取數據長度并得出字節個數計數器的初始值;
第二計數單元,用于根據所述初始值對字節個數計數;
使能信號單元,用于接收字節個數計數器使能信號;
第二信號單元,用于根據所述字節個數和字節個數計數器使能信號將所述初始值減1,直至字節個數為0并作為第二映射激活信號。
可選地,所述結束字節比特個數計數器包括:
第三獲取單元,用于獲取由主站所配置的數據邏輯終止位并得出結束比特字節個數計數器的初始值;
第三計數單元,用于根據所述初始值對結束字節比特個數計數;
第三信號單元,用于接收字節個數,當字節個數減至0時,將所述結束字節比特個數減1,直到結束字節比特個數為0并作為第三映射激活信號。
可選地,所述確定單元包括:
第一接收子單元,用于接收從站物理內存起始位;
計算子單元,用于根據從站物理內存起始位計算得出偏移地址。
可選地,所述系統還包括:
第二接收單元,用于接收從站物理內存起始位和偏移地址;
映射單元,用于根據從站物理內存起始位和偏移地址實現邏輯地址與從站物理地址間的按位映射。
本發明實施例提供的ethercat從站中fmmu的控制方法及系統主要通過fmmu所配置的數據邏輯起始位、數據長度、數據邏輯終止位得出開始字節比特個數計數器的初始值、字節個數計數器的初始值、結束字節比特個數計數器的初始值。然后分別對開始字節比特個數計數、字節個數計數和結束字節比特個數計數并得出字節比特個數、字節個數和結束字節比特個數;然后由開始字節比特個數、字節個數、結束字節比特個數確定映射激活信號,進而確定所述偏移地址。本發明實施例進而通過物理內存起始地址和偏移地址即可讀寫單比特讀寫ram,實現fmmu快速讀寫操作,提高了所述控制方法fmmu讀寫操作速度。同時,本實施例所述控制方法還能夠減少硬件資源的消耗,進而提高了ethercat從站的工作效率。
附圖說明
圖1為本發明一實施例ethercat從站中fmmu的控制方法的流程圖;
圖2為本發明另一實施例ethercat從站中fmmu的控制方法的流程圖;
圖3為本發明一實施例ethercat從站中fmmu的控制系統的結構示意圖;
圖4為本發明另一實施例ethercat從站中fmmu的控制系統的結構示意圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
本發明實施例提供一種ethercat從站中fmmu的控制方法,如圖1所示,所述方法包括:
s1、獲取開始字節比特個數計數器的初始值、字節個數計數器的初始值和結束字節比特個數計數器的初始值;
s2、根據開始字節比特個數計數器的初始值、字節個數計數器的初始值和結束字節比特個數計數器的初始值分別對開始字節比特個數計數、字節個數計數和結束字節比特個數計數;
s3、根據開始字節比特個數、字節個數和結束字節比特個數確定映射激活信號,以使fmmu能夠根據映射激活信號得出偏移地址并實現邏輯地址與從站物理地址間的按位映射。
本發明實施例提供的ethercat從站中fmmu的控制方法,其中,fmmu(fieldbusmemorymanagementunit)是ethercat從站控制ip核中的核心模塊之一,用于實現主站對從站的邏輯尋址。fmmu實現邏輯地址與從站物理地址間的映射,支持按位映射。fmmu單元由主站配置,并在鏈路啟動中傳送給從站設備。每個fmmu單元需要以下配置信息:數據邏輯位起始地址、從站物理內存起始地址、位長度、表示映射方向(輸入或輸出)的類型位,從站設備內的所有數據都可以按位映射到主站邏輯地址。
具體的,本實施例所述控制方法主要通過fmmu所配置的數據邏輯起始位、數據長度、數據邏輯終止位得出開始字節比特個數計數器的初始值、字節個數計數器的初始值、結束字節比特個數計數器的初始值。然后分別對開始字節比特個數計數、字節個數計數和結束字節比特個數計數并得出字節比特個數、字節個數和結束字節比特個數;然后由開始字節比特個數、字節個數、結束字節比特個數確定映射激活信號。
其中,當開始字節比特個數為0,字節個數為0,結束字節比特個數為0時映射激活信號為0,否則,映射激活信號為1。同時,當映射激活信號為0時,通過物理內存起始位,計算偏移地址;或者,當映射激活信號為1時,對偏移地址進行移位。進而通過物理內存起始地址和偏移地址即可讀寫單比特讀寫ram,實現fmmu快速讀寫操作,提高了所述控制方法fmmu讀寫操作速度。同時,本實施例所述控制方法還能夠減少硬件資源的消耗,進而提高了ethercat從站的工作效率。
可選地,如圖2所示,開始字節比特個數計數器獲取開始字節比特個數計數器的初始值并根據所述初始值對開始字節比特個數計數,然后根據開始字節比特個數確定開始字節比特個數計數器對應的第一映射激活信號,包括:
獲取由主站所配置的數據邏輯起始位并得出開始字節比特個數計數器的初始值;
根據所述初始值對開始字節比特個數計數;
對所述開始字節比特個數做減法,直至開始字節比特個數為0并作為第一映射激活信號。
可選地,當所述開始字節比特個數為0時,用于產生字節個數計數器使能信號的比特個數計數器在每個時鐘周期將比特個數加1,其中,
當所述比特個數為7時,則將比特個數計數器置0,并且當字節個數計數器對字節個數計數至0后,則比特個數計數器停止計數并將字節個數計數器使能信號發送至字節個數計數器。
可選地,字節個數計數器獲取字節個數計數器的初始值并根據所述初始值對字節個數計數,然后根據字節個數確定字節個數計數器對應的第二映射激活信號,包括:
獲取數據長度并得出字節個數計數器的初始值;
根據所述初始值對字節個數計數;
接收字節個數計數器使能信號;
根據所述字節個數和字節個數計數器使能信號將所述初始值減1,直至字節個數為0并作為第二映射激活信號。
可選地,結束字節比特個數計數器獲取結束字節比特個數計數器的初始值并根據所述初始值對結束字節比特個數計數,然后根據結束字節比特個數確定結束字節比特個數計數器對應的第三映射激活信號,包括:
獲取由主站所配置的數據邏輯終止位并得出結束比特字節個數計數器的初始值;
根據所述初始值對結束字節比特個數計數;
接收字節個數,當字節個數減至0時,將所述結束字節比特個數減1,直到結束字節比特個數為0并作為第三映射激活信號。
具體的,本實施例中所述開始字節比特個數計數器根據所述字節比特個數產生第一映射激活信號;所述字節個數計數器根據所述字節個數產生第二映射激活信號;所述結束字節比特個數計數器根據結束字節比特個數產生第三映射激活信號;并由所述第一映射激活信號、第二映射激活信號和第三映射激活信號聯合確定映射激活信號,以使fmmu能夠根據映射激活信號得出偏移地址并實現邏輯地址與從站物理地址間的按位映射。一方面,本實施例中通過第一映射激活信號、第二映射激活信號和第三映射激活信號聯合確定映射激活信號提高了所述控制方法映射的準確性;另一方面,本實施例僅通過開始字節比特個數計數器、字節個數計數器和結束字節比特個數計數器依次獲得第一映射激活信號、第二映射激活信號和第三映射激活信號進而確定映射激活信號,利用優化的邏輯計算減少了硬件資源的消耗。
可選地,所述根據開始字節比特個數、字節個數和結束字節比特個數確定映射激活信號,包括:
判斷開始字節比特個數、字節個數和結束字節比特個數是否同時為0,如果是,則映射激活信號為0,然后得出偏移地址;如果否,則映射激活信號為1,然后實現邏輯地址與從站物理地址間的按位映射。
或者,判斷第一映射激活信號、第二映射激活信號和第三映射激活信號是否同時為0,如果是,則映射激活信號為0,然后得出偏移地址;如果否,則映射激活信號為1,然后實現邏輯地址與從站物理地址間的按位映射。
可選地,當映射激活信號為0時,得出偏移地址,包括:
接收從站物理內存起始位;
根據從站物理內存起始位計算得出偏移地址。
可選地,當映射激活信號為1時,實現邏輯地址與從站物理地址間的按位映射,包括:
接收從站物理內存起始位和偏移地址;
根據從站物理內存起始位和偏移地址實現邏輯地址與從站物理地址間的按位映射。
本發明實施例還提供一種ethercat從站中fmmu的控制系統,如圖3所示,所述系統包括:
開始字節比特個數計數器,用于對開始字節比特個數計數;
字節個數計數器,用于對字節個數計數;
結束字節比特個數計數器,用于對結束字節比特個數計數;
確定單元,用于根據開始字節比特個數、字節個數和結束字節比特個數確定映射激活信號,以使fmmu能夠根據映射激活信號得出偏移地址并實現邏輯地址與從站物理地址間的按位映射。
本發明實施例提供的ethercat從站中fmmu的控制系統,僅通過開始字節比特個數計數器、字節個數計數器、結束字節比特個數計數器和確定單元實現了映射激活信號的確定;然而由映射激活信號得出偏移地址,進而通過物理內存起始地址和偏移地址即可讀寫單比特讀寫ram,實現fmmu快速讀寫操作;其中,所述系統能夠通過合理的邏輯運算和少量的硬件單元實現fmmu快速讀寫操作,減少硬件資源的消耗,以及生產的成本。
可選地,如圖4所示,所述系統還包括:
倍頻器,用于將25mhz的系統時鐘倍頻至100mhz,以增加fmmu的映射速度。
具體的,倍頻器用于將25mhz的系統時鐘倍頻到100mhz,幀數據進入從站fmmu的數據率為100mb/s,時鐘為25m,半字節,進而實現按比特映射(bitwise);并且,將25mhz的系統時鐘倍頻到100mhz,還能夠增加映射速度,進一步提高所述fmmu讀寫操作的速度。
可選地,所述開始字節比特個數計數器包括:
第一獲取單元,用于獲取由主站所配置的數據邏輯起始位并得出開始字節比特個數計數器的初始值;
第一計數單元,用于根據所述初始值對開始字節比特個數計數;
第一信號單元,用于對所述開始字節比特個數做減法,直至開始字節比特個數為0并作為第一映射激活信號。
可選地,所述系統還包括:
比特個數計數器,用于在每個時鐘周期將比特個數加1,其中,當所述比特個數為7時,則重置為0,并且當字節個數計數器對字節個數計數至0后,則停止計數并將其產生的使能信號發送至字節個數計數器。
可選地,所述字節個數計數器包括:
第二獲取單元,用于獲取數據長度并得出字節個數計數器的初始值;
第二計數單元,用于根據所述初始值對字節個數計數;
使能信號單元,用于接收字節個數計數器使能信號;
第二信號單元,用于根據所述字節個數和字節個數計數器使能信號將所述初始值減1,直至字節個數為0并作為第二映射激活信號。
可選地,所述結束字節比特個數計數器包括:
第三獲取單元,用于獲取由主站所配置的數據邏輯終止位并得出結束比特字節個數計數器的初始值;
第三計數單元,用于根據所述初始值對結束字節比特個數計數;
第三信號單元,用于接收字節個數,當字節個數減至0時,將所述結束字節比特個數減1,直到結束字節比特個數為0并作為第三映射激活信號。
可選地,所述確定單元包括:
第一接收子單元,用于接收從站物理內存起始位;
計算子單元,用于根據從站物理內存起始位計算得出偏移地址。
可選地,所述系統還包括:
第二接收單元,用于接收從站物理內存起始位和偏移地址;
映射單元,用于根據從站物理內存起始位和偏移地址實現邏輯地址與從站物理地址間的按位映射。
本實施例的裝置,可以用于執行上述方法實施例的技術方案,其實現原理和技術效果類似,此處不再贅述。
本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(read-onlymemory,rom)或隨機存儲記憶體(randomaccessmemory,ram)等。
以上所述,僅為本發明的具體實施方式,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應該以權利要求的保護范圍為準。