天天看點

FPGA之SSI接口協定實作

        SSI(Synchronous Serial Interface,同步串行接口)是一個全雙工的串行接口,允許晶片與多種串行裝置通信。它是高精度絕對編碼器種一種比較常見的接口方式,采用主機主動式讀出方式,即在主要者發出的時鐘脈沖的控制下,從最高有效位(MSB)開始同步傳輸資料。下面以SSI3為例,具體講解它的接口實作方式。

時序圖

FPGA之SSI接口協定實作

注意事項

1、時鐘頻率:100kHz至2MHz,這裡取1MHz,就是1T=1us.

2、資料發送階段:Trc=(16+0.5)us(SSI3資料位是16位)

FPGA之SSI接口協定實作

3、Tmu(資料更新待階段)=20us+/-1us;

4、Timg(資料等待階段)必須要大于Tmu(資料更新階段),為了保證滿足時序要求,這裡Timg隻要大于21us即可;

5、一個完整工作周期=Trc(資料發送階段)+Timg(資料等待階段)=(16+0.5+21)us,也就是一個完整工作周期至少要>37.5us,這裡為了保證滿足時序需求,取到40us。

6、當檢測到Error為0(可靠資料),将資料發送階段的16bit資料儲存輸出即可。

      例如:頻率是56MHz,周期是1/56M是17.8ns,8個時鐘,資料是32bit,總的時鐘是32*8為256,接收32bit需要256個時鐘,考慮到單穩态,再加24個時鐘,也就是需要280個時鐘接收32bit,速率是56M/280為0.2,即200KHz