時鐘晶片在一個14.314的晶振旁邊 沒有什麼又叫頻率發生器之說。匯流排時鐘頻率以MHz為單位,工作頻率越高則匯流排工作速度越快,也即匯流排頻寬越寬。
SPI匯流排時鐘極性和時鐘相位的概念理解
SPI,是英語Serial Peripheral interface的縮寫,顧名思義就是序列外圍裝置介面。SPI,是一種高速的,全雙工,同步的通訊匯流排,並且在晶片的管腳上只佔用四根線,節約了晶片的管腳,同時為PCB的佈局上節省空間,提供方便,正是出於這種簡單易用的特性,現在越來越多的晶片集成了這種通訊協議。
其工作模式有兩種:主模式和從模式,無論那種模式,都支援3Mbit/s的速率,並且還具有傳輸完成標誌和寫衝突保護標誌。
跟SPI密切相關的兩個概念是時鐘極性和時鐘相位。
時鐘極性:表示時鐘訊號在空閒時是高電平還是低電平。
時鐘相位:決定資料是在SCK的上升沿取樣還是在SCK的結束沿取樣。
下面以矩力的7022B晶片為例子,分析SPI工作模式的設定。
在7022B的資料手冊中,指出:在SCK的上升沿放資料,在下降沿取資料。在SCK的下降沿將DIN的資料取樣到7022B中,在SCK的上升沿將7022B的資料放置在DOUT上面輸出。
下面是模擬SPI匯流排對7022B進行讀取的例子,這個例子生動表示了何時放資料,何時取樣資料。
unsigned long Read_reg3(unsigned char cmd)
{
int i;
unsigned long data;
set_bit(SPI_PORT,SPI_SS);
clr_bit(SPI_PORT,SPI_SCK);
clr_bit(SPI_PORT,SPI_SS);
for(i=0;i
set_bit(SPI_PORT,SPI_SCK);
if(cmd&0x80)
set_bit(SPI_PORT,SPI_MOSI);
}
else
clr_bit(SPI_PORT,SPI_MOSI);
cmd=cmd
nop;
clr_bit(SPI_PORT,SPI_SCK);nop;
_delay_us(3);
data=0;
if(PINB&(1
data+=1;
}else
data+=0;
data=data
return data;
如果採用硬體SPI,則需要對微控制器(ATMEGA16)SPI暫存器進行設定,本例子中,需要設定SPCR=0x57;//MSB在先01010011
時鐘極性為0,因為空閒時CLK電平為低。
時鐘相位設定為1,因為是下降沿取樣資料,上升沿放資料。
我對SPI的理解錯在取樣的概念上。比如,下降沿取樣,當主機接收時,我覺得應該是先有下降沿,再有采樣。
其實,正確的理解是:取樣是對主機從機都一致的概念,取樣之前必須把資料準備好。當主機接收資料時,主機也是下降沿取樣,但是在下降沿發生之前,必須準備好資料,換句話說,從機在上升沿發生後,就要把資料放出來,為下降沿取樣做好準備。
電腦脈搏—時鐘頻率的來龍去脈
微型計算機
一首美妙的樂曲會有一個主旋律,而電腦的主旋律就是CPU的時鐘頻率。主頻、外頻和倍頻,它們從何而來?鎖頻、超頻,又是怎麼回事呢?
電腦
中有許許多多的半導體晶片,每個晶片都是在特定的時鐘頻率下進行工作的。時鐘發生器提供給晶片的時鐘訊號是一個連續的脈衝訊號,而脈衝就相當於晶片的脈搏,每一次脈衝到來,晶片內的電晶體就改變一次狀態,讓整個晶片完成一定任務。
電腦中的晶片絕大多數屬於數字邏輯晶片,數字晶片中眾多的電晶體全都工作在開關狀態,它們的導通和關斷動作無不是按照時鐘訊號的節奏進行的。如果時鐘頻率過高,就可能出現電晶體的狀態來不及變化的情況,產生死鎖或隨機性誤操作。所以,每一款晶片都有自己的頻率極限。
一、頻率是什麼?
頻率用f表示,基本單位為“1次/秒”,記做Hz(赫茲)。1Hz就是每秒一次,10Hz是每秒10次(圖1)。不過,Hz這個單位在電腦裡面太小了,因此通常以KHz、MHz或GHz來表示訊號頻率。隨著頻率的攀升,若干年以後恐怕需要使用THz作為頻率的單位了(表1)。
圖1: 脈衝波頭越多則頻率越高
表1: 頻率表示法
頻率單位 kHz MHz GHz THz
換算關係 1×10^3Hz 1×10^6Hz 1×10^9Hz 1×10^12Hz
英文名稱 Kilo Hz Mega Hz Giga Hz Tera Hz
中文名稱 千赫茲 兆赫茲 吉赫茲 太赫茲
1.週期與頻率
在電腦技術中,與頻率相對應的一個常用術語是週期。週期是頻率的倒數,頻率越高,週期越短。譬如時鐘頻率為1GHz時,其時鐘週期為1納秒(表2)。
表2:頻率與週期對照表
時鐘頻率 時鐘週期 時鐘頻率 時鐘週期
5MHz 200ns 133MHz 7.5ns
10MHz 100ns 166MHz 6.0ns
20MHz 50ns 200MHz 5.0ns
25MHz 40ns 250MHz 4.0ns
33MHz 30ns 300MHz 3.3ns
40MHz 25ns 333MHz 3.0ns
50MHz 20ns 400MHz 2.5ns
66MHz 15ns 500MHz 2.0ns
80MHz 12ns 800MHz 1.2ns
100MHz 10ns 1GHz 1.0ns
120MHz 8.3ns 4GHz 0.25ns
時鐘晶片在一個14.314的晶振旁邊 沒有什麼又叫頻率發生器之說。匯流排時鐘頻率以MHz為單位,工作頻率越高則匯流排工作速度越快,也即匯流排頻寬越寬。
SPI匯流排時鐘極性和時鐘相位的概念理解
SPI,是英語Serial Peripheral interface的縮寫,顧名思義就是序列外圍裝置介面。SPI,是一種高速的,全雙工,同步的通訊匯流排,並且在晶片的管腳上只佔用四根線,節約了晶片的管腳,同時為PCB的佈局上節省空間,提供方便,正是出於這種簡單易用的特性,現在越來越多的晶片集成了這種通訊協議。
其工作模式有兩種:主模式和從模式,無論那種模式,都支援3Mbit/s的速率,並且還具有傳輸完成標誌和寫衝突保護標誌。
跟SPI密切相關的兩個概念是時鐘極性和時鐘相位。
時鐘極性:表示時鐘訊號在空閒時是高電平還是低電平。
時鐘相位:決定資料是在SCK的上升沿取樣還是在SCK的結束沿取樣。
下面以矩力的7022B晶片為例子,分析SPI工作模式的設定。
在7022B的資料手冊中,指出:在SCK的上升沿放資料,在下降沿取資料。在SCK的下降沿將DIN的資料取樣到7022B中,在SCK的上升沿將7022B的資料放置在DOUT上面輸出。
下面是模擬SPI匯流排對7022B進行讀取的例子,這個例子生動表示了何時放資料,何時取樣資料。
unsigned long Read_reg3(unsigned char cmd)
{
int i;
unsigned long data;
set_bit(SPI_PORT,SPI_SS);
clr_bit(SPI_PORT,SPI_SCK);
clr_bit(SPI_PORT,SPI_SS);
for(i=0;i
{
set_bit(SPI_PORT,SPI_SCK);
if(cmd&0x80)
{
set_bit(SPI_PORT,SPI_MOSI);
}
else
{
clr_bit(SPI_PORT,SPI_MOSI);
}
cmd=cmd
nop;
nop;
clr_bit(SPI_PORT,SPI_SCK);nop;
}
clr_bit(SPI_PORT,SPI_SCK);
_delay_us(3);
data=0;
for(i=0;i
{
set_bit(SPI_PORT,SPI_SCK);
nop;
nop;
nop;
if(PINB&(1
{
data+=1;
}else
{
data+=0;
}
data=data
nop;
clr_bit(SPI_PORT,SPI_SCK);
}
set_bit(SPI_PORT,SPI_SS);
return data;
}
如果採用硬體SPI,則需要對微控制器(ATMEGA16)SPI暫存器進行設定,本例子中,需要設定SPCR=0x57;//MSB在先01010011
時鐘極性為0,因為空閒時CLK電平為低。
時鐘相位設定為1,因為是下降沿取樣資料,上升沿放資料。
我對SPI的理解錯在取樣的概念上。比如,下降沿取樣,當主機接收時,我覺得應該是先有下降沿,再有采樣。
其實,正確的理解是:取樣是對主機從機都一致的概念,取樣之前必須把資料準備好。當主機接收資料時,主機也是下降沿取樣,但是在下降沿發生之前,必須準備好資料,換句話說,從機在上升沿發生後,就要把資料放出來,為下降沿取樣做好準備。
電腦脈搏—時鐘頻率的來龍去脈
微型計算機
一首美妙的樂曲會有一個主旋律,而電腦的主旋律就是CPU的時鐘頻率。主頻、外頻和倍頻,它們從何而來?鎖頻、超頻,又是怎麼回事呢?
電腦
中有許許多多的半導體晶片,每個晶片都是在特定的時鐘頻率下進行工作的。時鐘發生器提供給晶片的時鐘訊號是一個連續的脈衝訊號,而脈衝就相當於晶片的脈搏,每一次脈衝到來,晶片內的電晶體就改變一次狀態,讓整個晶片完成一定任務。
電腦中的晶片絕大多數屬於數字邏輯晶片,數字晶片中眾多的電晶體全都工作在開關狀態,它們的導通和關斷動作無不是按照時鐘訊號的節奏進行的。如果時鐘頻率過高,就可能出現電晶體的狀態來不及變化的情況,產生死鎖或隨機性誤操作。所以,每一款晶片都有自己的頻率極限。
一、頻率是什麼?
頻率用f表示,基本單位為“1次/秒”,記做Hz(赫茲)。1Hz就是每秒一次,10Hz是每秒10次(圖1)。不過,Hz這個單位在電腦裡面太小了,因此通常以KHz、MHz或GHz來表示訊號頻率。隨著頻率的攀升,若干年以後恐怕需要使用THz作為頻率的單位了(表1)。
圖1: 脈衝波頭越多則頻率越高
表1: 頻率表示法
頻率單位 kHz MHz GHz THz
換算關係 1×10^3Hz 1×10^6Hz 1×10^9Hz 1×10^12Hz
英文名稱 Kilo Hz Mega Hz Giga Hz Tera Hz
中文名稱 千赫茲 兆赫茲 吉赫茲 太赫茲
1.週期與頻率
在電腦技術中,與頻率相對應的一個常用術語是週期。週期是頻率的倒數,頻率越高,週期越短。譬如時鐘頻率為1GHz時,其時鐘週期為1納秒(表2)。
表2:頻率與週期對照表
時鐘頻率 時鐘週期 時鐘頻率 時鐘週期
5MHz 200ns 133MHz 7.5ns
10MHz 100ns 166MHz 6.0ns
20MHz 50ns 200MHz 5.0ns
25MHz 40ns 250MHz 4.0ns
33MHz 30ns 300MHz 3.3ns
40MHz 25ns 333MHz 3.0ns
50MHz 20ns 400MHz 2.5ns
66MHz 15ns 500MHz 2.0ns
80MHz 12ns 800MHz 1.2ns
100MHz 10ns 1GHz 1.0ns
120MHz 8.3ns 4GHz 0.25ns