迅為4412開發板實戰之智慧閘道器專案筆記
智慧閘道器的學習內容:
1 智慧閘道器的概念;
2 智慧閘道器的實現框架;
3 智慧閘道器的例程分析。
1 智慧閘道器的概念:
1.1 智慧閘道器關鍵詞搜尋
智慧家居閘道器,物聯網智慧閘道器,zigbee智慧閘道器...
有大量的智慧閘道器產品但是沒有官方的定義!
1.2 什麼是閘道器?
閘道器(Gateway)又稱網間聯結器、協議轉換器。閘道器在網路層以上實現網路互連,是最複雜的網路互連裝置,僅用於兩個高層協議不同的網路互連。閘道器既可以用於廣域網互連,也可以用於區域網互連。 閘道器是一種充當轉換重任的計算機系統或裝置。使用在不同的通訊協議、資料格式或語言,甚至體系結構完全不同的兩種系統之間,閘道器是一個翻譯器。與網橋只是簡單地傳達資訊不同,閘道器對收到的資訊要重新打包,以適應目的系統的需求。同層--應用層。
1.2.1 傳統閘道器定義
TCP/IP協議中的概念。
不是嵌入式中的閘道器概念。
1.2.2 嵌入式中閘道器定義
例子1:智慧家居中zigbee閘道器。
例子2:電力系統中的裝置“終端伺服器”。
閘道器:將一種協議轉換為另外一種協議,實現資料轉發而不做控制的裝置。
1 協議轉換;
2 資料轉發;
3 不做控制。
1.2.3 智慧閘道器
智慧閘道器和普通閘道器的區別:實現資料處理。
zigbee協議中,指令頭FE,指令尾FF。
智慧閘道器的定義:
將一種協議轉換為另外一種協議、實現資料轉發、不做控制、能夠實現資料處理的裝置。
2 智慧閘道器的實現框架
2.1 硬體選擇:作者選用乙太網+串列埠的組合
2.2 智慧閘道器知識點:
智慧閘道器 = 網路通訊socket + 串列埠通訊 + 多程序fork
2.3 客戶端虛擬碼
pid = fork();
if(pid){
while(1){
if(接收到網口資料)
通過串列埠講資料傳送
}
}
else if(pid){
while(1){
if(接收到串列埠資料)
通過網口將資料送出
}
}
2.4 服務端虛擬碼
pid = fork()
if(pid){
while(1){
if(接收到網口資料)
列印
}
}
else if(pid){
while(1){
通過網口將資料傳送到開發板
delay 1S
}
}
3 智慧閘道器的例程分析
3.1 硬體準備工作
串列埠控制檯;串列埠;網口的連線
3.2 軟體準備工作
串列埠助手;
網路配置--開發板的網路能夠PING通虛擬機器Ubuntu
3.3 程式碼分析
3.3.1 初始化部分分割,提供函式介面
3.3.2 IP可以通過引數配置,網口port埠號也可以配置
port埠號第一次被佔用,如果先關閉服務端,客戶端還會佔用埠號
埠號的取值範圍:0-65535,埠號0-1024。
埠號兩邊要相同。
3.3.3 埠號可以複用
同一個埠號可以同時給多個客戶端使用。
3.3.4 fork部分程式碼和實現框架對照
服務端傳送資料分析;
終端傳送資料分析。