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