USB读数装置及上位机的设计

发布者:Ziran520最新更新时间:2013-07-13 关键字:USB  读数装置  上位机 手机看文章 扫描二维码
随时随地手机看文章

数据采集在信息处理系统中占有不可替代的地位,它是以传感器、信号测量与处理、微型计算机等技术为基础而形成的,主要研究信息数据的采集、存储、处理以及控制等作业,具有很强的实用性。数据采集技术已经在雷达、通信、水声、遥感、语音处理、智能仪器、工业自动化以及生物医学工程等众多领域得到广泛的应用。数据采集器一般包括数据采集部分和数据处理传输部分。前者包括信号的滤波、放大、采样、保持、转换、存储等部分,后者包括数据读取、传输及微机接口部分。

  1 系统结构及硬件电路设计

  1.1 系统的结构框图及工作原理

  本系统主要由四个模块构成:FLASH存储器模块、FPGA控制模块、USB接口控制模块及电源模块。如图1所示。

  

  其工作原理是:FLASH模块存储数据,作为记录器的数据源;FPGA模块作为读数装置的控制器,读取FLASH的数据并传输给USB控制接口模块;USB控制芯片接收来自上位机的命令,并与FPGA通信来执行用户需要的操作;电源模块为各模块提供稳定电源。

  1.2 电源管理模块

  本系统中芯片的工作电压有5 V、3.3 V、2.5 V。由于计算机的USB接口可以提供5 V电源,最大为500 mA的电流,对于此系统已足够,所以本系统的5 V电源直接由USB供电,并利用5 V电源经过电压调节器AMS1117调整出3.3 V和2.5 V电源。

  1.3 FPGA模块

  本设计的FPGA采用XILINX公司的Spartan-2系列的XC2S50,包括FPCA配置电路和FPGA时钟电路及接口配置。

  FPGA的配置方式灵活多样,本设计根据芯片是否能够自己主动加载配置数据以及比特流的位宽,利用主串模式进行配置FPCA,如图2所示。在FPGA的输出端口上为每个端口连接了一个电阻,起到耦合限流的作用,使外部接口与FPGA进行匹配,防止电流过大等不良影响而烧坏芯片。

  

  1.4 USB接口模块

  一般USB的接口芯片种类大致可分为:主控制器、根集线器、接口芯片以及具有USB接口的微控制器。本设计利用的是EZ-USB FX2LP系列的CY7C68013A-128PIN芯片。

  本设计采用0XC0的EEPROM启动方式。即在EEPROM中首字节写入0XC0,并将VID、PID、DID和配置字节写入EEPROM。芯片上电后,将这些数据复制到片内存储器,并将其发送给主机,由主机根据ID数据选择合适的固件程序下载到USB芯片内。本设计使用具有I2C总线接口的串行EEPROM芯片AT24C64。AT24C64具有8192 x 8位容量,可重复擦除100万次。

  1.5 FLASH存储器模块

  FLASH存储器存储着记录器的数据,本设计的目的就是从FLASH中读取数据并传入计算机进行保存。本设计采用SAMSUNG公司的K9F5608UO D NAND FLASH存储器。其特点如下:存储单元阵列为(32M+1024k)bit×8bit;总共64k的块,每块含32页,每页为512+16字节;以页为单位编程(200μs典型编程时间),以块为单位擦除(2ms典型擦除时间);命令、地址、数据复用端口;提供硬件数据保护功能。

  本设计的硬件连接电路如图3所示。其中MAX1658为K9F5608UOD提供电源,排阻起到耦合限流作用。

2 软件程序设计

  2.1 FPGA各模块程序设计

  本设计的FPGA程序采用Xilinx公司的ISE软件。它提供给用户一个从设计输入到综合、布线、仿真、下载的全套解决方案,并可以很方便的与其他EDA工具接口。

  本设计中原理图输入采用其中的第三方软件ECS,HDL综合使用XST,测试台输入是图形化的HDL Bencher,仿真使用Modelsim SE。简要的流程如下:

  建立工程项目;综合;仿真;定义输入输出管脚约束;布局布线;下载配置。

  FLASH模块程序设计中FLASH控制模块对FLASH存储器K9F5608UOD执行各种操作。K9F5608UOD芯片提供了8种命令,即8种操作:①读1操作;②读2操作;③读ID操作;④复位操作;⑤页编程操作;⑥复制回读操作;⑦块擦除操作;⑧读状态操作。

  2.2 CY7C68013固件程序开发

  USB功能设备的硬件功能主要由硬件上的微处理器来实现,因此需要为USB设备编写固件程序。本设计的USB固件程序开发中,使用Keil Software公司推出的51系列兼容单片机软件开发系统Keil μVision3。

  图4所示为68013A的固件程序流程图,下面介绍如何编程。本设计采用固件框架中的Dscr.a51文件,修改设备描述符中的ID码和字符串描述符,并修改相应的端口配置,其余保持默认状态。主机发送8字节的SETUPDAT数据包后,68013A将其进行解码存入SETUPDAT寄存器中。

  SETUPDAT[1]中存储着USB发出的请求码。在固件程序中使用switch-case语句对不同的请求码进行分析,分别进行相应的响应。

  对于标准USB请求,在CY3684开发包内已有完善的函数框架,本设计在保持其默认状态下,修改其中的处理函数,使其符合本设计的要求。在Fw.c文件中,最主要的两个函数为Main( )函数和SetupCommand( ),其中Main( )函数控制整个68013A的程序流程,SetupCommmad( )则对不同的设备请求进行分析,并调用响应的执行程序。

  

e.JPG

  在本设计需要使用自定义请求来介绍上位机的FLASH操作命令,因此需要在USB固件程序中声明自定义请求。自定义请求和标准USB请求放在一起,但不能和已有的请求号相冲突。同时还需要编写自定义请求对应的处理函数。程序框架如下:

  

  此请求包处理放在SetupCommand(vdd)函数内。

  对于对应的处理函数则在Pefiph.c文件中进行定义。所有的USB设备请求响应函数,中断函数都在此文件中定义。同时设备初始化函数TD_Init( ),用户功能函数TD_Poll( ),挂起函数TD_Suspend( )和USB复位函数( )也都在此文件中定义。

  本设计采用在上位机发送自定义请求A1,并在自定义请求中包含对FLASH操作的命令字,68013A在分析得到自定义请求A1后,在自定义请求A1中把命令字保存入一个全局变量,在用户功能函数TD_Poll( )中执行对命令字的分析并调用相应的FLASH操作函数。对于传输到上位机上的数据通过自定义请求A2、A3来执行。

  3 结论

  本设计根据USB总线技术、FPGA技术及面向对象程序设计方法,对电路的组成原理、接口电路设计、系统控制信号的设计及USB上位机程序的设计做出详细的说明,设计出基本符合课题要求的USB读数装置及上位机程序,基本完成了工作要求。当然本设计在USB接口的速度方面还需考虑更完善的方案。希望在以后的学习工作中能够改进。

关键字:USB  读数装置  上位机 引用地址:USB读数装置及上位机的设计

上一篇:Xilinx投片首个ASIC级可编程架构UltraScale之行业首款20nm器件
下一篇:莱迪思和FUTURE ELECTRONICS签署全球代理协议

推荐阅读最新更新时间:2024-05-02 22:43

USB自定义HID设备实现-LPC1768
首先在之前鼠标的基础上修改设备描述符 #include usbdesc.h //usb标准设备描述符 const U8 USB_DeviceDescriptor = { USB_DEVICE_DESC_SIZE, //bLength字段。设备描述符的长度为18(0x12)字节 USB_DEVICE_DESCRIPTOR_TYPE, //bDescriptorType字段。设备描述符的编号为0x01 WBVAL(0x0110), //bcdUSB字段。这里设置版本为USB1.1,即0x0110。 0x00, //bDeviceClass字
[单片机]
将应用从串行接口移植到USB接口的简便方法
由于可以获得很多支持USB的微控制器和接口器件,所以对嵌入式应用设计工程师而言,没有COM端口并不会带来障碍。选择正确的工具和软件解决方案提供了一条转移到USB的捷径。 硬件补丁程序 对那些需要为基于串行端口的老项目提出快速解决方案的设计工程师来说,最先有吸引力的策略是采用一种补丁系统。 这可通过在嵌入式控制器串行接口与PC机USB连接器之间增加一个定制的USB-UART转换器来实现(图1)。 这些器件通常配有支持各种操作系统的定制驱动程序,完全可以仿真一个标准的串行端口。 图1:与采用大部分USB-UART接口器件相比,兼容USB接口的MCU单芯片解决方案具有更高的性能和更低的成本。 该方法意味着需要重新设计嵌
[单片机]
将应用从串行接口移植到<font color='red'>USB</font>接口的简便方法
基于STM32F407ZGT6的USB虚拟串口代码
#include sys.h #include delay.h #include usart.h #include led.h #include lcd.h #include key.h #include malloc.h #include w25qxx.h #include sdio_sdcard.h #include usbd_usr.h #include usbd_desc.h #include usb_conf.h #include usbd_cdc_core.h #include usbd_cdc_vcp.h USB_OTG_CORE_HANDLE USB_OTG_dev; extern vu8 b
[单片机]
微软研究院新技术:电脑睡眠时USB网络依然工作
  微软研究院正在研发一种高性能的网络 处理器 技术,它可以让这台 USB 电脑在 USB 插座上以低功耗状态或者PC睡眠状态下依然可用.   目前这种设备已经能处理网络流量而不需要CPU 、硬盘、显卡和IO总线的帮助, USB 网络适配器由一个200MHz的XScale 处理器 和一个芯片组,64M内存以及2G SD卡组成,它可以轻易完成下载并写入SD的工作(没错,下BT只需要把电脑置于睡眠就OK),并且可以执行更复杂一些的任务,帮助您在休息的时候工作节能两不误.
[嵌入式]
手机USB充电和过压保护设计方案
  本文将重点结合手机侧的要求来分析USB充电和过压保护设计策略,以及相应的解决方案。      图1 YD/T 1591-2006 标准所涵盖手机侧和充电器侧两大部分   手机充电要求及不同充电电路解决方案比较   通常所称的手机充电器实际上是交流/直流(AC-DC) 电源适配器 ,真正的充电电路乃是在手机内部。根据YD/T 1591标准要求,手机充电接口直流输入电压也就是充电器的输出电压为5 V±5%,即范围为4.75 V~5.25 V;标准充电器的充电电流为300 mA至1,800 mA,非标准充电器(如笔记本电脑的USB端口等)的最大充电电流为500 mA。无论充电器的输出功率如何,手持机侧充电控制电路应能根据自
[嵌入式]
PIC单片机的USB接口的应用 一个简单的USB CDC 测试程序
单片机的USB接口,通常用法, 1)HID 是Human Interface Device的缩写,由其名称可以了解HID设备是直接与人交互的设备,例如键盘、鼠标与游戏杆等。不过HID设备并不一定要有人机接口,只要符合HID类别规范的设备都是HID设备。(参考百度 https://baike.baidu.com/item/USB-HID ) 2)CDC 虚拟串口,可与PC机直接联机通讯,如同RS232。 3)USB MSC (Mass Storageclass) MSC是一种计算机和 移动设备 之间的传输协议,它允许一个通用串行总线(USB)设备来访问主机的计算设备,使两者之间进行文件传输。设备包括: 移动硬盘 ,移动光驱,U盘,S
[单片机]
PIC单片机的<font color='red'>USB</font>接口的应用 一个简单的<font color='red'>USB</font> CDC 测试程序
带全速USB接口的PICl8F4550应用设计
  引 言   随着USB(Universal Scrial Bus)技术的发展,特别是高速(480 Mbps)USB2.0协议的出现,几乎所有的PC外设都可以移植到USB上,所以USB的PC外设的发展空间是巨大的,甚至在不久的将来,USB将完全取代异步串口和打印机并口,PC机厂商将不会再生产机箱上带异步串口和打印机并口的PC机了,机箱上也不会再有那么多的连线了。   USB是一种快速的、双向同步传输的、廉价并可以进行热插拔的串行接口。利用USB总线技术,开发适用于科学研究和工业生产的各种仪器仪表设备,借以取代传统计算机测控系统中采用串行RS232或并行接几的仪器仪表设备,使计算机测控系统更加高效实时,方便灵活。   利
[单片机]
带全速<font color='red'>USB</font>接口的PICl8F4550应用设计
高速USB数据采集系统的设计
   在图像处理、瞬态信号测量等一些高速、高精度的应用中,需要进行高速数据采集。USB 2.0接口以其高速率等优点渐有取代传统ISA及PCI数据总线的趋势,热插拔特性也使其成为各种PC外设的首选接口。EZ-USB FX2是Cypress公司推出的集成USB 2.0的微处理器,它集成了USB 2.0收发器、SIE(串行接口引擎)、增强的8051微控制器和可编程的外围接口。本文将介绍基于EZ-USB FX2系列CY7C68013芯片的高速数据采集系统的设计,该系统具有限幅保护功能,固件和驱动程序的编写简便,能够完成对数据的高速采集和传送。 数据采集系统方案设计   数据采集系统的框图如图1所示,硬件电路如图2所示。其中,AD167
[应用]
小广播
热门活动
换一批
更多
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved