總網頁瀏覽量

2021年10月31日 星期日

長年來,科技大學的經費相對來說真的少得可憐! 以110年高教深耕計畫經費來看,台大 獲得的經費 是 台科大 的7.5倍

看到一篇新聞,【教部最高額競爭型補助經費出爐!台大擁逾23億全台第一 陽明交大合併竄第三】

就台灣的狀況而言,長年來,名校大學的經費資源多了那麼多,結果主要差異是多了許多論文績效,

挑個政府經費項目分配來看好了,以教育部110年高教深耕計畫補助經費為例,台大的23.26億、成大14.12億、陽明交大13.89億、清大12.12億,

而屬於科技大學的  台科大是3.09億、北科大是2.64億,台大 與 台科大 獲得的經費 差了7.5倍之多。

隨便挑個客觀狀況一比之下,請問名校有什麼可覺得自我優越的? 

學生人數、招生名額要不要也比較一下?

很多人對於名校的崇拜好像變成信仰,過度執著的人一大堆。

----

很多名校大學的研究中心/研究單位的領導人都是大教授,團隊裡有很多博士學歷的研究員、碩士學歷的研究助理(工程師),

但是很多基礎技術開發,其實團隊內通常很多人完全不熟悉,所以就用研究計畫經費外包給外面的公司去完成,

常見的項目例如: 嵌入式系統的初步規劃、電子電路設計、PCB Layout、機械機構設計 等。

我本身還被問過要不要接名校大學的一些實務開發外包案! 但我沒啥意願。

請問這樣子 能叫做名校大學 很擅長理論又很擅長開發實做嗎? 

殊不知 名校大學的經費比技職體系學校 還多很多耶,經常是科技大學的七倍以上。

2021年10月28日 星期四

【身為技職體系出身的一份子,不能都不講話】

 【身為技職體系出身的一份子,不能都不講話】

最近在網路上看到一篇幾年前的Dcard論壇討論文章(當然這類的言論很多):

https://www.dcard.tw/f/talk/p/227572117?cid=f60fc57e-fee4-4999-aeb1-8fbea29e494f&fbclid=IwAR3pJvwnLTvPflGd7kjJbGSLUqPemK6sq6mwuxbKKlM1RGZukfbbUG3MrnE




一堆沒讀過高職的學生講得自己好像很懂高職一樣,以為社會文化信仰就代表一切的客觀標準?

其實最左方截圖內容,這位同學所提到的 二極體PN接面、放大器、二極體模型等,這些都是正規高職教育的高職電資科系學生在高二學習電子學(一整學年)的基礎內容,其實至少還有整流、倍壓、濾波、箝位、電晶體直流偏壓電路、電晶體放大電路(包含小訊號放大等)、串級放大電路,元件涵蓋二極體、稽納(Zener )二極體、BJT、JFET、MOSFET、OPA、基本振盪電路 

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

除了高職時期學過電子學之外,我在大學時期又修了一次的電子學(當時是用Smith的電子學原文第5版),多數大學用的聖經課本表面上高尚好像很有學問,但是其實對於許多本科系學生來說,如果沒有很認真學、或者沒有繼續走相關領域/方向/組別的話,加上大學的實際授課時數少的狀況,其實我看過很多普通大學學生(第一次真正學電子學)會不太清楚到底在學啥,或者修完課程考完試就忘掉一堆了。

而高職學校的基本電學、電子學、數位邏輯課本或參考書真的都蠻實用的。關於這方面,金門大學資訊工程系 陳鍾誠教授(交大資訊科學學士、台灣大學資訊工程碩、博士) 有極為相同的看法 (可參考陳教授在我的公開貼文下方的留言、陳教授的PO文),我完全同意陳教授對此的看法。

事實上,正規高職一整學年的電子學涵蓋的範圍已經很廣且紮實完整,理論課程紮實之外,實驗課程也多,不像一堆大學實驗課大多叫碩士班學生當助教隨便弄弄。

而因為大學的上課時間其實很短,表面上章節教了很多但是其實不太紮實,加上一堆人上了大學之後根本在混,或者用以往應付考試的心態在學專業科目,確實一堆大學生甚至電機博士教授也不一定懂內容,

很多人搞不清楚,以為高職沒理論,又自我感覺良好,到底是告訴你說高職都硬幹的?一堆普通高中體系學生搞不清楚狀況還會憑空自我想像,以為自己理論基礎很強?選擇普通高中代表理論基礎很強?君豈不知台灣教育體制主流大多是填鴨教育的方式在進行? 笑了

台積? 聯發?你確定這些大企業有去深入了解過台灣的高職/技職教育嗎?  

早期政府文官體系把龐大的半導體發展資源丟給 普大體系 還是 技職體系? 這些文官自己是出身於什麼體系?  而技職教育體系所受到的資源對待有公平過嗎?   

難道不知道,台灣的技職教育體系 即便在這樣的極度劣勢下,技職教育還是產生出一堆優秀人才?

發文的成大學生可能不知道成大電機系有些優秀教授就是讀高職出來的? 例如已故的前成大電機賴溪松教授(非常傑出)就是 高雄高工電信科64年畢業校友。

而目前還在成大電機系任教的 王醴 教授 過去畢業於 高雄工專電機科,當年升等教授的時候聽說非常年輕 (好像是破紀錄)。

下面連結(我的這篇貼blog文章)貼出來可能會讓更多無知又自傲的普通體系學生崩潰:

【台灣的技職體系就算在社會文化的歧視與偏見下仍然人才輩出,出過好多學術界傑出大咖教授和業界優秀人士 】

https://jimsun-embedded.blogspot.com/2021/02/10178-2-3223-6-1-9-stmicroelectronicsmc.html

.

早期技職體系相對比較少人繼續升學,幾十年來就被某些普通高中體系的人講(嫌棄)說技職體系的人的學歷太低、沒有讀大學;

而現在技職體系學生都有持續升學,又被某些普通體系的人講(嫌棄)說現在技職體系的人都在顧升學。就算後續讀到台清交成的研究所畢業,又被講說這是學歷血統不純。

嘿對,都給你們講就好、都給你們贏就好。

不覺得台灣社會在這方面有許多人非常無聊且幼稚?而且是不分年齡。

其實正規的技職教育,就算是顧升學,除了共同科目之外,也是學一堆專業理論和實驗作為主要升學考試內容(專業科目)。

反正都是要考試競爭升學,幹嘛不以專業內容來作為考試競爭內容?多數人畢業後去社會上工作,早晚還是需要用到專業科目內容。而且高職本來就有許多理論課和實驗課,這樣子難道不好?

講真的,無論最後如何發展,在高職階段去學些實際的專業理論和實驗,在實際意義上,也比只學一堆與專業無關、只為考試而考試的東西還來得好多了。

.

其實之所以會有許多普通高中體系學生 去歧視 技職教育體系的狀況,可能源自於某些 自傲+自卑+忌妒 的心態。

台灣教育(或說台灣社會)就是考試分數導向,有些普通高中生認為,怎麼在國中升學階段分數考得比他們低的人,居然可以在高職(高中生年紀)階段就開始學習這麼專業的內容? 

某些人不願意接受這個事實,所以當然不願意去承認技職生在專業領域方面的努力和成果。

事實上,普通高中生無法在學校課業內接觸專業,這是台灣社會文化繼承了華人傳統科舉思維和教育制度的問題,自己如果是人才就應該要用脫離體制標準的視野去看清這一切! 甚至是該去深入了解(包含歷史因素、發展等)、逐漸改善這些觀念和體制! 而不是在那邊自卑自傲和文人相輕的去歧視技職體系學生。

.

那為何我們當年還是要讀去名校研究所? 因為台灣社會迷信阿,講事實也講不聽阿,只想看校名阿,如果沒來讀過這些學校,人家以為我們在唬爛、以為我們在葡萄。

.

列出之前分享的一些相關文章(連結):


2021年10月27日 星期三

【9年前,推甄碩士班期間的陳年軼事】

 9年前(當時是大四上學期),推甄碩士班時,因為對於我個人來說,中山大學最先放榜 (因為在初審階段就被直接錄取中山大學電機工程系的碩士班,無需面試、直接正取)。

註: 當年推甄碩士班時,我完全沒有認識我所錄取的這些系所的任何一位教授,也 完全沒有 大學時期的學校教授協助引介 (我專題老師說他很少認識那些名校的教授)!

於是當時就email約了教授面談,結果騎車跑了一趟過去(從海科大楠梓校區騎去西子灣的中山大學,大概快20公里吧?),結果當時有約的那個教授好像不太知道他和我有約 (大概是助理約的吧?),一副不太想鳥我的樣子,然後敷衍我叫我去問他們實驗室的學生。

他們實驗室的一位學生(好像大學讀高雄大學的)聽到我大學是讀 高雄海洋科技大學的,就開始暗示我說,做工程不能硬幹、要用高級軟式計算(意思是我們技職體系都在硬幹? 我聽到當下快笑死),後來聽到我說我有錄取清大通訊所碩士班,只是我是高雄人加上家裡窮所以只考慮南部學校(中山or成大),所以我當時只是隨便從清交之間挑一間報名而已,當時清大通訊所碩班是100%書審,所以當時我也都沒去過清大,然後他聽完就不太講話了 (不知道是羨慕還是忌妒?),後來他們實驗室的其他幾位碩士生一直用很驚訝的表情看著我。

其實,我覺得這些都很無聊且幼稚且自卑,考上什麼名校又怎樣? 該看得是一個人的實質想法(理想)、和作為,而不是在那邊自卑心作祟去歧視技職體系,台灣社會總是有許多人會去執著這些無聊的事情(害得我都因為想要噹他們而跟著嘴砲)。

他可能不知道很多正規高職工程科系時期的專業科目內容中用到的數學量甚至可能和他大學時期差不多,專業科目本來就比他們早學得多。學得如何本來就是看個人造化,技職體系是硬幹?? 技職體系沒有理論??? 他可能誤會很大XD


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

相關文章: https://jimsun-embedded.blogspot.com/2021/10/blog-post.html

2021年10月18日 星期一

正常的高職電資科系的專業科目理論教育,其實很紮實, 而且內容太多了

延續之前寫的2篇文章:

「名校學歷」真的值得迷信和過度崇拜嗎? 分享一下我個人的實際經驗和看法

每次在書局翻到高職參考書,都有感覺,

高職專業科目課綱(至少我讀過的電子科系) 的理論課程基礎真的很多、很紮實,而且我甚至認為內容太多了 (對那年紀的學生而言)。

(學太多,很多內容考完試如果沒常用,就會就逐漸淡忘。但是,這個問題,其實在普通高中體系更嚴重,大多只是為了考試而學)

以最近在書局看到的高職「微處理機」科目的幾本參考書內容為例,包含 CPU組織架構(以x86和Z80為例)、指令集/組合語言、各式記憶體種類(DRAM、SRAM、NAND/NOR  Flash、EEPROM等等)、各式週邊(GPIO、Timer、UART/RS232、I2C、SPI、ADC、DAC等等)、isolated-I/O、memory-map I/O、中斷、RISC/CISC、堆疊、Cache觀念,甚至連多核心架構都有介紹!也有8051 MCU內容。

計算機概論的內容也不錯,而關於上層軟體的實作相關方面有VB程式語言(以這階段來說我認為蠻適合)。

在屬於類比電路方面的基本電學和電子學的內容,幾乎全部都是電學對應的數學計算,也沒比大學的電子學簡單  (我在讀科技大學的時候的電子學課本是名校大學也都在用的smith電子學的第五版,這本是電子學其中一本bible),基本上教學的重點內容是幾乎和高職時期的這些科目相同的,而數位邏輯電路也是一樣(讀科技大學時期是用morris mano的digital design,這本也是該領域bible課本)。但是大學的授課時數相對少(每周三小時、扣掉期中考期末考和一些國定假日,大學實際授課時數會很多嗎? 其實不會比高職紮實的,但高職那時年紀較小是真的,但是厲害的學生還是有,學習看個人)

其實很多高職課本和參考書裡面的專業知識,許多人讀到名校碩士甚至博士畢業,當了業界工程師或大學教授,都未必清楚,甚至有些人對這些基礎沒聽過(很多人在大學修課就像沾醬油,早忘光了),

很多讀到名校碩博士畢業的人可以捫心自問,自己真的熟悉這些基礎觀念嗎?

技職教育在台灣被歧視和忽視,對台灣社會是極大損失。

誰說高職沒有理論基礎?

(附上近期在書局看到的其中幾本參考書照片,而照片中有兩本書的作者是自己當年就讀的高職電子科的老師)





許多台灣人很喜歡說 讀高職沒理論基礎、讀普通高中才有學術理論基礎

其實我們可以看看 (如圖)

高職升學的 電機與電子群資電類 和 電機與電子群電機類的 統測題目內的專業科目(基本電學、電子學、數位邏輯、計算機概論、電工機械 等) 

是否大部分的題目和內容,台清交成等校電機資工系的電機電子博士教授都會?

一定會有人說曾經學過,但久沒用就忘記了。沒錯啊,大家都這樣,可以理解,那所以普通高中的考試就沒這問題? 難道技職教育就是比較該被歧視嗎?

我親眼看過許多教授(電機博士 或 資工博士)根本不太知道這些基礎的阿,那所以技職該被歧視? 請不要忘了 這是高職生的題目。

歷屆四技二專統一入學測驗(統測)試題 (考古題):

下面是110學年度四技二專統測 電機與電子群 資電類 和 電機類的部分試題截圖:
 

          



    

          

 




再舉個例子

其實如果以台灣社會一般對於考試成績分數的傳統觀念來說, 

成大某些工程系所(電資相關系組)碩士班,過去收了蠻多大學時期讀樹德科大的學生(碩士班推甄,可能是因為有些教授之間相互認識推薦),我會有這個印象是因為我看過許多位。

其實統測滿分700分,在我考統測的那幾年,以電機電子群電子類來說(電子類 就是現在的 資電類) ,樹德科大 只要250分左右就會錄取,後來應該更低。

而當時隨便一間本島的國立科大,其實最少都要530分以上(登記分發),跟250分差很遠。

但是很多成大教授因為根本不清楚科技大學的分數排名或者入學狀況,所以反而可能對這些相對高分的本島國立科大的印象較差,

上述這情況這是有所矛盾的,

但是其實許多大學時期讀樹德科大的學生,後來在成大碩士班依然都會順利畢業,而且表現可能還不錯,也看過碩士畢業就去聯發科當工程師的。

這些現象反映出了蠻多的事實,可以讓大家反思,技職體系真的有比較差嗎?? 該受到台灣社會的歧視嗎? 

Ref:

2021年10月15日 星期五

「名校學歷」真的值得迷信和過度崇拜嗎? 分享一下我個人的實際經驗和看法

(先說明第一張入選獎獎狀的照片,我並不是成功大學的專任教授,當時指導成大碩士班的同學們報名比賽當下的那個學期,我是在崑山科技大學資訊管理系擔任業界講師、並且在成大擔任臨時人員,主要負責指導成功大學的一些碩士生們,這些並不是這篇文章的重點,只是要說明我並不是在唬爛,也不是在打嘴砲。以下的文章內容才是重點)

                   

                   


有很多台灣人總是喜歡把一個人小時候(十幾歲)在傳統填鴨教育體制內的考試結果,給當成一個人在這輩子撕不掉的的標籤,這或許是古代獨尊科舉考試的文化遺毒所造成的觀念。

我是一位讀高職出身的人,在去產業界上班之前,畢業於成大碩士班(當年推甄碩士班時期曾錄取清華大學通訊工程所碩士班,後來選擇成大工程科學系碩士班就讀。為何當年不選擇讀科技大學碩士班? 其主要核心動機就是為了證明我讀技職體系和普通大學研究所一路以來的比較和觀點),但坦白說按照這一路的實際經驗,我認為我當年所就讀過的高職教育的專業度是很高的、除了有許多實驗實作的機會以外,理論也很多很紮實、其實高職的理論並沒有比較少 (我個人過去就讀工程科系的經驗是如此)。

甚至我現在回頭看,都還會認為對於那個年紀的年輕學生來說,其實當時理論課程學得太多了。台灣人總是在學校裡面的時候學太多只為了考試而學的內容,但在畢業投入職場後多數人卻用到太少(甚至是沒相關,或者考完試就忘光了)。

而就我個人求學經驗來說,相較之下,名校大學其實也沒有比較專業。一個人實際上在專業領域方面學得如何,除了遇到少數好老師的特殊際遇之外,主要還是個人累積的問題,而不是因為畢業於什麼學校。

以台灣過往的歷史來看,讀高職或專科學校出身但是當到名校大學教授的也大有人在(就算技職體系在台灣是劣勢還是有很多成功案例。但如果是未來技職教育真的逐漸沒落消失的話,這些例子就很難再出現,這樣的發展趨勢未必是好事)。

我曾經跟許多 名校、非名校 畢業的人們一同共事過,也實際指導過所謂的名校生(包含 研究計畫、產學合作案、專業領域競賽專案、碩士學位論文,證明如上方照片所示)。

其實一個人在專業方面的能力強弱,本來就都是取決於個人在該方面的實際累積和心態而定,和他本身就讀或者畢業於什麼學校,並沒有什麼必然的關係。

在少子化嚴重(已確定、不可逆)、可能幾乎人人都是台清交成政等「名校」畢業的碩士的未來,若依然過份執著名校校名(不合時宜的老舊觀念),把這些校名當成一切,真的非常無聊,且代表從來沒有深入了解過實際狀況。

例如讀XX大學碩士畢業就代表一定怎樣、或者就一定很強之類的迷信幻想,其實未必是符合實際現實狀況的 (會覺得名氣代表實力的人,通常是因為參入了以名氣為尊而導致在觀念上已經先入為主)。

真的不必讓刻板印象、傳統社會主流價值觀/信仰、幻想和無謂的名氣崇拜 給沖昏自己的腦袋,對於人事物都不該只看其表面。

尤其是技職體系學校,在這個很瘋狂迷信名氣(科舉考試遺毒觀念充斥)的社會中處於劣勢,更應該務實且自強,而不是自卑。 

事實上,台清交成等學校畢業的學習能力和反應就一定好嗎?   而換個角度來看,不是讀這幾間學校畢業的人,其學習能力和反應就一定不好嗎? 其實這些觀念大多都是傳統刻板印象和迷思。

在小時候(讀國中、高中階段)不喜歡台灣教育的傳統考試,不一定就代表不聰明。不喜歡台灣教育體制內的考試、但很聰明的人,其實可多著呢!

再分享個個人經驗,我讀成大碩士班時,主要是就讀電資工程領域相關的組別,覺得其實當時的數學理論內容的數量,或許並沒有我在高職時期所學來得多 (我高職是讀電子科,基本電學的交流電、電子學的數學理論基礎都蠻多的),可參考下列文章(該文章引用的連結其實只有列出一小部分的高職電子科教材內容)。

 【社會迷思】高職所學真的會缺乏理論基礎嗎? 以高職理工科系(高工的電子科)的教材內容為例


其實比較有思考能力的人,有時反而會在求學過程中,因為不認同體制內的死板填鴨教育,或者因為在那個年紀和某些老師們有衝突或誤會,而不去應對考試,這其實絕對不是笨,但是卻被許多台灣人貼上學習能力比較差、不會讀書、沒耐性之類的負面標籤,其實這些大多都是傳統刻板印象、偏見、迷思和誤解。

如果沒有真正想學習專業知識的心態和熱忱,那考試分數和學歷校名 基本上都是虛的。

為了迎合社會主流觀念、譁眾取寵、親友讚賞等目的而去取得考試分數和校名,這和真心想要學習專業技術知識,本來就是完全不同的兩回事。

反之,如果對於小時候所受到的填鴨教育考試感到排斥,但真的對專業有熱忱的話,其實那些基本學識自然會在真正需要時補足,並不是大問題。

但台灣教育從來就不重視什麼真正的「興趣」、「啟發」,大多是在填鴨,不鼓勵學生做深度的思考,基本上只是培養服從體制和名氣權威的奴性。




2021年10月14日 星期四

【嵌入式系統基礎原理與實務課程】初學者到底該學習哪款MCU? Subroutine/Function call實際上做了哪些事?

 👇延伸上次的GPIO基礎學習說明


❓許多初學者或工程師朋友們常會問我,想學好嵌入式系統基礎,到底該學ARM、8051還是PIC? 該學習幾位元的CPU平台?

🥸首先,我建議應該先了解這個問題是在「問什麼」,什麼是ARM?
ARM是CPU,而8051和PIC是MCU,朋友們可自行想想看,CPU和MCU是一樣的東西嗎?

又,假設初學者只有呼叫過(複製貼上、頂多改參數/引數) 人家所寫好的API (例如開源社群 或者 IC Design公司的軟韌體單位 所提供的API Library函數庫)來驅動MCU作事(完成功能)的話,

🔎我們以呼叫下列函數為例子 (不針對特定平台,但看函數名稱應該很清楚這在做啥):
GPIO_Setup(Pin_number, Output);
GPIO_Output(Pin_number, High);

無論你是使用什麼CPU based的MCU/SoC晶片為核心的板子(無論CPU是ARM、8051、MIPS、AVR、PIC MCU內的CPU),上述code確實能讓MCU的GPIO Port輸出數位訊號的1(高電位),

但是,如果只是呼叫這些函數的話,有讓你接觸到CPU架構嗎? 和CPU有什麼關係? 甚至很多人可能沒思考過,到底什麼是CPU?

初學者或沒思考過這些問題的工程師朋友們,也有可能會連上述這些範例程式碼,在MCU上電開始動作時,到底是被存放在哪裡的狀態下被CPU給提取和執行,可能都不清楚 。

🧐但我們試想一個問題,如果只是呼叫函數,而從來沒了解過背後的原理基礎,那是否一位受過基本實驗訓練的國中生、高中生就能作這些了? 對於系統開發設計的基礎知識與深度是否足夠?

恐怕有許多朋友從來沒有思考過這些問題。

‼本園區的 「嵌入式系統基礎原理與實務課程」,能藉由適合初學者奠定基礎觀念的8051 MCU (架構相對簡易清晰的微電腦平台) 作為教材,讓你了解CPU到底做了些什麼? 當然每款CPU之間會有差異,但是建立基礎觀念之後,許多觀念都是通用且可延伸的。

再次重申‼ 這個課程並不是只教你8051 MCU怎麼用,也不是只教8051,
而是以8051這款 架構相對簡易清晰的微電腦平台 (且資料完整豐富)作為實作/實驗/理論觀念驗證的實驗平台,

期望學員能在學習完課程後能奠定嵌入式系統(更精確來說是電腦底層觀念,不只是嵌入式系統)基礎,包含CPU指令集/行為、記憶體存取、基礎常見周邊裝置驅動應用、基本介面電子電路(類比&數位),

希望學員將這些學習內容消化吸收後,在未來於職場工作上遇到其它微電腦晶片平台時,可以有清晰的架構觀念,能舉一反三、能藉由紮實的基礎而在未來工作之中遇到其它平台時,能有自行舉一反三、擁有自學熟悉新平台的能力。

-------

🥸 再延伸上述的說明內容,以subroutine call或者function call為例

👉無論是哪款CPU,基本上都會有一些必須的暫存器,例如PC (Program Counter register,程式計數器)、 SP (stack pointer register,堆疊指標)、PSW (Program Status Word register,程式狀態字組),這些暫存器的用途為何?

👉堆疊(stack)是什麼時候需要使用? 呼叫subroutine(這邊是指組合語言的副程式)或者在C語言作function call時是如何被使用? 是如何被實現? CPU在此時做了哪些事?

👉當撰寫C語言去呼叫函數、或者撰寫組合語言呼叫副程式,CPU所執行的程式流程是怎麼跳 過去執行subroutine的?

👉中斷(Interrupt)發生時,又是如何使用堆疊來完成中斷機制? CPU所執行的程式流程是怎麼跳 過去執行ISR (Interrupt Service Routine,中斷服務程式)的?

👉以8051內的CPU指令集為例,CALL指令分為ACALL和LCALL,差別在哪? 而和Stack(堆疊)相關的PUSH/POP/RET/RETI指令是在做什麼的? 實際上做了哪些相關的事?

👉CPU在執行完subroutine或者ISR(中斷服務程式)之後要如何回家(回到主流程?) 如果堆疊之中這些被存放的值被意外地改掉,會發生什麼事?

再講些題外話,
👉如果用C語言撰寫MCU程式,你知道main()函數被執行之前做了什麼事嗎?

👉如果用C語言撰寫MCU程式,例如宣告變數 unsigned char i=1; 你知道這個i變數的物理實體設備空間實際上是什麼嗎? 知道實際上這個i=1是如何被實現的嗎?




🥸 再強調一次,如果只有經歷過呼叫現成的API的經驗,讓MCU會動就滿足,而從來沒了解過這些API背後的底層原理基礎的話,那是否一位受過最基本的實驗步驟訓練的國高中生就能做這些了? 讀到大學甚至碩、博士畢業,或者身為工程師的專業度在哪裡呢?

我想這些是很值得大家思考的事! 我認為專業領域的視野和深度,可以決定一位工程領域人員的實際專業價值。

‼課程進一步詳情請參見下方blog網頁的課程介紹👇:

2021年10月10日 星期日

【嵌入式系統基礎原理與實務課程】 GPIO單元之簡介推廣

 🥸 最近在本園區所開設的 「嵌入式系統基礎原理與實務課程」內,和幾位工程師學員講解到GPIO的部分,頗有感觸。


GPIO (General-Purpose Input/Output)的應用看似簡單,但其背後的原理可有著不少學問。

如果以呼叫現成的API函數的方式來達成之前demo影片中以GPIO驅動LED亮/滅的簡易功能,整個過程大概只要2分鐘 (例如如果使用Arduino UNO這種板子上就有現成LED的開發板,就連外接LED的動作和時間都可以省了,搭配digitalWrite這類的現成函數真的只要2分鐘就可以完成),但事情的完整真相真的「只有」這麼簡單嗎❓❓ 這樣就是了解GPIO了嗎❓

‼事實上‼ 其應用功能(表面)背後的韌體、與GPIO結構驅動原理(從CPU到記憶體單元中去讀到你寫好且被Compiler編譯完成的machine code到驅動GPIO周邊,GPIO的數位高低電位是如何輸出驅動或讀取,詳情是怎麼一回事),可以講解好幾個小時,

韌體開發並不是純軟體開發,如果是驅動周邊 (Peripheral周邊裝置,詳見註1)的軟韌體開發工程師來說,一位有心於研發工作的工程師是有必要去精進加強自己對於軟韌硬體的基礎知識和了解,

這些很可能是許多軟韌體工程師過去在學校課程內所沒學過、甚至到工作後也從沒去思考過的內容,課程希望帶給學員不同的技術視野並啟發思考。

❗ 本園區開設的課程的GPIO課程內容會包含:

👉介紹標準MCS51的Intel官方Datasheet GPIO的相關內容

👉從了解MCU從執行你所撰寫的C code (被C51 Compiler編譯為數位訊號碼,也就是0和1組成的、符合MCS51指令集的機械碼 實際上是長什麼樣子?) 與Assembly language(組合語言)的關係是什麼? 而這些machine code是被燒錄到哪裡? 又是如何被MCU內的CPU所執行? 和I/O周邊裝置的關係又是什麼?

👉GPIO Port內的運作原理是什麼? 如何從GPIO輸出數位的High & Low電位? 如何由GPIO讀入數位的的High & Low電位? (可舉一反三了解其它MCU的稍有不同的GPIO架構)

👉在一般常見的GPIO外部元件驅動基礎應用下,基礎MCU/SoC外部介面電子電路原理講解,這包含類比電路與數位電路的相關基礎知識,例如如何用BJT、MOSFET做簡單的開關應用、如何和MCU/SoC的GPIO搭配?

👉何謂上拉(Pull-up)/下拉(pull-down)電阻? 何謂開汲極(Open drain)?

👉為什麼Standard 8051 MCU的GPIO Port0作高電位輸出應用時,需要外加上拉電阻(pullup resister)才能使用?

👉Standard 8051 MCU的GPIO Port0和Port2是如何存取外部記憶體(雖然現代很少這樣用了,但就學習專業的角度而言仍有了解該原理的學習價值),Port0又是如何兼具存取external memory時的Address bus和Data bus功能?

👉MCU/SoC內的CPU是如何存取周邊的 (如課程介紹所述,我們不只介紹8051,只是把8051當成講解與實驗教材)、何謂memory map I/O? 何謂Port map I/O? 這兩種方式有何差異? 8051 MCU內的CPU去存取I/O是屬於哪種方式?

👉實際韌體撰寫/燒錄/電路接線實驗 等實作教學

👉在課程介紹完8051 MCU內部組織原理的各單元之後,還會有各式的外部元件驅動原理與實驗教學 (可參見課綱介紹)

藉由上述的方式,讓學員完整了解電腦系統(包含嵌入式系統)「韌體」開發的基礎紮實與本質。

下方講義內容中的8051 PORT架構原圖參考自Intel MCS51 user manual而繪製,而講義為個人整理編寫

課程講義內容

🔎註1: Peripheral就是周邊裝置,以MCU/SoC內部的來說,例如GPIO、UART、I2C、SPI、ADC、DAC、USB、.......(族繁不及備載)都是Peripherals,但現在很多年輕學生(不分政治立場)都只聽過「外設」 (外部設備),因為大陸的嵌入式系統技術文章都是這樣講,而台灣近年來很缺乏嵌入式底層技術詳細探討類的網路文章)

‼課程進一步詳情請參見下方blog網頁的課程介紹👇: