usb fifo sdram讀取資料

2022-09-01 13:45:19 字數 1072 閱讀 3405

usb-fifo-sdram讀取資料 

現在的現象時pc採集到的資料生成iamge後,連續採集時image會在水平方向來回移動,很是鬱悶; 看起來很簡單,但....兩個月啊

相當於記錄日誌吧:

1.這一定是設計成按frame讀. 並且為了避免usb端fifo讀不進 讀不夠問題 最好讀取量是512的整數倍, 如果1frame最後一點不足512則丟棄;

3.fifo的讀入端, sdram的bank容量肯定是按frame, 當系統商店復位後, fifo讀入端的位址 應該指向某個bank的首位址; 當讀完1frame資料量成後,這時fifo_frame_read_done訊號有效; 因為fifo,usb_frame_active=0是滯後於fifo byte個clk  fifo_frame_read_done; 為了同步,理所當然,在當fifo_frame_read_done,usb_frame_active都有效表示都完成後,等到下乙個vs'falling 時,切bank,以便指向下乙個frame或叫做bank.(frame_write_done_cnt)

4. 但是第3點沒有錯,錯就錯在,pc端不是立即在vsfalling的下乙個相鄰的vsrising就開始讀! 什麼時候讀我也不知道? 那怎麼辦呢? 

現在有必要梳理一下usb.v讀資料的時機,準確講什麼條件具備才讓usb和fifo發生關係? 現在是通過flagd,slwr來控制; 想當然flagd (ep6full flag active low)只要低電平且檢測到vsrising就開始讀了;----這是錯誤的條件, 為什麼? 1. 因上一次pc讀的資料量1frame,而fifo讀入端從sdram讀出來也是1frame,這絕對是當pc讀完1frame時usb fifo是空的,flagd是low; 2.而此時fifo讀入端指向的bank,不是pc下一次要讀的bank.所以現在聯想的flagd是由low-high接著的某個時刻即pc真正讀的時刻開始變low.而這個bank可能被面臨有讀有寫.3.pc此時還忙著處理raw2image,當然多流水線另當別論.

5.基於以上,pc端來個control傳輸,給乙個訊號,當fpga檢測的該電平 & vsrising & flagd 時才"開閘", 在沒有檢測到該訊號時默數被寫到那個bank了,這為了防止撞車做準備.

Extjs ajax讀取 intraweb資料

自己搞定,備忘。前台 ext.onready function new ext.button failure function response,options 最大的items 後台intraweb begin layoutmgr iwtemplateprocessorhtml1 end proc...

rstudio中讀取資料 R語言讀取外部資料檔案

使用r語言的時候,如果是少量資料,不妨使用c 或其他函式進行建立 但是對於大量資料,最好還是先通過其他更方便的軟體建立資料檔案,然後使用r讀入這個檔案。前文說,csv是非常好的資料檔案格式,跨平台支援非常好。我在excel或者spss中建立的資料,只要存為csv格式,就可以使用幾乎任何資料處理軟體對...

R語言逐行讀取數居

用r語言作分析時,有時候需要逐行處理非常大檔案,各種教材中推薦的read.table 和scan都是一次性讀入記憶體,如果檔案有好幾個gb大小,一般電腦肯定吃不消。其實r中可以逐行讀取的行數,這裡示例乙個函式,作為備忘 con file e data.txt r line readlines con...