本文為明德揚原創文章,轉載請注明出處!作者:Vito
明德揚PCIE開發板系列XILINX-K7試用體驗-第二篇
第二周的試用計劃是實現常見低速協議(UART,I2C,SPI)的FPGA工程,記錄自己實現的過程,包括協議基本理解,實現思路,仿真調試,上板驗證4個流程。雖然低速協議相對簡單,但是每次自己動手寫又會發現之前沒有注意到的問題,又能從中鞏固自己的邏輯思維;這些看似簡單的低速協議是后續所有高速接口協議的基礎,只有基礎牢靠,在后續的進階應用中才會游刃有余。特別是對于我這樣的FPGA新人來說,基礎是重中之重。
下面開始介紹我的低速協議的實現情況。
協議理解
UART真的算是最經典的通信協議之一了吧,特別是在產品設計調試階段,串口幾乎成了一個必備的功能。硬件信號簡單,2根信號線(TX,RX),當然不同設備連接時還需要一根共地線;3根線就能實現數據傳輸了。協議數據格式如下圖所示
數據收發過程分為:空閑,起始位,數據位,校驗位(可選),停止位。對于異步的設備來說,怎樣知道每一位傳輸的時間寬度呢?這是通過波特率來指定的。事先雙方先約定好傳輸的波特率是多少就可以了,當然除了波特率,一般數據位長度,奇偶校驗,停止位長度都是要2方確定好,不然就無法正確通信了。
實現思路
本次實現FPGA和上位機通信的串口工程,連接如下圖所示;具體功能是利用PC的串口工具向usb轉串口模塊發送隨機數據,FPGA通過接收usb轉串口模塊的數據并進行解析,并將解析的串口數據發回usb轉串口;通過查看PC上的接收數據和發送數據是否一致。
根據上述功能需求,進行模塊劃分設計,如下圖所示
根據模塊劃分,下面就需要明確模塊的接口信號,這里為了舉例就只列出tx和rx的接口信息。這里總結一下接口信號的思路:時鐘復位以及tx/rx信號就不說了,這里還加了握手信號,增加每一幀數據收發的可靠性,在處理一幀數據時不會被下一幀數據到來中斷而導致混亂。
信號接口設計完成之后就是每個模塊代碼的編寫了,這里我就簡單總結一下tx和rx設計思路。對于發送模塊:握手邏輯如果收到應用層一幀數據的有效信號,拉低ready信號,同時拉高發送數據的標志位。當發送標志位置1,發送計數器開始計數一幀數據的個數,直到一幀數據的周期數記完并清零,表示一幀數據發送完成;于此同時,tx信號根據發送計數器值依次將應用層的并行數據移位送出。對于接收模塊:當檢測到rx信號的下降沿之后,接收計數器開始計數,計數值為一幀數據的周期長度;并根據計數值移位采樣rx數據,轉化成并行數據,并拉高valid有效信號,表示一幀數據的接收過程。
仿真調試
編寫完串口驅動模塊之后,需要進行仿真調試,下面是仿真波形。
仿真激勵中,發送數據給的是1,2,3……255 數據,可以看到圖中紫色部分為收發數據的波形,可以看到收發數據一致,因此仿真調試ok。
上板驗證
在實際應用中,需要考慮更多的非理想環境。1.罪魁禍首就是異步時鐘問題,運行時間越長,所累積的時鐘誤差就會越來越大;所以很可能運行一段時間就會出現錯誤數據,因此需要加上時鐘矯正減少時鐘累積誤差,解決辦法就是用高頻時鐘采集rx信號,當檢測到一次數傳輸時再打開串口接收時鐘,當發送完成之后再將串口接收時鐘關閉從而解決累積偏差。2.收發數據時有時一幀數據還沒有處理完成,可是下一幀數據已經到來,如果不緩存就會出現丟幀的問題,因此在應用層增加了一個fifo,用于緩存來不及處理的數據。
我之前看原理圖底板上是有FT232usb轉串行的芯片的,但是好像只連接了JTAG接口,電腦并沒有識別到串口號,所以我只能在擴展口找2個IO了。翻遍了原理圖和手冊都沒有找到一個XS11的引腳對應關系,沒辦法只能先通過原理圖猜測信號所對應的實際引腳位置,好在我手邊有萬用表,然后通過測量知道了實際對應位置,希望之后將一些接口的實際信號做一個圖示,自己找信號位置太麻煩了。。。這里我挑了2個IO:J23/J24作為uart的tx 和rx,連接一個usb轉串口模塊,然后連接電腦,實際連接如下圖所示。
下載bitstream之后,打開電腦串口軟件,定時一直發送數據,觀察收發數據是否一致,測試結果如下圖所示。
可以看到,經過一段時間的連續運行,收發數據量一致,且結果正確。因此該串口工程上板成功。
眾所周知,XILINX-Kin[te]x系列以性價比著稱,在高性能低功耗的前提下,價格也相對較低,目前市場上不存在缺貨的情況,所以當使用量大的時候,價格也會更有優勢。所以在研發工作中,
這個款核心板是非常適用于二次開發和產品使用的。明德揚推出0元試用核心板活動正在進行中,可以聯系客服黃老師參加:13316124179(微信同號)
審核編輯 黃宇
-
FPGA
+關注
關注
1629文章
21729瀏覽量
602991 -
Xilinx
+關注
關注
71文章
2167瀏覽量
121303 -
開發板
+關注
關注
25文章
5032瀏覽量
97372 -
Kintex-7
+關注
關注
1文章
27瀏覽量
16021
發布評論請先 登錄
相關推薦
評論