Hello大家好,這里是電路?。?/span>
現在的單片機開發有多爽?在VS Code、STM32CubeIDE或者Keil里敲完代碼,點一下燒錄按鈕,通過一根SWD甚至普通的數據線,“唰”的一下,只要一兩秒鐘,程序就燒進去了。不僅能幾十萬次地隨時重寫,還能在線設斷點單步調試。
但如果穿越回40多年前的上世紀80年代,去體驗一下“上古時期”的單片機開發,可能直接會被逼瘋。
讓我們來一場“硅基考古”——看看老一輩工程師是怎么用“紫外線燈”給芯片強行洗腦、擦除數據的!
1、腦門上開著“天窗”的單片機
這是一顆上世紀的Intel D87C51FC-20單片機(大名鼎鼎的8051家族成員,型號里的D代表陶瓷封裝DIP)。

拿到這顆芯片,最先注意到的絕對是它背上的那個透明玻璃窗。透過玻璃,甚至能直接用肉眼看到里面金閃閃的硅晶片(Die)和極細的打線!

為什么要在芯片上留個窗戶?為了散熱嗎?
當然不是。這顆芯片內部存儲代碼使用的是UV-EPROM(紫外線可擦除可編程只讀存儲器)。
在那個年代,往芯片里寫數據容易(加上高壓電脈沖就能把電子強行打進去),但是想把數據清空卻極度困難,因為不能通過電信號直接擦除。
唯一的辦法,就是讓高能量的紫外線直接照射內部的硅晶片,利用光電效應把電子“轟”出來。這個玻璃窗,就是專門留給紫外線照進去的物理通道。
這塊玻璃有多厚?
如果好奇這塊天窗玻璃的厚度和封裝工藝,暴力砸開一顆帶有同樣天窗的AMD AM27C64存儲芯片就會發現,這塊純石英玻璃的厚度大約是1毫米,并且被極其牢固地密封在陶瓷外殼上,以保證芯片內部的真空和純凈。如果是普通玻璃會大量吸收紫外線,只有高純度石英玻璃才能讓極短波長的紫外線暢通無阻。

2、微觀物理學:光子與電子的“越獄之戰”
到底為什么紫外線能擦除數據?這里面其實藏著非常硬核的物理原理。
首先,UV的全稱是Ultraviolet(紫外線)。
EPROM芯片存數據的核心叫浮柵晶體管(Floating Gate)??梢园阉胂蟪梢粋€微小的多晶硅“孤島”,四周被厚厚的二氧化硅(SiO?)絕緣層死死包裹。燒錄代碼,就是把電子強行打進孤島;一旦進去,電子就被永遠“囚禁”了。
絕緣層就像一堵高墻,在物理學中這堵墻的勢壘高度約為3.2eV(電子伏特)。電子自己是翻不過去的。
這時候,高能量紫外線(UVC,波長通常為254nm)出場了。根據量子物理公式,這種波長的紫外線,其攜帶的每一個光子能量大約是4.9eV!
當短波紫外線穿過石英玻璃打在電子上,電子吸收了光子,瞬間獲得了4.9eV的能量(大于墻的高度3.2eV)。于是奇跡發生:電子如同插上了翅膀,直接躍過了絕緣層逃離了浮柵。
所有電子跑光,芯片內的數據就全部恢復到了FF的初始狀態!
3、用紫外線給芯片洗腦(擦除數據)
想要徹底清空芯片里的數據,需要用紫外線照射。比如這樣:

當然這顆大約5毫瓦的微型紫外LED功率太小,需要照射幾個小時。
更常規的是使用這種紫外線燈箱,上面有一個定時的旋鈕:

4、上古程序員的噩夢:改個Bug要花一整天?
這塊Intel D87C51FC-20單片機的腦子洗干凈了,接下來就是寫代碼。寫好的代碼用經典的MiniPro TL866編程器,把編譯好的Hex文件給燒錄進去。

能想象上古時代單片機工程師的調試日常嗎?
改兩行代碼->從電路板拔下芯片插到燒錄器->燒完拔下來插回電路板->發現有Bug->拔下芯片丟進紫外線燈箱烤10多分鐘->等冷卻后再插回燒錄器……
循環往復!如果沒有昂貴的硬件仿真器,當年為了不浪費時間等紫外線烤芯片,工程師通常會在手邊備上十幾片一模一樣的芯片,輪流烤、輪流燒。
5、燒錄完為什么必須“貼膏藥”?
如果見過這種老芯片,會發現它們真正在機器里服役時,玻璃窗上無一例外都貼著一張不透光的貼紙。

為什么要貼???因為要防陽光和日光燈!
雖然穿透大氣的太陽光紫外線較弱,但如果芯片不貼貼紙暴露在直射陽光下幾周,或者在室內的日光燈下照射幾年,日積月累的微弱紫外線依然會給電子緩慢充能。只要有一個電子“越獄”導致數據位發生翻轉(Bit Flip),哪怕只錯了一個字節,整個程序就會瞬間崩潰死機!
同時,這張“防曬貼紙”也成了早期物理形態的“版本控制系統”。當時的工程師會在貼紙上手寫VxWorks 5.1、sv40 3.0這樣的字符。每次升級固件,就得撕下舊貼紙,烤完重寫后,再鄭重地貼上一張寫著新版本號的新貼紙,滿滿的儀式感!
6、結語
看著現在的STM32、ESP32甚至各種原廠主推的現代化集成開發環境,不得不感嘆電子技術的進步速度。當年那個腦門上開著天窗、需要用紫外線洗腦的浪漫時代,已經徹底變成了半導體博物館里的回憶。
本文部分圖片來源:3.14.by博客