网站首页  词典首页

请输入您要查询的论文:

 

标题 采用USB OTG实现手机和无线FM监测模块的通信
范文

    何晓东 徐树良

    摘要:现有一个无线调频信号监测功能模块,用于测量FM信号的场强。本文设计一个方案,手机通过USB线连接该模块,编写手机APP实现通过手机对该模块的进行参数设置、读取场强等测量数据等功能。

    关键词:USB通信;USB OTG

    中图分类号:TP311文献标识码:A

    文章编号:1009-3044(2020)22-0052-02

    开放科学(资源服务)标识码(OSID):

    无线调频信号监测模块(以下简称监测模块)属于无线FM信号监测系统的前端采集部分,无线FM信号监测系统目的是把室外实时监测的FM信号数据通过无线公网发送到远端的数据库保存。设计使用手机USB接口通过USB线连接监测模块,通过开发手机APP用于设置监测模块的监测频率等工作参数、启动/停止监测功能、接收监测数据并显示同时发送到远程数据库。

    1 USB OTG简介

    USB(通用串行总线)是一个串行通信标准,广泛用于手机、PC等设备。具有传输速度快、热插拔等特点。一个日常的例子:手机通过USB线连接PC机,把手机拍摄的照片等文件传输到PC机保存。USB接口有5根线,分别是电源正、电源负、数据正、数据负、模式。USB通信模式分为USB HOST和USBOTG。

    Host模式(主机模式),指在USB通信中PC为USB主机,其他的通信方为USB设备。USB主机控制数据的传输,USB設备只能同USB主机进行通信。例如:手机同PC的连接,PC是USB主机,手机是USB设备,由主机(PC)控制两者间的通信。

    OTG模式(无主机模式),指在USB通信中没有USB主机(PC),通过模式线设置将其中的某设备设置为主设备,由主设备管理通信,从而解决没有主机(PC)的情况下USB设备间的通信问题。例如:手机通过USB接口连接U盘。

    在OTG模式中,若模式线悬空,则该设备被设置为USB设备。若模式线接地时,该设备被设置为主设备。手机USB接口具备OTG功能,只是通常的USB连接线只用4根线,手机端模式线未接(手机端USB接口芯片模式脚悬空),手机被设置为从设备,当用这种只有4根线USB连接线连接手机和PC机时,PC为主设备。

    本方案采用USG OTC线(5线USB连接线),将其中的模式线接地(使手机端USB接口芯片模式脚接地),就能设定手机为主设备,同时监测模块设置为从设备,开发手机APP来使手机同监测模块间的进行通信,发送命令给监测模块和接收监测模块发送的监测数据。

    2 监测模块用单片机

    监测模块的主控器采用具有USB OTG功能的单片机,型号是STM32F107RC,属于ST公司ARM32位CORTEX-M3芯片,集成USB2.0 0TG接口,主频74兆,RAM 64K,FLASH 256K.其中PA12、PA13分别是USB_OTG_FS_DP和USB_OTG_FS_DM脚,需软件配置为USB DEVICE模式。

    3 监测模块USB通信相关程序设计

    主要是编写USBD_CustomHID_fops_FS中相关函数实现,主要是USTOM_HID_Recv_FS和USBD_CUSTOM—HID_SendRe-port_FS函数,分别是USB消息接收函数和发送函数。

    3.1 接收函数

    该函数为接收手机通过USB发送的信息,函数框架为:

    static int8_t CUSTOM_HID_Recv_FS(uint8_t*Buf, uint32_t*Len)

    {

    //端点2接收中断清零

    EP2_INT_Comein=0;

    //复制接收的信息到用户定义的存储区(在主程序中处理接收的信息)

    CopyStr(Buf,Rx_ORDER_Buffer,*Len);

    //修改接收标识为1,表示接收到主机信息

    order_stat=l;

    //返回结果

    return (USBD_OK);

    )

    3.2 发送函数

    该函数实现通过USB向手机发送信息

    static int8_t USBD_CUSTOM_HID_SendReport_FS(uint8_t*report, uint16_t len,uint8_t ep_addr)

    {

    //直接调用底层函数发送

    return USBD_CUSTOM___ HID—SendReport(&hUsbDeviceFS,report, len,ep_addr);

    }

    3.3 主程序结构

    主程序循环调用dispatch函数,在dispatch函数中检查信息接收标识,处理手机发送的命令,并把结果发送回手机。Dis-patch函数框架如下:

    void Dispatch(void)

    {//

    ifTorder_staty/usbin节点收到信号标识

    {

    order_stat= 0;//清除接收标识

    USB_HandOrder20;//处理接收到的命令(略)

    )

    if(UpdateMonitory/是否需要新的监测数据

    {

    UpdateMonitor=0;

    uint16_t length=2;//准备数据

    UsbUpLoardDataBuffer[0]_ (uint8_t) (hostcommand. comman-did);//命令ID

    UsbUpLoardDataBuffer[l] =seqtag++;length+=ConvertToBytes(hostcommand. freql, &(UsbUpLoardDataBuffer[2]);,/填充监测频率

    length+=FiIIES(&(UsbUpLoardDataBuffer[6]》;//填充监测的信号场强

    length+=FiIISN (&(UsbUpLoardD ataBuffer[7]);//填充监测的信号SN

    length=8;//设置数据长度

    //发送数据到主设备USBD_CustomHID_fops_FS. SentData(UsbUpLoardDataBuffer,length,CUSTOM_HID_EPIN I_ADDR);

    】

    )

    4 手机USB通信相关程序设计

    接收监测模塊发送的数据线程框架:

    class usbRecvMessagThreadextends Thread{

    UsbEndpointepln;

    UsbDeviceConnectionusbconnection;private Handler messagHandler;//

    public usbRecvMessagThread(UsbDeviceConnection connec-tion, UsbEndpointepln, Handler msgHandler){

    this.connection= connection;this.epln= epln;

    this.messagHandler= msgHandler;

    )

    public void run0{

    byte[] RecvBuffer= new byte[64];,/创建缓冲区,

    intlength= RecvBuff'er.length;

    inttimeout= 6000;

    while (!Thread.interrupted0){

    intrecvcount = connection. bulkTransfer(epln, RecvBuffer,length, timeout);//接收数据

    if (recvcount<0){//没有接收到数据,则继续循环

    continue;

    )

    Message message= new Message0;//创建新消息

    message.what= Ox2678;

    message.obj= RecvBuffer;

    messageHandler. sendMessage(message);//发送接收的消息(在主程序处理)

    )

    】

    )

    5 结束语

    通过对STM32F107数据手册的研读和参考相关USB OTG的资料和例程,结合监测需求,实现了手机同监测模块的通信,经测试,达到了预期的功能。

    参考文献:

    [1]周立功.等.USB2.0与OTG规范及开发指南[M].北京:北京航空航天大学出版社,2004.

    [2]王翠萍.Android Studio应用开发实战详解[M].北京:人民邮电出版社。2017.

    【通联编辑:闻翔军】

    基金项目:安徽省教育厅自然科学重点项目“无线广播信号覆盖监测系统开发”(编号KJ2016A113)

    作者简介:何晓东(1968-),男,安徽长丰人,副教授,研究方向为计算机应用技术;徐树良(1986-),男,安徽休宁人,工程硕士,研究方向为计算机应用技术。

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/10 20:13:19