曾經看過一篇標題名為「Arduino\NXT 有害論」的網路文章,簡單發表一些淺見。
一般電路中運算控制核心晶片,依照硬體特性大致可分為三個族群:第一類為MCU-Microcontroller Unit(微控制器),整合ALU(Arithmetic Logic Unit)、控制單元、記憶單元(RAM、ROM)與I/O介面,可以設計適當的軟體,對晶片進行燒錄(program),內部的控制單元便根據燒錄在ROM裡面的程式依序執行。如傳統的8051家族(89C51、89S51等)、Arduino UNO上面的IC-ATMEGA328P、Arduino Mega上面的ATMEGA2560等就是這類的晶片。近年來MCU功能日趨強大,高階晶片內建FLASH,DMA控制器,甚至支援USB protocol(如Texas Instruments公司的MSP430F55系列MIXED SIGNAL MICROCONTROLLER晶片)。
第二類為MPU-Microprocessor Unit(微處理器,亦簡寫為µPs),一般內部具有ALU(Arithmetic Logic Unit)、控制單元、高速I/O介面,記憶單元除了快取記憶體(cache memory),RAM、ROM及A/D、D/A延伸功能需要外部擴充。舉例而言:較早期的晶片如Zilog公司的Z80(1976問世)、Intel 公司的8088、8086(約1980年問世)皆為此類;目前MPU多用於高速運算處理系統,進行大量的資料信號分析,如個人電腦中統稱的CPU(Intel Core i3、Core i5、Core i7、Xeon系列等)。
第三類為PLD(可程式邏輯元件)系列,不論PEEL、CPLD、FPGA等,皆透過VHDL、Verilog硬體描述語言決定晶片功能;這類晶片只有數位I/O,若需要A/D、D/A功能亦需設計外部電路。使用這類晶片,需要對硬體邏輯架構有較多了解,且設計時需要考慮時脈同步、邏輯閘延遲、電路化簡與最佳化的問題。
Arduino的產生,很大一部分依賴晶片技術的進步,當功能強大的MCU日漸普及,取代過去一一獨立的控制晶片!在過去10年或更早,常見的是「單板微電腦」,上面佈滿許多IC,舉例如下:
●8237:direct memory access (DMA) controller-直接記憶體存取控制器
●8255:Programmable Peripheral Interface (PPI) chip-可程式並列I/O介面
●8259:Programmable Interrupt Controller (PIC)-可程式中斷控制器
●8279:Keyboard/Display Controller-鍵盤/顯示控制器
詳細datasheet網路上即可下載,我們可以很清楚的看到、量測到微電腦系統運作時信號的傳遞、處理;但在整合之後,電路板上的晶片數量減少了,雖然處理方式大同小異,我們卻更難認識、學習微算機的操作-訊號全部藏在IC內部處理完成了!我們比較過去的主機板與現代的主機板(圖片來自維基百科),也可以看出些端倪:
參考資料:
●Arduino\NXT 有害論:
●Intel chipsets:
●主機板圖片:
- https://upload.wikimedia.org/wikipedia/commons/8/8d/Original_AT_motherboard.jpg
- https://upload.wikimedia.org/wikipedia/commons/2/28/P6T_Deluxe_V2.jpg
●8088 datasheet:
●8088微電腦電路:
●Texas Instruments公司MSP430F55系列MIXED SIGNAL MICROCONTROLLER晶片datasheet:
2015.6.15初稿
沒有留言:
張貼留言