編輯導語:硬件産品經理在面對産品研發的時候,除了執行溝通以及跟進流程以外,更是要對技術方面有着一定的了解;因為硬件行業的很多專業類内容,如果什麼都不懂的話,在日常業務中可能也會有所阻礙;本文作者分享了關于硬件産品經理的技術知識,我們一起來了解一下。
作為一個兩年經驗的硬件産品經理,經曆了一款産品從零到上市的過程,積累了一點經驗,我也想通過輸出積累下來;想在硬件PM這一行長遠的做下去,産品管理、市場能力以及成本控制這三方面的能力要不斷精進。
我認為硬件PM懂技術是有必要的。作為初級産品經理,執行的工作,硬件基礎知識是溝通的基礎,和研發溝通需求,和供應商做後續的對接都離不開技術知識;進階到中高級産品經理,市場以及供應鍊管理工作中技術是橋梁,與供應商,客戶的溝通離不開技術知識。
硬件行業縮略語,定義詞特别多。回想自己剛入行看到RX TX IPC SPI Flash eMMC…一頭霧水。看書,上網搜索硬件相關的内容,其内容的主要受衆是工程師,而作為硬件PM需要對其歸類并知道邊界,對實現了解即可。
這也算是我發現的入行硬件PM的痛點吧!網上并沒有完全針對硬件PM技術知識的内容。硬件PM涉及的面非常廣,嵌入式硬件、軟件、算法、結構、制造以及ID都需要了解。對于從軟件PM轉型或直接入行硬件PM的同學是一個門檻。
一、首先列一個嵌入式系統的知識框架
做一款硬件産品,硬件技術方面少不了這些内容。
二、嵌入式系統嵌入式系統是專用于某個應用或者産品的系統。它可以自成一個系統、也可以是大系統的一部分。
嵌入式系統之間的關系如下圖所示。
三、嵌入式硬件
嵌入式硬件包括處理器、存儲器、微控制器、I/O、DAC ADC、電源、總線、定時器 計數器等等。此外根據不同的應用場景,嵌入式硬件會集成不同的傳感器,例如攝像頭、雷達、GPS等等。
本文主要介紹嵌入式系統,其它分内容後面會詳細介紹。
四、嵌入式軟件嵌入式軟件是嵌入式系統的核心。産品設計的落地,性能指标的滿足都是通過軟件來實現的,作為硬件PM我們需要了解嵌入式軟件的架構,更好的與工程師溝通。
我們是硬件PM,但是在研發工作中打交道最多的是軟件工程師。作為PM我們要知道工程師的分工。提需求的時候要找到對應的人,拉通協作時找到對應的人。
嵌入式系統可以分為硬件層,驅動層、操作系統層、應用接口層、應用層。除了硬件層,其他都屬于軟件工程師的工作範圍。在大多數公司中,軟件工程師會單獨負責其中的一塊。
- 硬件接口層:這一層提供了與嵌入式硬件交互的接口,以設備驅動程序為主。例如網絡、USB、LCD、顯示屏、RX、TX、鍵盤等等硬件的驅動;驅動層的内容也會與應用層有交互,例如WiFi賬号密碼的設置,RX相關顯示參數的設置;
- 核心層:操作系統的内核,包括系統運行最基本的模塊,這一層會涉及到系統時鐘、電源管理、文件管理,内存管理等内容;
- 系統層:它提供面向對象的系統資源管理功能,具有模塊化和對象化的特點,例如文件管理、設備管理、網絡協議。每個系統模塊提供标準的API接口,向用戶開放,有利于系統功能的擴展;
- 應用服務層:這一層是在實現具體的業務功能提供基于系統功能、面向應用的系統功能調用服務接口。
嵌入式軟件包括嵌入式操作系統以及應用程序
1. 嵌入式操作系統
說到嵌入式操作系統之前,先介紹一下操作系統。操作系統是硬件與用戶之間的中介,用來管理系統資源和控制應用程序運行的計算機程序。
1)嵌入式系統的特點
相對于操作系統,嵌入式操作系統不要求全能,但必須能夠有效率的發揮硬件最大的能力,使産品獲得最高的性價比,嵌入式操作系統的特點如下:
- 代碼量小,能夠在嵌入式系統有效的存儲空間内運行;
- 統一的API;
- 模塊間解耦,可拆卸;
- 強實時性,可應用于各種實時控制;
- 可靠性高,無需人工幹預獨立運行,并能及時處理各類事件和故障。
2)内核
嵌入式系統分為宏内核與微内核:
- 典型的微内核有μCOS、Uitron這些内核小很多,隻有最基本的進程管理、進程通信、内存管理組成,其他部分和内核分開。内核本身隻負責客戶進程和服務進程之間的消息傳遞;
- 典型的宏内核有Linux、Unix,這些内核相對比較龐大,内核設計者從效率的角度把基本的操作系統内核和設備驅動、文件系統、網絡等統一安排編譯,它的移植能力較弱。
3)操作系統基本組件
無論是宏内核還是微内核都有進程管理、内存管理、中斷管理以及API。
- 進程管理:操作系統為進程分配資源,實現進程間共享和交換信息,保護進程資源以及實現進程間同步。在多線程系統中,進程變成了資源管理器,線程成為了程序的基本執行單元。進程管理包括進程的創建與維護、進程的調度切換、多處理器的進程管理;
- 内存管理:虛存管理技術廣泛應用于系統管理。它可以使每個程序都有一個獨立的虛拟存儲空間,使應用程序獲得比實際内存更大的編址空間;
- 中斷管理:中斷管理為了提高系統效率,确保關鍵的功能及時執行;
- API:包括人機界面以及操作系統提供給用戶開發的應用程序API函數。
4)嵌入式實時操作系統(RTOS)
在介紹之前先介紹個概念:任務調度方式。
5)任務調度
在嵌入式操作系統中,任務調度方式有三種:不可搶占式調度、可搶占調度、時間片輪轉調度
- 不可搶占式調度:一個任務一旦或者處理器資源就獨占處理器運行,直至該任務結束進入等待狀态;
- 可搶占調度:基于任務優先級,當前任務必須随時讓位于優先級更高且處于就緒狀态的任務;
- 時間片輪轉調度:當兩個或兩個以上任務有相同優先級時,某個任務運行事先規定的時間,然後切換時另外的任務。
嵌入式操作系統分為嵌入式操作系統和嵌入式實時操作系統(RTOS),兩者的主要區别是任務調度方式不同。
嵌入式實時操作系統的任務調度方法基于可搶占調度法,它真的具有實時性。
6)實時性
實時也就是操作系統的計算結果不僅依賴于計算的邏輯結果,也依賴于結果産生的時間,RTOS不見要求産生正确的結果,還要求結果産生的足夠快。“快”是一個相對的概念,性能很強大的操作系統不一定是實時系統。
而實時性又分為硬實時和軟實時:
- 硬實時:必須在恰當的時間裡完成相應的任務;
- 軟實時:要求系統以最快的速度執行,運行時間超時是可以容忍的。
7)嵌入式實時操作系統
RTOS是一段嵌入在目标代碼中的程序,系統複位後首先執行,相當于用戶的主程序,用戶的其他程序都建立在RTOS之上;此外RTOS是一個标準的内核,CPU将時間、中斷、IO、定時器等資源都包裝起來,留給用戶一個标準API,并根據各個任務的優先級,合理的在不同任務之間分配CPU時間。
此外RTOS最關鍵的部分就是實時多任務内核,包括任務管理、消息管理、存儲管理、事件管理;這些管理功能是通過RTOS的API給用戶調用的,跨平台移植程序修改的很少。
8)嵌入式實時操作系統特點
- 微内核設計;
- 系統能夠快速進行任務切換、保證任務搶先和dedline的完成;
- 盡量減少禁止中斷的時間;
- 提供固定或者可變的内存管理機制;
- 提供一個能夠滿足應用要求的實時時鐘;
- 必須提供合适的進程任務調度方法;
- 允許應用程序自己修改内核。
9)常見的RTOS
本文由 @無腳鳥 原創發布于人人都是産品經理,未經作者許可,禁止轉載。
題圖來自Unsplash,基于CC0協議。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!