目前我們已經發布了NXP的QorIQLS架構系列的幾款平臺,包含LS1046A、LS1043A、LS1028A、LS1012A。這幾款平臺都原生支持網口、PCIE、SATA等高速接口協議,很多用戶在產品選型和方案設計之初,對于硬件接口資源分配不熟悉,不遵守芯片規范使用導致項目出現問題,造成了嚴重損失。本期我們就此系列平臺的SerDes資源分配做一篇文章。
LS系列產品的資源不可為不豐富,其中最讓人頭暈的當屬于SerDes協議。百度百科這樣解釋,SERDES是英文SERializer(串行器)/DESerializer(解串器)的簡稱。
它是一種主流的時分多路復用(TDM)、點對點(P2P)的串行通信技術。即在發送端多路低速并行信號被轉換成高速串行信號,經過傳輸媒體(光纜或銅線),最后在接收端高速串行信號重新轉換成低速并行信號。這種點對點的串行通信技術充分利用傳輸媒體的信道容量,減少所需的傳輸信道和器件引腳數目,提升信號的傳輸速度,從而大大降低通信成本。
我們先以最復雜的LS1046A做講解,參考NXP官方文檔《LS1046ARM》。
PART.1??LS1046A
在下圖框圖中可以看到有2個SerDes模塊,每個模塊各有2個PLL,每個模塊各有4lane,共有4個PLL,8條lane,有網口、PCIe、SATA功能。
在《LS1046 ARM》文檔的“Chapter31 SerDes Module”章節,比較詳細的描述了這一部分,所以我也建議用戶在制定方案前看一看這一部分。我們列出所有LS1046A的 SerDes功能:
第一列是RCW位,只能在這些選項中選擇方案(所以不存在8條lane都配置成網口這種操作);后面ABCD列代表硬件上的信號名稱和接口功能;最后兩列是時鐘PLL的配置,需要注意Mapping這個詞,表示你需要配置PLL1還是PLL2,舉例:2222代表ABCD4條lane都使用PLL2,2211代表AB lane使用PLL2,CD lane使用PLL1,not available代表此方案不支持PCIe Gen3速度。
XFI,SGMII,QSGMII都是網絡。SGMII.n表示1G速度,n是MAC;QSGMII包含4個MAC,每個都有1G的速度;XFI是10G的速度。配置網口必須注意MAC不能沖突。PCIe.n的n表示PCIE標號,為了方便理解,可以認為n是RC(PCI Express root complex)標識,不可以配置沖突,舉例說SerDes1配置為1163,SerDes2配置為5559,這是不可以的!因為PCIe.1重復了。PCIe.nx4表示4條lane合并為一個PCIE RC,只可以接一個EP(endpoint device)設備,那么速度會x4翻倍。
SATA就不用多說了,從可選擇的方案中挑選出來就可以了。選定好了每條lane的功能之后,還需要選擇SerDes參考時鐘。各功能需要的時鐘如下圖:
這就是我們需要配置的PLL1和PLL2,硬件和軟件需要同時做好。參考的時鐘源我們在核心板上已經做好,用戶不需要額外做這部分的硬件。?具體是這樣實現的:SerDes2只有PCIE、SATA、SGMII(1.25G)的功能,這三個功能都可以參考100MHz時鐘,那么我們的核心板上硬件已經固定死100MHz,只需要軟件去選擇PLL即可。
SerDes1有SGMII(1.25G),SGMII(3.125G),QSGMII,XFI,PCIE功能,我們看Table31-4表中這些功能的PLL1都可以設置為100MHz,所以我們在核心板中硬件固定死100MHz,PLL2可以參考100MHz和156.25MHz即可實現全部功能,我們從核心板引出一個SD1_REFCLK_SEL引腳,用于選擇100M,156M,然后軟件配置相對應的PLL即可。
所以使用我們的核心板S2的PLL1,PLL2只能選100MHz;S1_PLL1只有100MHz,S1_PLL2在100M和156M之間做選擇。可以關閉PLL來禁用對應的SerDes模塊。如果還是沒講清楚那么我們舉個例子來說。假如有個項目需求1個萬兆網口,4個千兆網口,3個PCIEx1,1個SATA。
Serdes1模塊選擇RCW為1040:
XFI.9參考serdes1的PLL2,將S1的PLL2寫為1:156MHz
QSGMII參考serdes1的PLL1,將S1的PLL1寫為0:100MHz
SerDes2模塊選擇RCW為5559:(PCIEGen3不可用,Gen2速度為5Gbps)。
PCIe.1,PCIe.2,PCIe.3參考serdes2的PLL2,將S2的PLL2寫為0:100MHz
SATA參考serdes2的PLL1,將S2的PLL1寫為0:100MHz
看到這里大家有沒有覺得這個配置方案很熟悉啊,是的,我們飛凌發布的OK1046A-C開發板就是采用的這個方案,?加上CPU原生的2路RGMII,共組成1萬兆+6千兆+3路pcie+1路SATA,實現了CPU接口資源最大化,可供用戶調試開發。講完了LS1046A平臺,其他平臺只有1個serdes模塊,就比較簡單了。為了加深大家對于飛凌LS10XX系列產品中serdes模塊配置方案的理解,在本文第二部分,我們再講LS1028A平臺的SerDes設計方案做個簡單解讀。
PART.2?LS1028A
飛凌9月份發布了NXP的LS系列家族新成員——FET1028A-C核心板。其包含豐富的高速接口:PCIE、SATA、USB、以太網。與我們早已上市的LS1043A、LS1046A相同的是內含SerDes模塊,不同的是LS1028A的以太網口不一樣,因為內置TSN Switch,下面我們先詳細講這一部分。下圖是LS1028A的功能框圖:
以下內容參考NXP官方手冊《LS1028 ARM》,手冊可以在網站或者在我們的用戶資料里獲取到。在使用核心板做方案設計時,建議用戶也翻一翻這個手冊。
網口switch介紹
以太網系統由兩個組件組成:以太網控制器(ENETC)和支持TSN的以太網交換機。下圖描述了LS1028A中的以太網子系統。
ENETC(以太網NET控制器)是一個4端口虛擬化以太網控制器,支持千兆級設計和時敏網絡(TSN)功能,有兩個外部以太網端口,兩個內部端口連接到該交換機,并且充當Cortex-A72 CPU與ENETC和支持TSN的以太網交換機交互的PCI根聯合體集成端點。具有TSN功能的以太網交換機總共有6個端口:4個外部以太網端口,以及兩個內部連接到ENETC的端口,用于交換數據和管理/控制功能。
TSN以太網交換機核心包含5個10/100/1000/2500Mbps以太網端口和1個10/100/1000Mbps以太網端口。概括起來就是LS1028A最多可以引出6個網口,且都支持TSN。
Serdes介紹
SerDes模塊可以引出PCIE,SATA,和網口,前面講的ENETC中有5個網口都是通過SerDes引出的SGMII/QSGMII/QXGMII,這部分涉及到的硬件接口有SD1_TX[0:3]_P/N,SD1_RX[0:3]_P/N,SD1_REFx_CLK_P/N,TX/RX是發送/接收數據的信號線,CLK是輸入到SerDes的參考時鐘。讓我們來看看SerDes模塊的時鐘結構。
SerDes的參考時鐘源有2個,SYSCLK或者外部輸入的REF_CLK。SYSCLK是固定100MHz的頻率,當SerDes參考SYSCLK 100MHz的時候,有些接口功能是有限制的;使用外部的REF_CLK則可以靈活選擇配置時鐘。
Serdes方案表
輸入文字
在LS1028A芯片中,SerDes可以配置下表的功能,不在表中的搭配是不允許使用的。
選定SesDes方案后還需要配置時鐘,根據前面的時鐘結構我們可以看到SerDes內部有PLL1和PLL2,PCIeGen1/2 PLL mapping這一列就是我們需要配置PLL1還是PLL2,比如2211,表示laneA和laneB選擇PLL2,laneC和laneD選擇PLL1。比如PCIE功能需要參考100MHz或者125MHz時鐘,因為我們的SYSCLK是100MHz的,就不需要額外再REF_CLK引腳上添加外部時鐘。一旦我們使用了2.5xSGMII或者USXGMII網絡功能,SYSCLK就不符合需求了,就需要在REF_CLK引腳上輸入參考時鐘。
飛凌FET1028A-C核心板考慮到高性價比并覆蓋絕大部分應用場合,只做好了100MHz的SYSCLK時鐘,同時也將SD1_REFx_CLK_P/N引腳連接到連接器中,允許用戶在設計中使用更高頻率的時鐘。建議用戶在收到產品準備測試前,先看看手冊中的SerDes章節,這一部分很重要。希望這篇文章能對您的設計有所幫助,您也可以聯系飛凌技術支持獲取幫助。
fqj
評論
查看更多