HaaS EDUK1機器リソースのWi-Fi

この記事で紹介するすべてのWi-Fi機能、MACレイヤー機能などは、HaaS EDUK1でのWi-Fi用です。

 

1.Wi-Fi汎用モジュール

HaaS1000チップには4つのメインコンピューティングコアと、いくつかの補助的なスモールコアがあります。メインのコンピューティングコアには、2つのA7と2つのM33が含まれ、そのうちBTとWi-Fiは独立した小さなコアで実行されます。次の図に示すように、Wi-Fi汎用モジュールとチップ全体の他のハードウェアリソースとの関係は次のとおりです。

 

2.Wi-Fiサポート機能

  • Wi-Fi®IEEE802.11a/ b / g / n
  • 2.4GHzWi-Fiをサポート
  • 20MHz、40MHz帯域幅モードをサポート
  • Wi-FiとBluetoothの共存をサポートする

 

2.1、Wi-Fiリンク層(MAC)

Wi-Fiリンク層は、次の機能をサポートしています。

  • ステーション、softAP、P2Pモードを同時にサポートできます
  • A-MPDUおよびA-MSDUの送受信をサポートします
  • WMM省電力モードをサポート
  • 適応送信レートをサポート
  • ときにWPA2PSK、WPA2エンタープライズセキュリティ
  • WEPとTKIPをサポートする
  • AES-CCMハードウェアアクセラレーションをサポート
  • SMS4-WPI(WAPI)ハードウェアアクセラレーションをサポート

 

2.2、Wi-Fiベースバンド

Wi-Fiベースバンドは次の機能をサポートしています。

  • IEEE 802.11a、11b、11g、11nをサポート
  • 20Mhzおよび40Mhzチャネルをサポート
  • MCS 0-7(BPSK、r = 1 / 2-64 QAM、r = 5/6)をサポートし、データ転送速度は150Mbpsに達する可能性があります
  • shortguardinterval、greenfield、STBCをサポート
  • デジタルプリディストーションテクノロジーをサポート

 

2.3、W​​i-Fi RF

Wi-Fi RFは、次の機能をサポートしています。

  • 統合された2.4GHzおよび5GHzPA、LNAおよびRFスイッチ
  • 2400-2497MHz / 4900-5950MHzをサポート

 

3.Wi-Fi帯域無線規格

3.1、Wi-Fi2.4GHz帯域無線規格

2.4GHzRF受信特性

 

2.4GRF送信機のプロパティ

 

3.2、Wi- Fi5GHz帯電波

5GHzRF受信機の特性

 

5GHzRF送信機の特性

 

4.無線周波数インターフェース

 

5.ソフトウェア開発

5.1ネットワーク管理モジュールの基本的な紹介

特定のWi-Fi操作は、Wi-Fiネットワークの管理を容易にするアプリケーション層へのインターフェイスを提供するNetmgrを介して均一にカプセル化されます。以下は、Netgmrの主なアーキテクチャです。

netmgrは主に、上位のAPPにAPIを提供し、下位のWi-Fi接続にHAL抽象化レイヤーを提供します。Netmgrは、複数のサブモジュールで構成されています。各サブモジュールは、主にWi-Fiの初期化、Wi-Fiの動的管理、DHCPによるIPアドレスの取得、SNTPによるネットワーク時間の取得などを担当します。

 

5.2、機能紹介

Wi-Fiを初期化する

この機能は、主にWi-Fiモジュールを初期化するために使用されます。

int netmgr_init void );

 

ネットワーク管理モジュールを起動します

定義:

    int netmgr_start bool autoconfig);

パラメータの説明:

    autoconfig trueは 自動的にネットワークに接続し、false は自動的にネットワークに接続しません

 

Wi-Fiに接続する

ssidおよびpasswdパラメーターの変更に注意してください。

定義:

int32_t netmgr_connect const char * ssid、const uint8_t * password、uint32_t timeout);

パラメータの説明:

    ssid :Wi - Fi接続の名前

    password :Wi - Fi接続するためのパスワード空の場合はNULLとして指定します。

    タイムアウト:接続タイムアウト時間(ミリ秒単位)

用例:

    netmgr_connect (“ ssid”、“ passwd”、10 * 1000 );

 

5.3。紹介例

Wi-Fiの例はhelloworld_demoの旅に基づいて学習さます。

主に4つのステップに分かれています。

  • コードを変更する
  • コードをコンパイルする
  • 画像を書き込む
  • ビュー・ログ

 

5.3.1、コードを変更する

ネットワーク接続コードを変更する

ファイルに次のコードを置き換えアプリケーション/例/ helloworld_demo / appdemo.c

2つのヘッダーファイルnetmgr.hとaos / yloop.hを同時に追加する必要があることに注意してください。

コード内のこの行を変更することに注意してください。

netmgr_connect("test_wifi" "wifi_passwd" 10 * 1000 );

test_wifiを、wifiに接続する必要のある名前に変更します。

Wi-Fiに接続する必要があるパスワードになるようにwifi_passwdを変更します。

#include <stdio.h>

#include <stdlib.h>

#include <aos/kernel.h>

#include "aos/init.h"

#include "board.h"

#include <k_api.h>

#include "netmgr.h"

#include "aos/yloop.h"



void start_netmgr(void) {

    netmgr_init();

    netmgr_start(false);

    netmgr_connect("test_wifi", "wifi_passwd", 10 * 1000);

}



int application_start(int argc, char *argv[])

{

     int count = 0;

     printf("nano entry here!\r\n");


     start_netmgr();


     while(1) {

        printf("hello world! count %d \r\n", count++);

        aos_msleep(1000);

    };

}

関連するコードを変更してコンパイルする

モジュールのコンパイル方法は、application / example / helloworld_demo / Config.inに追加することです:「!AOS_CREATE_PROJECTの場合はAOS_COMP_NETMGRを選択してください」

たとえば、次のデモでnetmgrコンポーネントが必要な場合は、次の行を追加します。

config AOS_APP_HELLOWORLD_DEMO

    bool "Helloworld Demo"

    select AOS_COMP_NETMGR if !AOS_CREATE_PROJECT

ここでselectを使用した後、実験プロジェクトのコンパイル時にnetmgrコンポーネントが自動的にコンパイルされます。次の図に示すように、aosmakeを実行するとnetmgrが表示されます。特定のコンパイル方法Config.inについては、その他の変更についてコンパイル環境の章を参照してください。

 

5.3.2、コードをコンパイルする

コマンドラインで次の3つのコマンドを実行します

aos make distclean

aos make helloworld_demo@haaseduk1 -c config

aos make

コンパイルログを参照してください。

aosはdistcleanを作ります

aos make helloworld_demo @ haaseduk1 -c config

作る

コンパイルの終了の兆候は、以下に示すように、「ビルドが完了しました:helloworld_demo @ haaseduk1」を確認することです。

 

5.3.3、画像を書き込む

デバイスを接続してから、次のコマンドを実行します

アップロード

書き込み開始ログ:

書き込みプロセスログ:

燃焼成功後の兆候:

 

5.3.4、ログを表示

シリアルポートソフトウェアを使用してシリアルポートを開き、接続ステータスを確認します。次のコマンドを実行して、wifi接続ステータスを確認します。

netmgr -t wifi -p

NETWORK_CONNECTEDがある場合、接続は成功しています。

 

6.コマンドラインからネットワークを使用します

Wi-Fiは、保存されている接続情報の読み取り/書き込み/削除、現在のネットワーク内のすべてのAP情報の印刷、APへの接続と切断、ネットワークステータスの照会など、コマンドを使用したWi-Fiネットワークに関連する操作をサポートします。

コマンドライン

説明

netmgr -t wifi -i

初期化

netmgr -t wifi -a [0/1]

自動的に再接続するかどうかを設定します。0、自動的に再接続しません; 1、自動的に再接続します。

netmgr -t wifi -b [0/1]

履歴接続レコードを保存するかどうか。0、履歴接続レコードを保存しません。1.履歴接続レコードを保存します。

netmgr -t wifi -c [ssid] [パスワード]

ssidパスワードを使用してインターネットに接続します

netmgr -t wifi -e

Wi-Fi接続を切断します

netmgr -t wifi -w [wifi_config]

Wi-Fi構成ファイルを書き込みます。network = {\\ nssid = \ "aos \" \\ npassword = \ "123456 \" \\ nchannel = \ "0 \" \\ n} \\ nなどのwifi_config形式

netmgr -t wifi -r

Wi-Fi構成ファイルを読み取る

netmgr -t wifi -d

Wi-Fiプロファイルを削除する

netmgr -t wifi -p

現在のネットワークステータスを印刷する

netmgr -t wifi -s

現在のネットワーク上のAP情報を出力します

たとえば、SSIDが「aos」でパスワードが「123456」のAPでも次のようになります。

netmgr -t wifi -i

netmgr -t wifi -c aos 123456

 

7.分析方法

Netmgrキーログは、主に次のようなシリアルポートログに従ってデバイスの現在のネットワークステータスの識別を容易にするためのものです。

重要なログ

説明

NETMGR_CONN conn_connecting

Wi-Fi接続を意味します

NETMGR_CONN conn_connected

Wi-Fi接続が成功したことを示します

NETMGR_CONN conn_obtaining_ip

IPアドレスが取得されていることを示します

wifi_dhcp_start:1763 start dhcp

DHCPクライアントを起動してIPにアクセスすることを示します

netmgr_ip_got_event

IPアドレスを取得するイベントを示します

sntpタスクを開始します。

sntpサーバーが起動していることを示します

[sntp] OK:秒739241320 usec 1612343811

sntpが時間を正常に取得したことを示します

通常、特定の問題の分析では、上記のログに基づいて現在のネットワーク状況を判断する必要があります。特に最後のsntpログ。このログが表示されている場合は、現在のネットワークのWi-Fiが接続されており、WANにアクセスできることを意味します。

 

開発者テクニカルサポート

さらにテクニカルサポートが必要な場合は、DingTalk開発者グループに参加するか、WeChatパブリックアカウントをフォローしてください。

テクノロジーとソリューションの詳細については、AliyunAIoTホームページhttps://iot.aliyun.com/をご覧ください。

 

おすすめ

転載: blog.csdn.net/HaaSTech/article/details/114854590