成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C語言與物聯網之簡單通信協議

開發 前端
用C語言做物聯網網關開發時,經常需要通過串口、485接口等從一些傳感器讀取數據,由于網關設備和傳感器所處的環境復雜多樣,電磁干擾等常常會破壞傳輸的數據,為了確保傳輸數據的可靠性。

用C語言做物聯網網關開發時,經常需要通過串口、485接口等從一些傳感器讀取數據,由于網關設備和傳感器所處的環境復雜多樣,電磁干擾等常常會破壞傳輸的數據,為了確保傳輸數據的可靠性,通常會采取一些策略,常用的策略:數據校驗+超時重傳,具體過程如下:

[[331222]]

發送方在發送數據時,在元數據的基礎上增加校驗數據形成請求數據包(data pack),然后將請求數據包發送出去,并啟動守衛計時器(Guard Timer)。

接收方在收到請求數據包后,以跟發送方相同的算法對元數據進行計算得到校驗數據,然后跟收到的校驗數據進行比較,若相同,則說明數據可靠,可以使用;反之,說明數據被破壞,直接丟棄掉。若數據可靠,接收方以同樣的格式做成響應數據包回復給發送方;若發現數據被破壞,接收方不回復任何數據。

如果發送方在守衛計時器超時前正確地接收到了接收方回復的響應數據包,則停止守衛計時器,并進行后續的處理;若發送方在守衛計時器超時時仍未收到接收方回復的響應數據包,則重新發送"1."中的數據包,如此反復,直到正確發送或達到了重傳次數。

步驟1~3重點為了講述如何確保數據可靠傳輸,真實情景中為了能正確地斷包(識別數據包),通常會按照如下結構來定義數據包:

 

C語言與物聯網之簡單通信協議
  • 包起始標識:通常使用固定數據,比如0xFA, 0xAA, 0xA5等;
  • 元數據長度:根據元數據長度進行斷包。比如:元數據長度占1字節,校驗數據占2字節,當元數據長度取值為10時,則數據包大小為14字節;
  • 元數據:發送的或接收的,有一定格式或意義的應用數據;

校驗數據:按照某種校驗算法(比如checksum,crc等)計算得到的值。

  1. #define MAX_DATA_LEN  100     /* 假設元數據的最大長度為100字節 */ 
  2. typedef struct tag_data_pack { 
  3.     uint8_t sop;                     /* 包起始標識,(Start Of Pack) */ 
  4.     uint8_t len;                     /* 元數據長度,假設為1字節 */ 
  5.     uint8_t datas[MAX_DATA_LEN + 2]; /* 元數據 + 2字節的校驗數據 */ 
  6. }data_pack_t; 

總線式的通信中,通常還會在數據包中加入目標設備的地址,以便于確定數據是發往總線上的哪個設備,數據包的參考結構如下:

 

C語言與物聯網之簡單通信協議

用C語言描述如下:

  1. #define MAX_DATA_LEN  100     /* 假設元數據的最大長度為100字節 */ 
  2. typedef struct tag_data_pack { 
  3.     uint8_t sop;                     /* 包起始標識,(Start Of Pack) */ 
  4.     uint8_t addr;                    /* 目標設備地址,假設為1字節 */ 
  5.     uint8_t len;                     /* 元數據長度,假設為1字節 */ 
  6.     uint8_t datas[MAX_DATA_LEN + 2]; /* 元數據 + 2字節的校驗數據 */ 
  7. }data_pack_t; 

 

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2018-04-10 14:16:14

物聯網

2023-04-27 17:49:38

物聯網通信協議

2024-01-23 12:47:27

2021-12-16 10:49:32

物聯網通信協議網絡

2020-06-01 14:15:57

物聯網通信協議無線通訊

2022-02-23 19:38:22

物聯網通信協議

2018-12-07 13:58:38

物聯網通信協議IOT

2019-12-03 12:16:36

物聯網ZigBee藍牙低功耗

2020-02-20 22:44:01

通信協議物聯網終端設備

2018-08-04 05:08:50

物聯網架構通信協議IOT

2024-03-20 10:26:08

物聯網物聯網協議通信協議

2019-04-29 10:26:49

TCP網絡協議網絡通信

2019-06-21 14:17:52

工業物聯網通信協議IIOT

2020-07-05 22:57:04

物聯網通信協議IOT

2023-10-28 16:14:38

RS485通信協議

2023-10-12 19:37:50

通信協議HTTP

2022-06-18 09:02:00

I2C 子系統通信協議

2018-08-10 06:27:49

Thread物聯網通信協議

2024-02-20 19:53:57

網絡通信協議

2010-07-01 15:45:22

網絡通信協議
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品欧美一区喷水 | 天天操网 | 久草视| 亚洲成人福利视频 | 在线免费观看成年人视频 | 人人天天操| 日韩综合网| 亚洲一区二区在线视频 | 天天躁日日躁aaaa视频 | 在线观看av网站 | 婷婷综合 | 激情一区二区三区 | 日韩三级在线 | 精品国产免费一区二区三区五区 | 国产精品久久久久免费 | 国产日韩久久 | 成人精品久久 | 91精品国产91久久久久久吃药 | 日本在线综合 | 国产精品久久午夜夜伦鲁鲁 | 国产我和子的乱视频网站 | 黄色片在线看 | 精品国产欧美一区二区三区不卡 | 久久久久久久亚洲精品 | 亚洲一区二区三区在线免费 | 欧美日韩三级 | 中文字幕av在线一二三区 | 国产精品久久久久久久久久久久 | av在线天天 | 国产伦精品 | 国产精品永久在线观看 | 国产在线第一页 | 国产精品精品视频一区二区三区 | 国产成人高清在线观看 | 亚洲444eee在线观看 | 亚州成人| 国产精品区二区三区日本 | 国产欧美日韩综合精品一区二区 | 国产成人精品一区二区三区在线 | 日韩一区二区在线视频 | 91美女视频|