專利名稱:控制物理層芯片的方法及控制電路的制作方法
技術領域:
本發明涉及通信技術,尤其涉及一種控制物理層芯片的方法及控制電路。
背景技術:
現有大型網絡設備通常采用管理數據輸入輸出(Management Datalnput/Output ; 簡稱為MDI0)總線對物理層(Physical Layer ;簡稱為PHY)芯片的通用輸入/輸出 (General Purpose Input/Output ;簡稱為GPI0)引腳進行控制,以實現對PHY芯片的一些外圍器件(例如發光二極管)的控制。MDIO總線由IEEE通過以太網標準IEEE 802. 3的若干條款加以定義。該MDIO總線將管理器件(例如微處理器)與PHY芯片相連接,從而使管理器件控制PHY芯片并從PHY芯片收集狀態信息等。現有基于MDIO總線控制PHY芯片GPIO引腳的方案有2種,分別為基于媒體訪問控制(Media Access Control ;簡稱為MAC)芯片的方案和基于可編程邏輯器件的方案。圖 1為現有基于MAC芯片管理PHY芯片GPIO引腳的電路示意圖。圖2為現有基于現場可編程門陣歹丨J (FieldProgrammable Gate Array ;簡稱為FPGA)管理PHY芯片GPIO引腳的電路示意圖。結合圖1和圖2,中央處理單元(Central Processing Unit ;簡稱為CPU)通過高速總線(例如PCIE等)訪問MAC芯片或FPGA的內部寄存器來設定MAC芯片或FPGA內部的MDIO控制器,從而控制MAC芯片或FPGA來設定PHY芯片當中的寄存器進而實現對PHY 的GPIO引腳的控制。其中,MDIO控制器通過MDIO總線與PHY芯片中的MDIO接收控制器連接,由MDIO接收控制器設定PHY芯片內的寄存器。在實現本發明的過程中,發明人發現現有技術至少存在以下不足基于MAC芯片實現的方案通常受MAC芯片的限制,無法用一個MDIO控制器同時控制多個PHY芯片。基于 FPGA實現的方案雖然可以用一個MDIO控制器同時控制多個PHY芯片,但是對各個PHY芯片的控制過程均需要CPU設定相應寄存器并控制訪問時序,因此,當對多個PHY芯片頻繁進行控制時,需要CPU不停的工作,將會加重CPU的負擔。
發明內容
本發明提供一種控制物理層芯片的方法及控制電路,用以實現用同一個MDIO控制器對多個PHY芯片的管理,并降低CPU的負擔。本發明提供一種控制電路,包括定時時鐘模塊、第一寄存器模塊、第一狀態鎖存模塊、狀態輪轉模塊和管理數據輸入輸出MDIO控制器;所述定時時鐘模塊,用于產生時鐘信號;所述第一寄存器模塊,用于存儲中央處理單元CPU寫入的控制物理層PHY芯片的引腳狀態的控制命令字;所述第一狀態鎖存模塊,與所述第一寄存器模塊連接,用于在所述控制命令字發生變化時鎖存變化信息;所述狀態輪轉模塊,與所述第一狀態鎖存模塊和所述定時時鐘模塊連接,用于根據所述定時時鐘模塊提供的時鐘信號和所述第一狀態鎖存模塊提供的變化信息,對所述第一寄存器模塊進行讀操作,并根據讀取結果向所述MDIO控制器提供第一地址信息和控制數據信息;所述第一地址信息為需要進行自動控制的PHY芯片的引腳的地址信息;所述MDIO控制器,與所述狀態輪轉模塊連接,用于接收所述狀態輪轉模塊提供的所述第一地址信息和所述控制數據信息,并按照預設的周期將所述控制數據信息寫入所述第一地址信息對應的PHY芯片的引腳的寄存器,以對所述第一地址信息對應的PHY芯片的引腳的狀態進行自動控制。本發明提供一種本發明提供的任一控制電路實現的控制物理層芯片的方法,包括中央處理單元CPU向第一寄存器模塊寫入控制物理層PHY芯片的引腳狀態的控制命令字;第一狀態鎖存模塊根據所述控制命令字產生變化信息,同時鎖存所述變化信息并將所述變化信息提供給狀態輪轉模塊;所述狀態輪轉模塊根據所述變化信息,對所述第一寄存器模塊進行讀操作,并根據讀取結果向管理數據輸入輸出MDIO控制器提供第一地址信息和控制數據信息;所述第一地址信息為需要進行自動控制的PHY芯片的引腳的地址信息;所述MDIO控制器接收所述第一地址信息和所述控制數據信息,并按照預設的周期將所述控制數據信息寫入所述第一地址信息對應的PHY芯片的引腳的寄存器,以對所述第一地址信息對應的PHY芯片的引腳的狀態進行自動控制。本發明的控制物理層芯片的方法及控制電路,CPU將控制命令字寫入第一寄存器模塊,第一狀態鎖存模塊會產生變化信息,狀態輪轉模塊根據變化信息對第一寄存器模塊進行讀操作,并根據讀取結果向MDIO控制器提供CPU要自動控制的PHY芯片的引腳的地址信息和控制數據信息,MDIO控制器自動根據預設周期將控制數據信息寫入相應PHY芯片的引腳的寄存器中,以實現對PHY芯片的引腳狀態的自動控制。本發明通過將自動控制時序和操作流程內置于控制電路,CPU只需執行寫入控制命令字的操作,在實現對多個PHY芯片進行控制的同時,降低了 CPU的負擔。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1為現有基于MAC芯片管理PHY芯片GPIO引腳的電路示意圖;圖2為現有基于FPGA管理PHY芯片GPIO引腳的電路示意圖;圖3為本發明實施例一提供的控制電路的結構示意圖;圖4為本發明實施例二提供的控制電路的結構示意圖;圖5A為本發明實施例三提供的控制電路的結構示意圖;圖5B為本發明實施例三提供的狀態輪轉模塊的狀態轉換關系圖;圖5C為本發明實施例三提供的仲裁機制模塊的狀態轉換關系圖5D為本發明實施例三提供的仲裁機制模塊對各操作進行仲裁的時序圖;圖6為本發明實施例四提供的控制PHY芯片的方法的流程圖;圖7為本發明實施例五提供的控制PHY芯片的方法的流程圖。
具體實施例方式為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。圖3為本發明實施例一提供的控制電路的結構示意圖。如圖3所示,本實施例的控制電路包括定時時鐘模塊31、第一寄存器模塊32、第一狀態鎖存模塊33、狀態輪轉模塊 34和MDIO控制器;35。其中,定時時鐘模塊31,用于產生時鐘信號,該時鐘信號是整個控制電路正常工作的時鐘基準。第一寄存器模塊32,用于存儲CPU寫入的控制PHY芯片的引腳狀態的控制命令字。第一寄存器模塊32具體為一寄存器。第一狀態鎖存模塊33,與第一寄存器模塊32 連接,用于在控制命令字發生變化時鎖存變化信息。第一狀態鎖存模塊33具體為一鎖存器。狀態輪轉模塊34,與第一狀態鎖存模塊33和定時時鐘模塊31連接,用于根據定時時鐘模塊31提供的時鐘信號和第一狀態鎖存模塊33提供的變化信息,對第一寄存器模塊32進行讀操作,并根據讀取結果向MDIO控制器35提供第一地址信息和控制數據信息;該第一地址信息為需要進行自動控制的PHY芯片的引腳的地址信息。MDIO控制器35,與狀態輪轉模塊34和PHY芯片連接,用于接收狀態輪轉模塊34提供的第一地址信息和控制數據信息,并按照預設的周期將控制數據信息寫入第一地址信息對應的PHY芯片的引腳的寄存器,以對第一地址信息對應的PHY芯片的引腳的狀態進行自動控制。其中,定時時鐘模塊31的定時頻率是可以設置的,例如該定時時鐘模塊31的定時頻率可以為3赫茲(Hz),則定時時鐘模塊31具體利用計數器固定產生3Hz的脈沖定時信號給狀態輪轉模塊34,以作為狀態輪轉模塊34自動操作PHY芯片的引腳的時間基準。其中,第一寄存器模塊32主要用于設置MDIO控制器35所需的一些參數,例如對哪些PHY芯片的哪些引腳進行自動控制等。第一寄存器模塊32由CPU設置。具體的,該第一寄存器模塊32對應于主機的一個地址位置,CPU具體通過CPU側的總線接口對該地址位置進行讀寫操作,即可實現對該第一寄存器模塊32的訪問。其中,CPU側的總線接口可以是CPU的本地總線(local bus)。第一寄存器模塊32的大小與所要管理的PHY芯片的數量和每個PHY芯片所包含的引腳的數量的乘積相同。例如假設共有4個PHY芯片,每個PHY 芯片均包括6個引腳,則第一寄存器模塊32為一 M比特的寄存器即可。這樣當根據一定的順序對PHY芯片的引腳與第一寄存器模塊32的各比特位進行對應后,每個比特位與一個引腳的地址信息相對應,在狀態輪轉模塊34中預先存儲有每個比特位與引腳的地址信息的對應關系。另外,在本實施例以及后續各實施例中,控制數據信息主要是指0和1,用于控制 PHY芯片的引腳的輸出狀態。通常,當控制數據信息為1時,PHY芯片的引腳將輸出高電平, 對應的發光二極管熄滅;當控制數據信息為0時,PHY芯片的引腳將輸出低電平,對應的發光二極管被點亮。基于上述,本實施例控制電路的工作原理具體包括定時時鐘模塊31向狀態輪轉模塊34提供時鐘基準。當CPU需要控制某個引腳的狀態時,執行寫第一寄存器模塊32的操作,將與該引腳對應的比特位置為1 ;此時,第一狀態鎖存模塊33將會產生變化信息,并提供給狀態輪轉模塊34 ;狀態輪轉模塊34讀第一寄存器模塊32,當讀取到值為1的比特位時,獲知需要對該比特位對應的PHY芯片的引腳進行自動控制;例如假設獲知需要對第1 個PHY芯片的第2引腳進行自動控制。狀態輪轉模塊34將第1個PHY芯片的第2引腳的地址信息(即第一地址信息)和控制數據信息同時提供給MDIO控制器35 ;MDIO控制器35 將會按照預設周期將控制數據信息寫入第1個PHY芯片的第2引腳的寄存器中,即MDIO控制器35將自動按照固定的時間間隔不停的對第1個PHY芯片的第2引腳的寄存器交替寫入0和1,以實現對該引腳狀態的自動控制。由上述可見,在實現對PHY芯片的引腳狀態自動控制的同時,CPU僅需執行一次寫第一寄存器模塊的操作即可,不需要發動寫每個引腳的寫操作,即不需要執行交替寫入0 和1的操作,極大的減輕了 CPU的負擔。本實施例的控制電路,通過控制第一寄存器模塊的大小可以實現對多個PHY芯片的管理,而通過第一寄存器模塊、狀態輪轉模塊和MDIO控制器模塊等可以自動完成對PHY 芯片的引腳狀態的控制,無需CPU執行對每個引腳進行控制時的寫操作,極大的減輕了 CPU 的負擔。圖4為本發明實施例二提供的控制電路的結構示意圖。本實施例基于實施例一實現,如圖4所示,本實施例的控制電路還包括第二寄存器模塊41。第二寄存器模塊41,用于存儲PHY芯片的引腳對應的默認狀態值。具體的,每個 PHY芯片的引腳都對應一個默認狀態;當PHY芯片處于初始狀態時,各引腳都會處于默認狀態;當CPU不需要對引腳進行自動控制之后,引腳也需要回到默認狀態。故本實施例通過第二寄存器模塊41來存儲與PHY芯片的引腳的默認狀態對應的默認狀態值;例如當該默認狀態值為0時,各引腳的默認狀態為輸出低電平,對應的發光二極管被點亮;當該默認狀態值為1時,各引腳的默認狀態為輸出高電平,對應的發光二極管熄滅。其中,當CPU不需要對PHY芯片的引腳狀態進行自動控制時,需要向PHY芯片的引腳的寄存器中寫入默認狀態值,以使PHY芯片的引腳恢復默認狀態。具體的,狀態輪轉模塊 34還用于根據變化信息,對第二寄存器模塊41進行讀操作以讀取默認狀態值,并向MDIO控制器35提供默認狀態值和第二地址信息;所述第二地址信息為需要回寫默認狀態值的PHY 芯片的引腳的地址信息。MDIO控制器35接收狀態輪轉模塊34提供的默認狀態值和第二地址信息,并將默認狀態值寫入第二地址信息對應的PHY芯片的引腳的寄存器。其中,MDIO控制器35僅需執行一次將默認狀態值寫入第二地址信息對應的寄存器的操作,以減輕MDIO 控制器35的負擔。 進一步,第一狀態鎖存模塊33是與第一寄存器模塊32相同的寄存器,則第一狀態鎖存模塊33具體用于將第一寄存器模塊32的各比特位分別與第一狀態鎖存模塊33的當前鎖存值的各比特位進行異或運算,獲取變化信息。以具有24比特的第一寄存器模塊32 為例,假設第一寄存器模塊32的第2比特位被寫入1,其他比特位被寫入0,而第一狀態鎖存模塊33的所有比特位均為0,則將第一寄存器模塊32的第2比特位與其第2比特位進行異或運算后產生值為1的變化信息,且此時第一狀態鎖存模塊33的第2比特位將變為1 ; 接著,假設第一寄存器模塊32的第2比特位被重新寫入0,其他比特位仍被寫入0,此時,由于第一狀態鎖存模塊33的第2比特位為1,則進行異或運算后仍將產生值為1的變化信息, 且此時第一狀態鎖存模塊33的第2比特位將鎖存為0。由上述可見,第一狀態鎖存模塊33 可以將第一寄存器模塊32的變化鎖存并提供給狀態輪轉模塊34。基于上述第一狀態鎖存模塊33的工作原理,狀態輪轉模塊34具體用于在接收到定時時鐘模塊31提供的時鐘信號后接收變化信息,并在變化信息為1時,對第一寄存器模塊32進行讀操作;當讀取到值為1的比特位時,向MDIO控制器35提供與該值為1的比特位對應的第一地址信息和控制數據信息,并在接收到MDIO控制器35返回的處理結束信息時,繼續讀取第一寄存器模塊32的下一比特位;在讀取第一寄存器模塊32的過程中,當讀取到值由1變為0的比特位時,記錄該由1變為0的比特位,繼續讀取下一個比特位直到將第一寄存器模塊32中所有值為1的比特位都進行處理后,在根據讀取到值由1變為0的比特位的信息對第二寄存器模塊41進行讀操作以讀取默認狀態值,并將默認狀態值和該值由1變為0的比特位對應的第二地址信息提供給MDIO控制器35,并在接收到MDIO控制器 35返回的處理結束信息時,結束此次讀取第一寄存器模塊32的操作。而MDIO控制器35在將控制數據信息寫入第一地址信息對應的PHY芯片的引腳的寄存器后,或者在將默認狀態值寫入第二地址信息對應的PHY芯片的引腳的寄存器后,向狀態輪轉模塊34返回處理結束信息,以便于狀態輪轉模塊34進行后續操作。狀態輪轉模塊34讀取第一狀態鎖存模塊33的一種具體實施方式
包括以下步驟步驟341、狀態輪轉模塊34在接收到變化信息時,首先讀取第一狀態鎖存模塊33 的第一比特位。步驟342、狀態輪轉模塊34判斷該比特位的值是否為1 ;如果判斷結果為是,執行步驟343 ;如果判斷結果為否,執行步驟345。步驟343、狀態輪轉模塊34向MDIO控制器35提供與該值為1的比特位對應的第一地址信息和控制數據信息。步驟344、MDIO控制器35將控制數據信息按照固定的時間間隔寫入第一地址信息對應的PHY芯片的引腳的寄存器,并向狀態輪轉模塊34返回處理結束信息,并執行步驟 347。步驟345、狀態輪轉模塊34判斷該比特位的值是否由1變為0,如果判斷結果為是,執行步驟;346 ;反之,執行步驟347。具體的,狀態輪轉模塊34可以采用2比特(bit)的移位寄存器來存儲第一寄存器模塊32中的每個比特位前后兩次的值。這樣當該2比特的移位寄存器中存儲的值為01時, 表示第一寄存器模塊32中的該比特位的值由1變成0 ;當該2比特的移位寄存器中存儲的值是10時,表示該第一寄存器模塊32中該比特位的值由0變成1。步驟346、狀態輪轉模塊34記錄該值由1變為0的比特位,并執行步驟347。步驟347、狀態輪轉模塊34判斷第一寄存器模塊32是否被讀取結束;如果判斷結果為否,執行步驟348 ;如果判斷結果為是,執行步驟349。步驟348、狀態輪轉模塊34讀取第一寄存器模塊32的下一比特位,并返回執行步 If 342 ο
步驟349、狀態輪轉模塊34對第二寄存器模塊41進行讀操作以讀取默認狀態值, 并將默認狀態值和記錄的由1變為0的比特位對應的第二地址信息提供給MDIO控制器35, 并執行步驟350。步驟350、MDI0控制器35將默認狀態值寫入第二地址信息對應的PHY芯片的引腳的寄存器,并向狀態輪轉模塊34返回處理結束信息,狀態輪轉模塊34接收處理結束信息, 并結束此次讀取第一狀態鎖存模塊33的操作。由上述可知,本實施例的控制電路根據CPU寫入第一寄存器模塊中的控制命令字,可以自動完成對PHY芯片的引腳狀態的管理,減輕了 CPU的負擔。圖5A為本發明實施例三提供的控制電路的結構示意圖。本實施例基于實施例二實現,如圖5A所示,本實施例的控制電路還包括第三寄存器模塊51、第二狀態鎖存模塊 52、第四寄存器模塊53、第三狀態鎖存模塊M、第五寄存器模塊55和仲裁機制模塊56。其中,仲裁機制模塊56與狀態輪轉模塊34、第二狀態鎖存模塊52、第三狀態鎖存模塊M、第三寄存器模塊51、第四寄存器模塊53、第五寄存器模塊55和MDIO控制器35連接。通常,CPU除了對PHY芯片的引腳狀態進行控制之外,還可以對PHY芯片進行讀寫操作,而由于CPU每次讀寫的PHY芯片和每次讀寫的內容均不同,因此,對于讀寫PHY芯片的操作需要由CPU直接操作。故本實施例的控制電路通過設置第三寄存器模塊51、第四寄存器模塊53和第五寄存器模塊55來輔助CPU完成對PHY芯片的讀寫操作。具體的,第三寄存器模塊51,用于存儲CPU寫入的第三地址信息和操作類型;所述第三地址信息為CPU直接讀寫PHY芯片時要讀寫的PHY芯片對應的地址信息;更為具體的來說,該第三地址信息標識CPU所要讀寫的PHY芯片上的寄存器;操作類型用以表明CPU是要直接讀PHY芯片還是直接寫PHY芯片,在本實施例中,操作類型包括寫操作和讀操作。第二狀態鎖存模塊52,與第三寄存器模塊51連接,用于鎖存第三寄存器模塊51的變化信息, 并根據變化信息向仲裁機制模塊56發送授權請求信息。第四寄存器模塊53,用于存儲CPU寫入的寫內容,寫內容是指在操作類型為寫操作時,CPU寫入第三地址信息對應的PHY芯片的數據信息。第三狀態鎖存模塊54,與第四寄存器模塊53連接,用于鎖存第四寄存器模塊53的變化信息,并根據變化信息向仲裁機制模塊56發送授權請求信息。第五寄存器模塊55,用于存儲寫內容,以供CPU讀取;所述寫內容是指在操作類型為讀操作時,由MDIO控制器35根據第三地址信息讀第三地址信息對應的PHY芯片獲取的數據信息。仲裁機制模塊56,用于接收狀態輪轉模塊34、第二狀態鎖存模塊52和第三狀態鎖存模塊M其中任意一個或多個發送的授權請求信息,并根據預先設定的訪問控制優先級和接收到的授權請求信息,控制將MDIO控制器35授權給狀態輪轉模塊34、第三寄存器模塊 51、第四寄存器模塊53和第五寄存器模塊55其中任意一個使用。當MDIO控制器35被仲裁機制模塊56授權給狀態輪轉模塊34時,MDIO控制器35 將根據實施例一或實施例二所述的操作進行動作。除此之外,MDIO控制器35還用于在被仲裁機制模塊56依次授權給第三寄存器模塊51和第四寄存器模塊53時,根據仲裁機制模塊56提供的第三寄存器模塊51中的第三地址信息和第四寄存器模塊53中的寫內容,對第三地址信息對應的PHY芯片進行寫操作,即將寫內容寫入第三地址信息對應的PHY芯片的寄存器中;并且還用于在被仲裁機制模塊56依次授權給第三寄存器模塊51和第五寄存器模塊55時,根據仲裁機制模塊56提供的第三寄存器模塊51中的第三地址信息,對第三地址信息對應的PHY芯片進行讀操作,并將讀取到的數據信息寫入第五寄存器模塊55中,以供CPU直接從第五寄存器模塊55中獲取數據信息實現對第三地址信息對應的PHY芯片的讀操作。在此說明,CPU直接讀寫PHY芯片的操作(簡稱為直接訪問操作)和CPU對PHY芯片的引腳進行控制的操作(簡稱為自動控制操作)可以同時發出,而為支持CPU同時進行直接訪問操作和自動控制操作,本實施例的控制電路設置仲裁機制模塊56,以對上述兩種操作進行仲裁。其中,在本實施例中設置直接訪問操作的優先級高于自動控制操作的優先級。進一步,除了直接訪問操作和自動控制操作之外,CPU還需要在結束自動控制操作之外將PHY芯片的引腳回寫為默認狀態,即CPU還會執行回寫操作。本實施例設置直接訪問操作的優先級高于自動控制操作的優先級,自動控制操作的優先級高于回寫操作的優先級。根據實際情況來說,仲裁機制模塊56可能會同時接收到CPU執行直接訪問操作指令和執行自動控制操作的指令,此時,仲裁機制模塊56將會優先將MDIO控制器35授權給直接訪問操作使用。該授權操作具體是指仲裁機制模塊56控制第三寄存器模塊51、第四寄存器模塊53和第五寄存器模塊55與MDIO控制器35連接,也就是說仲裁機制模塊56讀取第三寄存器模塊51向MDIO控制器35提供直接訪問的PHY芯片的地址,并讀取第四寄存器模塊53向MDIO控制器35提供寫內容,或者將MDIO控制器35讀取的數據信息寫入第五寄存器模塊55。當直接訪問操作結束后,仲裁機制模塊56再將MDIO控制器35授權給自動控制操作。該授權操作具體是指仲裁機制模塊56控制狀態輪轉模塊34與MDIO控制器35連接,也就是說仲裁機制模塊56將狀態輪轉模塊34提供的第一地址信息和控制數據信息提供給MDIO控制器35,以使MDIO控制器35完成自動控制操作。另外,仲裁機制模塊56還可能同時接收到CPU執行直接訪問操作指令和執行回寫操作的指令,此時,仲裁機制模塊56也將會優先將MDIO控制器35授權給直接訪問操作使用,在直接訪問操作結束后,再將MDIO控制器35授權給回寫操作。進一步,本實施例將分別說明不同操作下控制電路的具體工作原理。當CPU執行自動控制操作時,在第一寄存器模塊32中寫入控制命令字,以指示具體對哪個PHY芯片的哪個引腳進行自動控制。第一狀態鎖存模塊33采用實施例二中提供的方式產生變化信息,并提供給狀態輪轉模塊34。在本實施例中,狀態輪轉模塊34將具有以下工作狀態空閑狀態(ST_IDLE)、端口設定查詢狀態(ST_P0RTSEL)、授權請求狀態(ST_AUT0REQ)和等待狀態(ST_WAIT)。其中, 各狀態之間的轉換關系如圖5B所示。結合圖5B,該狀態輪轉模塊34的工作原理具體包括 在復位時,狀態輪轉模塊34處在ST_IDLE狀態,當時鐘信號開始時,進入ST_P0RTSEL狀態, 查詢第一寄存器模塊32以輪循查找各PHY芯片的引腳是否有自動控制操作被設定;若查詢到需要進行自動控制操作的引腳時,轉入ST_AUT0REQ狀態,即狀態輪轉模塊34向仲裁機制模塊56發出授權請求信息,等待仲裁機制模塊56返回授權信息;當接收到仲裁機制模塊 56返回的授權信息時,狀態輪轉模塊34向MDIO控制器35提供第一地址信息和控制數據信息,并轉入ST_WAIT狀態,等待接收MDIO控制器35完成一次訪問操作(該訪問操作包括地址周期與數據周期兩個子操作)返回的處理結束信息,并在接收到MDIO控制器返回的處理結束信息后進入ST_P0RTSEL,輪詢查找下一個引腳。當查詢第一寄存器模塊32結束時,轉入ST_IDLE狀態。其中,MDIO控制器用于控制PHY芯片的控制幀的格式有兩種,一種是IEEE802. 3 規范ClauSe22章節所規定的幀格式;一種是IEEE802. 3規范ClauSe45章節所規定的幀格式。在本發明各實施例中,MDIO控制幀采用IEEE802. 3規范ClauSe45章節所規定的幀格式。這樣當每次對PHY芯片的寄存器進行讀或寫操作時,就必須通過2次訪問來實現,第1 次設定要訪問的地址,第2次發出讀或寫的幀。基于此,仲裁機制模塊56把這兩組命令當做一個最小單元來處理,設定地址與數據讀寫命令之間不允許插入其他操作,以避免出現數據寫錯位置,或從錯誤的位置讀取數據的問題。如圖5C所示,仲裁機制模塊56授權給狀態輪轉模塊34的狀態包括自動控制點燈狀態(ST_ARB_AUT0_LED)和MDIO操作結束等待狀態(ST_ARB_WAIT)。當CPU執行直接訪問操作時,CPU通過CPU側總線接口(例如Local Bus)向第三寄存器模塊51寫入要訪問的PHY芯片的寄存器的地址信息,即第三地址信息,并寫明將要進行的是讀操作還是寫操作。此時,第二狀態鎖存模塊52采用類似第一狀態鎖存模塊33 的方法所存變化信息,并根據變化信息向仲裁機制模塊56發送授權請求信息。由于直接訪問操作的優先級較高,故仲裁機制模塊56將優先處理直接訪問操作。此時,仲裁機制模塊 56將阻斷MDIO控制器35與狀態輪轉模塊34的連接,并將MDIO控制器35與第三寄存器模塊51建立連接。此時,仲裁機制模塊56讀取第三寄存器模塊51獲取第三地址信息,并提供給MDIO控制器35,MDIO控制器35根據第三地址信息進行地址設定操作。如果CPU寫入第三寄存器模塊51中的操作類型是寫操作,CPU還會將要寫入的內容(即寫內容)寫入第四寄存器模塊53中,此時,第三狀態鎖存模塊M將鎖存第四寄存器模塊53的產生變化信息,并向仲裁機制模塊56發送授權請求信息;仲裁機制模塊56在接收到授權請求信息后將MDIO控制器35與第四寄存器模塊53建立連接,即仲裁機制模塊56讀取第四寄存器模塊53獲取寫內容,并將要寫內容提供給MDIO控制器35,MDIO控制器35執行寫操作,即將接收到的寫內容寫入到第三地址信息對應的PHY芯片的寄存器中。如果CPU寫入第三寄存器模塊51的操作類型是讀操作,仲裁機制模塊56還要將MDIO控制器35與第五寄存器模塊陽建立連接,即仲裁機制模塊56控制MDIO控制器35讀取第三地址對應的PHY芯片的寄存器,并將MDIO控制器35讀取到的數據信息存儲到第五寄存器模塊55中;然后,CPU通過CPU側的總線接口讀取第五寄存器模塊55,以實現對PHY芯片的寄存器的讀操作。如圖5C所示,仲裁機制模塊56授權給自動控制操作(亦即授權給CPU)的狀態包括地址周期命令狀態(ST_ARB_CPU_ADR),這個狀態表明CPU直接控制PHY芯片內部的寄存器;地址幀等待狀態(ST_ARB_ADR_WAIT),用于使CPU等待MDIO控制器發送地址幀結束; 讀寫命令到來等待狀態(ST_ARB_CPU_DATA_WAIT),用于等待CPU發送后續的讀寫命令;數據信息發送狀態(ST_ARB_CPU_DATA),用于標識將CPU的寫命令中的數據信息發送給MDIO 控制器35,以及MDIO操作結束等待狀態(ST_ARB_WAIT)。在上述各狀態中,MDIO控制器35 的總線都是授權給CPU使用的。當CPU執行回寫操作時,CPU會通過CPU側的總線接口再次訪問第一寄存器模塊32,并將要回寫的PHY芯片的引腳對應的比特位置為0。由于該比特位的值由1變為0,故第一狀態鎖存模塊33會鎖存到變化信息,而狀態輪轉模塊34也會查詢到值由1變為0的比特位,獲取第二地址信息,并讀取第二寄存器模塊41,獲取默認狀態值;然后,向仲裁機制模塊56發出授權請求信息;仲裁機制模塊56根據預先設定的訪問優先級確定是否將MDIO 控制器35授權給回寫操作。如果仲裁機制模塊56將MDIO控制器35授權給回寫操作時, 向狀態輪轉模塊34發出授權信息;狀態輪轉模塊34將第二地址信息和默認狀態值通過仲裁機制模塊56發送給MDIO控制器35 ;MDIO控制器35將默認狀態值寫入第二地址信息對應的寄存器中,以實現對引腳狀態的回寫操作。如圖5C所示,仲裁機制模塊56授權給回寫操作的狀態包括回寫操作狀態(ST_ ARB_REL)和MDIO操作結束等待狀態(ST_ARB_WAIT)。由圖5C可知,當ST_ARB_WAIT狀態結束時,表明相應操作完成,此時仲裁機制模塊 56將回到空閑狀態(ST_ARB_IDLE)。進一步,圖5D所示為本實施例的仲裁機制模塊56對直接訪問操作、自動控制操作和回寫操作進行仲裁授權的時序,其中涉及的操作包括CPU訪問開始脈沖、CPU訪問的相關信息、CPU訪問的相關信息鎖存、CPU忙標志、自動控制請求、回寫請求、CPU訪問請求、CPU 訪問授權、自動控制授權、回寫授權以及MDIO幀結束等。圖5D所示的時序進一步說明本實施例仲裁機制模塊56的仲裁授權原理。其中,上述授權請求信息可以為一脈沖信號,授權信息也可以為一脈沖信號。其中,上述各實施例的控制電路可以設置于FPGA或復雜可編程邏輯器件 (Complex Programmable Logic Device ;簡稱為CPLD)上,并通過 CPU 側總線接口與 CPU 連接,而通過MDIO總線與PHY芯片連接。下面以長度為24位的第一寄存器模塊對4個PHY芯片進行管理為例,說明本實施例的控制電路的管理效果。其中,在最壞情況下,即需要同時對24個引腳進行自動控制的情況,其中假設對每個引腳進行控制時的寫地址和寫數據操作共需要128個時鐘,再加上通道切換預計需要的4個時鐘。假設MDIO控制器工作在最慢速度0. 5MHz時,即工作周期為2us,則對24個引腳進行自動控制一共需要花費的時間為2us*132*24 6. 4ms。同時假設自動控制的頻率為3Hz (即定時時鐘模塊的頻率為3Hz)時,每個定時時間到來時的間隔為166ms。因此自動控制操作占用的MDIO接口帶寬約為6. 4/166 4%,即還有96%的帶寬可以用于CPU直接訪問使用。由上述可見,本發明各實施例的控制電路可在占用MDIO總線很小帶寬的情況下實現了對多個PHY芯片的引腳狀態的自動管理,同時,由于無需CPU對整個控制流程進行控制操作,極大的減輕了 CPU負擔。圖6為本發明實施例四提供的控制PHY芯片的方法的流程圖。本實施例的方法基于上述實施例提供的控制電路實現,如圖6所示,本實施例的方法包括步驟601、CPU向第一寄存器模塊寫入控制PHY芯片的引腳狀態的控制命令字。 CPU通過CPU側總線接口訪問第一寄存器模塊,在第一存器模塊中寫入需要進行自動控制的PHY芯片的引腳的信息。步驟602、第一狀態鎖存模塊根據控制命令字產生變化信息,同時鎖存變化信息并將變化信息提供給狀態輪轉模塊。
具體的,第一狀態鎖存模塊將第一寄存器模塊的各比特位分別與第一狀態鎖存模塊的當前鎖存值的各比特位進行異或運算,獲取變化信息。步驟603、狀態輪轉模塊根據變化信息,對第一寄存器模塊進行讀操作,并根據讀取結果向MDIO控制器提供第一地址信息和控制數據信息。其中,第一地址信息為CPU需要進行自動控制的PHY芯片的引腳的地址信息。具體的,狀態輪轉模塊在接收到時鐘信號后,接收變化信息;并在判斷出變化信息為1時,讀第一寄存器模塊。當讀取到值為1的比特位時,向MDIO控制器提供與值為1的比特位對應的PHY芯片的引腳的地址信息和控制數據信息。控制數據信息通常為0和1。步驟604、MDIO控制器接收第一地址信息和控制數據信息,并按照預設的周期將控制數據信息寫入第一地址信息對應的PHY芯片的引腳的寄存器,以對第一地址信息對應的PHY芯片的引腳的狀態進行自動控制。本實施例的控制PHY芯片的方法可采用上述實施例提供的控制電路實現,其具體實現過程可參見上述各實施例對控制電路的工作原理的描述,在此不再贅述。本實施例采用控制電路實現對PHY芯片引腳的自動控制,無需CPU不停的執行寫0和1的操作,極大的減輕了 CPU的負擔,且提高了自動控制的效率,另外,本實施例采用控制電路還可以同時對多個PHY芯片進行控制。進一步,在上述實施例中,視狀態輪轉模塊讀取第一寄存器模塊的結果的不同,還包括狀態輪轉模塊根據讀取結果,對第二寄存器模塊進行讀操作以讀取默認狀態值,并向 MDIO控制器提供默認狀態值和第二地址信息操作。其中,第二地址信息為需要回寫默認狀態值的PHY芯片的引腳的地址信息。對于MDIO控制器而言,還需接收默認狀態值和第二地址信息,并將默認狀態值寫入第二地址信息對應的PHY芯片的引腳的寄存器,以實現對相應引腳狀態的回寫。其中,狀態輪轉模塊根據變化信息讀取第一寄存器模塊,根據讀取結果向MDIO控制器提供信息,或者根據讀取結果,讀取第二寄存器模塊的操作具體包括狀態輪轉模塊在接收到時鐘信號后接收變化信息,并在變化信息為1時,對第一寄存器模塊進行讀操作;當讀取到值為1的比特位時,向MDIO控制器提供與值為1的比特位對應的第一地址信息和控制數據信息,并在接收到MDIO控制器返回的處理結束信息時,繼續讀取第一寄存器模塊的下一比特位;當讀取到值由1變為0的比特位時,狀態輪轉模塊記錄值由1變為0的比特位,并在處理完所有值為1的比特位后,對第二寄存器模塊進行讀操作以讀取默認狀態值, 并將默認狀態值和值由1變為0的比特位對應的第二地址信息提供給MDIO控制器,并在接收到MDIO控制器返回的處理結束信息時,結束此次讀取第一寄存器模塊的操作。其中上述操作的具體流程可參見上述步驟341-步驟350的描述,在此不再贅述。圖7為本發明實施例五提供的控制PHY芯片的方法的流程圖。如圖7所示,本實施例的方法包括步驟701、第三寄存器模塊接收CPU寫入的第三地址信息和操作類型,所述第三地址信息為CPU直接讀寫PHY芯片時要讀寫的PHY芯片對應的地址信息。操作類型為寫操作或讀操作。步驟702、第二狀態鎖存模塊鎖存第三寄存器模塊的變化信息,并根據變化信息向仲裁機制模塊發送授權請求信息。
其中,第二狀態鎖存模塊鎖存變化信息的過程可參見第一狀態鎖存模塊的鎖存原理實現。其中,由變化信息產生的授權請求信息可以為一脈沖信號。步驟703、仲裁機制模塊根據預先設定的訪問控制優先級和授權請求信息,將第三寄存器模塊中的第三地址信息提供給MDIO控制器。具體的,由于CPU直接訪問PHY芯片的優先級較高,仲裁機制模塊將MDIO控制器授權給CPU,故將第三地址信息提供給MDIO控制器,以使MDIO控制器完成CPU對PHY芯片的直接訪問。步驟704、第四寄存器模塊接收CPU寫入的寫內容。具體的,當操作類型為寫操作,即CPU對第三地址信息對應的PHY芯片進行寫操作時,CPU將要寫入第三地址信息對應的PHY芯片的數據信息(即寫內容)寫入第四寄存器模塊。步驟705、第三狀態鎖存模塊鎖存第四寄存器模塊的變化信息,并根據變化信息向仲裁機制模塊發送授權請求信息。其中,第三狀態鎖存模塊鎖存變化信息的過程可參見第一狀態鎖存模塊的鎖存原理實現。其中,由變化信息產生的授權請求信息可以為一脈沖信號。步驟706、仲裁機制模塊根據預先設定的訪問控制優先級和所述授權請求信息,將第四寄存器模塊中的寫內容提供給MDIO控制器。由于仲裁機制模塊已將MDIO控制器授權給CPU,故仲裁機制模塊在接收到授權請求信息可以獲知CPU已將寫內容寫入第四寄存器模塊中,故讀取第四寄存器模塊中的寫內容,并提供給MDIO控制器,以使MDIO控制器將寫內容寫入第三地址信息對應的PHY芯片的寄存器中,完成CPU對PHY芯片的寫操作。步驟707、MDI0控制器根據第三地址信息和寫內容,對第三地址信息對應的PHY芯片進行寫操作。具體的,MDIO控制器在接收到第三地址信息時先進行地址設定,在接收到寫內容時,將寫內容寫入到之前設定的地址對應的PHY芯片的寄存器中。進一步,當操作類型為讀操作,即CPU對第三地址信息對應的PHY芯片進行讀操作時,MDIO控制器根據第三地址信息,對第三地址信息對應的PHY芯片進行讀操作,并將讀取的數據信息寫入第五寄存器模塊中,以供CPU讀取。即CPU從第五寄存器模塊中讀取讀PHY 芯片獲取的數據信息。更進一步,在存在仲裁機制模塊的技術方案的基礎上,可能出現直接訪問操作和自動控制操作同時出現,或者直接訪問操作和回寫操作同時出現的情況。為了使各操作能夠被成功執行,仲裁機制模塊設定了各種操作的優先級,具體為直接訪問操作的優先級最高,自動控制操作的優先級次之,回寫操作的優先級最低。基于此,狀態輪轉模塊根據讀取結果向MDIO控制器提供第一地址信息和控制數據信息之前,先向仲裁機制模塊發送授權請求信息,并在接收到仲裁機制模塊返回的授權信息后,向管理數據輸入輸出MDIO控制器提供第一地址信息和控制數據信息,以保證能夠獲得MDIO控制器的使用權。同理,狀態輪轉模塊向MDIO控制器提供默認狀態值和第二地址信息之前,也要先向仲裁機制模塊發送授權請求信息,并在接收到仲裁機制模塊返回的授權信息后,向MDIO控制器提供默認狀態值和第二地址信息,以保證能夠獲得MDIO控制器的使用權。
本實施例的控制PHY芯片的方法,采用上述實施例提供的控制電路實現,其具體操作流程不再贅述,詳見上述對控制電路的工作原理的描述。本實施例的控制PHY芯片的方法,控制電路可以輔助CPU實現對PHY芯片的自動控制,還可以輔助CPU完成對PHY芯片直接訪問,CPU只需執行簡單的寫寄存器的操作,而對于自動控制操作和直接訪問操作中的時序控制以及其他寫操作等,均不需要CPU的參與, 極大的減輕了 CPU的負擔,提高了自動控制或直接訪問PHY芯片的效率。本領域普通技術人員可以理解實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質中,該程序在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。最后應說明的是以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。
權利要求
1.一種控制電路,其特征在于,包括定時時鐘模塊、第一寄存器模塊、第一狀態鎖存模塊、狀態輪轉模塊和管理數據輸入輸出MDIO控制器;所述定時時鐘模塊,用于產生時鐘信號;所述第一寄存器模塊,用于存儲中央處理單元CPU寫入的控制物理層PHY芯片的引腳狀態的控制命令字;所述第一狀態鎖存模塊,與所述第一寄存器模塊連接,用于在所述控制命令字發生變化時鎖存變化信息;所述狀態輪轉模塊,與所述第一狀態鎖存模塊和所述定時時鐘模塊連接,用于根據所述定時時鐘模塊提供的時鐘信號和所述第一狀態鎖存模塊提供的變化信息,對所述第一寄存器模塊進行讀操作,并根據讀取結果向所述MDIO控制器提供第一地址信息和控制數據信息;所述第一地址信息為需要進行自動控制的PHY芯片的引腳的地址信息;所述MDIO控制器,與所述狀態輪轉模塊連接,用于接收所述狀態輪轉模塊提供的所述第一地址信息和所述控制數據信息,并按照預設的周期將所述控制數據信息寫入所述第一地址信息對應的PHY芯片的引腳的寄存器,以對所述第一地址信息對應的PHY芯片的引腳的狀態進行自動控制。
2.根據權利要求1所述的控制電路,其特征在于,還包括第二寄存器模塊,用于存儲所述PHY芯片的引腳對應的默認狀態值;所述狀態輪轉模塊還用于根據所述讀取結果,對所述第二寄存器模塊進行讀操作以讀取所述默認狀態值,并向所述MDIO控制器提供所述默認狀態值和第二地址信息;所述第二地址信息為需要回寫所述默認狀態值的PHY芯片的引腳的地址信息;所述MDIO控制器還用于接收所述狀態輪轉模塊提供的所述默認狀態值和所述第二地址信息,并將所述默認狀態值寫入所述第二地址信息對應的所述PHY芯片的引腳的寄存ο
3.根據權利要求2所述的控制電路,其特征在于,所述第一狀態鎖存模塊具體用于將所述第一寄存器模塊的各比特位分別與所述第一狀態鎖存模塊的當前鎖存值的各比特位進行異或運算,獲取所述變化信息;所述狀態輪轉模塊具體用于在接收到所述時鐘信號后接收所述變化信息,并在所述變化信息為1時,對所述第一寄存器模塊進行讀操作;當讀取到值為1的比特位時,向所述 MDIO控制器提供與所述值為1的比特位對應的第一地址信息和所述控制數據信息,并在接收到所述MDIO控制器返回的處理結束信息時,繼續讀取所述第一寄存器模塊的下一比特位;當讀取到值由1變為0的比特位時,記錄所述值由1變為0的比特位,并在處理完所有值為1的比特位后,對所述第二寄存器模塊進行讀操作以讀取所述默認狀態值,并將所述默認狀態值和所述值由1變為0的比特位對應的第二地址信息提供給所述MDIO控制器,并在接收到所述MDIO控制器返回的處理結束信息時,結束此次讀取所述第一寄存器模塊的操作;所述MDIO控制器還用于在將所述控制數據信息寫入所述第一地址信息對應的PHY芯片的引腳的寄存器后,或者在將所述默認狀態值寫入所述第二地址信息對應的所述PHY芯片的引腳的寄存器后,向所述狀態輪轉模塊返回所述處理結束信息。
4.根據權利要求1-3任一項所述的控制電路,其特征在于,還包括第三寄存器模塊,用于存儲所述CPU寫入的第三地址信息和操作類型;所述第三地址信息為所述CPU直接讀寫PHY芯片時要讀寫的PHY芯片對應的地址信息;第二狀態鎖存模塊,與所述第三寄存器模塊連接,用于鎖存所述第三寄存器模塊的變化信息,并根據所述變化信息發送授權請求信息;第四寄存器模塊,用于存儲所述CPU寫入的寫內容,所述寫內容為所述操作類型為寫操作時,所述CPU寫入所述第三地址信息對應的PHY芯片的數據信息;第三狀態鎖存模塊,與所述第四寄存器模塊連接,用于鎖存所述第四寄存器模塊的變化信息,并根據所述變化信息發送授權請求信息;第五寄存器模塊,用于存儲讀內容,以供所述CPU讀取所述讀內容;所述讀內容是在所述操作類型為讀操作時,由所述MDIO控制器根據所述第三地址信息讀所述第三地址信息對應的PHY芯片獲取的數據信息;仲裁機制模塊,與所述狀態輪轉模塊、所述第二狀態鎖存模塊、所述第三狀態鎖存模塊、所述第三寄存器模塊、所述第四寄存器模塊、所述第五寄存器模塊和所述MDIO控制器連接,用于接收所述狀態輪轉模塊、所述第二狀態鎖存模塊和所述第三狀態鎖存模塊其中任意一個或多個發送的授權請求信息,并根據預先設定的訪問控制優先級和接收到的所述授權請求信息,控制將所述MDIO控制器授權給所述狀態輪轉模塊、所述第三寄存器模塊、 所述第四寄存器模塊和所述第五寄存器模塊其中任意一個使用;所述MDIO控制器還用于在被所述仲裁機制模塊授權給所述第三寄存器模塊和所述第四寄存器模塊時,根據所述仲裁機制模塊提供的所述第三寄存器模塊中的所述第三地址信息和所述第四寄存器模塊中的所述寫內容,對所述第三地址信息對應的PHY芯片進行寫操作;并且還用于在被所述仲裁機制模塊授權給所述第三寄存器模塊和所述第五寄存器模塊時,根據所述仲裁機制模塊提供的所述第三寄存器模塊中的所述第三地址信息,對所述第三地址信息對應的PHY芯片進行讀操作,并將讀取的所述數據信息寫入所述第五寄存器模塊中,以供所述CPU讀取。
5.根據權利要求4所述的控制電路,其特征在于,所述控制電路設置在基于現場可編程門陣列FPGA或復雜可編程邏輯器件CPLD上。
6.一種應用權利要求1-5任一項所述的控制電路實現的控制物理層芯片的方法,其特征在于,包括中央處理單元CPU向第一寄存器模塊寫入控制物理層PHY芯片的引腳狀態的控制命令字;第一狀態鎖存模塊根據所述控制命令字產生變化信息,同時鎖存所述變化信息并將所述變化信息提供給狀態輪轉模塊;所述狀態輪轉模塊根據所述變化信息,對所述第一寄存器模塊進行讀操作,并根據讀取結果向管理數據輸入輸出MDIO控制器提供第一地址信息和控制數據信息;所述第一地址信息為需要進行自動控制的PHY芯片的引腳的地址信息;所述MDIO控制器接收所述第一地址信息和所述控制數據信息,并按照預設的周期將所述控制數據信息寫入所述第一地址信息對應的PHY芯片的引腳的寄存器,以對所述第一地址信息對應的PHY芯片的引腳的狀態進行自動控制。
7.根據權利要求6所述的控制物理層芯片的方法,其特征在于,還包括所述狀態輪轉模塊根據所述讀取結果,對第二寄存器模塊進行讀操作以讀取默認狀態值,并向所述MDIO控制器提供所述默認狀態值和第二地址信息;所述第二地址信息為需要回寫所述默認狀態值的PHY芯片的引腳的地址信息;所述MDIO控制器接收所述默認狀態值和所述第二地址信息,并將所述默認狀態值寫入所述第二地址信息對應的所述PHY芯片的引腳的寄存器。
8.根據權利要求7所述的控制物理層芯片的方法,其特征在于,所述第一狀態鎖存模塊根據所述控制命令字產生變化信息具體為所述第一狀態鎖存模塊將所述第一寄存器模塊的各比特位分別與所述第一狀態鎖存模塊的當前鎖存值的各比特位進行異或運算,獲取所述變化信息;所述狀態輪轉模塊根據所述變化信息,對所述第一寄存器模塊進行讀操作,并根據讀取結果向管理數據輸入輸出MDIO控制器提供第一地址信息和控制數據信息包括所述狀態輪轉模塊在接收到所述時鐘信號后接收所述變化信息,并在所述變化信息為 1時,對所述第一寄存器模塊進行讀操作;當讀取到值為1的比特位時,向所述MDIO控制器提供與所述值為1的比特位對應的第一地址信息和所述控制數據信息,并在接收到所述 MDIO控制器返回的處理結束信息時,繼續讀取所述第一寄存器模塊的下一比特位;所述狀態輪轉模塊根據所述讀取結果,對第二寄存器模塊進行讀操作以讀取默認狀態值,并向所述MDIO控制器提供所述默認狀態值和第二地址信息包括當讀取到值由1變為0的比特位時,所述狀態輪轉模塊記錄所述值由1變為0的比特位,并在處理完所有值為1的比特位后,對所述第二寄存器模塊進行讀操作以讀取所述默認狀態值,并將所述默認狀態值和所述值由1變為0的比特位對應的第二地址信息提供給所述MDIO控制器,并在接收到所述MDIO控制器返回的處理結束信息時,結束此次讀取所述第一寄存器模塊的操作。
9.根據權利要求6-8任一項所述的控制物理層芯片的方法,其特征在于,還包括 第三寄存器模塊接收所述CPU寫入的第三地址信息和操作類型,所述第三地址信息為所述CPU直接讀寫PHY芯片時要讀寫的PHY芯片對應的地址信息;第二狀態鎖存模塊鎖存第三寄存器模塊的變化信息,并根據所述變化信息向仲裁機制模塊發送授權請求信息;所述仲裁機制模塊根據預先設定的訪問控制優先級和所述授權請求信息,將所述第三寄存器模塊中的所述第三地址信息提供給所述MDIO控制器;第四寄存器模塊接收所述CPU寫入的寫內容,所述寫內容為所述操作類型為寫操作時,所述CPU寫入所述第三地址信息對應的PHY芯片的數據信息;第三狀態鎖存模塊鎖存第四寄存器模塊的變化信息,并根據所述變化信息向所述仲裁機制模塊發送授權請求信息;所述仲裁機制模塊根據預先設定的訪問控制優先級和所述授權請求信息,將所述第四寄存器模塊中的所述寫內容提供給所述MDIO控制器;所述MDIO控制器根據所述第三地址信息和所述寫內容,對所述第三地址信息對應的 PHY芯片進行寫操作。
10.根據權利要求9所述的控制物理層芯片的方法,其特征在于,還包括當所述操作類型為讀操作時,所述MDIO控制器根據所述第三地址信息,對所述第三地址信息對應的PHY芯片進行讀操作,并將讀取的數據信息寫入第五寄存器模塊中,以供所述CPU讀取。
11.根據權利要求9所述的控制物理層芯片的方法,其特征在于,所述狀態輪轉模塊根據讀取結果向所述MDIO控制器提供第一地址信息和控制數據信息,或所述狀態輪轉模塊向所述MDIO控制器提供所述默認狀態值和第二地址信息,之前包括所述狀態輪轉模塊向所述仲裁機制模塊發送授權請求信息,并接收所述仲裁機制模塊返回的授權信息。
全文摘要
本發明提供一種控制物理層芯片的方法及控制電路。其中,控制電路包括定時時鐘模塊、第一寄存器模塊、第一狀態鎖存模塊、狀態輪轉模塊和MDIO控制器;狀態輪轉模塊,用于根據定時時鐘模塊提供的時鐘信號和第一狀態鎖存模塊提供的變化信息,對第一寄存器模塊進行讀操作,并根據讀取結果向述MDIO控制器提供第一地址信息和控制數據信息;MDIO控制器,用于按照預設的周期將控制數據信息寫入第一地址信息對應的PHY芯片的引腳的寄存器,以對PHY芯片的引腳的狀態進行自動控制。采用本發明技術方案可以用同一個MDIO控制器對多個PHY芯片的管理,并降低CPU的負擔。
文檔編號H04L29/08GK102291423SQ201110122989
公開日2011年12月21日 申請日期2011年5月12日 優先權日2011年5月12日
發明者陳堅 申請人:福建星網銳捷網絡有限公司