1. 程式人生 > >迅為4412開發板實戰之智慧閘道器專案筆記

迅為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部分程式碼和實現框架對照

    服務端傳送資料分析;

終端傳送資料分析。