逆向常用555定時器晶片(CMOS工藝)
背景知識:一定的電子學基礎
這篇文章介紹LMC555定時器晶片是如何工作的,從晶片上微小的電晶體和電阻到構成其的功能單元如比較器和映象電流源。廣泛使用的555時基積體電路被認為是世界上賣地最好的積體電路,自從1970年類比電路大師Hans Camenzind
設計出該款晶片,自今已經售出數十億片。LMC555是一款低功率CMOS工藝555晶片。不像傳統的雙極型三極體,CMOS晶片是由低功耗MOS管構成的。通過仔細地研究圖片模型,我們將理解它的工作原理。
積體電路的結構
下面的圖片是LMC555的矽基模型在顯微鏡下觀察得到的,主要功能單元均已標記(來自Zeptobars的照片)。模型非常小,僅僅1mm見方。其中黑色的大圈是晶片與外部引腳的連線部分。一層薄金屬層將晶片的各個部分連線在一起。在圖中,金屬就是那些清晰可見的白色線條和區域。晶片上不同的部分被標記不一樣的顏色。晶片的不同部件是通過向矽基中摻入不同的雜質來改變其特性而製成得。N型半導體具有過量的電子(使其為負),而P型半導體缺乏電子(使其為正)。矽基頂部不同顏色標記的是多晶矽線路。矽片和多晶矽是晶片的主體部分,其上是各種由金屬層連在一起的電晶體和電阻。
LMC555各個功能塊
555定時器的簡要說明
555晶片是極其多用途的晶片,有著多達數百的不同應用包括時基計時或是開關以及電壓控制的振盪器和調節器。我將通過最簡單的電路振盪器——以一個固定的頻率迴圈往復的電路,來解釋晶片的功能。
用下面的圖來說明555晶片用作振盪器的內部運作。外部連線的電容將不斷地充電、放電從而產生振盪。在晶片內部,三個電阻構成分壓器產生相對供電電壓的1/3和2/3的參考電壓。外電容將在該範圍內充、放電,進而產生振盪,如左邊的圖片所示。更為詳細的是:電容器將通過外部電阻器緩慢充電(A段),直到其電壓達到2/3參考值,在B點,閾值(上)比較器切換觸發器關閉輸出,這將開啟輸出電晶體,致使放電電晶體導通使電容緩慢放電。當電容電壓達到1/3參考電壓(D點)時,觸發下比較器連通,同時使觸發器和輸出處於通路,如此迴圈往復。電阻和電容的值決定計時(即週期),從微秒到數小時。
555振盪器工作原理
總的來說,555時基電路的關鍵部件是檢測電壓上下界的比較器,設定該界限的分壓器,記錄充放電狀態的觸發器以及放電電晶體。555時基電路還有2個上面尚未提及的針腳(置位和電壓控制端),它們是用於其他更復雜電路的。
IC內的電晶體
像大多數積體電路一樣,CMOS 555定時器晶片由兩種型別的電晶體PMOS和NMOS構成。相比之下,經典的555定時器使用了舊技術的雙極型電晶體(NPN管和PNP管)。CMOS使用地非常廣泛,因為它的功率遠低於雙極型電晶體。CMOS電晶體可以非常密集地整合在晶片中,不會過熱,這就是為什麼CMOS自20世紀80年代以來就統治了微處理器市場。儘管555不需要很多電晶體,但是低功耗仍然是一個優勢。
下圖顯示了晶片中的NMOS電晶體,其截面如下。由於電晶體是由重疊層構成的,因此模型圖有點難以理解,但橫截面應該有助於說明。矽片的不同顏色表示已被摻雜以形成N和P區的區域。綠色矩形--矽上方的一層是多晶矽。白色的矩形是頂部的金屬層。電極是層之間的連線部分。
LMC5555 CMOS定時晶片中的NMOS電晶體的結構
MOS電晶體可以被認為是基於柵極上的電壓來連線或斷開源極和漏極的開關。電晶體由已經摻雜為負極(N)的兩個矩形的矽帶組成,嵌入在下面的P型矽基中。柵極由漏極與源極之間的部分和其表面的導電多晶矽層組成。柵極通過非常薄的絕緣氧化物層與下面的矽分離。如果在柵極加上電壓,則會產生電場,該電場會改變柵極之下的矽半導體的特質,從而形成電流導通層。照片還顯示出金屬層連線到源極,以及“電極”,其穿過絕緣氧化物將矽層連線到金屬層。
第二種電晶體是PMOS,如下所示。PMOS電晶體在許多方面與NMOS相反;因此它們被稱為互補MOS管,就是CMOS中的Ç(互補)。PMOS管由嵌入在N型矽基中的P摻雜矽的源極和漏極構成。當電晶體柵極上為低電壓時(與NMOS高電壓相反)導通,導致電流從源極流到漏極。連線源極、柵極和漏極的金屬層下面清晰可見,其上有通到底層的圓形通孔。(請注意,右側的圖不是橫截面,而是簡化的“俯檢視”。)在晶片模型圖片中,NMOS電晶體為藍色,柵極為綠色,PMOS電晶體為橙色,柵極為粉色。
LMC555 CMOS定時晶片中的NMOS電晶體的結構,右側為簡化模型
555中的輸出電晶體遠遠大於其他電晶體,並且具有不同的結構以產生高電流輸出。下面的照片顯示了一個輸出電晶體。注意到源極(外側)和漏極(中心)之間柵極的Z字形結構。還可以看到,漏極的金屬層在右邊是窄的,並且隨著它離開電晶體而變寬,以便承載逐漸增加的電流。
LMC555 CMOS定時晶片中的大型NMOS輸出電晶體
各種符號用於在原理圖中表示MOS電晶體;下圖顯示了其中的一些。在本文中,我使用的是突出顯示的那一組。
用於MOS電晶體的各種符號
如何在矽中實現電阻
電阻是類比電路的關鍵部件。不過,IC中的電阻很大,且不準確;在兩片相同的晶片中,對應的電阻的阻值可能相差50%。因此,模擬IC中,考慮的電阻的相對比例而不是絕對值。這樣設計,即使該阻值隨製造條件而變化,這些比率也幾乎保持恆定。
組成CMOS定時器中分壓器的電阻
上圖顯示了在晶片中組成分壓器的電阻。有六個50kΩ電阻串聯連線形成三個100kΩ電阻。電阻是淺白色的垂直矩形。在每個電阻器的末端,通孔和P +矽阱(粉紅色方形)將電阻器連線到金屬層,進而將它們連線在一起。電阻本身可能是P摻雜矽。
為了減小電流,CMOS晶片使用100kΩ電阻,遠大於雙極型555定時器中的5kΩ電阻。據說,555晶片是以這三個5K電阻命名的,但其設計師卻說555只是500晶片系列中的任意數字。
IC元件:映象電流源
在模擬IC中有一些非常常見的子電路,但是咋一看似乎很神祕。映象電流源便是其中之一。如果你看過模擬IC框圖,你可能已經見到過下面的表示映象電流源的符號了,並想知道映象電流源是什麼,以及為什麼要使用它們。
映象電流源符號
映象電流源的想法是如果有一個已知的電流,然後可以使用簡單的電晶體電路“克隆”多個電流副本。映象電流源的常見用途是代替電阻。如前所述,IC內不容易製造大電阻,且不準確。使用映象電流源還可以儘可能節省空間。此外,映象電流源產生的電流幾乎完全一樣,而不像兩個電阻產生的電流存在較大差異。
下面的電路將會解釋如何用三個相同的電晶體實現映象電流源。參考電流流經右側的電晶體。(在這種情況下,電流由電阻設定)由於所有的電晶體都具有相同的發射極電壓和基極電壓,所以它們將產生相同的電流,因此左側的電流與右側的參考電流相匹配。為了獲得更大的靈活性,可以修改映象電流源中電晶體的相對尺寸,使映象電流大於或小於參考電流。CMOS 555晶片使用各種電晶體尺寸來控制電路中的電流。
由PMOS電晶體組成的映象電流源,左側兩個電晶體映象右側由電阻控制
的電流
下圖顯的是LMC555晶片中的一個映象電流源,由兩個電晶體組成。每個電晶體實際上是並聯的兩個電晶體,這是晶片中的常見技巧,所以物理上來看有兩對電晶體。要看到電晶體有點困難,因為金屬層覆蓋其中的一部分,但希望這個描述是有意義的。從頂部開始,第一個電晶體所在的寬矩形構成了源極,柵極1和漏極1。注意將金屬層連線到源極的通孔。下一個電晶體共享漏極1,接下來是第二個柵極1和源極。由於這兩個電晶體共享漏極,並且源極和柵極相互連線,所以兩個電晶體有效地形成一個較大的電晶體。同樣地,接下來的是並聯de兩個電晶體:源極,柵極2,漏極2,。
LMC555晶片中的兩對PMOS電晶體形成映象電流源
右側的原理圖顯示瞭如何將電晶體連線在一起作為映象電流源。如果仔細看左側照片,可以看到單個多晶矽條帶蛇形地來回形成所有的柵極,所以柵極是連線在一起的。在右側,上部金屬條將漏極1和柵極連線到電路的其餘部分。下部金屬條連線漏極2。
IC元件:差分放大電路
要了解的第二個重要電路是差分放大電路,模擬IC中最常用的雙電晶體子電路。你可能想知道一個比較器如何比較兩個電壓,或運算放大器如何做兩個電壓相減。這些就是差分放大電路的功能。
差分放大電路的簡單示意圖
以上示意圖顯示了一個簡單的差分放大電路。底部的電流源提供固定負電流I,其在兩個輸入電晶體之間分開。如果輸入電壓相等,電流將分成兩個相等的支路(I和I)。如果其中一個輸入電壓比另一個高,相應的電晶體將導通更多的電流,所以一個支路獲得更多的電流,另一個支路變得更小。小的輸入差異足以將大部分電流引導到“獲勝”支路,從而使比較器開啟或關閉。晶片在兩個支路上使用映象電流源而不是電阻,其充當有源負載並增加放大倍數。
反相器和觸發器
雖然555是類比電路,但它包含一個數字觸發器來記住它的狀態。觸發器由反相器(簡單的邏輯電路將1變為0,反之亦然)構成。555使用標準CMOS反相器,如下圖所示。
CMOS反相器的結構:頂部的PMOS電晶體和底部的NMOS電晶體
反相器由兩個電晶體構成。如果輸入為0(即低電壓),則頂部的PMOS電晶體導通,將正電源連線到輸出端,產生1輸出;如果輸入為1(高電壓),則底部的NMOS電晶體接通,連線地端,產生0輸出。CMOS的神奇之處是電路幾乎沒有能量消耗。電流不通過柵極(由於絕緣氧化物層),僅當輸出改變狀態時,唯一的功率消耗是微小的脈衝,以對導線形成的電容進行充電或放電。
下圖顯示的是觸發器。兩個反相器連線在一個迴路中以形成鎖存器。如果頂部反相器輸出1,則底部輸出0,形成穩定的迴圈。如果頂部反相器輸出0,則底部輸出1,如此形成穩定的迴圈。
LMC555 CMOS定時晶片中觸發器的電路圖
要更改儲存在觸發器中的值,只需將新值強制寫進入鎖存器,即可用強力重寫現有值。為此,底部的反相器是“弱”的,使用低電流電晶體。這允許置位端或復位端輸入使弱反相器過壓,並且鎖存器將立即翻轉到正確的狀態。R(復位)和S(置位)輸入來自比較器,並通過電晶體將鎖存器輸入為高或低。復位訊號來自輸入引腳,並通過二極體將鎖存器輸入高電平;復位反相器的輸出電流由映象電流源控制。復位將S拉低,阻止S端矛盾的輸入。
CMOS 555與傳統雙極型555對比
常用的555定時器是在1970年設計的,而CMOS工藝(ICM7555)直到1978年才釋出。本文中描述的LMC555在1988年左右出現,而模型是的1996年。
下面的影像將同規模的經典的555定時器(左)與CMOS LMC555(右)進行比較。雖然雙極晶片由通過金屬層連線的矽構成,但是CMOS晶片具有附加的多晶矽互連層,這使得晶片看起來上更加複雜。CMOS晶片較小,並且在底部和右上方有很多未被使用的空間,因此可以做得更小。CMOS電晶體比雙極電晶體複雜得多。除了輸出電晶體,雙極型電晶體都是簡單的獨立單元。相比之下,大多數CMOS電晶體是由兩個或更多個並聯的電晶體構成的。經典555使用比CMOS 555更多的電阻,分別為16、4個。
模型照片:同規模的555定時器(左)和CMOS 555定時器(右)
可以從照片中看到CMOS晶片中的功能塊較小。常規555中的最小線為10-15μm,而這在CMOS晶片中為6μm。更高階的晶片在1996年採用350nm工藝(約17倍),因此LMC555無處不在CMOS技術的尖端。
這些晶片相比較,反映出CMOS的功耗優勢。標準555定時器通常使用3 mA電流,而此CMOS工藝的僅使用100μA(其他型別的低於5μA)。555的輸入可以達到0.5μA,而CMOS版本的輸入使用非常低的10pA,相差四個數量級。較小的輸入“穿透”電流允許CMOS更長的延遲。
結論
起初,晶片的照片看起來太過複雜。但仔細看看LMC555 CMOS定時器晶片的模型可以看出構成電路的元件。可以把PMOS和NMOS分別拿出來管,瞭解它們的原理以及如何組合到電路中,並瞭解整個晶片的工作原理。由於CMOS晶片具有經典雙極555晶片中不存在的多晶矽層,因此需要更多的努力來了解CMOS晶片。但從根本上說,兩個晶片都使用類似的模擬功能塊:映象電流源和差分放大電路。如果你發現這個CMOS工藝的555晶片看起來很有趣,那麼你還應該看看我的經典555晶片的拆卸。感謝Zeptobars的CMOS晶片的模型照片。
在Twitter上關注@kenshirriff,獲取我的新文章的公告。
原文:http://www.righto.com/2016/04/teardown-of-cmos-555-timer-chip-how.html ,譯文對原文略有刪改。
譯 / 看雪翻譯小組 StrokMitream
相關文章
- 5552024-07-30
- [軟體工藝]2004-10-02
- 三星電子5奈米工藝由安霸應用於全新汽車AI域控制器晶片2023-02-21AI晶片
- win10設定cmos密碼的方法_win10電腦怎麼設定cmos密碼2020-02-21Win10密碼
- Android 逆向(四) - adb常用逆向命令2024-03-20Android
- 定時器2016-09-24定時器
- CMOS鐳射感測器GV系列2024-07-13
- 定時器以及定時器的幾個案例2019-02-16定時器
- PCBA貼片加工無鉛工藝與有鉛工藝的區別?2023-04-19
- LIVE555研究之三:LIVE555基礎2014-08-16
- 姚頌長文:AI晶片創企遭遇製造工藝困境,看好華為與阿里平頭哥2019-09-03AI晶片阿里
- 逆向常用python程式碼2024-03-26Python
- iOS定時器2020-03-27iOS定時器
- JavaScript定時器2019-11-21JavaScript定時器
- js定時器2021-09-09JS定時器
- JavaScript 定時器2021-11-08JavaScript定時器
- 核心定時器2012-02-27定時器
- 變壓器勵磁電感設計與工藝的限制2024-10-29
- ORACLE常用定時備份指令碼2021-09-17Oracle指令碼
- 決定專案成敗的三件事 - 企業工藝2020-04-10
- 純生JS輪播,定時器新增和清除定時器2020-11-26JS定時器
- 為什麼動態CMOS沒有上拉延時?2024-06-26
- 當軟體定義晶片遭遇自由軟體時 - lwn2022-02-20晶片
- 當"軟體定義晶片"遭遇"自由軟體"時 - lwn2022-02-20晶片
- java 中定時器2022-01-21Java定時器
- python定時器2023-02-18Python定時器
- Systemd 定時器教程2018-03-30定時器
- JMeter—定時器(八)2018-06-05JMeter定時器
- 關於定時器2017-10-02定時器
- Go 的定時器2017-09-12Go定時器
- Python 定時器2017-06-14Python定時器
- android定時器2016-04-14Android定時器
- 閉包、定時器2017-12-13定時器
- jmeter(七)定時器2017-08-13JMeter定時器
- 整理:java定時器。2014-05-10Java定時器
- Android 定時器2015-04-13Android定時器
- JavaScript定時器演示2011-11-25JavaScript定時器
- TIM-定時器2024-08-12定時器