srio這種高速串列埠複雜就複雜在它的協議上,三層協議:邏輯層,傳輸層以及物理層。
資料手冊會說這三層協議是幹什麼的呢?也就是分工(【fpga】srio ip核系統總覽以及埠介紹(一)(user inte***ces 之 i/o port)):
邏輯層定義整體協議和資料報格式。 這是端點啟動和完成事務(transaction)所必需的資訊。
傳輸層提供資料報從端點移動到端點所需的路由資訊。
物理層描述了裝置級介面細節,例如資料報傳輸機制,流控制,電氣特性和低階錯誤管理。
這種劃分提供了將新事務型別新增到邏輯規範的靈活性,而無需修改傳輸或物理層規範。
這種語言層次的描述貌似讓人不太理解說了什麼?
下面用來說明(序列 rapidio: 高效能嵌入式互連技術):
上圖為4通道的srio資料傳輸原理圖,如果要用單通道的話(fpga端)在ip核定制的時候選擇單通道即可。
資料從遠端裝置(假設為dsp的srio端)傳輸過來,fpga端(假設我們這端為fpga的srio埠)通過rx接收到序列資料,先到達物理層進行時鐘恢復,串並轉換,之後進行8b/10b解碼操作、crc校驗,這一系列的操作都在物理層完成,之後進入傳輸層,進而到達邏輯層,我們需要的也是對邏輯層進行操作,對操作的物件正是邏輯層上的埠資料資訊。
資料手冊上說了,邏輯層定義了整體協議和資料報格式。
拿邏輯層上的io口來說,有這樣兩對訊號,ireq/iresp和treq/tresp;
假設我們這端是fpga端,我們接收來自dsp端的資料,那fpga端就是initiator,而dsp端就是target,這樣的話,我們接收後需要處理的資料在fpga上就是treq/tresp channel上的資料。
資料的傳送是以包的形式傳送的,而能傳送以及接收到什麼的包可以在ip核上定製(fpga端)。
包的格式:
大概情況是這樣的:
這個包是物理層上的包,我們使用srio ip核時,需要關注的包是邏輯層上的hello格式的包。
三層 我眼中的三層結構
從行為型模式命令模式引發的對三層的思考。記得 大話設計模式 中對命令模式的講解。燒烤攤和燒烤店之間的區別。由於客戶和烤羊肉串老闆的 緊耦合 所以容易出錯,容易混亂,也容易挑剔。這其實就是 行為請求者 與 行為實現者 的緊耦合。對請求排隊或記錄請求日誌,以及支援可撤銷的操作等行為時,行為請求者 與 行...
成也三層,敗也三層
這重構版的機房的計畫早就開始,但開始的僅僅是計畫,卻遲遲沒有行動的意思,於是頻頻地徘徊著,迷茫著。這都過去三個星期了,每次的停滯不前我都有自己的理由,但是我應該從心底裡明白 成也三層,敗也三層 用三層對機房收費進行重構是乙個坎兒,這就是乙個對我們的的考驗,挺過去的就是通往下一站的乘客,沒過去應該就和...
三層架構 之三層擴充套件七層
哎,真心不想在這裡寫這篇部落格,本來三層到七層頂多了也就用兩天時間去分析,結果我用了將近四天,最後我都快崩潰了,還有好多問題都是同學幫我找出來的,真是很是汗顏吶!下面是我三層架構擴充套件成七層架構的uml包圖 之前看別人都是用的vb.net版,我就覺得剛學習了c 語言,就先用c 版吧,結果倒好,兩種...