單片機(jī)跑起來第一章:時(shí)鐘系統(tǒng)
好,有了CPU、存儲(chǔ)器、總線以及外設(shè),我們把它們有機(jī)地組合封裝在一起,再把各個(gè)外設(shè)、總線的信號(hào),以及供電和地通過引腳引出來,這就是一片完整的單片機(jī)芯片。等等,要讓單片機(jī)跑起來似乎還少了些什么?對(duì),還有時(shí)鐘!
如果上面所說的這些都只是單片機(jī)芯片的軀殼的話,那么時(shí)鐘就是在其中流動(dòng)的血液和跳動(dòng)的脈搏。時(shí)鐘對(duì)于單片機(jī)來說是至關(guān)重要的,它是整個(gè)系統(tǒng)的激勵(lì)。它是否穩(wěn)定、是否精確、是否高速都直接影響了單片機(jī)中所有電路的運(yùn)作,包括CPU、總線、外設(shè)等等。從本質(zhì)上來說時(shí)鐘就是一個(gè)方波信號(hào),如圖1.18所示。
圖1.18 時(shí)鐘在單片機(jī)中占有至關(guān)重要的地位
有人說:“既然時(shí)鐘的快慢決定了單片機(jī)的速度,那只要盡量提高時(shí)鐘頻率就可以讓單片機(jī)的性能得到飛躍了???”原理上來說確實(shí)是這樣的,但是因?yàn)楹芏嘁蛩?,比如半?dǎo)體材料的特性、芯片制造工藝等,導(dǎo)致時(shí)鐘頻率并不能無限制地提高(過高頻率的時(shí)鐘信號(hào)會(huì)導(dǎo)致單片機(jī)電路工作異常,問題大多出現(xiàn)在信號(hào)的完全性上)。關(guān)于這一問題的解釋請(qǐng)見圖1.19。
圖1.19 時(shí)鐘頻率過高將導(dǎo)致信號(hào)完整性受損
更形象的說,這就如同人的心跳不能太快,否則血液還沒來得及將氧氣和養(yǎng)份送到各個(gè)組織,就已經(jīng)急逝而過了。同時(shí),血管也無法承載如此高的血壓和血液速度,最終導(dǎo)致人體整體機(jī)能的紊亂。相反,心跳又不能過緩,否則血液同樣也無法完成輸送給養(yǎng)的工作(單片機(jī)的時(shí)鐘過慢可能無法滿足我們的應(yīng)用需求,所以實(shí)際應(yīng)用過程中,選取一個(gè)合適的工作時(shí)鐘是非常重要的)。
不過又說回來了,我們很多時(shí)候確實(shí)希望單片機(jī)運(yùn)行得越快越好,比如一些計(jì)算量很大的實(shí)時(shí)算法、信號(hào)采集、音視頻的錄制與播放等等。所以無數(shù)的工程師、科學(xué)家都在致力于提高硬件性能、提高時(shí)鐘頻率、提高加工工藝水平,甚至是嘗試新的半導(dǎo)體材料或是改進(jìn)電路結(jié)構(gòu)。但是盡管如此,時(shí)鐘頻率仍然會(huì)有一個(gè)無法逾越的頂線。而且人們發(fā)現(xiàn)時(shí)鐘越快,電路工作時(shí)的功耗越大。這些窘境以及對(duì)高性能低功耗的不斷追求,催生了CPU芯片向著多核的方向開始發(fā)展(時(shí)鐘頻率不再提升,而是通過增加芯片中CPU內(nèi)核的數(shù)量來提高整體的性能)。
振南上面說,時(shí)鐘越快,功耗越大。這不難理解,電路不工作時(shí)功耗一定最??;一旦有了時(shí)鐘,它開始工作了,那功耗必然變大。這一原理是現(xiàn)在很多單片機(jī)芯片中實(shí)現(xiàn)低功耗的根本基礎(chǔ)。單片機(jī)的設(shè)計(jì)者為每一個(gè)外設(shè)電路都配置了一個(gè)時(shí)鐘開關(guān)(這些開關(guān)也是一些掛接在CPU總線上的特殊功能寄存器,因此可由CPU直接控制),從而可以控制外設(shè)停機(jī)還是工作。這在很大程度上降低了單片機(jī)的整體功耗。這就是現(xiàn)在一些高級(jí)單片機(jī)中的一個(gè)新概念—時(shí)鐘配置(CC)。它實(shí)際上可能會(huì)更加強(qiáng)大,不光可以關(guān)閉某個(gè)外設(shè)的時(shí)鐘供應(yīng),而且還可以調(diào)節(jié)時(shí)鐘的頻率,讓外設(shè)可以工作在最為適宜的功耗水平下。