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