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