【IoT】 產品設計:如何從零設計一款產品(硬件角度)
1、需求定義

需求定義用來描述產品的基本功能,對于公司來說,需求一般由該公司的市場銷售部門或該公司的主要客戶來制定。
例子:對于開發板產品來說,主要就是提供各種接口,為開發產品時提供借鑒。
需求定義:
1)功能定義
系統的用途。
2)硬件選型
實際輸入輸出是何種方式實現。
3)系統選型
系統是否需要操作界面
示例:
系統描述:
水泵換水系統(用 STM32 神舟 III 號開發板模擬實現)
電源輸入:
變壓器的 9V~12V 直流電
水泵功率:375W
1)使用單相交流電機,由機械電氣進行控制
2)如果溫泉池處于低水位,則輸入開關閉合信號,以禁止水泵繼續運行
3)用戶可以自由設置水泵運行或關閉的時間長度
4)除了自動設置控制外,還需要提供一種人工裝置來允許維護人員靈活控制水泵進行維修
5)水泵開啟/關閉/人工干預的時間可以 30 分鐘為單位,在 30 分鐘到 23 小時的范圍內進行調節
6)顯示設備可以指示水泵的開關狀態,剩余時間,以及水泵是否處于人工干預模式
7)具備監視低水位的功能,并顯示在屏幕上
電磁干擾(EMI)和電磁兼容性 (EMC)認證、安全認證以及使用環境(包括環境溫度、濕度、鹽霧腐蝕等)等需求。
CPU選型:
要避免選擇的處理器剛好滿足當前要求,這樣當以后事務要求逐漸提高,處理器性能如果還有一定空 間的話,那么就可以重用目前的產品;
第二個就是要選擇不會即將停產的芯片,很多處理器用得很廣乏。
I/O管腳數量:
多數處理器都是使用內存和外部管腳來控制輸入輸出設備的,通常處理器都會有內置 ROM 和 RAM 的,如 果內置的內存就已經滿足需要,那么處理器就可以節省產生引用外部存儲器信號的引腳,這樣處理器可為 輸入輸出提供較多的設備管腳(某些處理器支持外部 RAM 或 ROM 的使用,但對外部存儲器進行訪問時, 處理器一般需要占用 8 條到 10 條 I/O 管腳)。
還有,有些處理器帶有專用的內部定時時鐘,這類時鐘也需要使用一個端口管腳來實現某些定時功能;某 些處理器中還具有漏極輸出和高電流輸出能力,可以方便的直接驅動繼電器或電磁鐵線圈,而不再需要額 外驅動硬件的支持。
當對處理器 I/O 管腳進行計數時,我們一定要把使用處理器內部功能(如串行接口和定時器等)時限制使 用的某些管腳考慮在內。
接口數量:
嵌入式處理器的主要功能是與應用環境中的硬件進行交互操作,這不僅需要外部硬件對接口具有實時處理 能力,而且還要求處理器必須以足夠快的速度對接口數據進行有效處理。
舉例來說,STM32 神舟系列開發板的 CPU 是 ST 公司出品的一款工業級微處理器,它基于 CORTEX M3 的核心,處理主頻可達 72MHZ,同時處理器內部配置了 USB、SPI、IIC 等接口,像 STM32 神舟 IV 號 的 107 處理器還支持 Ethernet 等輸出接口,其目的是更方便的利用這些接口開發出嵌入式產品。
內存容量:
決定內存容量的大小是嵌入式產品設計過程中的一個基本步驟,如果對所需內存容量估計過高,那么我們
就有可能會選擇成本較高的解決方案;反之,如果低估了所需內存容量,就有可能因系統需要重新設計而 導致項目不能按時完工。
中斷數量:
中斷的主要用途是向中央處理器通報當前發生的某類特殊事件,這類事件包括諸如定時器超時事件、硬件 引發的事件等。
需要強調的是,多數系統設計師經常過多地使用中斷功能,實際上,中斷的主要作用只是中斷現行程序的 執行,中斷最適用于必須要求中央處理器立即提供服務的事件。
在需要設計和使用中斷的情況下,一定要首先確認實際需要的中斷數量,然后必須考慮到系統內部占用的 中斷資源,如果需要使用的中斷資源超出了處理器可以接收的中斷數量,我們就應借助于某些特殊手段來 減少所需中斷信號的數量。
實時處理:
實時處理是一個涉及范圍很廣的題目,其主要內容與系統的處理速度有密切聯系,實時事件是嵌入式微處 理器需要關注的主要任務。
例如:處理器跟串口進行通信時,通常通過上層軟件(為了保證實時性,進行任務切換的時間足夠短),
然后再占用處理器去執行從串口拿數據的任務,并且要保證處理器的速率比串口速率快,那么處理器可以 以最快的速度反應并處理串口的相關的任務,這樣就可以達到最大的實時性;
另一方面,如果處理器本身就內置了串口控制器、或 DMA、或 LCD 的控制器等,那么它就可以保證直接 使用這些處理器內置的接口去控制串口、液晶屏等對象,以達到最大的實時性能。
廠商是否提供好的開發工具和環境:
選擇一款新的處理器,很可能就要使用一個新的開發工具和開發環境,包括軟件的編譯環境等;對于開發
日程安排比較緊張的項目來說,開發人員往往無法抽出專門的時間來研究,熟悉新的開發工具,從而也無 法全面掌握開發工具的使用技巧。
并且,有的開發工具價格也比較昂貴,而且很可能只能從制造商那里購買,還有仿真工具也是需要付費的, 這些對我們在選擇一款處理器的時候,是都應該考慮進去的成本因素。
2、開發文檔
1)硬件文檔
1)首先是需求定義或產品規格:
如果這些是產品最終目標的話,那么產品對硬件和軟件的要求就是技術方案的最終目標;對硬件和軟件的 要求是從定義用戶界面和系統功能開始的。
2)硬件接口的具體定義:
定義硬件最有效的方法是從需求開始描述,由于硬件必須支持系統定義的所有功能,因此硬件定義是與系 統說明不可分割的;
例如,我們設計一個定時器(事先需求說明定時器不能與個人電腦連接,故無法使用 CRT 顯示時間),我 們只有兩種選擇:一種是使用發光二極管(LED),另一種是使用液晶顯示器件(LCD);盡管 LCD 的顯 示效果比較好,但考慮到定時器要常年位于戶外,并且早期 LCD 顯示器不能在低溫下工作,最終還是選擇 LED 設備(這整個過程描述了我們硬件選型時的一個思路,這個是密切跟需求掛鉤的)
3)系統設計:
首先要對硬件說明的內容進行細化,包括添加能讓工程師理解的設計意圖,以及軟件工程師圍繞硬件進行 程序設計時需要使用的硬件信息等。
完成硬件電路板說明文檔后,我們還要在該文檔中增加一個用來描述系統的原始要求的前言部分,包括說
明方案的設計思路和方法。
2)軟件文檔
1) 軟件文檔與硬件文檔的組織方法類似,軟件要求文檔的主要內容則是定義軟件要實現的功能;一種是在 簡單項目設計過程中,軟件定義也可以只對一種電路板使用的軟件給予描述;對較復雜的項目來說,由于 參與這種項目的軟件人員分別負責設計驅動不同硬件部分的代碼(同一電路板),因此每個軟件人員可能 會為自己的設計代碼指定不同的定義,這類軟件說明需要提供下列的內容:
2) 軟件與硬件所考慮的不同之處
a. 軟件的靈活性遠遠大于硬件,要讓軟件人員搞清楚某個軟件的內部格式是非常困難的任務,解決的辦法: 詳細定義其他程序員需要了解的編程接口具體內容,以及其他工程人員在實施開發項目過程中需要使用的 技術細節信息。
b. 軟件工程師只有在收到硬件說明文檔后,才有可能知道如何對系統硬件進行操作;而硬件人員一般不需 要了解軟件程序的技術細節。
c. 由于軟件易于更改,因此程序內容經常會按銷售人員提供的要求發生變更,在某些情況下,軟件文檔的 內容無法及時反映程序的最新變化。
d. 軟件經常是工程項目最后完成的部分,因此其文檔也經常因時間不夠而欠缺完整。實際上,軟件文檔是 否詳細、完整,在某種程度上是與公司或客戶的要求有關的。例如,軍事或國家工程一般要求開發商就其 所有軟件實現的功能提供全面詳細的文檔。
IoT 單片機 硬件開發
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。