試論推行硬體作業系統(HOS)的可能性及必要性

2021-07-28 01:43:53 字數 2799 閱讀 2433

試論推行硬體作業系統(

hos)的可能性及必要性

呵呵又是乙個新名詞——「硬體作業系統(

hos)」。其最重要特徵是提供一致的可程式設計嵌入式

shell

。圍繞這個

shell

,hos

可以完成什麼功能呢?首先它應該能夠通過一致的命令格式,通過各種通訊協議(如

iic,

uart

,spi

,single line bus

等),開關量採集,模擬量採集等方式訪問管理感測器;其次可以定製和配置系統行為,比如定時訪問感測器,將感測器資料上報,響應鏈路動態優化等;再次簡單智慧型演算法和決策控制的靈活配置執行。

好了,說了怎麼多,首要的問題是感測器五花八門,介面各有不同,有可能做出一致的命令格式來管理它們嗎?答案是肯定的。我在調研時羅列了很多感測器介面大概有這些型別:

iic、

uart

、spi

、single line bus

、0/1

(開關量)、

ad(模擬量)。對於介面採用協議類通訊方式的(如

iic、

uart

、spi

、single line bus

),一般它們的通訊過程可以用狀態機完整描述,借助這個狀態機,我們就可以程式設計實現相應的命令程式,用來管理這個感測器。而對於

0/1型和

ad型的感測器,它們的資料比較單純,但是一般需要配合一些資料處理和加工的動作,這樣才能得到上位機需要的、好用的資料結構。而對於這些處理和加工的動作,嵌入式

shell

也是有能力實現的。這裡以

single line bus

的資料獲取為例做乙個說明。現在市面上的溫濕度感測器多是這種通訊方式。而現在市面上對這個通訊方式的資料獲取一般採用的是傳統

c51上的延時取樣方式。這種方式極不科學,我採用的方式是利用有

capture-or-compare

功能的timer

來高可靠性的獲取資料。資料是獲取到了,但是不同的感測器有不同的資料長度和格式,這個如何用統一的命令格式適配呢?其實只要我們了解過編譯器設計就不難解決這個問題。比如對於溫濕度感測器的訪問命令可以設計成如下樣式:

ccp o_1ms i-30us40% i_80us20% i-80us20% ||=40sum

對於這條命令解釋如下,

ccp

是命令名,表示

capture-or-compare

方式傳送和採集訊號;

」o」表示主動發出訊號,

」i」表示接收訊號;

」_」表示低電平,

」-「表示高電平;後面跟的是持續時間;字串

||=40

定義了bit0

和bit1

的訊號表示,同時知名訊號0和

1加起來一共

40bits

;sum

表示求和校驗。

到這裡惡魔出現了!

ds18b20

也是單匯流排設計,但是它的匯流排定義卻不方便用

capture-or-compare

的方法泡製。於是問題變得大大的複雜了,想要做乙個簡單的嵌入式

shell

,提供一些命令看來是不夠的,我們可能需要乙個嵌入式的程式語言,它可以解釋執行!這時我有點想放棄這個想法,而回歸傳統的方法即在上位機程式設計並燒錄到下位機中。可是我反覆考慮兩種方法,還是覺得應該嘗試採用嵌入式

shell

語言直譯器的方法。這樣更符合物聯網的應用場景——高度動態和可配置。

不知道大家了解過ti的

zigbee

方案沒有,

ti提供的

z-stack

方案中乙個簡單的

switch

節點,編譯完成後就有

230kb

還多,而我們知道那顆晶元最大

flash

也就256kb

。而另一方面,在ti的

timac

方案中採用

beacon

連線方式,編譯完成後只有40多

kb。所以我認為

timac

有更大的、更好的前景。在這個方案中我們可以設計乙個嵌入式

shell

及直譯器,把它控制在

100kb~150kb

。這樣將使感測器節點的使用更加靈活有效,而且可以更好地與上層軟硬體配合,形成高效系統。

到這裡我再設想一下有了這個

shell

和直譯器後的應用場景吧。大家都知道

zigbee

演進有另乙個脈絡——軍事即戰場環境識別與自組織。所以在最初我們可以把這些小感測器像春天播種一樣撒在戰場中,首先它們的行為是一樣的,會感知戰場環境並將資料上報,在軍隊的決策部門或「兵旗」系統中綜合資訊並生成決策同時將命令下達感測器節點,這時各感測器節點收到的命令或程式片段可能是各不相同的,於是它們的行為和功能也被動態地從新配置。這個動態過程會隨著戰場形勢的變化不斷的變化。所以我們可以看到,養兵千日,用兵一時。資訊化條件下的戰爭,你的神經末梢失效了,或者差敵人一籌,可不就只能猴急沒辦法。當然

zigbee

的另乙個主要脈絡是民用的物聯網,同樣有以上場景的需求。所以我認為我們需要把這些底層的東西做紮實了,將來物聯網、智慧型應用等才能建在這個基礎上。

17年溫飽。你們呢?需要我分給你們點兒嗎?博文中不止一次提先成家後立業的話題了,有人說我啃老。你還真是小瞧我了,我的那麼多創新設計乙個也沒用?真的一文不值嗎?我這不是啃老,我這是啃大眾、啃社會、啃國家,而成為現在這個狀況的始作俑者是誰呢?你們應該好好地端正你們的價值觀,深化思想認識,才有能力看清問題,解決問題。



作業系統硬體知識

day1 作業系統硬體知識 伺服器內部組成部分 主機板 將多個硬體進行整合,傳導電資訊 硬碟 儲資料資訊 永久儲存 光碟機 安裝系統,安裝軟體,看電影 風扇 負責散熱 cpu 處理器 大腦 運算 二進位制 控制其他硬體 記憶體 儲存資料資訊 臨時儲存 網絡卡 負責上網 電源 負責供電 陣列卡 將多塊...

Linux 作業系統及硬體

記憶體的延遲分配 就是在你未使用記憶體 均指物理記憶體 的時候,作業系統是不會真正的分配物理記憶體的。比如 int p int malloc 1024 1024 如果接下來你沒有訪問p所指向的記憶體,那麼你會看到程序占用的記憶體是不是包括這1m空間的。因此不能通過檢測malloc的指標是否為null...

作業系統IO硬體原理

i o 裝置及其介面線路 控制部件 通道和管理軟體。根據輸入輸出特性劃分 輸入型外圍裝置 輸出型外圍裝置和儲存型外圍裝置 按照輸入輸出資訊交換的單位劃分 字元裝置 輸入型外圍裝置和輸出型外圍裝置一般為字元裝置,它與記憶體進行資訊交換的單位是位元組,即一次交換 1 個或多個位元組 塊裝置 塊裝置一次與...