99在线精品免费视频九九视-99在线精品视频-99在线精品视频免费观里-99在线精品视频在线观看-99在线免费播放



官方論壇
官方淘寶
官方博客
微信公眾號
點擊聯系吳工 點擊聯系周老師
您的當前位置:主頁 > 技術文章 >

光纖項目中光纖用戶層接口設計分享(圖文分享)-明德揚科教(mdy-edu.com)

發布時間:2019-12-10   作者:admin 瀏覽量:



光纖項目中光纖用戶層接口設計分享(圖文分享

本文為明德揚原創文章,轉載請注明出處!作者:小耀

光纖接口是FPGA比較常用的接口之一,它的傳輸方式與一些尋常接口的傳輸方式有些不同,為了讓大家了解光纖接口,并避免配置接口時的一些常見問題,我特意寫下了這個總結,希望能夠對大家有所幫助。

一、光纖接口的傳輸特點

大多數接口發送包文數據時會發送:數據data、有效指示信號data_vld、包文起始信號data_sop、包文結束信號data_eop以及無效字節數data_mty等。如下圖1所示。


圖1

光纖接口和上述接口發送的方式不同,光纖接口發送包文數據時只會發送數據txdataKtx_k,內部讀取數據時也只會讀取數據rxdatakrx_k。若數據(txdatarxdata)為8字節,則k碼為8位數據。如下圖2所示。

2

二、k碼的表示

k碼是用來表示數據是否有效的,那么我們應該如何設定k碼呢?假設用下述方式表示k碼:

數據無效時:8’b0

數據有效+SOP時:8’mty(4mty)+0110

數據有效+EOP時:8’mty(4mty)+0011

數據有效+其它時:8’mty(4mty)+0010

我們會發現數據會出現錯誤!因為數據和k碼在傳輸過程中可能會發生偏移!例如發送第一個數據時,txdata=64’h0102030405060708tx_k=8’b00000110

而內部接收時,數據可能會右移2位,造成接收到的數據與發送出的數據有所不同。如rxdata=64’h0000010203040506,rx_k=8’b000000001。即如下圖所示3


3


因此,我們僅將k碼用做有效無效的指示信號以及同步信號,并用下述方式進行表示:

數據無效時,發送固定k碼:0x01,接收根據這個1的位置,判斷開始位;

數據有效時,發送固定k碼:0x00,接收根據k碼的值,識別數據是否有效。

在這種情況下,即使發生了偏移,我們也能知道k碼中1后面的80所對應的rxdata為有效數據。例如,第n個周期接收到rxdata=64’h00bc010203040506,接收到rx_k=8’b01000000,n+1個周期接收到rxdata=64’h0708020304050607,接收到rx_k=8’b00000000。通過第n個周期rx_k中的1能夠判斷出后面80所對應的rxdata=64’h0102030405060708為有效數據。

三、比特位順序調換

我們先介紹一下小頭模式和大頭模式。小頭模式指的是低位在前高位在后,大頭模式指的是高位在前低位在后。例如同樣的數據012345678,在小頭模式中,0是最低位,8是最高位,在大頭模式中則0是最高位,8是最低位。由于光纖接口是小頭模式,而我們熟悉的是大頭模式。因此我們需要將光纖接口數據的比特位順序進行調換。

四、數據對齊

由于我們接收到的數據是偏移了的,因此我們需要利用一個模塊將光纖接口偏移的數據進行還原。例如,第n個周期接收到rxdata=64’h00bc010203040506,接收到rx_k=8’b01000000,n+1個周期接收到rxdata=64’h0708020304050607,接收到rx_k=8’b00000000,我們通過對其模塊將其還原成第n個周期為rxdata=64’0102030405060708rx_k=8’00000000即將下圖4變換成下圖5


4

5


五、數據解包與打包

我們定義發送包文的方式是發送:55D5+16b長度+長度字節個DATA+校驗和。為了判斷是否接收有效包文,我們設定當接收到55D5時,表示后面的數據信號有效,接著接收數據的長度,表示該包文的有效長度,然后接收數據,最后再接收一個校驗位,檢驗包文是否有錯誤。

例如接收到8’h55+8’hd5 + 8’h00+8’h03 + 8’h12+8’hbc +8’h63 + 8’h00+ 8’h03 , 表示55d5后面的數據是包文,包文內數據一共有3個,數據分別是 8’h128’hbc8’h63,最后檢驗位顯示一共有3個數據,包文正確。這樣我們就將一個有效包文解包成有效數據 8’h128’hbc8’h63

數據打包的過程與打包的過程正好相反,假如我們接收到5字節有效數據8’h128’hbc8’h638’hbc8’h63,我們需要將其打包成8’h55+8’hd5 + 8’h00+8’h05 + 8’h12+8’hbc +8’h63 + 8’hbc +8’h63 + 8’h00 +8’h05

六、光纖串口的模塊

在接收端中,我們利用Rx_data_reverse模塊和Rx_ctrl_reverse模塊將輸入的rxdatarx_k執行要點三的比特位順序調換操作,利用Rx_align模塊執行要點四的數據對齊操作,利用Decoder模塊執行有效數據的判斷,利用Unpackcomm模塊執行數據的解包操作。

在發送端中,我們利用packcommpack模塊將數據進行打包,再利用Tx_data_reverse模塊和Tx_ctrl_reverse模塊將數據從大頭模式還原成小頭模式,即再進行一次比特位順序的調換,然后再發送。


  •   
  •   
  •   
  •  
  • FPGA教育領域第一品牌
  • 咨詢熱線:020-39002701
  • 技術交流Q群:544453837
主站蜘蛛池模板: 中国一级黄色录像片 | 日本a在线免费观看 | 久久r精品 | 国产成人午夜精品影院游乐网 | 久久国产一区二区三区 | 亚洲欧美二区三区久本道 | 一级a毛片免费观看 | 国产精品一区在线观看你懂的 | 国产在线观看免费 | 特黄未满14周岁毛片 | 免费国产h视频在线观看86 | 国产午夜不卡在线观看视频666 | 欧美日韩在线播一区二区三区 | 亚洲欧美日韩另类精品一区二区三区 | 免费毛片a线观看 | 久久全国免费久久青青小草 | 日韩免费看 | 手机看片一区 | 免费观看国产 | 国产成人黄网址在线视频 | 国产亚洲综合在线 | www.欧美在线观看 | 亚洲精品成人一区二区www | 日韩美女中文字幕 | 久久精品播放 | 伊在人香蕉99久久 | a天堂专区一区二区三区 | 黄网在线看 | 亚洲精品视频在线观看视频 | 亚洲精品国产精品一区二区 | 九一视频在线免费观看 | 婷婷99av综合 | 日韩国产有码在线观看视频 | 高清精品一区二区三区一区 | 国产性色视频在线高清 | 人九九精品 | 国内精品不卡一区二区三区 | 麻豆视传媒短视频网站-欢迎您 | 特大巨黑人吊与黑人性xxxx | 91精品一区二区三区在线 | 日韩一级精品视频在线观看 |