不同晶元和裝置之間,如何穩定的,安全的通訊?

2021-07-28 08:29:21 字數 1951 閱讀 5472

今天我教大家一種技能,不同晶元和裝置之間,如何穩定的,安全的通訊?就以我們一般智慧型產品為例,給大家講一下!

現在的智慧型產品,大多和手機配套使用的,裝置就是我們做的產品,比如智慧型電鎖,檢測器,控制裝置等等。這個裝置要使用,得有兩層通訊,乙個是裝置和手機之間的通訊,乙個是裝置之間兩款晶元之間的通訊,那就是三個物件之間的通訊。這個裝置要實現自己的功能,一是要實現通訊,二還要完成自己的邏輯處理,比如實時採集環境資料,實時資料轉換,驅動io等等。

上面說的這些,是我們嵌入式設計者必須考慮的問題,那如何解決這些問題,不讓物件之間的通訊出現錯誤,或者丟資料,或者影響裝置控制處理邏輯。我們可以這樣設計,做到這幾點,就能解決上面的問題。

第一點,通訊採用應答式的。比如手機傳送一包資料給藍芽,藍芽晶元收到資料,處理之後,可以給手機傳送乙個處理結果,手機在收到這個結果之後,再傳送下一包收據。如果在此通訊過程中出現狀況,通訊失敗了。那手機會收不到藍芽的處理結果,那就做超時處理。

這裡再說的稍微複雜一點的,手機傳送一包資料給藍芽,藍芽收到資料之後,會透傳給arm晶元,

arm晶元收到命令,做處理,然後將處理結果返回給藍芽晶元,藍芽晶元再傳送給手機。這才是一次比較常見的通訊。

所以在我們寫程式的時候,我們要做三個方面,乙個方面是做傳送資料模組,第二方面是做接收資料模組and命令處理模組,一般接收資料弄成中斷接收。第三方面,主控制程式。主邏輯部分。互不干擾。很有邏輯。

第二點,通訊過程,規定特定的通訊協議。一般都是tlvc。說明如下圖。

t(包頭

):不同的包頭可以代表不同的裝置,比如包頭

0xa5

,代表的是主機給從機傳送的命令,

0x5a,

代表的是從機給主機傳送的命令。

0x55,

代表的是測試命令。

現在對這個協議做一下說明:

t(命令

):不同的命令可以完成不同的功能,比如我們要實現乙個功能,功能就是走完乙個過程,這個過程,分為好幾個階段,每個階段可以當成乙個命令。把命令走一遍,功能也就實現了。

l:  就是資料的長度。

v:  命令中攜帶的資料。

c:  對資料區的資料,做校驗,保證資料的安全性。

第三點:是通訊過程。裝置間通訊,主要的通訊介面是uart,

iic,  spi

,usb

,ble4.0

等等。 今天以

spi為例說明一下,為了不丟失資料,我們做成中斷接收資料。特別注意一點的是,在接收完一包資料之後,要處理這包資料的時候,一定要關閉關閉掉接收中斷。在處理完資料之後,再將接收資料的使能開啟。因為

spi在傳送資料的時候,也是在接受資料。處理資料的時候,也可能會向外傳送資料,如果此刻接收使能開啟,那會進入接收中斷。那就這個命令沒有處理完,又接收到了亂資料。從而邏輯就亂了。

我們應該咋樣寫這段**啦?我給大家舉個例子。

比如我們現在使用的是arm晶元,它和藍芽晶元之間通過

spi介面通訊著。走的協議就是我上面說的協議。

初始化的時候,使能spi接收,在中斷服務程式裡面,接收到一包資料,然後

rx_finish = 1

。在主程式裡面,做命令處理函式。命令處理函式執行的條件是

if(rx_finish == 1)

。在命令處理函式裡面,先關閉接收中斷,然後對長度 

and命令

and校驗做乙個判斷,如果長度

and命令

and校驗不對的話,做提示。如果都對,

switch(cmd),

根據不同的命令處理。然後再開啟接收使能。

不同晶元和裝置之間,如何穩定的,安全的通訊?

今天我教大家一種技能,不同晶元和裝置之間,如何穩定的,安全的通訊?就以我們一般智慧型產品為例,給大家講一下!現在的智慧型產品,大多和手機配套使用的,裝置就是我們做的產品,比如智慧型電鎖,檢測器,控制裝置等等。這個裝置要使用,得有兩層通訊,乙個是裝置和手機之間的通訊,乙個是裝置之間兩款晶元之間的通訊,...

linux 裝置檔案和裝置之間聯絡的建立

裝置驅動模型 注 幾乎所有的裝置結構體都包含 strcut kobject kobj 和 srtuct list head list 該結構體。struct kobject kobj 該結構體用於構建linux裝置驅動模型的模型建立 struct list head struct list head...

漸進增強和優雅降級之間的不同

漸進增強 progressive enhancement 針對低版本瀏覽器進行構建頁面,保證最基本的功能,然後再針對高階瀏覽器進行效果 互動等改進和追加功能達到更好的使用者體驗。優雅降級 graceful degradation 一開始就構建完整的功能,然後再針對低版本瀏覽器進行相容。區別 優雅降級...