EFR32 如何用串口终端代替NCP commander来做RF测试

当客户没有专业的蓝牙测试仪(如Anritsu MT8852B),只有频谱仪、蓝牙信号发生器等仪器的时候,可以使用Simplicity Studio v5里面的Bluetooth NCP commander配合NCP例程来做RF测试。但是,现在Bluetooth NCP commander还只能识别原厂开发板上的JLink CDC串口,不能识别其他的串口,而且它还不能脱离Simplicity Studio v5单独运行,所以在使用上不太方便,尤其是在做产线上的RF测试的时候。

由于NCP跟主机之间是用串口来传输BGAPI的命令和响应、事件的,所以实际上用普通的串口终端软件,就可以发送RF测试的命令给NCP,并且接收NCP的响应和事件。客户可以用Windows串口编程来设计自己的产线自动测试软件,通过普通的串口连接烧写了NCP程序的待测设备,进行自动化测试。

BGAPI的命令/事件由header和data两个字段构成,header的长度固定为4个字节,包含了代表不同的命令/事件的代码和data字段的长度信息;data的内容就是命令的参数,长度因不同的命令/事件而异;串口发送时低位字节在前。

NCP在复位的时候,会在串口发出一串系统启动信息,按十六进制的格式显示如下:

A0 12 01 00 03 00 01 00 01 00 D6 00 00 00 0C 01 01 00 30 DC 29 3C

然后,就可以在串口终端软件上输入各个BGAPI命令,并查看NCP响应的状态、计数等信息,如下图所示。

例如:

  1. 设置发射功率为10dBm,对应的BGAPI命令函数是sl_bt_system_set_max_tx_power(100),串口发送的十六进制代码为:

20 02 01 16 64 00

NCP将返回命令执行的状态(是否成功)和实际设置的发射功率(8.5dBm),对应的BGAPI响应函数是sl_bt_rsp_system_set_max_tx_power(0, 85),串口接收的十六进制代码为:

20 04 01 16 00 00 55 00

  1. 开始TX测试,sl_bt_test_dtm_tx(0, 37, 0, 1):

20 04 0E 00 00 25 00 01

NCP返回两条信息,第一条是响应,sl_bt_rsp_test_dtm_tx(0):

20 02 0E 00 00 00

第二条是事件,sl_bt_evt_test_dtm_completed(0, 0):

A0 04 0E 00 00 00 00 00

  1. 停止TX测试,sl_bt_test_dtm_end():

20 00 0E 02

返回sl_bt_rsp_test_dtm_end(0):

20 02 0E 02 00 00

和sl_bt_evt_test_dtm_completed(0, 0xDD2A),最后两个字节是实际发送的数据包数(低位字节在前):

A0 04 0E 00 00 00 2A DD

  1. 开始RX测试,sl_bt_test_dtm_rx(0, 1):

20 02 0E 01 00 01

返回sl_bt_rsp_test_dtm_rx(0):

20 02 0E 01 00 00

和sl_bt_evt_test_dtm_completed(0, 0):

A0 04 0E 00 00 00 00 00

  1. 停止RX测试,sl_bt_test_dtm_end():

20 00 0E 02

返回sl_bt_rsp_test_dtm_end(0):

20 02 0E 02 00 00

和sl_bt_evt_test_dtm_completed(0, 0),最后两个字节是实际收到的数据包数(低位字节在前):

A0 04 0E 00 00 00 00 00

各个命令的参数的详细说明如下:

  1. sl_bt_system_set_max_tx_power(int16_t   power)

[in]   power       The maximum radiated TX power in 0.1 dBm steps. For example, value 10 means 1 dBm.

  1. sl_bt_test_dtm_tx(uint8_t packet_type, uint8_t length, uint8_t channel, uint8_t phy)

[in]   packet_type     Enum sl_bt_test_packet_type_t. Packet type to transmit. Values:

sl_bt_test_pkt_prbs9 (0x0): PRBS9 packet payload

sl_bt_test_pkt_11110000 (0x1): 11110000 packet payload

sl_bt_test_pkt_10101010 (0x2): 10101010 packet payload

sl_bt_test_pkt_11111111 (0x4): 11111111 packet payload

sl_bt_test_pkt_00000000 (0x5): 00000000 packet payload

sl_bt_test_pkt_00001111 (0x6): 00001111 packet payload

sl_bt_test_pkt_01010101 (0x7): 01010101 packet payload

sl_bt_test_pkt_pn9 (0xfd): PN9 continuously modulated output

sl_bt_test_pkt_carrier (0xfe): Unmodulated carrier

[in]   length       Packet length in bytes

Range: 0-255

[in]   channel    Bluetooth channel

Range: 0-39

Channel is (F - 2402) / 2,where F is frequency in MHz

[in]   phy   Enum sl_bt_test_phy_t. PHY to use. Values:

sl_bt_test_phy_1m (0x1): 1M PHY

sl_bt_test_phy_2m (0x2): 2M PHY

sl_bt_test_phy_125k (0x3): 125k Coded PHY

sl_bt_test_phy_500k (0x4): 500k Coded PHY

  1. sl_bt_test_dtm_rx(uint8_t channel, uint8_t phy)

参数的含义同上。

  1. 事件sl_bt_evt_test_dtm_completed

uint16_t   result       

Command result, indicates the success of the command.

uint16_t   number_of_packets        

Number of packets,  Only valid for sl_bt_test_dtm_end command. After the receiver or transmitter test is stopped, the number_of_packets parameter in this event indicates the number of received or transmitted packets.

  1. sl_bt_test_dtm_end()

无参数。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值