3.2 閱讀資料表
在第一頁之後的資訊,每個資料表都會不一樣。而且,不是所有的資料表都包括所有的章節。即使如此,也不用仔細閱讀那些對軟體如何使用外設沒有任何幫助的部分。為了節省時間和心力,可以跳過絕對最大額定值、推薦工作條件、電氣特性、包裝資訊、布局,以及機械特性等部分。
硬體團隊早已閱讀資料表的這些資訊,相信他們可以做得不錯。某一天,當我們不再面臨完成產品設計的壓力時,再回頭看看這些部分還是值得的。
雖然你跳過了這些部分,但請記住它們的存在。這些是在出錯的時候需要的,比如在拿出一台示波器並試圖找出為什麼這個器件不工作的時候,或者(更糟糕)這個器件看起來是工作的,但是和期望的不一樣的時候。請注意,這些內容是存在的,因此可以在需要的時候再回過來看看。在開始的時候忽略它們是沒有問題的:
每個可用的封裝型別的引腳輸出
如果需要在除錯的時候探測晶元,那麼就需要知道引腳的輸出。理想情況下,這個並不重要,因為在軟體可以正常工作時,沒有必要探測晶元。
引腳配置展示了一些名字,在名字上面是橫條(如圖3-3所示)。橫條表示這些引腳是低電平有效,意思是它們在低電壓時導通。在引腳描述中,低電平有效的引腳名前面都有乙個斜線。你也可以看到其他表示低電平有效訊號的方法。如果大部分引腳都有乙個名字,那麼可以採用修飾符將名字表達成諸如nname、_name、name*、name_n等的格式。基本上,如果在名字旁邊有修飾符,那麼就得看看它是不是低電平有效的,這需要在引腳描述部分特別注意。
注意: 如果以前從來沒有接觸過這些東西,那麼考慮從一本電子學入門指南入手,如可以從「延伸閱讀」部分列出的書挑出一本來閱讀。
引腳描述
這是乙個如圖3-4所示的**。在需要這些資訊的時候就回過來看看,可能在需要看看哪些引腳應該是低電平的時候,或者正在試著確認用示波器顯示出來的波形和資料表上的時序圖是否一樣的時候。
效能特性
這些**和圖形準確地描述了這個器件是幹什麼的,提供了相對於第一次閱讀來說更多的資訊。但是,如果器件正在通訊卻不能正常工作,效能特性就可以幫助我們找出可能的原因(比如,器件應該工作在0~70癈,但它剛好靠近非常熱的處理器,或者在輸入電壓正常時外設可以工作,但當輸入電壓略微超出指定範圍時,精度會有所下降)。
示例原理圖
有時候拿到驅動程式**,這些**可以像我們所期望的那樣工作,如果最終可能有些修改,但不需要對驅動程式做太多的修改。示例原理圖是電氣工程版的驅動程式**。在器件工作不正常時,如果原理圖和示例原理圖相當相似,那麼是一件很讓人欣慰的事情。但是,正如**商提供的驅動程式**一樣,有太多不錯的理由會導致實際的實現與示例實現不一致。如果碰到麻煩,並且原理圖與示例不一致,那麼請教電氣工程師差別在什麼地方。可能什麼差別都沒有,但是這樣做卻是非常重要的。
3.2.2 對軟體開發者比較重要的內容圖3-6:模擬三角龍的時序圖
圖3-7:模擬三角龍的勘誤表
在完成了所有的驅動程式開發,並且這些驅動程式能正常工作之後,再通讀資料表頂部的特徵總結部分,因為這個時候我們已經了解了這類器件,能夠很好地理解這個總結。雖然如此,當需要實現類似的設計時,可能還需要讀一讀資料表的某些部分,但是這個過程應該簡單多了。此時,可以從資料表標題頁的總結部分獲得對這個器件更好的概述。
在使用外部裝置的時候,可以使用其他一些資源:
如果晶元有使用者手冊,請務必要了解一下。
應用說明部分常常有些特定的使用案例,這些案例可能是有用的。
來自於現有使用者的論壇和例子。
在深入問題之前,先到處看一看,也許在某些地方可以找到一些疑難問題的答案。
時序圖如何幫助軟體開發者
時序圖揭示了轉換之間的關係。有些轉換在相同的訊號上,有些轉換可能在不同的訊號上。例如,如圖3-6頂部所示,在正常模式下,手(hnd1和hnd2)的交替狀態,乙隻手會在另乙隻手放下後立即舉起來。在研究時序圖的時候,從訊號名的左邊開始。時間從左往右前進。
大多數時序圖集中於對數字狀態的描述,說明某個訊號什麼時候變為高電平,什麼時候變為低電平(記住,檢查引腳名是否有修飾符,這標誌著低電平有效)。有些圖中包括了乙個斜坡(比如圖3-6引導順序圖中的手和腳的訊號),這個斜坡說明了訊號正處於轉換狀態。還可以看到一些訊號既是高電平又是低電平(如圖3-6引導順序圖中的角訊號),這表示這個訊號處於乙個不確定狀態(對於輸出來說)或者處於沒有被監控狀態(對於輸入來說)。
有些重要的時間特性用帶有箭頭的線突出顯示。這些特性通常會在**中詳細規定。同時,也應該看看表示訊號順序(一般用虛線表示)和因果關係(一般為從乙個訊號指向另乙個訊號的箭頭)的標記。最後,圖中的腳注部分經常也包含了極其重要的資訊。
3.2.3 用資料表評估元器件圖3-8:模擬三角龍最大額定值
當基本電氣特性和機械要求滿足後,下一步就是考慮典型特性,以決定這個器件是否是所需要的。在規格要求上,我幫不了什麼忙,因為這些依賴於具體的系統需求和具體的元器件。這裡有一些通用的關於功能引數的問題:器件是否足夠快?輸出是滿足還是超出具體的系統要求?對於乙個感測器或者模數轉換器,雜訊是不是可以接受的?
當有乙個或者兩個資料表通過首輪篩選之後,就可以對它們進一步深入研究。如果有乙個應用章節,那就是個不錯的出發點。這些應用是不是和我們的系統比較接近?如果是,那麼就繼續;如果不是,那麼就要稍微有點擔心了。將乙個外部器件第一次使用在特定的場合可能是可以的,但是,如果這個器件是特定地用於水下感測器網路的,而現在想把它用在超級智慧型烤麵包機上,我們可能就會感到很奇怪,為什麼把該應用定義得如此狹窄。更嚴重的是,總有個理由可以解釋為什麼建議的應用不能覆蓋所有的使用情形。比如,特定用於汽車上的晶元,在數量較少時,可能沒有辦法獲取。資料表的目的是為了將產品賣給那些使用類似器件的人,所以給出的使用範圍比較有限是有理由的。
下一步,看看效能特徵並決定它們是否滿足要求。通常,在這部分會發現新的需求,比如,意識到系統需要在a部分有溫度響應,在b部分有供電電壓響應,在c部分需要有雜訊阻抗等。將所有的這些需求整理為標準並將那些不滿足要求的去掉(同樣需要對標準進行排序,以免將自己陷入困境)。
此時,應該至少有兩個但不超過四個資料表。如果有多於四個資料表,那麼了解一下看看是不是某個**商在你的採購部門有比較好的信譽、比較短的供貨週期,或者比較優惠的**。可能還會回來看看那些多出的**商,但選出其中四個是個不錯的做法。
如果將所有的資料表都剔除了,或者只剩下乙個,那麼不要就此停住。這並不是說所有的東西都是沒有用的(或者只有乙個有用)。而是說,我們定義的標準可能太嚴格了,需要對可選方案進一步研究。因此選擇最好的兩個器件,即使乙個或者全部都不滿足所有這些最挑剔的標準。
對於剩下的資料表,我們希望能找出對實現來說最棘手的部分以及看看這個器件是否能很好地應用於系統中。這就是類似器件使用經驗起作用的地方。在讀資料表的時候,就想象如何去實現相應的**。事實上,如果你沒有類似的使用經驗,那麼就可能要寫**以便將這一切變成現實。如果可以將這些器件和真實的硬體做成原型,那麼非常好!如果不能,我們也可以做個心理原型,在心裡演練一下那些實現步驟並預計會發生什麼。
即使在針對2~4個器件做了以上的事情之後,也可能只使用其中乙個,這也會在最終選擇這個器件後能夠非常快地開始**工作。
這樣乙個深入分析的過程需要很多時間,但會排除掉器件可能不工作的風險。原型做到何種程度取決於不同的人(和具體的日程計畫)。如果仍然面臨多個選擇,那麼不妨看看這個系列的器件。如果有些東西不夠用(如空間、引腳或者範圍),那麼在同乙個系列中是不是有引腳到引腳(pin for pin)相容的其他器件呢(理想情況是相同的軟體介面)?這樣留有一定的餘地會容易很多。
最後,有了選定的器件後,特徵總結部分就是乙個練習比較文學的地方。既然已經閱讀類似的器件好幾份資料表,資料表的概述部分對我們來說就沒有問題了。如果還有資料表需要評估,那麼就從這裡開始吧。將已經評估完和和待評估的進行對比,就對每個晶元可以做什麼以及不同的引數如何相互作用(例如,速度可能與成本成正比)有乙個快速的了解。
嵌入式系統設計與實踐
嵌入式系統設計與實踐 基本資訊 原書名 embedded systems 譯者 餘水清 叢書名 o reilly精品圖書系列 出版社 機械工業出版社 isbn 9787111415848 出版日期 2013 年5月 開本 16開 頁碼 1 版次 1 1 所屬分類 計算機 更多關於 嵌入式系統設計與實...
嵌入式系統設計與實踐
嵌入式系統設計與實踐 基本資訊 原書名 embedded systems 譯者 餘水清 叢書名 o reilly精品圖書系列 出版社 機械工業出版社 isbn 9787111415848 出版日期 2013 年5月 開本 16開 頁碼 1 版次 1 1 所屬分類 計算機 更多關於 嵌入式系統設計與實...
《 嵌入式系統設計與實踐》一一3 7 處理錯誤
3.7 處理錯誤 的生命週期讓我震驚。因為有時侯好像我們總在以不同的方式重寫同樣的舊 有一天我們可能會發現自己在10年前入門階段寫的一段 正在被乙個財富500強公司使用。既然 工作的如此之好,為什麼還要修復其中那些隱藏很深的問題呢?在某些時候,將失效。這一點可能讓人會感到可怕。乙個錯誤的發生,要麼是...