專利名稱:以太網數據包與多個dsp串口數據轉發的方法和系統的制作方法
技術領域:
本發明涉及一種基于現場可編程門陣列FPGA(Field Programmable Gate Array)實現以太網媒體面控制器MAC(Media Access Controller)地址數據包與數字信號處理器DSP(DigitalSignal Processor)串口的數據轉發的方法和系統。
背景技術:
MAC定義了以太網的媒體面控制器的標準,可以處理線速100Mbps(bit per second)的數據流量。
媒體面標準接口MII(Media Independent Interface)定義了以太網的媒體面控制器MAC和物理層PHY(Physical Layer)連接總線的標準。MII接口使用4bit數據寬度,字節級控制方式,最高操作頻率為25MHz,支持單個物理層器件連接,達到線速100Mbps。
MII接口總線的時鐘是由PHY從線路時鐘上恢復出來的,PHY產生接收和發送端口的25MHz的時鐘。
MII接口總線操作時,由數據的發送者控制操作的過程。當PHY向MAC發送數據時,PHY會有效接收使能信號,同時同步于接收時鐘產生數據。當MAC向PHY發送數據時,MAC會有效發送使能信號,同時同步于發送時鐘產生數據。
DSP是通用數字信號處理器的簡稱。數字信號處理是一種將現實世界中的連續信號轉換為計算機能夠處理的信息的過程,DSP完成數字信號處理的核心運算功能。
帶有緩沖能力的多通道串口McBSP(Multichannel Buffered Serial Ports)是DSP處理器的外圍串行接口,為DSP提供處理數據的輸入、輸出串行通道。
時分復用串行通道TDM(Time Divided Multichannel)是DSP串行接口的工作模式。
FPGA繼承了專用集成電路ASIC(Application Specific Integrated Circuit)的大規模、高集成度、高可靠性的優點,又克服了普通ASIC設計周期長、投資大、靈活性差的缺點,逐步成為復雜數字硬件電路設計的理想首選。FPGA內部靈活的邏輯資源可完成總線轉換的邏輯功能,豐富的塊存儲器資源適用于在總線轉換中進行數據緩存。
單個DSP的McBSP接口的數據流量低于MII接口的流量。當設計多個DSP的低速McBSP復接到一個ETHERNET的MAC控制器時,需要考慮發送數據的緩沖問題。在發送方向多路McBSP的數據是同時到達FPGA的,而MAC幀數據是以順序的過程從FPGA中發出,必然存在當前發送的McBSP數據占據MII總線,所以其他的McBSP數據需要進行緩沖。在接收方向MAC幀數據是以順序的過程進入FPGA的,然后同時向McBSP發送數據,必然存在當前接收的MII數據無法及時的從McBSP發出,所以需要對MII的數據進行緩沖。
通過中央處理器CPU(Central Procession Unit)管理FPGA,可以對FPGA內部寄存器進行動態配置,建立不同的MAC地址數據包選路功能。
發明內容
本發明的目的是提供一種基于FPGA實現以太網MAC地址數據包與多個DSP串口的數據轉發的方法和系統。以克服當前的MAC層芯片和DSP串行口總線接口不匹配,不能直接相連以及普通橋接芯片不能靈活實現的問題。
實現本發明所要解決的技術問題而采取的技術方案概括如下提供一種基于FPGA實現以太網MAC地址數據包與多個DSP串口的數據轉發的方法,其數據流處理可概括為兩個方向從媒體面標準接口MII接收媒體面控制器MAC包數據,根據MAC包的地址進行數據包的路由,存儲,校驗,并串轉換,選擇相應通用數字信號處理器DSP的帶有緩沖能力的多通道串口McBSP進行串行數據的轉發;從多個DSP的McBSP端口接收到串行數據后,校驗,串并轉換,在DSP內部進行MAC包封裝后,從MII端口以MAC包結構轉發。
上述方法中,主要可分為以下兩個方向的處理1、MAC數據包從MII接口(總線工作頻率25MHz、4bit數據寬度、單PHY模式)接收,經過FPGA的處理、路由和并串轉換,轉換為多路McBSP(總線工作頻率25MHz、串行數據、1幀256個數據位)的串行數據輸出。具體為(1)MAC幀接收模塊檢測到數據輸入后,判斷MAC幀前導碼是否正確,進行4bit數據的移位合并為8bit的字節數據;(2)MAC幀接收模塊根據目標MAC地址,選擇和MAC地址對應的FIFO進行數據存儲;(3)MAC幀接收模塊進行MAC幀的CRC校驗判斷,校驗正確后置位相應MAC接收標志,然后產生中斷通知內核控制模塊相應的數據包在FIFO中有效;(4)如果MAC幀接收模塊進行MAC幀的CRC校驗失敗,丟棄這個MAC幀,相應的FIFO指針位置還原;(5)內核控制模塊接收到MAC幀接收模塊的中斷后,查詢相應的MAC接收標志,使能對應的TDM幀接收模塊的TDM接收標志;(6)TDM幀接收模塊檢查TDM接收標志有效后,對相應的FIFO緩沖區中的數據進行并串轉換,封裝串行數據的頭部標志、尾部異或校驗標志,向DSP的McBSP端口發送數據。
2、多路McBSP(總線工作頻率25MHz、串行數據、1幀256個數據位)從串行口接收,經過FPGA的串并轉換、存儲、封裝MAC幀結構,轉換為MAC數據包從MII接口(總線工作頻率25MHz、4bit數據寬度、單PHY模式)發送。具體為(1)TDM幀發送模塊從McBSP端口接收串行數據后,判斷前導碼是否正確,進行串行數據移位合并為8bit的字節數據;(2)TDM幀發送模塊把8bit的字節數據依次寫入對應的FIFO中;(3)TDM幀發送模塊進行數據的異或校驗,校驗正確后置位相應TDM發送標志,然后產生中斷通知內核控制模塊相應的數據包在FIFO中有效;(4)如果TDM幀發送模塊進行串行數據的異或校驗失敗,丟棄這個串行幀,相應的FIFO指針位置還原;(5)內核控制模塊接收到TDM幀發送模塊的中斷后,查詢相應的TDM發送標志,使能對應的MAC幀發送模塊的MAC發送標志;(6)MAC幀發送模塊輪詢MAC幀發送模塊,然后根據MAC發送標志對相應的FIFO緩沖區的數據進行8bit移位轉換為4bit的MII接口數據,同時封裝頭部標志,尾部CRC校驗標志,向MII接口總線發送MAC包數據。
提供一種基于FPGA實現以太網MAC地址數據包與DSP串口的數據轉發的系統,它主要包括MAC幀接收模塊、TDM幀接收模塊、內核控制模塊、MAC幀發送模塊、TDM幀發送模塊、CPU輸入控制模塊、鎖相環控制模塊和沖突檢測模塊;其中MAC幀接收模塊連接以太網的MII總線接口和內部的接收緩沖FIFO陣列,處理MAC包的凈荷提取、FIFO路由;TDM幀接收模塊連接內部的接收緩沖FIFO陣列和DSP的McBSP接口,處理凈荷數據的并串轉換和串行數據的標志碼插入;MAC幀發送模塊連接以太網的MII總線接口和內部的發送緩沖FIFO陣列,處理FIFO路由、MAC包的組裝;TDM幀發送模塊連接DSP的McBSP接口和內部的發送緩沖FIFO陣列,處理凈荷數據的串并轉換和串行數據的標志碼剝離;內核控制模塊,連接FPGA內部的上述各個模塊,處理FPGA內部的各個模塊的中斷,控制相關模塊的工作使能;CPU輸入控制模塊處理外部CPU對FPGA內部功能模塊的配置,從而動態的調整MAC的地址路由、通道的使能;鎖相環控制模塊用于FPGA內部功能模塊的時鐘同步;沖突檢測模塊用于以太網單工運行方式時沖突檢測和數據重發的控制。
采用本發明的技術方案,不僅有效的完成了MII總線的MAC包數據和McBSP總線的串行數據之間的信號轉換,而且可以根據配置實現一個MII總線向多個McBSP總線的數據轉換。由于FPGA的靈活性,可以通過CPU動態配置MAC包轉發的路由和流量控制以及McBSP端口的數量。
圖1是本發明的邏輯功能框圖;圖2是MAC包數據向串行數據轉換的處理過程圖;圖3是串行數據向MAC包數據轉換的處理過程圖。
具體實施例方式
下面將結合附圖,說明本發明的具體實施方式
。
參照圖1,本發明的系統主要包括八個功能子模塊MAC幀接收模塊、TDM幀接收模塊、內核控制模塊、MAC幀發送模塊、TDM幀發送模塊、CPU輸入控制模塊、鎖相環控制模塊和沖突檢測模塊。
本發明的方法從數據流轉換的角度考慮,可分為以下兩個方向的處理MAC包數據向串行數據轉換的處理過程;串行數據向MAC包數據轉換的處理過程。
圖2示出了MAC包數據向串行數據轉換的處理過程從MII接口接收、路由、存儲、校驗、并串轉換和串行數據發送的過程。
圖3示出了串行數據向MAC包數據轉換的處理過程從McBSP接口接收、校驗、串并轉換、封裝成MAC數據包、存儲和MAC包數據發送的過程。
為了實現設計的數據流的處理過程,需要以下各模塊完成相關的具體操作功能,每個模塊間獨立工作,通過內核控制模塊來控制其他模塊是否參與工作。具體操作如下MAC幀接收模塊此模塊連接以太網的MII總線接口和內部的接收緩沖FIFO陣列,處理MAC包的凈荷提取、FIFO路由。主要工作過程如下●判斷前導碼是否正確;●根據不同的MAC地址要進行相應的緩沖區索引;●進入每個MAC地址對應的FIFO;●保留長度部分并且獲取凈荷數據;●當一個完整幀接收結束后,置位相應MAC的接收標志;●產生中斷通知內核控制部分相應的數據包接收結束。
TDM幀接收模塊此模塊連接內部的接收緩沖FIFO陣列和DSP的McBSP接口,處理凈荷數據的并串轉換和串行數據的標志碼插入。主要工作過程如下●判斷接收緩沖FIFO不為空;●判斷接收使能標志有效;
●從接收FIFO中讀取數據;●同步于串口的時鐘進行數據的并串轉換;●McBSP串口進行數據的發送。
內核控制模塊此模塊處理FPGA內部的各個模塊的中斷,控制相關模塊的工作使能。主要工作過程如下●響應MAC幀接收模塊產生的中斷,使能TDM幀接收模塊對應的FIFO通道,從而TDM幀接收模塊得到相應的數據;●響應TDM幀發送模塊產生的中斷,結合中斷標志選擇性使能對應的FIFO通道,從而MAC幀發送模塊得到相應的數據。
MAC幀發送模塊此模塊連接以太網的MII總線接口和內部的發送緩沖FIFO陣列,處理FIFO路由、MAC包的組裝。主要工作過程如下●判斷發送的FIFO不為空;●判斷MAC幀發送模塊對應的發送使能標志有效;●讀取FIFO中對應的數據;●組裝MAC幀的頭部標志;●向MII總線發送數據。
TDM幀發送模塊此模塊連接DSP的McBSP接口和內部的發送緩沖FIFO陣列,處理凈荷數據的串并轉換和串行數據的標志碼剝離。主要工作過程如下●檢測的串行口串行數據的前導碼;●同步于TDM的時鐘進行串并轉換;●判斷發送的FIFO不為滿;●把轉換后的數據寫入發送的FIFO中;●剝離判斷異或校驗位;●接收到一個完整的數據幀;●產生一個中斷通知內核控制模塊。
CPU輸入控制模塊此模塊處理外部控制CPU對FPGA內部功能模塊的配置,從而動態的調整MAC的地址路由、通道的使能。主要工作過程如下●提供一個異步總線的操作接口;●地址譯碼選擇內部的MAC地址寄存器;●動態的調整MAC地址寄存器的輸出控制接收FIFO和TDM接收模塊的選通;●動態的調整MAC地址寄存器的輸出控制發送FIFO和TDM發送模塊的選通。
鎖相環控制模塊此模塊用于FPGA內部功能模塊的時鐘同步。主要工作過程如下●同步系統輸入的50MHz的時鐘,分頻25MHz的時鐘;
●產生MAC幀接收模塊的25MHz的時鐘;●產生MAC幀發送模塊的25MHz的時鐘;●產生TDM幀接收模塊的25MHz的時鐘;●產生TDM幀發送模塊的25MHz的時鐘;●產生內核控制模塊的50MHz的時鐘;●產生FIFO的50MHz的讀寫時鐘。
沖突檢測模塊此模塊用于以太網單工運行方式時沖突檢測和數據重發的控制。主要工作過程如下●設置MAC的工作模式;●在單工模式有效前提下,檢測MII總線的沖突信號;●發生沖突重新復位發送的FIFO指針;●重新進行MAC幀發送模塊的發送過程。
由于本發明是基于FPGA實現的,故具有以下靈活特征首先,在MAC層提供了多個MAC地址向單個物理層芯片綁定的功能,簡化了MAC的接口;其次,可以動態的調整FPGA內部的MAC和McBSP串口的映射關系,實現靈活的工作配置;最后,提供了多個DSP的McBSP串口的接入,可以根據實際需要進行裁減增加,多個DSP實現流量的分擔處理。
綜上所述,本發明提出了基于FPGA實現以太網MAC地址數據包與多個DSP串口的數據轉發的方法和系統。以克服當前的MAC層芯片和DSP串行口總線接口不匹配,不能直接相連以及普通橋接芯片不能靈活實現的問題。本發明可實施的一個典型應用場合寬帶碼分多址系統WCDMA(Wideband Code Division Multiple Access)中,核心網進行自適應編解碼AMR(Adaptive Multi-Rate)的業務流算法處理。在實際應用中,通過本設計實現多個DSP并行、負荷分擔方式進行業務數據的分流處理。
盡管參照實施例對所公開的涉及一種基于FPGA實現以太網MAC地址數據包與多個DSP串口的數據轉發的方法和系統進行了特別描述,本領域技術人員將能理解,在不偏離本發明的范圍和精神的情況下,可以對它進行形式和細節的種種顯而易見的修改。因此,以上描述的實施例是說明性的而不是限制性的,在不脫離本發明的精神和范圍的情況下,所有的變化和修改都在本發明的范圍之內。
權利要求
1.一種以太網數據包與多個DSP串口數據轉發的方法,其特征在于,按數據流處理概括為以下兩個方向從媒體面標準接口MII接收媒體面控制器MAC包數據,根據MAC包的地址進行數據包的路由,存儲,校驗,并串轉換,選擇相應通用數字信號處理器DSP的帶有緩沖能力的多通道串口McBSP進行串行數據的轉發;從多個DSP的McBSP端口接收到串行數據后,校驗,串并轉換,在DSP內部進行MAC包封裝后,從MII端口以MAC包結構轉發。
2.根據權利要求1所述的以太網數據包與多個DSP串口數據轉發的方法,其特征在于,所述方法中,MAC數據包從MII接口接收,經過FPGA的處理、路由和并串轉換,轉換為多路McBSP的串行數據輸出;具體為(1)MAC幀接收模塊檢測到數據輸入后,判斷MAC幀前導碼是否正確,進行4bit數據的移位合并為8bit的字節數據;(2)MAC幀接收模塊根據目標MAC地址,選擇和MAC地址對應的FIFO進行數據存儲;(3)MAC幀接收模塊進行MAC幀的CRC校驗判斷,校驗正確后置位相應MAC接收標志,然后產生中斷通知內核控制模塊相應的數據包在FIFO中有效;(4)如果MAC幀接收模塊進行MAC幀的CRC校驗失敗,丟棄這個MAC幀,相應的FIFO指針位置還原;(5)內核控制模塊接收到MAC幀接收模塊的中斷后,查詢相應的MAC接收標志,使能對應的TDM幀接收模塊的TDM接收標志;(6)TDM幀接收模塊檢查TDM接收標志有效后,對相應的FIFO緩沖區中的數據進行并串轉換,封裝串行數據的頭部標志、尾部異或校驗標志,向DSP的McBSP端口發送數據;多路McBSP從串行口接收,經過FPGA的串并轉換、存儲、封裝MAC幀結構,轉換為MAC數據包從MII接口發送;具體為(1)TDM幀發送模塊從McBSP端口接收串行數據后,判斷前導碼是否正確,進行串行數據移位合并為8bit的字節數據;(2)TDM幀發送模塊把8bit的字節數據依次寫入對應的FIFO中;(3)TDM幀發送模塊進行數據的異或校驗,校驗正確后置位相應TDM發送標志,然后產生中斷通知內核控制模塊相應的數據包在FIFO中有效;(4)如果TDM幀發送模塊進行串行數據的異或校驗失敗,丟棄這個串行幀,相應的FIFO指針位置還原;(5)內核控制模塊接收到TDM幀發送模塊的中斷后,查詢相應的TDM發送標志,使能對應的MAC幀發送模塊的MAC發送標志;(6)MAC幀發送模塊輪詢MAC幀發送模塊,然后根據MAC發送標志對相應的FIFO緩沖區的數據進行8bit移位轉換為4bit的MII接口數據,同時封裝頭部標志,尾部CRC校驗標志,向MII接口總線發送MAC包數據。
3.一種以太網數據包與多個DSP串口數據轉發的系統,其特征在于它主要包括MAC幀接收模塊、TDM幀接收模塊、內核控制模塊、MAC幀發送模塊、TDM幀發送模塊、CPU輸入控制模塊、鎖相環控制模塊和沖突檢測模塊;其中MAC幀接收模塊連接以太網的MII總線接口和內部的接收緩沖FIFO陣列;TDM幀接收模塊連接內部的接收緩沖FIFO陣列和DSP的McBSP接口;MAC幀發送模塊連接以太網的MII總線接口和內部的發送緩沖FIFO陣列;TDM幀發送模塊連接DSP的McBSP接口和內部的發送緩沖FIFO陣列;內核控制模塊,連接FPGA內部的上述各個模塊;CPU輸入控制模塊處理外部CPU對FPGA內部功能模塊的配置;鎖相環控制模塊用于FPGA內部功能模塊的時鐘同步;沖突檢測模塊用于以太網單工運行方式時沖突檢測和數據重發的控制。
全文摘要
本發明涉及以太網數據包與多個DSP串口數據轉發的方法和系統。其方法概括為兩個方向從MII端口接收MAC包數據,根據其地址進行數據包的路由,存儲,校驗,并串轉換,選擇相應DSP的McBSP端口進行串行數據的轉發;從多個DSP的McBSP端口接收到串行數據后,校驗,串并轉換,在DSP內部進行MAC包封裝后,從MII端口以MAC包結構轉發。其系統包括MAC幀接收模塊、TDM幀接收模塊、內核控制模塊、MAC幀發送模塊、TDM幀發送模塊、CPU輸入控制模塊、鎖相環控制模塊和沖突檢測模塊。本發明完成了MII總線的MAC包數據和McBSP總線的串行數據之間的信號轉換,且實現一個MII總線向多個McBSP總線的數據轉換。
文檔編號H04L12/56GK1863136SQ20051006921
公開日2006年11月15日 申請日期2005年5月12日 優先權日2005年5月12日
發明者王晉濤, 王洪斌 申請人:中興通訊股份有限公司