WiFiバッグのバリエーション(バリエーション)

WiFiはMAC層とPHY層に分かれています。

(純粋に怖い)

フレーム(MPDU)は、次の部分に分かれています。

{MAC_HDR、{PHY_HDR、PSDU}}、FCS。

MAC_HDR:RA、TA、VHT / HT / HE、MU / SUグループID、BSSID、LENGTH、AMPDUまたはMPDUフラグ、CIPHER_TYPE、デフラグメントかどうか、期間、MANAGE / CONTROL / DATAタイムスタンプ等。

PHY_HDR:AMSDUまたはMSDU、PHY_MODE、PHY_RATE等。

 

対応するシーケンス:MAC_HDRを解析し、LENGTHを確認し、  

対応するキャッシュメカニズム:RxPHY_FIFOを使用して、256深度x64ビットのデータをキャッシュします。

別のRxParseFIFO、64深度x 64ビットを使用します。これは、関連データをバッファリングするために使用され、解凍されるのを待ちます。フレームをキャッシュする必要があります。

次に、RxCacheを使用します。この部分は8196x64ビットです。これは、DMAの移動が遅いため、必要です。

出てくるデータには、RxCache、RxCmdFIFO、およびDescriptorのデータが含まれます。

RxCmdFIFOは、データ転送のためにMAC独自のDMA(Aribitor内)によって使用されます。これには、記述子(この記述子は以下の記述子と同じではありません)、バッファーが含まれます。バッファーには、現在のバッファーリストの記述子とバッファーも含まれます。バッファが継続的に更新されると記述子も更新されるため(データパケットは常に解析されます)、記述子は、PSDU全体が受信された後にのみ真に決定されます。次の構造になっています。

MPDUとMSDUの状況(どちらも集約されていません):

バッファーHDRPADDING MAC HDRmsduペイロードTRAILERFCS記述子

AMSDUの状況:

Buffer0 HDR PADDING MAC HDRsub-msduペイロード記述子

Buffer1 HDR PADDING MAC HDRsub-msduペイロード 

Buffer2 HDR PADDING MAC HDRsub-msduペイロードTRAILERFCS 

AMPDUの場合、バッファ配置は自己リンク形式であるため、AMSDUと異なる必要はありません。

同様に、MPDUとMSDUの場合、Aシリーズと完全に同様の方法を作成できるはずです。

記述子は、提供されるものとソフトウェアの間のインターフェースです。含まれるもの:AMSDUまたはMSDU、AMPDUまたはMPDU、BufferAddr。次のバッファまたは次の記述子。最後のMSDUかどうか。すべてのデータストレージはMAC自体によって定義されます。このようなインターフェイスの利点は、データスケジューリングへのソフトウェアの介入を減らし、効率を可能な限り向上させることです。 

おすすめ

転載: blog.csdn.net/reekyli/article/details/108089889