RTL8821CS的定频指令我将它分为两个大部分,第一部分称为初始化,第二部分称为功能设定。初始化就是每次测试前的需要做的准备工作,功能设定那就是使模块处于某种工作状态的设定,比如TX、RX和单载波。以这两大部分分开介绍。
rtwpriv wlan0 mp_ctx stop #关闭mp_ctx模式
rtwpriv wlan0 mp_stop #关闭mp模式
rtwpriv wlan0 mp_arx stop #关闭rx
rtwpriv wlan0 mp_start #开启mp模式
功能设定是让模块处于哪种工作状态
rtwpriv wlan0 mp_channel $channel
rtwpriv wlan0 mp_bandwidth 40M=${widthband},shortGI=${shortgi}
rtwpriv wlan0 mp_ant_tx a
rtwpriv wlan0 mp_rate $rate
if [ x$pwr != x"" ]; then
rtwpriv wlan0 mp_txpower patha=${pwr}
fi
rtwpriv wlan0 mp_ctx background,pkt
rtwpriv wlan0 mp_channel $channel
设置具体的信道,channel是具体的信道值
rtwpriv wlan0 mp_bandwidth 40M= w i d t h b a n d , s h o r t G I = {widthband},shortGI= widthband,shortGI={shortgi}
设置带宽和数据的传输间隔。widthband的取值是{0,1,2},用于设置带宽,0=20M;1=40M;2=80M。shortgi的取值是{0,1},用于设置数据传输间隔,当多径效应不是很严重时,用户可以将该间隔配置为400ns;对于多径效应较明显的环境,不建议使用Short Guard Interval (GI)。0代表800ns,1代表400ns,a/b/g为800ns
rtwpriv wlan0 mp_ant_tx a
设置天线,因为8821只有一根天线,所以设为a就好
rtwpriv wlan0 mp_rate $rate
设置传输速率,这里的rate对应无线测试规范的速率,而对于rtwpriv命令来讲,还需要一个转换才行,因为rtwpriv就是根据速率和信道去区分模式的,具体的换算关系如下:
设data rate=x,mp_rate=y
a/b/g模式:y=2x;n模式:y=128+x;ac模式:y=160+x;
rtwpriv wlan0 mp_txpower patha=${pwr}
设置功率,取值范围是[0,63],获取功率的指令是rtwpriv wlan0 mp_get_txpower
rtwpriv wlan0 mp_ctx background,pkt
让模块持续发包
rtwpriv wlan0 mp_channel $channel
rtwpriv wlan0 mp_bandwidth 40M=${widthband},shortGI=${shortgi}
rtwpriv wlan0 mp_ant_rx a
rtwpriv wlan0 mp_rate $rate
rtwpriv wlan0 mp_arx start
rtwpriv wlan0 mp_reset_stats
rtwpriv wlan0 mp_query
rtwpriv wlan0 mp_arx start
开启rx测试
rtwpriv wlan0 mp_reset_stats
清除计数
rtwpriv wlan0 mp_query
获取包数
rtwpriv wlan0 mp_channel $channel
rtwpriv wlan0 mp_bandwidth 40M=${widthband},shortGI=${shortgi}
rtwpriv wlan0 mp_ant_tx a
rtwpriv wlan0 mp_rate $rate
if [ x$pwr != x"" ]; then
rtwpriv wlan0 mp_txpower patha=${pwr}
fi
rtwpriv wlan0 mp_ctx background,stone
初始化加上功能设定就可以开始定频操作了