基于FPGA的異步串行總線設計
2 異步串行總線傳輸協(xié)議
根據(jù)系統(tǒng)對上下位機指令響應時間要求,自定義了異步串行總線的傳輸速率和傳輸協(xié)議。因為本協(xié)議為異步串行傳輸協(xié)議,所以在每包數(shù)據(jù)的前面增加了1.5bit的起始位,在每包數(shù)據(jù)的后面增加了1bit的數(shù)據(jù)停止位作為一包數(shù)據(jù)的開始標志和結(jié)束標志。為提高數(shù)據(jù)傳輸?shù)臏蚀_性,在發(fā)送起始位之后和信息數(shù)據(jù)結(jié)束之前分別增加了8bit題頭和題尾,用于數(shù)據(jù)接收方信息同步和數(shù)據(jù)識別;如果接收方收到的題頭或者題尾任意一個有誤,就判本包數(shù)據(jù)傳輸有誤。并且在本包數(shù)據(jù)末端增加了CRC-8校驗碼,對發(fā)送的整個串行碼流進行校驗。具體傳輸協(xié)議如下:
(1)串行傳輸格式:
起始位→題頭→命令字→信息→題尾→CRC8→停止位;
(2)傳輸速率:40MHz;
(3)起始位:0(1.5bit)
(4)題頭:10100101;
(5)命令字:B7 B6 B5 B4 B3 B2 B1 B0:B0為讀寫控制位(0讀,1寫);B1為數(shù)據(jù)LSB和MSB傳輸標志位(0為LSB先出,1為MSB先出);B5B4 B3B2為訪問地址(0000自檢狀態(tài)寄存器,0001控制狀態(tài)寄存器,1110錯誤重發(fā)請求標志寄存器,1111裝置ID軟件版本寄存器,其它根據(jù)實際需求任意擴展定義);B7B6為傳輸數(shù)據(jù)長度(00為0個8bit數(shù)據(jù)長度,01為1個8bit數(shù)據(jù)長度,10為2個8bit數(shù)據(jù)長度,11為3個8 bit數(shù)據(jù)長度)等。
(6)信息:長度為8bit的整數(shù)倍;
(7)題尾:01011010;
(8)CRC校驗多項式:CRC8=X8+X7+X6+X4+X2+1;
(9)停止位:1(1bit);
(10)無數(shù)據(jù)時為高電平。讀操作時后面的數(shù)據(jù)長度為0;不夠8bit的,空位默認為“0”。
評論