精华内容
下载资源
问答
  • 基于VHDL的cy7c68013的USB通信模块,使用slave fifo同步模式
  • 基于PDIUSBD12芯片的USB通信模块原理设计 USB是通用串行总线接口,具有速度快、即插即用、接口灵活、独立供电等显著优点。本文讨论USB接口开发技术,采用了Philips公司的PDIUSBD12作为USB接口芯片,进行了USB通信模块的...
  • 为了能够使这些通信模块能得到复用,打算重写整个通信模块,最终实现三者利用同一套体系即可实现完整的信息传输。 原理分析 从系统中分析,信息以通信帧的形式聚集、传递效果会更好,也符合对协议的定义。通信帧负责...

    在流式细胞仪项目中,先后利用 RS232/CAN/USB 等通信技术来实现信息传输。为了能够使这些通信模块能得到复用,打算重写整个通信模块,最终实现三者利用同一套体系即可实现完整的信息传输。

    原理分析

    从系统中分析,信息以通信帧的形式聚集、传递效果会更好,也符合对协议的定义。通信帧负责对整个信息的构建和拆解。基本原理就是将对应属性的字节输入、输出到对应的变量中,再根据所选择的通信方式形成特定的通信帧结果。因此,通信帧基类的设计应该包含所有属性功能,可以涵盖目前属性中的参数内容,未来若有增加,也只需增加对应的属性功能即可。子类继承于通信帧,用于生成符合传输协议的通信帧形式,或将通信帧形式拆解为基本字节形态。

    通信帧需要传输,这部分属于端口控制类,其能力是实现对数据从端口收发。一般来说,想要接收数据,需要新建一个线程,专门接收此类型的数据内容。想要端口打开,则需要端口配置。这部分需要由一个单独界面来实现,实际也就是端口属性配置。

    为了实现端口数据的收发验证,需要将接收到的和发送的数据实时展示。这部分内容需要根据协议内容来进行解析,完全可以放在通信帧中。因为只有通信帧是按照协议来组合的,因此有必要在这里进行解析。每解析完成就将结果发布。

    此外,可以考虑将已有的协议内容,封装成稳定的指令集。指令集包含特定含义,窗体调用时只需传入参数值即可。而关于功能一致时,则可以考虑在全部指令集中,根据特定参数如模块号,查找具体的指令内容。

    如此,一整套适用的通信模块即可完成。在协议不变时,增加功能,相当于在指令集中增加对应参数内容。协议改变时,则仅需要修改通信帧部分内容即可。此时的修改形式仅限于扩增、变更属性等,不支持减少属性。

    在这里插入图片描述

    具体实现过程

    按照上述示意图,首先设计实现底层抽象类:Frame、PortControl,再在此基础上,分别实现子类 SerialFrame\CanFrame\USBFrame 和 SerialPortControl\CanPortControl\USBPortControl。

    实现过程中,需要注意 PortControl 的基本功能之一是接收数据,因此必须要考虑线程问题,专门接收此类数据的线程需要实时运行,不断接收数据方可。因此,衍生出 CanReadThread\USBReadThread 等。

    代码不贴了,后续有需要再说。

    展开全文
  • 本文介绍的是DSP与蓝牙模块USB通信模块设计
  • 针对 CAN 总线现场数据采集时必须有 PC 机参与和 CAN 总线与 PC 机通讯速率低的问题, 提出了此 CAN- USB 通信模块设 计方案; 该方案基于 USB 主/ 从控制芯片 CH375A, 在单片机的控制下, 既可以实现 CAN 总线数据采集...
  • JZ864A微功率USB通信无线数传模块说明书PDF,JZ864A微功率USB通信无线数传模块说明书
  • NRF24L01(插针1NRF24L01(插针2NRF24L01(插针3NRF24L01(插针4NRF24L01(插针5NRF24L01(插针6NRF24L01(插针7NRF24L01(插针8NRF2
  • 今天有空,开贴讲讲,怎样配合ST 提供的库函数理解STM32F103 的USB模块,以及怎么调用这些库函数来实现基本的USB通信。题目很大,先只讲讲最简单的应用。 1 关于512字节的Packet Buffer 在STM32F103的USB模块中有一...

    今天有空,开贴讲讲,怎样配合ST 提供的库函数理解STM32F103 的USB模块,以及怎么调用这些库函数来实现基本的USB通信。题目很大,先只讲讲最简单的应用。

    1 关于512字节的Packet Buffer

    在STM32F103的USB模块中有一个RAM 区,称为Packet Buffer,共有512字节。
    在这里插入图片描述
    USB模块中有个Buffer Description Table,这个Table位于512字节的Packet Buffer中,可以在Packet Buffer 的任意位置。

    USB模块提供一个寄存器USB_BTABLE来设置Buffer Description Table在PacketBuffer 的偏移地址。

    在库函数中,Define 了这个偏移地址:
    usb_conf.h:#define BTABLE_ADDRESS (0x00)
    这意味着Buffer Description Table 位于Packet Buffer 的首地址。
    在这里插入图片描述
    在Buffer Description Table 中的,是所用到的端点的缓存区地址寄存器和缓存区长度寄存器。所有用到的端点的这两个寄存器都位于这个Table 中。

    如上所说,由于这个Table 位于Packet Buffer 的首地址。所以端点0 的发送缓冲区地址寄存器就位于Packet Buffer 的首地址,紧接的是端点0 发送缓冲区长度寄存器,接着的是端点0接收缓存区的地址寄存器,跟着是端点0 的接收缓存区的长度寄存器,等等等等,一直到最后一个端点8 的接收缓存区的长度寄存器。

    每个端点的一个方向有2 个寄存器,共8 个端点16 个方向,一共32 个寄存器,每个寄存器为4 个字节,所以这个Table 一共占有128 字节。

    在这里插入图片描述
    在端点0 发送缓存区的地址寄存器中的值,是端点0 发送缓存区在Packet Buffer 中的偏移地址。而端点0 接收缓存区的地址寄存器中的值,是端点0 接收缓存区在Packet Buffer 中的偏移地址。

    如前所说,Buffer Description Table 从理论上占有128 个字节。但对于具体的应用,不是每个应用都会用到8 个端点的16 个方向的。所以,对于那些没有用到的端点寄存器,我们可以不考虑为他们预留位置。

    在ST 提供的例程中,通常这么定义:
    #define BTABLE_ADDRESS (0x00)
    /* EP0 /
    /
    rx/tx buffer base address */
    #define ENDP0_RXADDR (0x18)
    #define ENDP0_TXADDR (0x58)
    这3 句定义,意味着:
    1, 端点0 的接收缓存区位于Packet Buffer 的0x18 地址。
    2, 端点0 的发送缓存区位于Packet Buffer 的0x58 地址。
    3, Buffer Description Table 位于Packet Buffer 的前24 字节。24 个字节意味着
    应用需要使用6 个寄存器,即3 个端点。
    4, 端点0 的接收缓存区长度为64 字节。

    在这里插入图片描述

    好了,关于这个Packet Buffer 讲解完毕。
    要做一个USB应用,第一步就是要根据应用合理的分配好这个Packet Buffer。

    2 使用STM32F102/103 USB函数库进行USB通信

    第一步:
    根据应用的需求,定义使用到的端点数量
    usb_conf.h
    #define EP_NUM (3)
    以上意味着应用需要使用到EP0,EP1 和EP2

    第二步:
    初始化每个使用到的端点

    usb_prop.c
    SetEPType(ENDP2, EP_INTERRUPT);
    定义端点2 为中断端点

    SetEPTxAddr(ENDP2, ENDP2_TXADDR);
    如果需要进行EP2 IN 通信,需要定义端点2 的发送缓存区的地址,也就是在Packet Buffer中的偏移地址

    SetEPRxAddr(ENDP2, ENDP2_RXADDR);
    如果需要进行EP2 OUT 通信,需要定义端点2 的接收缓存区在Packet Buffer 中的偏移地址

    SetEPRxStatus(ENDP2, EP_RX_NAK);
    设置端点2 的接收状态为NAK,设备将以NAK 来响应主机发起的所有OUT 通信。

    SetEPTxStatus(ENDP2, EP_TX_NAK);
    设置端点2 的发送状态为NAK,设备将以NAK 来响应主机发起的所有IN 通信。

    第三步:
    使能端点的通信对于IN 端点的使能:

    UserToPMABufferCopy(Send_Buffer, ENDP2_TXADDR, 8);
    拷贝用户数据到端点2 的发送缓存区

    SetEPTxCount(ENDP2, 8);
    设置端点2 发送数据长度

    SetEPTxValid(ENDP2);
    设置端点2 的发送状态为VALID

    以上三句可以在应用代码的任意位置调用,一旦调用,即使能了一次USB IN通信。

    USB设备将在收到主机的IN TOKEN 后,自动发送缓存区中的数据到主机,并在发送完毕后产生EP2_IN_Callback 中断,同时将端点2 的发送状态自动改为NAK。
    如果需要再次进行数据传送,需要再次调用以上的三句函数。对于OUT 端点的使能:

    SetEPRxValid(ENDP2);
    设置端点2 的接收状态为VALID。
    以上的这句函数即使能了端点2 的OUT 通信,可以在任意位置调用。

    一旦调用,即使能了一次OUT 通信。USB设备将以ACK来响应主机随后的OUT 通信,并在接收数据完毕后,产生EP2_OUT_Callback 中断,同时自动将端点的接收状态改为NAK。

    在EP2_OUT_Callback 中断函数中调用
    USB_SIL_Read(EP2_OUT, Receive_Buffer);

    可以将端点2 接收缓存区中收到的数据拷贝到用户数据区。

    详细资料下载见一下链接:

    展开全文
  • 模块实物图片:模块接口描述模块功能:①USB转串口功能,使用CH340G芯片,可以方便对接电脑和嵌入式Linux开发板。②对外引出CH340G的TTL串口,可以...④板载433MHz无线通信模块,模块与单片机之间通过SPI接口进行通...

    模块实物图片:

    e649af914465947c1de22493fd6cfe97.png

    模块接口描述

    f54bebb99afd240a220a83503d533a52.png

    模块功能:

    ①USB转串口功能,使用CH340G芯片,可以方便对接电脑和嵌入式Linux开发板。

    ②对外引出CH340G的TTL串口,可以用作一个普通的USB转串口模块(需把R2和R4电阻去掉,用来断开CH340G芯片和MCU之间的连接)。

    ③对外引出单片机的UART2串口,TTL电平,方便用户扩展。

    ④板载433MHz无线通信模块,模块与单片机之间通过SPI接口进行通信,用户可编程。

    ⑤对外提供SPI接口,可以对接市面上大部分SPI接口的2.4GHz通信模块,用户可编程。

    ⑥模块的硬件设计和源代码已开源。

    ⑦模块尺寸(不含USB接口):70mm * 25mm

    硬件对接

    USB转无线通信模块可以对接以下嵌入式Linux开发板:

    966358946b03c516024742805b1cb39f.png

    USB转无线通信模块可以兼容以下2.4GHz模块:

    d17c16557265a987cceb7621d4ace1a2.png5635125dc1900cc350f24351ce457f67.png6b169440db44ca98930e557177cced88.png

    附件内容截图:

    27e5078f6df33a84b80b74930c66a2b6.pngb080dcd05f097ace405632aff5c96e66.gif

    加入群聊

    传感器技术交流2群:954070515

    射频/无线交流2群:725064756

    电机控制研发交流2群:619795552

    电源开发交流2群:457910972

    EDA/PCB设计交流2群:743876836

    物联网技术交流2群:992318230

    汽车电子交流1群:238034110

    嵌入式交流1群:852018713

    电路城官方交流群,期待你的加入。

    162d8e10b6a78e2f2b912451cddc596c.gif

    点击“

    展开全文
  •  USB通信固件设计的目标为使PDIUSBD12在USB上达到最大的传输速率。  1.总体规划  CPU忙于处理许多设备控制和数据处理等任务。通信固件设计成完全的中断驱动方式,当CPU处理前台任务 时,USB的传输可在后台进行...
  • USB默认松与果HID通信协议。 、UART:切换成博雅串口通信模式 USB:切换成松与果HID通信协议: UART:切换成二代证SAM模块通信模式:
  • 模块选用USB接口芯片为Philips公司生产的PDIUSBD 12芯片,由于设计的需要,下面对该芯片进行简单 的描述。  PDIUSBD 12是一款性价比很高的USB器件,它通常用作微控制器系统中实现与微控制器进行通信的高速通 用...
  • 手头有个用libusb-win32驱动的USB设备,idVendor= 0x5345, idProduct= 0x1234,就来测试下pyusb模块的应用,pyusb让usb编程变得简单和方便,支持libusb 0.1.x(libusb-win32采用此库), libusb 1.x, and OpenUSB,主要...

    手头有个用libusb-win32驱动的USB设备,idVendor= 0x5345, idProduct= 0x1234,就来测试下pyusb模块的应用,pyusb让usb编程变得简单和方便,支持libusb 0.1.x(libusb-win32采用此库), libusb 1.x, and OpenUSB,主要测试发送和接收数据,usb设备信息如下:

    代码如下:

    import usb.core

    import usb.util

    import sys

    dev = usb.core.find(idVendor= 0x5345, idProduct= 0x1234)

    cfg = dev.get_active_configuration()

    intf = cfg[(0,0)]

    ep = usb.util.find_descriptor(

    intf,

    # match the first OUT endpoint

    custom_match = \

    lambda e: \

    usb.util.endpoint_direction(e.bEndpointAddress) == \

    usb.util.ENDPOINT_OUT

    )

    print 'The length of data(write USB) is:', ep.write('WANTFORGETTXT')

    ep_read = usb.util.find_descriptor(

    intf,

    # match the first IN endpoint

    custom_match = \

    lambda e: \

    usb.util.endpoint_direction(e.bEndpointAddress) == \

    usb.util.ENDPOINT_IN

    )

    data_len = ep_read.read(4)

    print 'Get USB data:',data_len

    len = (data_len[3] << 24) + (data_len[2] << 16) + (data_len[1] << 8) + data_len[0]

    print 'data len is:',len

    dev.reset() 结果如下:

    展开全文
  • 模块性能及特点: (1) 2.4GHz 全球开放ISM 频段免许可证使用 (2) 最高工作速率2Mbps,高效GFSK调制,抗干扰能力强,特别适合工业控制场合 (3) 125 频道,满足多点通信和跳频通信需要 (4) 内置硬件CRC 检错和点对...
  • 基于USB通信的SLED自动控温系统 在SLED的温度控制系统中,...系统以CY7C68013为USB通信模块;利用单片机片内的12bit的A/D转换器采集数据;PC端软件以VC++6.0为开发环境完成数据的输出。激光器温度控制精度在±0.02℃以内。
  • 模块实物图片:模块接口描述模块功能:①USB转串口功能,使用CH340G芯片,可以方便对接电脑和嵌入式Linux开发板。②对外引出CH340G的TTL串口,可以...④板载433MHz无线通信模块,模块与单片机之间通过SPI接口进行通...
  • USB(Universal Serial Bus),即通用串行总线,是近年来发展起来的一种新型接口技术,它具有许多其他总线无法比拟的优点。  · 在USB方式下,所有的外设都... 该模块利用芯片PDIUSBDl2与PlC16F877接口组成USB通信
  • 全世界最全的2.4G开发资料,教你如何开发使用2.4G无线技术
  • 以AVR单片机ATmega8和USB接口器件PDIUSBD12为核心,基于标准的USB1.1协议,设计一种通用USB接口模块,以满足嵌入式系统中对USB接口的需求。...该模块可为各种嵌入式系统增加USB接口,实现与USB主机系统通信
  • 1 引 言 USB ,是英文Universal Serial BUS(通用串行总线)的缩写,而其中文简称为“通串线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热...
  • STM32 USB模块讲解

    2018-06-21 13:42:12
    STM32 USB模块讲解,怎样配合 ST提供的库函数理解 STM32F102/103的USB模块,以及怎么调用这些库函数来实现基本的USB通信,供学习STM32 USB的朋友参考。
  • 现在我们设计开发的USB模块就可以轻松解决以上问题。  1、系统硬件设计  1.1 CH375概述  CH375(见图1)是USB总线的HOST主机及DEVICE设备双用接口芯片,单片机可以通过CH375读写U盘中的数据,利用该芯片可在不...
  • 4、USB调试模块

    2020-12-06 20:14:44
    USB通信中真正的收发数据都是在USB中断中进行的,所以为了确认USB不会被其他中断打断,将USB的抢占优先级设定为0。 先说一下实现的大概思路吧。 只是发送(MCU -> PC)的话,用到了一个消息队列,一个线程。 1、...
  • 随着物流网的快速发展,万物互联的时代正在来临,越来越多的场景都需要连网,在很多场景,比如室外,车载等,都需要接入网络,但这些场景都不方便接入网线,这时候就需要选用无线通信方式,采用通信模块,或者USB ...
  • USB转TTL模块 PYB VCC VCC GND GND RX X1(UART4,TX) TX X2(UART4,RX) 将PYB的USB数据线和电脑相连,方便调试。 将USB转TTL的USB端与树莓派相连,进行上下位机通信。 树莓派端 安装serial库 pip ...
  • Stm32 USB通信源代码

    2014-10-17 21:29:38
    采用ST公司官方库开发,Stm32单片机Usb模块,能与USB HID设备进行发送和接收通信
  • SKYLAB面向物联网市场中的智慧物流,智能交通,智慧安防,智慧能源...USB接口WiFi模块,AP/Router无线路由WiFi模块及远距离图传WiFi模块,高清视频传输WiFi模块及BLE/4.2/5.0低功耗蓝牙模块等嵌入式无线WiFi模块产品。
  • USB是一个使计算机周边设备连接标准化、单一化的接口,其规格是由Intel(英特尔)、NEC、Compaq、DEC、IBM(商业机器公司)、Microsoft(微软)、Northern Telecom联系制定的。 USB ,是英文Universal Serial BUS...
  • python的USB通信

    千次阅读 2019-09-15 00:55:43
    手头有个用libusb-win32驱动的USB设备,idVendor= 0x5345, idProduct= 0x1234,就来测试下pyusb模块的应用,pyusb让usb编程变得简单和方便,支持libusb 0.1.x(libusb-win32采用此库), libusb 1.x, an...
  • FPGA USB通信实验

    2021-03-19 17:36:33
    文章目录 FT232H芯片 一、芯片手册信号定义 二、信号介绍 二、时序介绍 USB内部刨析 总结 ...因为USB协议较为复杂,所以...我使用的是FIFO的读写模块就看的fifo的信号定义 : 二、信号介绍 input ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,266
精华内容 506
关键字:

usb通信模块