20240919在友善之臂的NanoPC-T6开发板上适配宸芯的数传模块CX6602N

20240919在友善之臂的NanoPC-T6开发板上适配宸芯的数传模块CX6602N
2024/9/19 16:54


缘起,大毛PK二毛战况激烈,穿越机大卖!我司拆同行的图传作品。
发现:
主控:飞凌OK3588-C核心板
图传模块:宸芯的数传模块CX6602N

于是费了老鼻子劲,联系上了宸芯。
技术支持需要派工单,经过多方协调,终于和上海的软件FAE对接上了。

宸芯的数传模块CX6602N支持三频段:800M、1.4GHZ、2.4GHZ。
支持USB接口(PIN69的DP和PIN70的DM)和HSIC接口(PIN2的HSIS_DATA,PIN4的HSIC_STROBE)

USB接口可以直接以虚拟以太网卡的形式接友善之臂的NanoPC-T6开发板。
HSIC接口接LAN9730转【百兆】以太网RJ45之后,接下位机!


2. 上位机配置
2.1 添加 rndis 和 gserial 主机驱动
进入 kernel 目录 make menuconfig,1.添加配置 CONFIG_USB_NET_RNDIS_HOST=m:

2.添加配置 CONFIG_USB_SERIAL=m:
2.添加配置 CONFIG_USB_SERIAL_GENERIC=y:
编译模块:make modules && make modules_install


Z:\repo_RK3588_Buildroot20240508\kernel\arch\arm64\configs\rockchip_linux_defconfig
CONFIG_USB_DWC3=y
CONFIG_USB_DWC2=y
CONFIG_USB_SERIAL=y
CONFIG_USB_SERIAL_GENERIC=y

CONFIG_USB_SERIAL_CP210X=y
CONFIG_USB_SERIAL_FTDI_SIO=y
CONFIG_USB_SERIAL_KEYSPAN=y
CONFIG_USB_SERIAL_PL2303=y
CONFIG_USB_SERIAL_OTI6858=y
CONFIG_USB_SERIAL_QUALCOMM=y
CONFIG_USB_SERIAL_SIERRAWIRELESS=y
CONFIG_USB_SERIAL_OPTION=y
CONFIG_USB_GADGET=y


【注意,宏CONFIG_USB_USBNET是上一级目录,您也必须打开,否则编译生成的.config中没有CONFIG_USB_NET_RNDIS_HOST的】
Z:\repo_RK3588_Buildroot20240508\kernel\arch\arm64\configs\rockchip_linux_defconfig
CONFIG_USB_RTL8150=y
CONFIG_USB_RTL8152=y
CONFIG_USB_USBNET=y
CONFIG_USB_NET_RNDIS_HOST=y

CONFIG_WL_ROCKCHIP=y
CONFIG_WIFI_BUILD_MODULE=y


Z:\repo_RK3588_Buildroot20240508\kernel\.config
CONFIG_USB_RTL8150=y
CONFIG_USB_RTL8152=y
# CONFIG_USB_LAN78XX is not set
CONFIG_USB_USBNET=y
CONFIG_USB_NET_AX8817X=y
CONFIG_USB_NET_AX88179_178A=y
CONFIG_USB_NET_CDCETHER=y
# CONFIG_USB_NET_CDC_EEM is not set
CONFIG_USB_NET_CDC_NCM=y
# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set
# CONFIG_USB_NET_CDC_MBIM is not set
# CONFIG_USB_NET_DM9601 is not set
# CONFIG_USB_NET_SR9700 is not set
# CONFIG_USB_NET_SR9800 is not set
# CONFIG_USB_NET_SMSC75XX is not set
# CONFIG_USB_NET_SMSC95XX is not set
# CONFIG_USB_NET_GL620A is not set
CONFIG_USB_NET_NET1080=y
# CONFIG_USB_NET_PLUSB is not set
# CONFIG_USB_NET_MCS7830 is not set
CONFIG_USB_NET_RNDIS_HOST=y

CONFIG_USB_NET_CDC_SUBSET_ENABLE=y
CONFIG_USB_NET_CDC_SUBSET=y
# CONFIG_USB_ALI_M5632 is not set
# CONFIG_USB_AN2720 is not set
CONFIG_USB_BELKIN=y
CONFIG_USB_ARMLINUX=y
# CONFIG_USB_EPSON2888 is not set
# CONFIG_USB_KC2190 is not set
CONFIG_USB_NET_ZAURUS=y
# CONFIG_USB_NET_CX82310_ETH is not set
# CONFIG_USB_NET_KALMIA is not set
# CONFIG_USB_NET_QMI_WWAN is not set
# CONFIG_USB_HSO is not set
# CONFIG_USB_NET_INT51X1 is not set
# CONFIG_USB_IPHETH is not set
# CONFIG_USB_SIERRA_NET is not set
# CONFIG_USB_VL600 is not set
# CONFIG_USB_NET_CH9200 is not set
# CONFIG_USB_NET_AQC111 is not set
CONFIG_WLAN=y
# CONFIG_WIRELESS_WDS is not set


2.2 加载驱动

1. 加载 rndis 主机驱动:modprobe rndis_host
2. 连接下位机,确认 rndis 驱动绑定 rndis 接口
3. 查看下位机的 usb 设备 ID:
     # lsusb
     Bus 001 Device 006: ID 18d1:181f Google Inc.


root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# lsusb
Bus 005 Device 001: ID 1d6b:0002
Bus 003 Device 001: ID 1d6b:0001
Bus 001 Device 001: ID 1d6b:0002
Bus 005 Device 003: ID 18d1:181f

Bus 006 Device 001: ID 1d6b:0003
Bus 004 Device 001: ID 1d6b:0001
Bus 002 Device 001: ID 1d6b:0002
root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# uname -a
Linux rk3588-buildroot 5.10.198 #1 SMP Thu Sep 19 16:04:55 CST 2024 aarch64 GNU/Linux

root@rk3588-buildroot:/# 


4. # lsusb -t
     /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/6p, 480M

           |__ Port 1: Dev 15, If 0, Class=Wireless, Driver=rndis_host, 480M
      |__ Port 1: Dev 15, If 1, Class=CDC Data, Driver=rndis_host, 480M
      |__ Port 1: Dev 15, If 2, Class=Vendor Specific Class, Driver=, 480M
      |__ Port 1: Dev 15, If 3, Class=Vendor Specific Class, Driver=, 480M
      |__ Port 1: Dev 15, If 4, Class=Vendor Specific Class, Driver=, 480M
      |__ Port 1: Dev 15, If 5, Class=Vendor Specific Class, Driver=, 480M

5. 加载 gserial 主机驱动:modprobe usbserial vendor=0x18d1 product=0x181f
     其中,0x18d1 是从机的 VID,0x181f 是从机的 PID

6. 确认 gserial 驱动绑定 gserial 接口:
     # lsusb -t
     /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/6p, 480M
           |__ Port 1: Dev 15, If 0, Class=Wireless, Driver=rndis_host, 480M
           |__ Port 1: Dev 15, If 1, Class=CDC Data, Driver=rndis_host, 480M
           |__ Port 1: Dev 15, If 2, Class=Vendor Specific Class,
     Driver=usbserial_generic, 480M
           |__ Port 1: Dev 15, If 3, Class=Vendor Specific Class,
     Driver=usbserial_generic, 480M
           |__ Port 1: Dev 15, If 4, Class=Vendor Specific Class,
     Driver=usbserial_generic, 480M
           |__ Port 1: Dev 15, If 5, Class=Vendor Specific Class,
     Driver=usbserial_generic, 480M


3. 设备调试
3.1 端口识别

查看串口设备:
# ls /dev/ttyUSB*
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 /dev/ttyUSB3

root@rk3588-buildroot:/dev# 
root@rk3588-buildroot:/dev# ls -l ttyUSB*
crw-rw---- 1 root dialout 188, 0 Jan  1 14:46 ttyUSB0
crw-rw---- 1 root dialout 188, 1 Jan  1 14:46 ttyUSB1
crw-rw---- 1 root dialout 188, 2 Jan  1 14:46 ttyUSB2
crw-rw---- 1 root dialout 188, 3 Jan  1 14:46 ttyUSB3
crw-rw---- 1 root dialout 188, 4 Jan  1 14:46 ttyUSB4

root@rk3588-buildroot:/dev# 


查看网卡设备:
ls /sys/class/net/ -l
total 0
lrwxrwxrwx 1 root root 0 Oct 23 07:33 usb0
-> ../../devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0/net/usb0
lrwxrwxrwx 1 root root 0 Oct 23 07:33 lo -> ../../devices/virtual/net/lo

# ifconfig usb0 192.168.1.15
usb0     Link encap:Ethernet HWaddr 1e:62:45:10:50:41
         inet addr:192.168.1.15 Bcast:192.168.1.255 Mask:255.255.255.0
         UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
         RX packets:6 errors:0 dropped:0 overruns:0 frame:0
         TX packets:640 errors:0 dropped:0 overruns:0 carrier:0
                    collisions:0 txqueuelen:1000
                    RX bytes:384 (384.0 B) TX bytes:51178 (51.1 KB)

root@rk3588-buildroot:/dev# 
root@rk3588-buildroot:/dev# cd /sys/class/net/
root@rk3588-buildroot:/sys/class/net# 
root@rk3588-buildroot:/sys/class/net# ls -l
total 0
lrwxrwxrwx 1 root root 0 Jan  1 14:46 eth0 -> ../../devices/platform/fe1c0000.ethernet/net/eth0
lrwxrwxrwx 1 root root 0 Jan  1 14:46 lo -> ../../devices/virtual/net/lo
lrwxrwxrwx 1 root root 0 Jan  1 14:46 usb0 -> ../../devices/platform/usbdrd3_1/fc400000.usb/xhci-hcd.5.auto/usb5/5-1/5-1:1.0/net/usb0

root@rk3588-buildroot:/sys/class/net# 
root@rk3588-buildroot:/sys/class/net# cd /
root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:118 errors:0 dropped:0 overruns:0 frame:0
          TX packets:118 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:7528 (7.3 KiB)  TX bytes:7528 (7.3 KiB)

root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 8E:BA:83:CE:09:59  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:88 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:118 errors:0 dropped:0 overruns:0 frame:0
          TX packets:118 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:7528 (7.3 KiB)  TX bytes:7528 (7.3 KiB)

usb0      Link encap:Ethernet  HWaddr 96:92:B8:79:43:AD  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@rk3588-buildroot:/# 


3.2 AT 及灌包测试

     1.通过 USB 连接上位机后,使用 minicom 工具发送 AT 命令:
     minicom -D /dev/ttyUSB0

     2.利用 iperf 测试网络性能:
     上位机配置 ipv4 地址:
     ifconfig usb0 192.168.42.130
     上位机作为 udp 服务端接收数据:
     iperf -u -s -i 1
     下位机作为 udp 客户端发送数据:
     iperf -u -c 192.168.42.130 -i 1 -p 5001 -t 30 -b 200m
上位机作为 udp 服务端接收数据:


root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# ifconfig usb0 192.168.42.130
root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# ifconfig

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:154 errors:0 dropped:0 overruns:0 frame:0
          TX packets:154 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:9688 (9.4 KiB)  TX bytes:9688 (9.4 KiB)

usb0      Link encap:Ethernet  HWaddr 96:92:B8:79:43:AD  
          inet addr:192.168.42.130  Bcast:192.168.42.255  Mask:255.255.255.0
          inet6 addr: fe80::9492:b8ff:fe79:43ad/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:384 (384.0 B)  TX bytes:780 (780.0 B)

root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# 


【服务器端】
root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# iperf -u -s -i 1
------------------------------------------------------------
Server listening on UDP port 5001
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  1] local 192.168.42.130 port 5001 connected with 192.168.42.130 port 38629
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  1] 0.00-1.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17006 (0%)
[  1] 1.00-2.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17008 (0%)
[  1] 2.00-3.00 sec  23.8 MBytes   200 Mbits/sec   0.000 ms 0/17002 (0%)
[  1] 3.00-4.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17008 (0%)
[  1] 4.00-5.00 sec  23.8 MBytes   200 Mbits/sec   0.000 ms 0/17007 (0%)

[  1] 5.00-6.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17009 (0%)
[  1] 6.00-7.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17009 (0%)
[  1] 7.00-8.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17004 (0%)
[  1] 8.00-9.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17008 (0%)
[  1] 9.00-10.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17009 (0%)
[  1] 10.00-11.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17004 (0%)
[  1] 11.00-12.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17007 (0%)
[  1] 12.00-13.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17006 (0%)
[  1] 13.00-14.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17007 (0%)
[  1] 14.00-15.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17008 (0%)
[  1] 15.00-16.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17003 (0%)
[  1] 16.00-17.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17011 (0%)
[  1] 17.00-18.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17006 (0%)
[  1] 18.00-19.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17006 (0%)
[  1] 19.00-20.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17008 (0%)
[  1] 20.00-21.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17007 (0%)
[  1] 21.00-22.00 sec  23.8 MBytes   200 Mbits/sec   0.000 ms 0/17005 (0%)
[  1] 22.00-23.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17008 (0%)
[  1] 23.00-24.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17008 (0%)
[  1] 24.00-25.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17008 (0%)
[  1] 25.00-26.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17003 (0%)
[  1] 26.00-27.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17009 (0%)
[  1] 27.00-28.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17006 (0%)
[  1] 28.00-29.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17006 (0%)
[  1] 29.00-30.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17009 (0%)
[  1] 0.00-30.00 sec   715 MBytes   200 Mbits/sec   0.001 ms 0/510208 (0%)

^Croot@rk3588-buildroot:/# 


【客户端】
Microsoft Windows [版本 10.0.22621.3296]
(c) Microsoft Corporation。保留所有权利。

C:\Users\QQ>adb shell
root@rk3588-buildroot:/# iperf -u -c 192.168.42.130 -i 1 -p 5001 -t 30 -b 200m
------------------------------------------------------------
Client connecting to 192.168.42.130, UDP port 5001
Sending 1470 byte datagrams, IPG target: 58.80 us (kalman adjust)
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  1] local 192.168.42.130 port 38629 connected with 192.168.42.130 port 5001
[ ID] Interval       Transfer     Bandwidth
[  1] 0.00-1.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 1.00-2.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 2.00-3.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 3.00-4.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 4.00-5.00 sec  23.8 MBytes   200 Mbits/sec

[  1] 5.00-6.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 6.00-7.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 7.00-8.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 8.00-9.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 9.00-10.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 10.00-11.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 11.00-12.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 12.00-13.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 13.00-14.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 14.00-15.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 15.00-16.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 16.00-17.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 17.00-18.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 18.00-19.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 19.00-20.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 20.00-21.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 21.00-22.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 22.00-23.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 23.00-24.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 24.00-25.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 25.00-26.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 26.00-27.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 27.00-28.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 28.00-29.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 29.00-30.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 0.00-30.00 sec   715 MBytes   200 Mbits/sec
[  1] Sent 510209 datagrams
[  1] Server Report:
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  1] 0.00-30.00 sec   715 MBytes   200 Mbits/sec   0.000 ms 0/510208 (0%)
root@rk3588-buildroot:/#


参考资料:
CX660X模块产品技术手册202102.pdf
lc1860 lc1881在安卓上位机下的RNDIS&GSERIAL使用.pdf
CX660X产品webui快速配置操作指导.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值