物聯網雲端系統開發(物聯網基礎篇)
單一裝置雖然筆者從大學、碩士都是讀清大電機系,後來博士班到了交大讀電信所,研究上除了理論外,幾乎都是寫程式,例如C語言或是Matlab,但是硬體設計方面,老實說是進入職場之後才開始,一剛開始也是想找一些書來看,但是真的很少,其實也不難理解,因為硬體設計需要的知識五花八門,很難用一本書來涵蓋,因此,除了少數的幾本書外,主要還是同事之間的切磋,以及參考不同廠商的application note,總之,都是只能靠自己的意思。其實凡事都有其脈絡可循,找出關鍵的地方去處理,就八九不離十了,不過有些工程師喜歡速成,東抄抄西抄抄卻不知其所以然,不知不覺就會踩到坑,表面上比較快,但一出錯就很麻煩,所以還是按部就班的好。而在硬體數位電路設計上,我認為的脈絡是甚麼,在最後的附錄二中會分享。
博士畢業後曾於網通廠任職五年,負責設計局端設備(電信公司使用的設備)的硬體設計,工作內容大概分成前置資料搜集、開發設計、認證與測試。前置工作主要是新平台的評估,當時主要的產品是ADSL DSLAM(ADSL在電信服務商那端的設備),上游廠商新一代的晶片出來後,我們就要依據效能、預期成本等來評估採用的廠商,除了研究廠商的資料外,也會需要拿來實際測試看看。進入開發設計階段後,由於成本考量,都是需要自己整合,不會使用turnkey solution,主要整合CPU與DSP晶片,把datasheet研究完之後,就開始繪製電路圖,之後進行layout,雖然layout有專門的工程師負責,但是並無法直接丟給layout工程師,因為原始設計者才會知道重要的訊號在哪裡,需要把這些訊號優先處理才行;當PCB樣本製造後,就會與軟體工程師一起嘗試把板子開機起來進行各部分的測試,有問題就要開始debug。最後一個階段是產品完成後,除了協助FAE(field application engineer)應付客戶之外,由於主要客戶都是電信公司,就需要讓產品通過不同區域的相關測試規範,講白了就是一堆的考卷,雖然很多不是自己去考,但是主要設計者需要先看考卷,找出比較關鍵的項目,自己先預演一下看看,而網通方面的技術進展很快,產品規格如何測試,通常也需要由RD開始了解,然後將相關技術帶入給品質保證(Quality Assurance)與產線測試等部門。
離開園區後來到國立暨南國際大學電機系,後來輪到我來上邏輯設計實驗,一剛開始其實想偷懶找本書來上上就好,但是一直沒有找到合適的教科書,只好自己準備教案。雖說很多書本裡面的資料很豐富,各式各樣的介面周邊都有講到,但我總覺得是適合當作參考書,需要用到的時候再翻來看就好,因為學習的重點在於原理,理解之後其餘的就是以此類推。實驗課並不是按表操課,依照實驗步驟做一做,然後抓抓數據資料就好,重要的是了解其原理,知道如何看datasheet,對於沒有上過的新東西,就依樣畫葫蘆地把相關的datasheet拿出來看,去研究其原理,理解之後再來進行設計。
現在大家都是在講學以致用,理想很高,實行困難,其實所有科系都是一樣的問題,專業科目一大堆,我們做老師的在當學生期間雖然念過這些專業科目,但是在博士班做研究的時候或是真正在職場上,都是針對某個特定主題深入研究,其實都是只是使用眾多的專業知識中的其中一小部分而已,坦白說,如果上課時有學生問我一些基礎課的內容究竟可以用在哪裡,可以舉一個實際例子來說明嗎?例如微積分、普物、化學等等這些課程,有些時候並不容易回答,因為術業有專攻啊,以我本身來說,可以說說機率會用在哪裡,因為以前研究上會需要隨機程序,其他的就很難說得很具體了。再舉例來說,大多數電機系的老師當學生的時候根本沒看過IC的datasheet,除非職場上需要,否則畢業後也不會看,如果連老師自己都沒有看過,怎麼帶學生去看呢?總之,老師並非萬能,也不需要萬能,如果每個老師都能夠將自己比較拿手的部分記錄下來,就能夠補起這樣的缺口,希望能夠以本書來拋磚引玉。雖然本身並不是做數位電路設計,但是在硬體電路設計上有不少經驗,對於邏輯設計課程方面就會有些想法,期望能夠以主題式的方式來進行,學習針對這個主題需要的能力,現學現用。
本書大概分為三部分,首先是關於實驗的基礎方面,包含器材的使用、訊號的量測、datasheet上常看到的基本參數等等。再來是羅設課本的重點複習,練習K-MAP化簡後利用74系列的IC實做簡單電路,而sequential電路也使用74系列的counter與七段顯示器練習一次。最後是份量比較多的是Verilog練習,於CPLD開發版上來實作以筆者的經驗來設計學生需要理解的項目,不過本書的重點不在於Verilog語言本身,因為已經有太多書可以參考了,而是嘗試透過依序漸進的方式把相關周邊、如何控制、想法與語言的關係等面向為學習的重點,希望透過這樣的方式,讓讀者可以理解如何設計一個複雜一點的電路,最後可以完成一個電子鐘。雖然本書介紹的介面或周邊並不多,但是設計的原理學會了之後,只要依照其原理,網路上或是由其他書本上找相關資料,參考一下範例程式,就不難理解了。
由於筆者專長並不是在Verilog,或許不是最佳的寫法,也會有疏忽一些重點沒有交代清楚,期望各方先進能不吝指教,讓本書能更為周全。
之溫溼度線性圖表程式設計