• 沒有找到結果。

第四章 交錯式D類放大器控制晶片系統規劃及實現

4.6 串列傳輸(SPI)介面實現

SPI為一工業界標準的串列傳輸協定,區分為主動(msater)以及被動(slave)兩種工作 模式,傳輸的資料的長度可設定為1~16個位元,為全雙工傳輸可同步發射及接收,SPI 間的通訊使用了兩條資料線、一條控制線以及一條同步的時脈,其腳位定義如表4.8,

SPI方塊的外觀圖如圖4.41。SPI介面共有四種時脈工作方式,由時脈極性腳及相位來作 控制,不同之處如圖4.42所示,再設定上主動端與被動端的時脈極性及時脈相位需一

致,雙方始可正確傳輸。使用此通訊介面的目的在於可直接由NIOS經由SPI傳送各控制 暫存器數值,藉由改變暫存器參數,來更改各方塊的腳位設定,也因此僅需4條資料線 來接、傳資料,可大幅減少了IC的外部設定腳位。

圖4.41 SPI方塊符號圖

表 4.8 SPI 方塊腳位定義

接腳名稱 輸入/出 資料長度 功能說明

SPI_CLK_POLAR 輸入 1位元 串列傳輸介面時脈極性設定腳位 1:閒置時的SCLK狀態為高準位 0:閒置時的SCLK狀態為低準位

SPI_CLK_PHASE 輸入 1位元 串列傳輸介面時脈相位設定腳位 1:資料在時脈正緣更新,在負緣資料閂鎖住 0:資料在時脈負緣更新,在正緣資料閂鎖住 CLK 輸入 1位元 SPI的時脈輸入,最高時脈40 MHZ

Talk 輸入 1位元 SPI設定為主動端時,欲傳送之資料由Tx_Data 輸入,而要將資料傳送出去,則需觸發此腳位 1:傳送資料,0:閒置狀態

Tx_Data[11..0] 輸入 12位元 欲傳送資料輸入腳 SPI_MAS_SLV 輸入 1位元 主動端或被動端選擇腳

Rx_Data[11..0] 輸出 12位元 接收到的資料輸出腳

MOSI 輸出入 1位元 主動端的資料輸出腳,被動端的資料輸入腳 MISO 輸出入 1位元 主動端的資料輸入腳,被動端的資料輸出腳 SCLK 輸出入 1位元 當設定為主動端時,其為送出的同步時脈,當

設定為被動端時,此腳則為接收時脈 SS_n 輸出入 1位元 選擇腳位(active low),為主動端選擇哪個被動

端為傳輸的對象,當設定為低準位時,表示該 被動端準被開始傳接送資料,當設定為高準位 時,則該被動端不動作。

圖4.42 SPI四種工作時序圖

圖4.43 SPI實現方塊圖

實現的SPI方塊圖如圖4.43,傳送移位暫存器會將欲傳送的資料由並列轉成串列輸 出,而接收移位暫存器則將接收到的串列資料轉成並列資料。時脈及選擇訊號產生方 塊設定為主動端時才會動作,根據時脈極性及時脈相位兩位元的設定,來決定該產生 何種工作時脈給被動端。又因為MISO、MOSI、SCLK、SS_n四隻腳位均可輸出及輸入 的雙向傳輸,故需要加入三態閘來決定何時該輸出,而何時該輸入,例如當設定為主

反,MISO為輸出腳,MOSI、SCLK及SS_n為輸入腳。三態閘的觸發腳設定為高準位 時,資料才可允許通過,當觸發腳為低準位時,該閘為不導通。

兩個SPI方塊間的腳位連接如圖4.44所示,將4隻資料線相接即可,SPI的操作可分 為主動及被動,當主動端欲將串列資料傳到被動端時,動作如下:

z 設定SPI master (master / slave = 1)及SPI slave (master / slave = 0)。

z 在主動端中將欲傳送的資料放入傳送移位暫存器中。

z 主動端令SS_n腳位為零,通知被動端允許傳及收的動作。

z 主動端由SCLK輸出時脈給被動端的SCLK腳位,使兩者能同步傳輸資料,時 脈最高為40MHz。

z SCLK每傳送一個時脈訊號,主動端的移位暫存器會傳送一個bit,由最高位元 MSB先傳,當傳送完畢後,SCLK停止送出時脈訊號。

z 在被動端的SCLK腳每接收到一個時脈,接收的移位暫存器會移位一個bit,當 接收整個資料完畢後,會將資料放進接收暫存器中輸出。

而當被動端欲將串列資料傳到主動端時,動作如下:

z 被動端將資料放入移位暫存器中,當被動端的SS_n腳位接收到低準位的觸發 訊號後,表示要開始作傳送與接收的動作。

z 每接收一個時脈,就傳送一位元,直到主動端接收完畢沒送出時脈訊號為止。

NIOS II處理器有內建的SPI介面,我們將其與所實現的SPI方塊做通訊,雙方接 收及傳送的資料都是正確的,如圖4.45,證明此方塊確實可正常動作。

圖4.44 SPI通訊腳位連接圖

圖4.45 SPI與NIOS II傳送接收圖

相關文件