tag 标签: 蓝牙

相关帖子
相关博文
  • 热度 1
    2025-2-22 14:44
    245 次阅读|
    0 个评论
    ​​在这个万物互联的时代,无线通信技术已经成为嵌入式系统中不可或缺的一部分。其中,Wi-Fi模块作为连接设备与网络的重要桥梁,其性能与兼容性显得尤为关键。Intel的AX210NGW Wi-Fi 6E模块作为一款高性能的无线网络适配器,不仅支持最新的Wi-Fi 6E标准和蓝牙5.3,还具备出色的传输速度和兼容性,为嵌入式系统的无线连接提供了强有力的支持。 AX210NGW Wi-Fi 6E模块 为了更好地满足客户对高性能嵌入式主控的应用需求,本文将详细介绍在飞凌嵌入式OK3576-C开发板上适配AX210NGW Wi-Fi 6E模块(以下简称模块)的方法,帮助开发者快速上手并充分发挥性能优势。 注:目前暂未对Wi-Fi模块的蓝牙功能进行适配,本文只讲解Wi-Fi功能的适配方式。 OK3576-C开发板接口图 首先,需要将Wi-Fi模块连接到飞凌嵌入式OK3576-C开发板上(Wi-Fi模块使用的是M.2 key A+E接口,但通过接口图看到OK3576-C开发板没有此接口,这时使用M.2转PCIe双频无线网卡转接卡进行转接就可以)。 进入内核目录开始配置: forlinx @ubuntu20 :~/ 3576 $ cd kernel- 6.1 / forlinx @ubuntu20 :~/ 3576 /kernel- 6.1 $ make menuconfig ARCH =arm64 按如下顺序进行选择: Location: - Device Drivers - Network device support (NETDEVICES ) - Wireless LAN (WLAN ) - Intel devices (WLAN_VENDOR_INTEL ) - Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi) (IWLWIFI ) - Intel Wireless WiFi MVM Firmware support (IWLMVM ) 进行编译: forlinx @ubuntu20 :~/ 3576 /kernel- 6.1 $ export CROSS_COMPILE = /home/forlinx /3576/prebuilts /gcc/linux -x86/aarch64/gcc-arm- 10.3 - 2021.07 -x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- forlinx @ubuntu20 :~/ 3576 /kernel- 6.1 $ export PATH = $PATH :/home/forlinx/ 3576 /prebuilts/gcc/linux-x86/aarch64/gcc-arm- 10.3 - 2021.07 -x86_64-aarch64-none-linux-gnu/bin/ forlinx @ubuntu20 :~/ 3576 /kernel- 6.1 $ make ARCH =arm64 rk3576-evb1-v10-linux.img 最后将编译好的模块自行拷贝到OK3576-C开发板中,我们这里是将模块拷贝到 /root目录中了。模块在内核源码中的路径: (1) drivers/net/wireless/intel/iwlwifi/iwlwifi.ko (2) drivers/net/wireless/intel/iwlwifi/mvm/iwlmvm.ko 除此之外,还需要将Wi-Fi固件和STA脚本拷贝到/root目录中备用。 root@rk3576-buildroot:/root# ls firmware.zip fltest_wifi.sh iwlmvm.ko iwlwifi.ko STA脚本可以参考以下内容,如自行创建脚本,记得要添加可执行权限。 #!/bin/sh cnt1=`ps aux | grep hostapd | grep -v grep | wc -l` if ; then killall hostapd /dev/null fi ifconfig uap0 down function usage () { echo "Usage: -i wifi -s ssid -p password" echo "eg: ./wifi.sh -i mlan0 -s bjforlinx -p 12345678 " echo "eg: ./wifi.sh -i mlan0 -s bjforlinx -p NONE " echo " -i : mlan0 or mlan1" echo " -s : wifi ssid" echo " -p : wifi password or NONE" } function parse_args () { while true ; do case " $1 " in -i ) wifi= $2 ; echo wifi $wifi ; shift 2 ;; -s ) ssid= $2 ; echo ssid $ssid ; shift 2 ;; -p ) pasw= $2 ; echo pasw $pasw ; shift 2 ;; -h ) usage; exit 1 ;; * ) break ;; esac done } if then usage; exit 1; fi parse_args $@ if then rm /etc/wpa_supplicant.conf fi echo \#PSK/TKIP /etc/wpa_supplicant.conf echo ctrl_interface=/var/run/wpa_supplicant /etc/wpa_supplicant.conf echo ctrl_interface_group=0 /etc/wpa_supplicant.conf echo update_config=1 /etc/wpa_supplicant.conf echo network={ /etc/wpa_supplicant.conf echo ssid=\" $ssid \" /etc/wpa_supplicant.conf echo scan_ssid=1 /etc/wpa_supplicant.conf if then echo key_mgmt=NONE /etc/wpa_supplicant.conf else echo psk=\" $pasw \" /etc/wpa_supplicant.conf echo key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE /etc/wpa_supplicant.conf # echo group=CCMP TKIP WEP104 WEP40 /etc/wpa_supplicant.conf fi echo } /etc/wpa_supplicant.conf ifconfig -a|grep mlan0 |grep -v grep /dev/null if then ifconfig mlan0 down /dev/null fi ifconfig -a|grep mlan1 |grep -v grep /dev/null if then ifconfig mlan1 down /dev/null fi ifconfig -a|grep eth0 |grep -v grep /dev/null if then ifconfig eth0 down /dev/null fi ifconfig -a|grep eth1 |grep -v grep /dev/null if then ifconfig eth1 down /dev/null fi ifconfig -a|grep usb0 |grep -v grep /dev/null if then ifconfig usb0 down /dev/null fi ps -fe|grep wpa_supplicant |grep -v grep /dev/null if then kill -9 $(pidof wpa_supplicant) fi sleep 1 ifconfig $wifi up /dev/null sleep 1 (wpa_supplicant -Dnl80211,wext -i $wifi -c/etc/wpa_supplicant.conf /dev/null) echo "waiting..." sleep 3 wpa_cli -i $wifi status |grep COMPLETED |grep -v grep /dev/null if then dhcpcd -i $wifi echo "Finshed!" else echo "try to connect again..." sleep 3 wpa_cli -i $wifi status |grep COMPLETED |grep -v grep /dev/null if then dhcpcd -i $wifi echo "nameserver 114.114.114.114" /etc/resolv.conf echo "Finshed!" else echo "************************************************" echo "connect faild,please check the passward and ssid" kill -9 $(pidof wpa_supplicant) exit 1 fi fi 接下来就需要将固件部署到板卡的/lib/firmware路径下: root@rk3576-buildroot:/root# unzip firmware.zip -d /lib/ root@rk3576-buildroot:/root# ls /lib/firmware/iwlwifi-ty-a0-gf-a0* /lib/firmware/iwlwifi-ty-a0-gf-a0-59.ucode /lib/firmware/iwlwifi-ty-a0-gf-a0-66.ucode /lib/firmware/iwlwifi-ty-a0-gf-a0-71.ucode /lib/firmware/iwlwifi-ty-a0-gf-a0-72.ucode /lib/firmware/iwlwifi-ty-a0-gf-a0-73.ucode /lib/firmware/iwlwifi-ty-a0-gf-a0-74.ucode /lib/firmware/iwlwifi-ty-a0-gf-a0-77.ucode /lib/firmware/iwlwifi-ty-a0-gf-a0-78.ucode /lib/firmware/iwlwifi-ty-a0-gf-a0-79.ucode /lib/firmware/iwlwifi-ty-a0-gf-a0-81.ucode /lib/firmware/iwlwifi-ty-a0-gf-a0-83.ucode /lib/firmware/iwlwifi-ty-a0-gf-a0-84.ucode /lib/firmware/iwlwifi-ty-a0-gf-a0-86.ucode /lib/firmware/iwlwifi-ty-a0-gf-a0-89.ucode /lib/firmware/iwlwifi-ty-a0-gf-a0.pnvm 接下来就可以加载模块了: root@rk3576-buildroot:/root# insmod iwlwifi.ko Intel(R) Wireless WiFi driver for Linux iwlwifi 0000:01:00.0: api flags index 2 larger than supported by driver iwlwifi 0000:01:00.0: TLV_FW_FSEQ_VERSION: FSEQ Version: 0.0 .2 .36 iwlwifi 0000:01:00.0: loaded firmware version 72. a764baac.0 ty-a0-gf-a0-72.ucode op_mode iwlmvm root@rk3576-buildroot:/root# insmod iwlmvm.ko iwlwifi 0000:01:00.0: Detected Intel(R) Wi-Fi 6 AX210 160MHz, REV=0x420 thermal thermal_zone6: power_allocator: sustainable_power will be estimated thermal thermal_zone6: failed to read out thermal zone (-61) iwlwifi 0000:01:00.0: loaded PNVM version 35148b80 iwlwifi 0000:01:00.0: Detected RF GF, rfid=0x10d000 iwlwifi 0000:01:00.0: base HW address: 4c:49:6c:f0:99:7a iwlwifi 0000:01:00.0 wlp1s0: renamed from wlan0 如有上述信息,说明模块已经加载成功,即可看到网卡节点信息: root @rk 3576 -buildroot :/root# ifconfig wlp1s0 wlp1s0 Link encap :Ethernet HWaddr 4 C : 49 : 6 C :F0: 99 : 7 A 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) 下面开始测试STA模式: root@rk3576-buildroot:/root# ./fltest_wifi.sh -i wlp1s0 -s forlinx-wlan -p fl03123102650 ifconfig: SIOCGIFFLAGS: No such device wifi wlp1s0 ssid forlinx-wlan pasw fl03123102650 rk_gmac-dwmac 2a220000.ethernet eth0: FPE workqueue stop waiting... try to connect again... wlp1s0: authenticate with ee:b9:70:81:7d:88 wlp1s0: send auth to ee:b9:70:81:7d:88 (try 1 /3) wlp1s0: send auth to ee:b9:70:81:7d:88 (try 2 /3) wlp1s0: send auth to ee:b9:70:81:7d:88 (try 3 /3) wlp1s0: authenticated wlp1s0: associate with ee:b9:70:81:7d:88 (try 1 /3) wlp1s0: RX AssocResp from ee:b9:70:81:7d:88 (capab=0x1931 status=0 aid=42) wlp1s0: associated IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready main: control_open: Connection refused dhcpcd-10.0.4 starting dev: loaded udev DUID 00 :01:00:01:c7:92:c8:aa:4c:49:6c:f0:99:7a wlp1s0: connected to Access Point: forlinx-wlan wlp1s0: IAID 6c:f0:99:7a wlp1s0: soliciting an IPv6 router wlp1s0: rebinding lease of 192.168 .81 .206 wlp1s0: NAK: from 192.168 .80 .1 wlp1s0: soliciting a DHCP lease wlp1s0: offered 192.168 .81 .206 from 192.168 .80 .1 wlp1s0: probing address 192.168 .81 .206 /23 wlp1s0: leased 192.168 .81 .206 for 28800 seconds wlp1s0: adding route to 192.168 .80 .0 /23 wlp1s0: adding default route via 192.168 .80 .1 forked to background, child pid 1185 dhcpcd_fork_cb: truncated read 0 (expected 4 ) Finshed! 测试ping到飞凌嵌入式官网,查看是否可以正常上网: root @rk 3576 -buildroot :/root# ifconfig wlp1s0 wlp1s0 Link encap :Ethernet HWaddr 4 C : 49 : 6 C :F0: 99 : 7 A inet addr : 192.168 . 81.206 Bcast : 192.168 . 81.255 Mask : 255.255 . 254.0 inet6 addr : fe80:: 4 e49: 6 cff :fef0: 997 a/ 64 Scope :Link UP BROADCAST RUNNING MULTICAST MTU : 1500 Metric : 1 RX packets : 1547 errors : 0 dropped : 93 overruns : 0 frame : 0 TX packets : 21 errors : 0 dropped : 0 overruns : 0 carrier : 0 collisions : 0 txqueuelen : 1000 RX bytes : 150462 ( 146.9 KiB) TX bytes : 3123 ( 3.0 KiB) root @rk 3576 -buildroot :/root# ping www.forlinx.com PING s- 526319 .gotocdn.com ( 211.149 . 226.120 ) 56 ( 84 ) bytes of data. 64 bytes from 211.149 . 226.120 ( 211.149 . 226.120 ): icmp_seq= 1 ttl= 54 time= 45.9 ms 64 bytes from 211.149 . 226.120 ( 211.149 . 226.120 ): icmp_seq= 2 ttl= 54 time= 40.1 ms 64 bytes from 211.149 . 226.120 ( 211.149 . 226.120 ): icmp_seq= 3 ttl= 54 time= 39.8 ms 64 bytes from 211.149 . 226.120 ( 211.149 . 226.120 ): icmp_seq= 4 ttl= 54 time= 40.8 ms 64 bytes from 211.149 . 226.120 ( 211.149 . 226.120 ): icmp_seq= 5 ttl= 54 time= 40.5 ms ^C --- s- 526319 .gotocdn.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4007ms rtt min/avg/max/mdev = 39.813 / 41.401 / 45.867 / 2.257 m 可以看到ping飞凌嵌入式官网是正常的,这样小编就把STA模式配置好了。 那么,AP模式如何开启?接下来,我们就介绍一下如何配置AP模式。 第一步还是需要编写AP模式脚本。小编 将脚本放在了/usr/bin/目录中,文件名称为fltest_hostapd.sh ,同样的也需要配置可执行权限。 #!/bin/sh cnt=`ps aux | grep wpa_supplicant | grep -v grep | wc -l` if ; then killall wpa_supplicant /dev/null fi cnt1=`ps aux | grep hostapd | grep -v grep | wc -l` if ; then killall hostapd /dev/null fi /etc/init.d/S80dnsmasq stop echo 1 /proc/sys/net/ipv4/ip_forward #iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sleep 1 ifconfig wlp1s0 192.168.2.1 hostapd /etc/hostapd-2.4g.conf #hostapd /etc/hostapd-5g.conf /etc/init.d/S80dnsmasq start 以上就是fltest_hostapd.sh脚本的全部内容。在fltest_hostapd.sh脚本中,还用到了/etc/hostapd-2.4g.conf配置文件,以下是文件的配置内容: interface =wlp1s0 driver =nl80211 channel = 9 hw_mode =g auth_algs = 1 ieee80211n = 1 wpa = 1 ssid =OK3576_WIFI_2. 4 G_AP //AP模式wifi名称 wpa_passphrase = 12345678 //AP模式WiFi密码 wpa_key_mgmt =WPA-PSK wpa_pairwise =TKIP rsn_pairwise =CCMP 下面还需要配置下dnsmasq.conf服务: root@rk3576-buildroot:/root# vi /etc/dnsmasq.conf interface=wlp1s0 bind-interfaces except-interface=lo dhcp-range= 192.168.2.100 , 192.168.2.254 , 12h dhcp-option= 3,192.168.2 . 1 dhcp-option= 6,192.168.2 . 1 有的朋友可能就要问了,在其他系统上使用的是udhcpd服务,为什么在这里使用的DNSmasq服务?下面就简单介绍一下这两个服务的区别: (1)udhcpd 是来自 BusyBox 工具集的 DHCP 服务器程序。主要的功能是为本地网络设备分配动态IP地址、子网掩码、网关等信息。DHCP服务本身是不包含DNS转发或其他的网络服务。 (2)DNSmasq 是一个轻量级的 DNS 转发器和 DHCP 服务器软件。 ① 可以将DNS查询的请求转发到上游DNS服务器,并缓存这些查询结果,目的是为了提高网络应用的响应速度。 ② 做DHCP服务器时与第一条udhcpd服务功能相同,这里就不做重复介绍了。 此外,应用场景也不同,DNSmasq主要用于小型网络环境。易于配置和管理,如家庭网络、小型办公室和路由器中;而udhpcd服务适合用于嵌入式系统或者资源有限的环境中。 扩展知识介绍完毕,下面就开启AP模式: root @rk 3576 -buildroot :/root# fltest_hostapd.sh wlp1s0: deauthenticating from ee :b9: 70 : 81 : 7 d : 88 by local choice ( Reason : 3 =DEAUTH_LEAVING) killall : hostapd : no process killed Stopping dnsmasq : FAIL Starting dnsmasq : OK IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready wlp1s0: interface state UNINITIALIZED-ENABLED wlp1s0: AP-ENABLED root @rk 3576 -buildroot :/root# ifconfig wlp1s0 wlp1s0 Link encap :Ethernet HWaddr 4 C : 49 : 6 C :F0: 99 : 7 A inet addr : 192.168 . 2.1 Bcast : 192.168 . 2.255 Mask : 255.255 . 255.0 UP BROADCAST RUNNING MULTICAST MTU : 1500 Metric : 1 RX packets : 50382 errors : 0 dropped : 2982 overruns : 0 frame : 0 TX packets : 261 errors : 0 dropped : 0 overruns : 0 carrier : 0 collisions : 0 txqueuelen : 1000 RX bytes : 4291281 ( 4.0 MiB) TX bytes : 27170 ( 26.5 KiB) 下面就是要使用手机连接飞凌嵌入式OK3576-C开发板的热点了。 root @rk3576 - buildroot: / root# ping 192.168 .2 .225 PING 192.168 .2 .225 ( 192.168 .2 .225 ) 56 ( 84 ) bytes of data. 64 bytes from 192.168 .2 .225 : icmp_seq = 1 ttl = 64 time = 142 ms 64 bytes from 192.168 .2 .225 : icmp_seq = 2 ttl = 64 time = 60.1 ms 64 bytes from 192.168 .2 .225 : icmp_seq = 3 ttl = 64 time = 88.2 ms 64 bytes from 192.168 .2 .225 : icmp_seq = 4 ttl = 64 time = 110 ms 64 bytes from 192.168 .2 .225 : icmp_seq = 5 ttl = 64 time = 69.9 ms ^ C --- 192.168.2.225 ping statistics --- 5 packets transmitted, 5 received, 0 % packet loss, time 4004 ms 到此,一个新的AX210NGW Wi-Fi 6E模块就已经适配完成了。小编在这里想告诉大家的是,PCIe Wi-Fi模块的适配思路都是一样的,如果有其他Wi-Fi模块,大家也可以参考此方法动手尝试。
  • 热度 1
    2025-2-12 09:57
    321 次阅读|
    0 个评论
    从 “模糊” 到 “精准”,蓝牙6.0凭什么实现厘米级定位?
    蓝牙6.0是蓝牙技术联盟(Bluetooth SIG)最新推出的核心规范,而蓝牙信道探测(Channel Sounding)则是该规范中最重要的一项创新功能,可广泛应用在室内定位,距离检测及靠近感应等应用场景中。蓝牙信道探测是专为提高蓝牙设备测距的准确性与安全性而设计,不同于粗略测距的传统接收信号强度指示(RSSI)方法,蓝牙信道探测是一种更为精密的测距功能。 现阶段,蓝牙技术已经成为人们生活中不可分割的一部分,每天都有数十亿的蓝牙设备运行在广阔的物联网领域之中,而蓝牙信道探测功能的出现则可为这些蓝牙设备带来“厘米级”的距离感知能力与定位能力。在未来,蓝牙设备之间不仅能更精确地、安全地探测到彼此之间的相对位置,为开发人员和用户创造更多可能性,还将有望推动蓝牙技术进入全新的应用时代,释放物联网的更多潜力。 蓝牙6.0,如何实现“厘米级”的距离感知能力? 蓝牙技术联盟方面表示,蓝牙信道探测功能主要使用两种经过验证的测距方法,即基于相位的测距(PBR)和往返时间(RTT),以便在蓝牙连接的设备之间实现安全、精细的测距。 蓝牙信道探测利用基于相位的测距 (PBR) 来实现两个设备之间的精确距离测量。在 PBR 中,发起方设备向反射器设备发送信号,反射器设备返回该信号。此过程在多个频率中重复。设备之间的距离是根据这些频率上发射和接收信号之间的相位差计算的。 图源:Bluetooth SIG 用于高精度距离测量的基于相位的测距(PBR) 蓝牙信道探测还采用了一种称为往返时间 (RTT) 的辅助测距方法,作为对抗复杂的中间人 (MITM) 中继攻击的对策。在 RTT 中,发起方设备将加密加扰的数据包发送到反射器设备,后者返回数据包。然后,根据数据包来回传输所花费的时间计算设备之间的距离。 图源:Bluetooth SIG 安全距离边界的往返时间(RTT) RTT 作为一种安全的距离边界技术,提供独立的距离测量来交叉检查PBR测量,从而可显著降低MITM攻击的风险。 图源:Bluetooth SIG 蓝牙信道探测应用程序与蓝牙协议栈 综上所述,通过结合PBR和RTT,蓝牙信道探测功能可在蓝牙设备之间实现安全精确的测距。在信道探测过程中,发起者通过指定的2.4 GHz信道发送载波信号或数据包,反射者则通过将数据发回给发起者来进行响应。数据包的往返时间以及发送和接收的载波信号之间的相位差都可以用来确定距离。 蓝牙技术联盟表示,从测试情况看,蓝牙信道探测功能可实现100米的测量距离,且精度误差可以做到在±50厘米以内;而在距离小于5米时,甚至可以将精度误差做到接近10厘米以内。 可以预期,在此“厘米级”的距离感知能力下,蓝牙信道探测功能将会为工业、家庭和零售等行业带来诸多交互上的革新应用。例如:汽车和房屋的无钥匙进入以及基于地理围栏的安全策略,在用户接近时,为获得正确授权的用户开门;如果用户在敏感区域停留太长时间,则会发出警报。蓝牙鼠标、键盘和游戏控制器可以根据它们与智能手机、平板电脑或笔记本电脑的距离自动在活动与非活动状态之间切换。 蓝牙6.0,如何实现“厘米级”的定位能力? 定位技术有着非常广泛的应用,例如在全球范围内普遍使用的GPS。然而,GPS在室内环境下并不能很好地工作,因此需要有一种切实可行的室内定位技术,可以使用追踪系统来追踪目标物体的具体位置或方向,或者让设备自行追踪目标物体在室内环境中的位置。 而蓝牙信道探测功能通过与蓝牙5.1所支持的测向功能(到达角(AoA)、出发角(AoD))配合使用,现已可在室内实现“厘米级”的定位功能,其允许在彼此无线覆盖范围内的两台设备以安全、准确的方式确定它们之间的距离,这极大地增强了低功耗蓝牙中已经存在的位置服务和定位功能。 在到达角(AoA)方法中,多个接收器会阵列设置,单个发射器发射的无线电波将以不同的相位到达不同的接收器天线。通过采集从不同天线上所接收到信号的相位差,就可以计算出无线电波的方向。而由于无线电波的入射角度是相对于接收器确定的,因此这种技术被称之为到达角(AoA)。 图源:Bluetooth SIG 使用 AoA 和 AoD 进行测向 在出发角(AoD)方法中,多个发射器会阵列设置,并以相同的初始相位发射无线电波,而单个接收器则可以测量不同入射波的相位差,从而计算出线电波的方向。而由于无线电波的入射角度是相对于发射器确定的,因此这种技术被称之为出发角(AoD)。 可以预期,在此“厘米级”的定位能力以及庞大的蓝牙生态下,蓝牙信道探测功能将有望被广泛应用于室内环境中的物品管理、物品追踪与宠物追踪等领域。例如:当家中的小型设备如遥控器、钥匙、耳机等丢失时,可通过手机等设备利用蓝牙6.0信道探测功能快速定位其位置。 基于对未来蓝牙测距与定位市场的乐观预期,华普微将于近期推出一款全新升级的蓝牙6.0高精度测距模组HM-BT2401DA。目前,该模组的样品研发及测试验证工作已接近完成,产品即将上市,敬请期待。 HM-BT2401DA 样品实拍 HM-BT2401DA是一款基于新一代高性能、超低功耗蓝牙6.0芯片,具备“厘米级”测距与定位能力的蓝牙模组,可广泛应用在需要位置或距离测试的应用场景,包含室内定位,距离检测,及靠近感应等应用。HM-BT2401DA采用32位78MHz ARM Cortex®-M33内核,片上集成258KB SRAM、1536KB FLASH,集成先进射频收发器,内置AI/ML硬件加速器,搭载双PCB天线,支持无线数据透传功能,可快速实现蓝牙主从设备之间的连接通信。 可以明确的是,蓝牙高精度测距模组具有显著的商业价值,能够满足多个行业对精确定位、低成本、低功耗的需求。展望未来,随着蓝牙技术的不断成熟与市场需求的持续增长,蓝牙高精度测距模组将在物联网、智能制造、资产管理等领域中发挥更加重要的作用。
  • 热度 3
    2024-12-5 16:17
    1140 次阅读|
    0 个评论
    应用环境与客户需求 蓝牙设备越来越普及,但在高密度使用环境下,你知道里面潜藏的风险吗?用户在使用蓝牙配件(如键盘、鼠标和耳机)时,经常面临干扰问题,这主要是因为蓝牙设备使用的2.4GHz频段与许多其他无线设备(如Wi-Fi、Thread等)重迭,导致频段拥挤,进而增加干扰的可能性。 【常见干扰情境】 客服中心:客服中心通常有大量的工作站,每个工作站可能都配备有蓝牙键盘、鼠标和耳机。由于这些设备都使用4GHz频段,客服中心内部的频段拥挤会增加讯号干扰的可能性。再加上中心内部可能有多个无线网络设备和其他电子设备,这些因素都会影响蓝牙设备的性能。 办公室环境:在办公室中,尤其是开放式办公空间,蓝牙设备也可能会遇到干扰。许多员工同时使用蓝牙键盘、鼠标和耳机,加上无线网络设备的存在,会增加无线讯号的拥挤度。这种环境下,蓝牙设备的讯号容易受到干扰,从而影响其性能。 网咖:在网咖中,众多的计算机和游戏设备同时运行,很多设备可能都会使用4GHz频段来进行无线连接。这种高密度的设备布局会导致频段拥挤和讯号干扰,进而影响蓝牙配件的稳定性和效能。 公共场所(如购物中心、机场、捷运站):由于大量的公共和商业设备共享4GHz频段,蓝牙设备的干扰问题非常严重。无论是商场的电子标示、机场的登机牌发放系统,还是捷运站的票务系统,都可能对蓝牙设备产生影响。 【干扰问题的具体表现】 蓝牙键盘:在高干扰环境下,蓝牙键盘可能会遇到按键反应迟钝、打字延迟或错别字的问题。这是因为蓝牙讯号受到干扰,导致键盘的输入数据无法迅速而准确地传输到计算器。 蓝牙鼠标:干扰会影响鼠标的移动精度,导致鼠标光标移动不顺、跳动或飘移等现象。这种情况下,用户可能会发现鼠标的反应变得不稳定,影响操作的流畅性和准确性。 蓝牙耳机:当蓝牙耳机受到干扰时,使用者可能会遇到音质问题,如爆音、杂音和声音断断续续。这会影响通话质量或音乐欣赏体验,进一步影响使用者的工作和娱乐效果。 总结来说,在高密度使用环境中,蓝牙配件的干扰问题尤为显著。如何确保产品具备良好抗干扰能力,有效提升其性能,确保在繁忙的工作和娱乐环境中,使用者能够享受稳定的操作体验和高效的工作效果,成为蓝牙产品厂商面临的难题。 随着蓝牙设备在客服中心、网咖和大型办公室等环境的普及,性能问题日益凸显。这些问题影响用户体验与品牌商誉,进而削弱市场竞争力。 客户的问题与难处 以下为相关客户案例的实例分享,一家长年合作的客户是国际知名计算机配件制造商,他们先前推出的蓝牙耳机在客服中心环境中出现了间歇性连接中断和音质下降的棘手情况。 这不仅影响了产品声誉,甚至导致了大量的客户投诉,产生后续的更新维护成本。为了避免再发生相同问题,他们在新案开发中向百佳泰寻求解决建议跟方案。 客户主要面临的问题与挑战 1.技术挑战: 如何在高密度、高干扰环境中保持稳定连接 如何优化频道选择算法和天线设计 如何提高抗干扰能力 2.测试与验证挑战: 缺乏模拟复杂使用场景的能力 内部无法进行全面、系统的性能测试 3.市场挑战: 客户需要满足不同场景下的高性能需求 客户如何在竞争激烈的市场中保持领先地位 高密度使用环境下的蓝牙设备的干扰问题可能非常复杂与棘手。我们针对蓝牙键盘、鼠标和耳机等设备提供全面测试和优化,帮助该家客户确保设备在高密度环境中的性能表现。 实境的模拟测试环境 设置了实境的测试环境,以仿真不同的高密度使用场景: 模拟大量工作站: 重现高密度用户应用场景,测试各种蓝牙设备(包括键盘、鼠标和耳机)在实际使用中的表现。 重现高密度Wi-Fi网络: 仿真Wi-Fi网络和其他无线设备的干扰情况,以检测蓝牙设备在这些环境中的抗干扰能力。 多方位性能测试 我们进行了一系列针对蓝牙键盘、鼠标和耳机的严格测试: 1.效能测试: 蓝牙键盘:评估输入延迟(Input Latency)、灵敏度、延迟反应,并测试在拥挤的无线环境中的连线稳定性。 蓝牙鼠标:测试输入滞后、灵敏度、延迟反应,并分析回报率(Polling Rate)在无线共存环境中的表现。 蓝牙耳机:评估音质、声音迟滞、爆音和音频故障(Audio glitches)。 2.多用户压力测试: 逐步增加活跃蓝牙设备数量,分析键盘、鼠标和耳机的性能变化,检测在高密度设备环境下的稳定性。 3.抗干扰能力评估: 引入各种2.4GHz设备,测试蓝牙设备的抗干扰能力,确保其在繁忙的无线环境中依然能保持可靠连接。 深入的问题分析与客制化解决方案 通过深入分析,我们协助客户发现了不同蓝牙设备在高密度环境中的潜在问题: 蓝牙键盘:自动重连问题、输入延迟过长、灵敏度降低。 蓝牙鼠标:移动不流畅、Polling Rate不足、延迟反应不稳定。 蓝牙耳机:频道选择算法效率低、音质受干扰、音频故障问题。 根据这些发现,我们提供了以下改进建议: ★ 优化频道选择算法: 提高在拥挤环境中的适应能力,减少干扰影响。 ★ 重新设计天线: 改善天线设计,提升多方位讯号接收能力,减少讯号衰减。 ★ 升级蓝牙芯片组: 采用更先进的抗干扰技术,提升连接稳定性和抗干扰能力。 例如,在实际测试蓝牙耳机时,我们在逐渐增加蓝牙设备数量的情况下进行测试。结果显示,当设备数量增加到40个以上时,耳机开始出现爆音现象。进一步增加设备数量至60个以上时,音质显著下降,明显影响了用户的听音乐体验。 根据这些测试结果,我们提供了针对性的改进建议,显著提升了耳机在高密度环境中的连接稳定性和音质。
  • 热度 7
    2024-11-11 14:26
    312 次阅读|
    0 个评论
    Works With线上开发者大会将提供物联网行业深入的专业知识和技能
    致力于以安全、智能无线连接技术,建立更互联世界的全球领导厂商Silicon Labs(亦称“芯科科技”)近日宣布,2024年Works With线上开发者大会现已开放注册。这一行业盛会定于11月20日至21日举行,将汇集全球各地的物联网开发人员、设备制造商、无线技术专家、工程师和商业领袖,观众可免费注册参加。同时,为了方便中文观众,所有在线视频均配有中文字幕。 芯科科技全球营销和美洲销售副总裁John Dixon表示:“我们很高兴今年的Works With 线上开发者大会向观众开放注册。凭借Works With五年来的积累,以及今年多场全球实体活动的加持,Works With线上大会将为物联网专业人士提供一个独特的机会,使他们可以相聚在一起,彼此分享知识并推动行业创新。” 综合在美国加州圣何塞、印度海得拉巴和中国上海举行的地区性实体活动所产出的精彩内容,Works With线上大会可以提供全面的会议内容,具体包括: · 专家主题演讲和技术课程: 推动物联网创新的技术领袖将参与大会,通过英伟达和三星等业内顶尖企业的分享,以及Arduino和其他芯科科技合作伙伴主讲的专题课程,可以了解物联网的最新趋势和技术。 · 生态系统集成: 探索如何将产品无缝集成至亚马逊、谷歌、三星SmartThings和苹果等领先的生态系统中。 · 实时问答环节: 直接与主题专家互动,实时获得问题解答。 参会者可以围绕蓝牙、低功耗广域网(LPWAN)、Matter、Wi-Fi、人工智能/机器学习(AI/ML)和物联网安全等关键领域对应的专业主题制定自己的议程: · 蓝牙: 涵盖环境物联网、蓝牙信道探测、能量收集等各种蓝牙主题,以及如何使用芯科科技的蓝牙开发者指南来进行开发。 · LPWAN : 介绍各种长距离无线连接技术,并展示 Z-Wave Long Range的实际应用。 · Matter : 芯科科技与其他行业领袖将探讨如何评估Matter是否适合您的产品,并提供启动Matter项目的第一手指引。 · Wi-Fi : 讨论从Wi-Fi 4到Wi-Fi 6和Wi-Fi 7的演进,以及如何开发低功耗Wi-Fi应用,参会者还将获得芯科科技 SiWx917 SoC的实作指导。 · AI/ML : 了解芯科科技内置AI/ML硬件加速器的SoC,以及开发人员如何在边缘实现功能丰富且低功耗的产品。 · 物联网安全: 了解物联网开发中最迫切的安全威胁、未来可能面临的挑战,以及如何为应对这些威胁和挑战做好准备。
  • 热度 3
    2024-10-11 11:32
    254 次阅读|
    0 个评论
    01 物联网系统中为什么要使用蓝牙芯片 物联网系统中使用蓝牙芯片的原因主要基于蓝牙芯片在连接性能、数据传输、功耗、安全性以及应用灵活性等方面的优势。以下是详细分析: 低功耗性能 蓝牙芯片,特别是低功耗蓝牙(BLE)芯片,能够在保证正常通信的前提下显著减少电量消耗,从而延长物联网设备的使用时间。这种低功耗特性对于依赖电池供电的物联网设备尤为重要,如传感器、智能家电等。通过低功耗蓝牙技术,这些设备可以长期在线,实现远程监控和数据传输,无需频繁更换电池或充电。 高效的连接与数据传输 蓝牙芯片支持快速的设备配对和连接过程,用户可以轻松地添加新设备到物联网网络中,无需复杂的网络设置和专业知识。此外,蓝牙芯片能够支持多设备同时连接,形成点对点或星型网络拓扑结构,使得物联网设备可以直接互相通信,实现信息共享和协同工作。这种高效的连接和数据传输能力增强了物联网系统的灵活性和效率。 抗干扰能力强 蓝牙技术使用2.4GHz ISM频段,尽管这个频段相对繁忙,但蓝牙通过自适应跳频等技术手段,能够确保数据成功通过噪声干扰,确保消息准确到达目的地。这种抗干扰能力使得蓝牙芯片在复杂的电磁环境中也能保持稳定可靠的通信。 安全性高 蓝牙芯片内置了安全连接和数据加密机制,确保数据传输过程中的安全性和隐私保护。这对于处理敏感信息的物联网应用至关重要,如医疗健康监测、家庭安全系统等。通过蓝牙芯片的安全特性,物联网系统可以构建更加安全可靠的通信环境。 应用灵活性高 蓝牙芯片支持多种蓝牙版本和通信协议,能够与不同类型的设备进行配对和通信。这种灵活性使得蓝牙芯片在物联网系统中具有广泛的应用场景,如智能家居、工业自动化、医疗健康等领域。同时,随着蓝牙技术的不断发展,蓝牙芯片的功能和性能也在不断提升,为物联网系统的发展提供了更多的可能性。 综上所述, 物联网系统中使用蓝牙芯片的原因主要包括低功耗性能、高效的连接与数据传输、抗干扰能力强、安全性高以及应用灵活性高等方面。这些优势使得蓝牙芯片成为物联网系统中不可或缺的无线连接技术之一。 本文会再为大家详解无线通信芯片家族中的一员——蓝牙芯片。 02 蓝牙芯片定义 蓝牙芯片是一种集成蓝牙功能的电路集合,用于实现短距离无线通信。它集成了蓝牙无线电模块、微控制器以及必要的外围设备,能够支持蓝牙通信技术的各种应用。 03 蓝牙芯片原理 蓝牙芯片的主要工作原理是利用蓝牙技术进行短距离无线通信。在传输过程中,蓝牙芯片将数字数据转换为无线信号,并通过射频电路在2.4GHz ISM射频频段上进行传输。同时,蓝牙芯片会实时监测信道的状况,并根据需要自动进行跳频,以保证通信的稳定性和安全性。接收端的蓝牙芯片会接收信号,并将其解码为可读的数字数据,从而实现两个蓝牙设备之间的数据交换。 04 蓝牙芯片分类 根据蓝牙传输标准的不同,蓝牙芯片可分为以下几类: 经典蓝牙芯片:采用SBC编码格式,常被用于传输音频、文件等场景,功耗相对较高。 低功耗蓝牙(BLE)芯片:采用LC3编码格式,具有低功耗及低延迟优势,常被用于设备匹配、数据同步、定位等场景。 此外,还有双模蓝牙芯片等类型,它们支持经典蓝牙和高低功耗蓝牙两种模式,具有更高的灵活性和兼容性。 05 蓝牙芯片选型参数 在选择蓝牙芯片时,需要考虑以下参数: 蓝牙版本:不同版本的蓝牙芯片具有不同的功能和性能特点,如蓝牙5.0版本可以更快地传输数据且功耗更低。 传输距离:根据需要连接的设备之间的距离选择合适的传输距离。 数据速率:如果需要传输大量数据,则需要选择上传和下载速度更快的芯片。 功耗:对于低功耗设备,需要选择功耗更低的芯片以延长设备使用时间。 兼容性:确保所选芯片与所要连接的设备类型兼容。 06 蓝牙芯片使用注意事项 在设计蓝牙产品时,应注意天线的布局和周围环境的干扰,以确保信号的稳定性和通信质量。 尽量避免在蓝牙芯片周围放置金属物品,以减少对RF信号的影响。 如果使用了DC-DC转换电路,应将其尽量远离蓝牙芯片,以减少噪声的引入。 在布线时,应遵循一定的规则和技巧,如信号线宽、电源层铺铜、地铺铜间距等,以确保信号的完整性和稳定性。 07 蓝牙芯片应用场景 蓝牙芯片广泛应用于以下领域: 音频设备:如蓝牙耳机、音箱等,提供无线、便捷的音乐享受。 智能穿戴:如智能手表、手环等,支持设备间的无线通信和数据传输。 智能家居:用于控制智能家居设备并实现远程控制等功能。 物联网:在远程监控、智能家居/建筑中的声控控制以及资产跟踪等任务中发挥重要作用。 医疗设备:如助听器或针对言语或行动障碍人士的通讯辅助设备,促进设备与外部外围设备之间的无线通信。 08 蓝牙芯片厂商 蓝牙芯片市场上有众多厂商,其中一些知名的品牌包括Broadcom、Dialog Semiconductor、STMicroelectronics、Nordic Semiconductor、Qualcomm、Realtek等。这些厂商提供了多种型号的蓝牙芯片,以满足不同应用场景的需求。在选择厂商时,可以考虑其品牌知名度、产品性能、技术支持以及售后服务等因素。 供应商A:上海博通 1、产品能力 (1)主推型号1: BK3435 硬件参考设计 SCH-BK3435_reference circuit_V1.pdf SCH-BK3435_reference circuit(one bat)_V1.pdf 核心料(哪些项目在用) 奇迹物联老人定位器项目 2、支撑 (1)技术产品 技术资料 BK3435 Datasheet_V3.1.pdf 本文章源自奇迹物联开源的物联网应用知识库Cellular IoT Wiki,更多技术干货欢迎关注收藏Wiki: Cellular IoT Wiki 知识库(https://rckrv97mzx.feishu.cn/wiki/wikcnBvAC9WOkEYG5CLqGwm6PHf) (如有侵权,联系删除)
相关资源