前言 1案例功能 2案例测试 2。1网络功能测试 2。1。1网络功能测试 2。1。2网络带宽测试 2。2短信功能测试 2。3语音通话功能测试 2。4获取经纬度功能测试 2。55G模块复位测试 3案例编译 4关键代码说明前言 本文主要基于我司TL64xEVM评估板移远RM500Q5G模块,验证PCIe5G网络通信功能。本文档适用开发环境: Windows开发环境:Windows764bit、Windows1064bit 虚拟机:VMware15。5。5 Linux开发环境:Ubuntu18。04。464bit UBoot:UBoot2021。01 Kernel:Linux5。10。65 LinuxProcessorSDK:tiprocessorsdklinuxrtam64xxevm08。01。00。39 硬件设备:5G模块(移远RM500Q)、中国电信5GSIM卡评估板简介 创龙科技TL62xEVM是一款基于TISitara系列AM62x单双四核ARMCortexA53单核ARMCortexM4F异构多核处理器设计的高性能低功耗工业评估板,由核心板和评估底板组成。处理器ARMCortexA53(64bit)主处理单元主频高达1。4GHz,ARMCortexM4F实时处理单元主频高达400MHz,采用16nm最新工艺,具有可与FPGA高速通信的GPMC并口,同时支持双屏异显、3D图形加速器。核心板经过专业的PCBLayout和高低温测试验证,稳定可靠,可满足各种工业应用环境。 评估板接口资源丰富,引出3xEthernet(两路支持TSN)、3xCANFD、9xUART、多路DIDO、GPMC、USB、MIPI、LVDSLCD、TFTLCD、HDMI等接口,板载WIFI模块,支持4G模块,可选配外壳直接应用于工业现场,方便用户快速进行产品方案评估与技术预研。 评估板正面图前案例功能 PCIe5G通信案例位于产品资料4软件资料Demomoduledemospcie5gtest目录下,目录结构如下表: 表1 目录 描述 bin 存放程序可执行文件 driver 存放驱动源码和镜像文件 src 存放程序源码 tool 存放Python脚本工具 案例包含4个测试程序和1个Python脚本,分别实现如下功能:quectelCM:实现网络功能。5G模块官方提供的自动拨号上网程序,通过对GobiNet驱动生成的devqcqmiX设备节点进行操作,能自动设置网络连接参数、获取IP和DNS等,如需持续使用上网功能,需保持该程序在后台运行。rm500qphonecall:实现语音通话功能。rm500qsendsms:实现发送短信功能。rm500qgetlocation:实现获取经纬度功能。speedtest。py:基于Python开发的脚本程序,利用了speedtest。net的服务来测量出上下行的宽带,并根据机房离测速服务器的物理距离来列出测速服务器。亦可针对某一服务器进行测速,同时生成一个URL用于分享测速结果。案例测试 请将5G模块(移远RM500Q)上的天线接口ANT0、ANT1和ANT3连接5G天线,ANT2GNSSL连接GPS天线,将5G模块安装至评估板M。2PCIe(CON17)插槽,将中国电信5GSIM卡插入5GMicroSIM卡槽(缺口方向朝外)。 图1 图25G(移远RM500Q)模块 请确保5G天线和GPS天线(GPS字样面朝上)已正确安装,然后将GPS天线放置在开阔场合(室内测试GPS功能可能会导致经纬度获取失败)。 将本案例bin目录下的程序可执行文件、driverpcieimage目录下的驱动镜像文件、tool目录下的脚本文件拷贝至评估板文件系统。评估板上电后,LED13将被点亮。网络功能测试 执行如下命令,加载驱动文件。并运行5G模块官方提供的上网拨号程序。 Targetinsmodpciemhi。komhimbimenabled1 Target。quectelCM 图3 网络功能测试 上网拨号程序运行成功后,执行如下命令测试网络通信功能。 Targetpingwww。baidu。com 图4 网络带宽测试 保证上网拨号程序在后台运行情况下,通过speedtest。py脚本测试网络带宽。脚本使用方法说明:测试下载与上传的速度,无需带参数,执行命令:。speedtest。py测试下载与上传的速度(结果以字节来表示),执行命令:。speedtest。pybytes仅需显示Ping延迟、下载速度和上传速度,执行命令:。speedtest。pysimple列出speedtest。net所有的服务器距离主机的物理距离,单位是千米(km),执行命令:。speedtest。pylist对指定的服务器进行测速(使用。speedtest。pylist命令获取服务器ID),执行命令:。speedtest。pyserver〔serverID〕 5G模式测试速率 在脚本所在目录下,执行如下命令,进行测试。 Target。speedtest。py 图5 由上图可知,下行速率为46。04Mbits,上行速率为33。01Mbits,实时性Ping为109。495ms。 备注:5G信号实测带宽与测试点信号覆盖强度有关,如上测试数据仅供参考。 执行如下命令,使用AT指令查询信号强度。由下图可见,当前模式为NR5GSA,信号强度值分别为84,85,85,信号强度越接近44,表示信号越强。 TargetmicrocomdevmhiDUN ATQENGservingcell 图6 图7 4G模式测试速率 将5G模块仅保留任意1根5G天线连接,即为4G模式,本次操作仅保留ANT0天线。在脚本所在目录下,执行如下命令进行测试。 Targetinsmodpciemhi。komhimbimenabled1 Target。quectelCM Target。speedtest。py 图8 图9 由上图可知,下行速率为20。13Mbits,上行速率为14。19Mbits,实时性Ping为139。855ms。 备注:4G信号实测带宽与测试点信号覆盖强度有关,如上测试数据仅供参考。 执行如下命令,使用AT指令查询信号强度。由下图可见,当前模式为LTE,信号强度值分别为71,75,74,信号强度越接近44,表示信号越强。 TargetmicrocomdevmhiDUN ATQENGservingcell 图10 图11 短信功能测试 测试命令:。rm500qsendsms 命令说明:为设备节点,以lsdevttyUSB命令查看结果为准,重启评估板后可能会变化。为发送短信目标手机号。为短信发送内容,短信内容字符之间不可有空格,否则会提示错误。 程序说明:设置短信发送模式,并发送短信内容。 进入评估板文件系统,在rm500qsendsms文件所在路径下执行如下命令测试短信功能是否正常。 Target。rm500qsendsmsdevttyUSB2191www。tronlong。com 图12 图13 语音通话功能测试 测试命令:。rm500qphonecall 命令说明:为设备节点,以lsdevttyUSB命令查看结果为准,重启评估板后可能会变化。为拨打目标手机号。 程序说明:测试语音通话功能。 进入评估板文件系统,在rm500qphonecall文件所在路径下执行如下命令测试语音通话功能是否正常。 Target。rm500qphonecalldevttyUSB2191 图14 图15 获取经纬度功能测试 测试命令:。rm500qgetlocation 命令说明:为设备节点,以lsdevttyUSB命令查看结果为准,重启评估板后可能会变化。为等待返回经纬度信息的时间(单位为秒)。 程序说明:通过GPS天线获取经纬度信息,并打印结果。 进入评估板文件系统,在rm500qgetlocation文件所在路径下执行如下命令测试GPS定位功能是否正常。 Target。rm500qgetlocationdevttyUSB21 图16 如下图,若出现经纬度信息获取失败、超时,请检查天线是否接好,并确保处于室外开阔场地进行测试。 图17 5G模块复位测试 评估板支持对5G模块进行单独复位功能。请执行如下命令,初始化对应GPIO。 Targetecho380sysclassgpioexport Targetechooutsysclassgpiogpio380direction Targetecho381sysclassgpioexport Targetechooutsysclassgpiogpio381direction 图18 执行如下命令,控制5G模块掉电。 Targetecho0sysclassgpiogpio381value 图19 执行如下命令,配置5G模块复位引脚处于低电平。 备注:在硬件设计上,当配置gpio380输出1时,对应复位引脚为低电平。 Targetecho1sysclassgpiogpio380value 图20 执行如下命令,根据5G模块上电时序要求,拉高复位引脚,再控制5G模块上电。 Targetecho0sysclassgpiogpio380value Targetusleep50000 Targetecho1sysclassgpiogpio381value 图21 图22 案例编译驱动编译 将案例driverpciesrc目录下的驱动源码QuectelLinuxPCIEMHIDriverV1。3。1。zip拷贝至Ubuntu工作目录下,执行如下命令进行解压。 HostunzipQuectelLinuxPCIEMHIDriverV1。3。1。zip 图23 执行如下命令,进入pciemhi目录,编译驱动源码。 Hostcdpciemhi HostexportPATHHOMEgccarm9。22019。12x8664aarch64nonelinuxgnubin:PATH HostmakeARCHarm64CROSSCOMPILEaarch64nonelinuxgnuKDIRhometronlongAM64xKernelLinux5。10。65 备注:hometronlongAM64xKernelLinux5。10。65为Linux内核源码路径,编译驱动前,需先完成内核编译。 图24 编译完成,在当前目录生成驱动程序pciemhi。ko。 图25 程序编译 将案例src目录下的程序源码拷贝至Ubuntu工作目录下,执行如下命令加载SDK环境并进行编译。 Hostsourcehometronlongtiprocessorsdklinuxrtam64xxevm08。01。00。39linuxdevkitenvironmentsetup HostmakeCROSSCOMPILEaarch64nonelinuxgnu 图26 编译完成后,在当前目录生成测试程序可执行文件。关键代码说明rm500qsendsms。c 打开并设置串口。 图27 设置文本模式。 图28 发送短信。 图29 rm500qphonecall。c 打开并初始化串口。 图30 发送语音通话命令。 图31 rm500qgetlocation。c 打开并设置串口。 图32 查询GPS功能是否开启。 图33 开启GPS功能。 图34 若GPS功能默认已开启,先关闭GPS以清除定位数据,再重启GPS。 图35 获取经纬度信息并打印。 图36