实战案例 | 基于全志T113-i 的星闪模组适配之路

描述

 

前言:

       星闪技术(NearLink)是新一代近距离无线连接技术,拥有低延时、高吞吐、高并发的特点,将进一步扩大其在消费电子产品及工业领域的广泛应用。全志T113系列作为当下热门的国产工业处理器芯片,两者的结合将带来不一样的应用方向。下面基于广州眺望电子的T113-I系列评估板为大家分享星闪模组的驱动适配过程。

 

一、软硬件环境说明
 

 1.1  硬件环境


 

        Core-T113-i核心板基于全志T113处理器设计,是一款专为汽车和工业应用等领域进行智能控制和人机界面设计的双核 Cortex-A7处理器,配备的是256/512MB DDR3内存可选。工业级工作温度范围,拥有10年以上的生命周期。是一款邮票孔封装形态的低成本,性价比极高的国产工业级核心板,配套底板为EVM-T113-i评估板。

模组

图1-1 广州眺望电子EVM-T113-i评估板


 

        UB37 系列是一款 Wi-Fi 6+蓝牙 LE+星闪的三模无线通信模组,支持 IEEE 802.11b/g/n/ax@2.4G、BLE5.2 和 SLE1.0 标准通信协议,支持 USB 2.0 接口。该模组支持 802.11n 20MHz/40MHz 频宽和 802.11ax 20MHz 频宽,提供最大 150Mbps 物理层速率和更远的覆盖距离;

模组

图1-2 UB37星闪开发板


 

 1.2  软件环境


 

虚拟机版本:Ubuntu20.04,Python3.8 以上版本、libnl-3.5.0、wpa_supplicant-2.10 、hostapd-2.10、openssl-1.1.1n

T113-i SDK版本:Tina5.0

T113-i 交叉编译链:arm-linux-gnueabi-gcc 5.3.1

星闪驱动包:UB37_DB37_driver_1.10.110.tar.gz

 

二、调试过程
 

 

 2.1  驱动移植        将驱动源码包 UB37&DB37_linuxDriver.tar.gz 放置于虚拟机上,并进行解压。

  •  
  •  

tar -xzf UB37&DB37_linuxDriver.tar.gz cd UB37&DB37_linuxDriver

        完成配置后,执行 make all 命令编译驱动文件,在 output 生成目标文件:

  •  

make all

        编译结果输出到"output/bin" 目录下


 

文件名

 

 

说明

 

 

plat_soc. ko

 

 

UB37&DB37 平台驱动模块

 

 

wifi_soc. ko

 

 

UB37&DB37 WiFi 驱动模块

 

 

ble_soc. ko

 

 

UB37&DB37 蓝牙驱动模块

 

 

sle_soc. ko

 

 

UB37&DB37 星闪驱动模块

 

 

ws73_cfg.ini

 

 

UB37&DB37 客制化的配置文件

 

 

 

 

2.2  WiFi功能调试

 

        步骤 1 创建 wpa_supplicant.conf 文件,该文件是启动 wpa_supplicant 进程时需要使用到的配置文件,内容如下:

  •  
  •  

ctrl_interface=/etc/Wireless/wpa_supplicant update_config=1

        步骤 2 创建 p2p_supplicant.conf 文件,该文件是启动 wpa_supplicant P2P 功能需的 配置文件,内容如下:

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  

ctrl_interface=/etc/Wireless/wpa_supplicantupdate_config=1device_name=Android_test device_type=10-0050F204-5config_methods=display push_button keypad virtual_push_button physical_display p2p_go_he=1p2p_group_idle=10p2p_no_group_iface=1

 

        步骤 3 创建 hostapd.conf 文件,该文件是启动 hostapd 功能需的配置文件,内容如下:

 

 

interface=wlan0driver=nl80211ctrl_interface=/var/hostapd ssid=Paggy_Testwpa=2wpa_key_mgmt=WPA-PSKwpa_passphrase=12345678wpa_pairwise=CCMPchannel=6hw_mode=gieee80211n=1ht_capab=[SHORT-GI-20]

 

 2.3  BLE功能调试

 

        步骤 1 下载第三方工具 bluez-5.64.tar.xz 及其依赖库,解压文件并放至驱动相应目录下:

  •  

tar -xvf bluez-5.64.tar.xz

        解压依赖库至 open_source 目录下

 

$ tar zxvf expat-2.4.6.tar.gz $ tar zxvf lib ical-1.0.tar.gz$ tar zxvf dbus-1.12.20.tar.gz $ tar zxvf zlib-1.2.11.tar.gz$ tar zxvf libffi-3.3.tar.gz$ tar zxvf ncurses-6.3.tar.gz $ tar zxvf readline-8.1.tar.gz $ tar zxvf pcre-8.45.tar.gz$ tar zxvf gettext-0.21.tar.gz$ tar -xvf glib-2.40.0.tar.xz   


 

        步骤 2 编译 bluez 依赖库,相关指令如下,注意,编译蓝牙工具前需先安装以下依赖库:

  •  

$ sudo apt-get install gettext libglib2.0-dev automake libtool python-docutils

        配置环境变量

  •  

  $ export PKG_CONFIG_LIBDIR=/vendor/lib/pkgconfig/ 

        步骤 3 按顺序编译<步骤1>中各工具。

        步骤 4 生成目标文件在 vendor 目录,如表所示。

目录

 

 

说明

 

 

/vendor/ lib

 

 

依赖库动态库文件: 

lib glib-2 .0 .so .0

 

 

lib expat .so . 1

 

 

lib pcre .so . 1

 

 

libdbus-1 .so .3 lib intl.so .8

 

 

libread line .so .8

 

 

/vendor/bin

 

 

dbus 及 bluez 相关工具可执行文件: 

bluetoothctl

 

 

dbus-daemon

 

 

hciconfig

 

 

hcitool

 

 

/vendor/share/d bus-1

 

 

dbus 配置文件: 

session .conf

 

 

system .conf

 

 

/vendor/ lib exec/ bluetooth

 

 

bluez 协议栈可执行文件: 

bluetoothd

 

 

 

三、测试验证
 

 3.1  WiFi功能测试


 

        输入以下指令查看PID与VID,确定正常识别模块

 

 

  •  

[root@T113-I:/] lsusb

模组

        驱动加载

  •  
  •  

[root@T113-I:/] insmod /lib/modules/5.4.61/plat_soc.ko[root@T113-I:/] insmod /lib/modules/5.4.61/wifi_soc.ko

模组

模组

        执行以下指令,之后根据提示输入想连接wifi的有户名和密码

  •  

[root@T113-I:/] /talowe_test/test_wifi.sh

模组

  联网测试

  •  

[root@T113-I:/] ping www.baidu.com -I wlan0

模组


 

 3.2  BLE功能测试


 

  驱动加载

  •  
  •  

[root@T113-I:/] insmod /lib/modules/5.4.61/plat_soc.ko[root@T113-I:/] insmod /lib/modules/5.4.61/ble_soc.ko

模组

模组

 

   查看蓝牙节点

  •  

[root@T113-I:/] hciconfig -a

模组

  环境设置

  •  
  •  
  •  
  •  
  •  

[root@T113-I:/] dbusresult=`dbus-daemon \--config-file=/vendor/share/dbus-1/session.conf \--print-address --fork`[root@T113-I:/] export DBUS_SESSION_BUS_ADDRESS=$dbusresult[root@T113-I:/] export DBUS_SYSTEM_BUS_ADDRESS=$dbusresult

模组

   开启蓝牙守护进程

  •  

[root@T113-I:/] bluetoothd -n &

模组

   蓝牙A广播

  •  
  •  
  •  
  •  
  •  

[root@T113-I:/]# bluetoothctl[bluetooth]# power on # 上电[bluetooth]# discoverable on # 设置为可被发现[bluetooth]# advertise on # 广播(设置为可发现后,第一次广播会失败)[bluetooth]# advertise on # 广播(再执行一次即可)

模组

  蓝牙B扫描蓝牙A配对

  •  
  •  
  •  
  •  

[root@T113-I:/]# bluetoothctl[bluetooth]# power on # 上电[bluetooth]# scan on # #扫描附近设备,找到自己设备后可以使用scan off停止扫描[bluetooth]# devices # 查看扫描到的设备(下图非正,仅为演示扫描结果)

模组

  •  
  •  

[bluetooth]# pair E8:F7:91:24:39:A8 # 配对[bluetooth]# info E8:F7:91:24:39:A8    #查看信息

 3.3  星闪测试


 

   步骤 1 将星闪执行需要的工具“sparklinkd ” 、“cctrl” 复制到/bin 目录下,修改为 可执行权限:

  •  
  •  

$ chmod a+x sparklinkd    $ chmod a+x sparklinkctrl

 

   步骤 2 依次加载 plat_soc.ko ,sle_soc.ko。

  •  
  •  

insmod plat_soc.ko insmod sle_soc.ko

   串口打印如下图,则说明星闪驱动初始化成功。

模组

四、经验小结

模组

        如上则是基于广州眺望电子的T113-I系列评估板为大家分享的星闪模组的驱动适配过程,想了解或者获取更多相关技术知识、星闪性能或产品信息等,请关注眺望电子公众号或联系我们,更多案例即将陆续推出,竭诚为您服务!


 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分