????????BYTE_WRITE命令啟動(dòng)寫操作,并輸入16位請(qǐng)求字節(jié)數(shù)。當(dāng)請(qǐng)求字節(jié)數(shù)為0時(shí),僅用于刷新文件長度。所以一次寫操作最多能處理65535個(gè)字節(jié)。
????????WR_REQ_DATA命令用于向內(nèi)部指定緩沖區(qū)寫入CH376請(qǐng)求的數(shù)據(jù)塊。首先讀取的輸出數(shù)據(jù)是數(shù)據(jù)塊長度,如果數(shù)據(jù)長度為0,那么結(jié)束寫操作并中斷通知單片機(jī)。所以執(zhí)行一次次命令,最多能處理255個(gè)字節(jié)。
????????現(xiàn)在要保存總字節(jié)數(shù)為65535的文件,那就要執(zhí)行WR_REQ_DATA命令(65535/255=)257次。在FPGA代碼中用reg_no記錄WR_REQ_DATA命令次數(shù),用tx_cnt記錄總字節(jié)數(shù)。
????????現(xiàn)在奇怪的現(xiàn)象出現(xiàn)了,執(zhí)行第一、第二次WR_REQ_DATA命令時(shí)數(shù)據(jù)塊長度為255。第三次WR_REQ_DATA命令時(shí)數(shù)據(jù)塊長度為2。然后有規(guī)律地持續(xù)下去。執(zhí)行第四、第五次WR_REQ_DATA命令時(shí)數(shù)據(jù)塊長度為255。第六次WR_REQ_DATA命令時(shí)數(shù)據(jù)塊長度為2。
????????還有那么多待處理的數(shù)據(jù)塊,為什么會(huì)出現(xiàn)數(shù)據(jù)塊長度為2的情況?這個(gè)情況正常嗎?
第一次
第二次
第三次