總網頁瀏覽量

顯示具有 intel 標籤的文章。 顯示所有文章
顯示具有 intel 標籤的文章。 顯示所有文章

2022年12月8日 星期四

【關於本園區之嵌入式系統韌體基礎課程導向】「建立紮實基礎的本質面,不是軍備競賽,也不是花拳繡腿的應用」

【關於嵌入式系統/韌體 基礎課程的導向】

「建立紮實基礎的本質面,而不是如同比規格的軍備競賽,也不主打花拳繡腿的應用」

這幾年開始嘗試用系統結構相對簡單的實驗平台、簡單的方式,來教學/說明背後相對較深層、較複雜的電腦軟硬體原理。其實有些內容隨著逐年教學經驗累積與思考,雖然可能使用著一樣或類似的平台,但又會有不同的、更深層的體會,一直還是有不同的收穫與視野。

在基礎課程內容的方面,回歸最重要的基礎紮根本質面向。不去追求表面花拳繡腿的應用功能、不去依賴現成library及高度現成花俏的硬體模組,也不好高騖遠,而是主打紮實的基礎原理及驗證,包含帶學員去了解 組合語言/C語言背後的一些電腦軟硬體基礎原理、MCU原理架構、Datasheet內容(電氣特性、訊號時序、周邊控制操作、描述內容的閱讀理解方式)、基本電路 等等。

輔導多位軟韌體工程師的經驗發現,發現這些基礎原理其實才是許多工程師真正缺乏的東西(很多人工作是使用較新規格強大的MCU/SoC,但對於原理方面基礎沒有掌握,不知其所以然,突然遇到問題時也沒有時間去慢慢從頭學習或複習,只能用粗淺概念搭配 try and error的方式去撞牆/debug)。如果是表面的功能,某些工程師學員在耗費時間嘗試之後,或許有能力讓功能勉強動起來 (但是動得如何、能動幾次、是否有bug,就很難說了),但是一旦情境條件複雜化,出現較複雜的bug時,卻是未必有能力去分析,其實許多關鍵就在於基礎是否足夠紮實,而這個基礎紮實度其實需要原理和實驗兩者緊密配合。而若要能讓學員快速掌握重點、著重於學員對於深層原理細節的理解吸收程度與視野,其實教學課程必須用心設計,不能蜻蜓點水,更不能用比較實驗教材規格高低的軍備競賽的觀念去看待。

下方是一些課程原理內容驗證實驗簡易展示,為MCS51 MCU外部中斷的幾個相關原理驗證教材中的影片,在簡單現象背後的詳細原理分析方面會花較多的時間在課程內說明。





課程內容中會帶學員閱讀了解IC/MCU Datasheet相關內容 :

圖片來源: [1]


圖片來源: [1]


圖片來源: [2]


圖片來源: [2]

8051到今年都還有IC design house公司在推出新款,例如 偉詮電子(WELTREND) 在 今年(2022年)還有持續推出數款8051系列MCU的新版本。但因應教學需求(不是針對應用)所以我選擇使用架構更簡易的較舊式的基本款來做教學。

圖片來源: [3]


再次強調,這個基礎課程的目標是: 「建立紮實基礎的本質面,而不是如同比規格的軍備競賽,也不主打花拳繡腿的應用」

----

此外,課程內容也可客製針對學員們在工作上遇到的相關內容諮詢,協助分析並給予明確方向/建議。


資料/規格技術手冊圖片來源:

[1] INTEL, MCS51 MICROCONTROLLER FAMILY USER’S MANUAL.

[2] Nuvoton(新唐科技), W78E516D/W78E058D Data Sheet.

[3] WELTREND(偉詮電子), 首頁 >產品資訊>微控制器>8-bit MCUs,  http://www.weltrend.com.tw/zh-tw/product/index/13

-----

個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2021年8月23日 星期一

【好書介紹】電腦技術並不是只有軟體! 介紹一本介紹Intel 80x86為核心的IBM電腦系統軟硬體的好書

歡迎透過合法的方式分享此文內容,若要轉載/轉貼,請明確貼出此原始連結並標示作者基本資訊請勿抄襲及非法轉貼(例如擷取內文但並未註明出處)

因為搞不清楚狀況的人很多(執著表面的年份、新舊),先介紹一款Intel 在2016年所推出的基於x86(1993年推出的Pentium) ISA Compatible CPU 的Inte lQuark系列 微控制器(MCU): D2000

該MCU內的CPU的類型是1993年推出的Pentium(本來是要被命名為80586) ISA Compatible的CPU,在這款2016年推出的MCU的Intel官方Datasheet內的介紹可見下圖紅框圈起處

- 其內部CPU info :

32 MHz, 32 bit, single core, single thread, Pentium ISA compatible (如果看不懂這是x86的人,請自己google一下,做點功課,或見下圖的Intel官方手冊內容)

https://static6.arrow.com/aropdfconversion/3675d6354c6d8ac364213bdd827aacc81c93c43d/119736798394079quark-d2000-datasheet.pdf


- 其內部I/O :

SPI, I2C, GPIO, SPI, Comparators, ADC, PWM, DMA, UART

- Wikipedia的Intel Quark系列介紹: 

Intel Quark is a line of 32-bit x86 SoCs and microcontrollers by Intel, designed for small size and low power consumption, and targeted at new markets including wearable devices. The line was introduced at Intel Developer Forum in 2013.

...... However, in 2016 Arduino released the Arduino 101 board[3] that includes an Intel Quark SoC.

https://en.wikipedia.org/wiki/Intel_Quark

- Datasheet

https://static6.arrow.com/aropdfconversion/3675d6354c6d8ac364213bdd827aacc81c93c43d/119736798394079quark-d2000-datasheet.pdf

- Wikipedia的Pentium系列內容介紹: 

https://en.wikipedia.org/wiki/Pentium

------------

執著技術和平台的表面年份數字、或者人云亦云沒有必要重點在於是否合適

很多事情,尤其是電腦技術領域,真的不見得是越舊的年代的東西就代表完全過時無用,事實上有許多技術概念真的都是通用的,而去了解80x86和其相關系統設計的觀念,也是一樣的。

真實的專業研究之所以有價值,原因也在於此,技術不限於年份數字的這種表象,只要是適用、可解決或改善問題的idea觀念,都極有可能再拿出來被使用。

例如8051已經是40年的老MCU IP,但從台灣一線的IC設計公司公告的職缺內容可看出,至今仍有著需要了解8051的能力的工程師職缺,可參見我的下方PO文 (點選 查看更多)


------------

先聲明,這篇不是工商服務廣告,單純介紹過去讀過的電腦技術類的好書

這本80x86 IBM PC and Compatible Computers Assembly Language, Design, and Interfacing Volumes I & II , 2002年出版,作者是Muhammad Ali Mazidi和Janice Gillispie Mazidi,出版社為Prentice Hall(Pearson)。

https://www.amazon.com/80X86-IBM-Compatible-Computers-Interfacing/dp/013061775X

中譯版書名為: IBM PC and Compatible Computers Design, and Interfacing - IBM PC系統設計與介面技術(第四版),東華書局出版,譯者為 方志鵬。 

這本書涵蓋了很多電腦系統的軟韌硬體基礎觀念內容,在當年(十幾年前,大約19歲的時候)給了我不少啟發。

和 計算機組織/結構課本(科目)的一個不同之處在於,這本書或這類的科目會實際介紹8086/8088/80286/.../Pentium等微處理器IC及一些組合語言程式之外,也會介紹一些關於 介面電子電路 以及許多周邊IC與硬體(如8288 bus controller、8284 clock generator、記憶體介接電路、Programmable I/O的8255、LM34/35溫度Sensor、ADC0848、DAC808、8259中斷控制器、8253 Timer、LCD驅動、步進馬達驅動、 DMA 8237、UART 8250、UART轉RS232電壓位準轉換器、硬碟、鍵盤、印表機、數學運算coprocessor、視訊、以及其它許多IC,包含與微處理器IC之間的各種實際訊號狀態)的內容。

雖然這本書介紹的許多IC的型號比較舊,但是許多基礎原理觀念至今仍是共通的(畢竟電腦技術就是這幾十年來持續演化)。

另外還包含一些支援OS的微處理器的特性基礎,如80386的user/supervisor mode、virtual memory、page table、TLB等觀念,到了高速記憶體介面與存取章節也有各種記憶體的介紹(DRAM、SDRAM、cache memory的存取機制、write through、write back、cache coherence等觀念。後續談到80486時也會介紹到Pipeline;Pentium章節會提到superpipeline、supersclar、Harvard architecture、pipeline hazard、compiler的instruction scheduling、RISC/CISC的特性比較、out-of-order execution、branch prediction;MS-DOS的結構、記憶體管理;PCI、USB bus;BIOS;MS DOS和BIOS的ISR (INT _ _H對應的ISR),涵蓋內容相當廣泛。

許多讀資訊工程系的朋友可能會不太清楚,這門課的名稱通常叫作微處理機與介面設計、微算機原理、介面設計,但現在在學校關於這種科目通常都是拿MCU(微控制器)的開發板來讓學生實驗,而不是像早期真的用微處理機(微處理器,如8086、Z80等)搭配一堆IC的兜成介面的方式來教了。另外,嚴格來說,這門課的範圍比計算機組織的範疇還廣(包含一部分計算機組織的內容),但通常學校只會教到這本書的內容的一小部分。外國的書像是現在介紹的這本比蠻有名,而台灣比較常見的書是台灣科大電子系林銘波老師所出版的一系列微算機原理書籍。

這是一門在本質上很偏向實務和基礎理論觀念並重的課程,許多大學在這方面的教學都很輕忽。此外,這科也並不是研究所指定考科,所以常被忽略,研究所考科通常是計算機組織結構,但是性質和內容仍有不小的差異。

而關於介面硬體電路的方面,是近年來許多國內大學的電資工程系所普遍比較不重視的一環,畢竟現成的硬體用慣了,就容易忽視其存在與重要性。

但其實電腦系統技術絕對不是只有純軟體,若沒有紮實的硬體系統(包含類比式與數位式硬體),軟體哪來的用處呢?就算現在的SoC和MCU的集成度很高,很多週邊硬體都整進去了,但是基礎觀念和介面電路還是少不了啊!



註1: 這裡講的微處理器(微處理機)就真的是傳統所指的 "微處理器"(Microprocessor),例如8086/80286/80386/80486/Pentium IC裏頭就是CPU單元, 而不是微控制器(MCU, Microcontroller)!   並且也不是在指SoC或MCU被稱作的嵌入式微處理器(Embedded Microprocessor)的狀況。

順帶一提,這本書在談到鍵盤的章節,也會介紹到標準IBM PC內的鍵盤內都會有一顆微控制器(MCU),該微控制器內含一顆微處理機(微處理器)、RAM、ROM以及幾個I/O Port,這裡很清楚就可以釐清微處理機和微控制器的差異!

註2: 這本書後續還有續作: The x86 PC: Assembly Language, Design, and Interfacing, 5/e,2009年出版, 作者: Muhammad Ali Mazidi, Janice G. Mazidi, Danny Causey)

https://www.tenlong.com.tw/products/9780135026489




--------------------

孫文良 (阿良的嵌入式系統技術學習區)

個人簡介: https://sites.google.com/view/wenliangsun/

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先參考 課程招生網頁連結