关 闭

新闻中心

EEPW首页>工控自动化>设计应用> 基于USB的便携式硬度计数据通信的实现方法

基于USB的便携式硬度计数据通信的实现方法

作者: 时间:2011-02-17 来源:网络 收藏

系统结构如图1所示。

本文引用地址://m.amcfsurvey.com/article/202479.htm

c.JPG
本方案选用微处理器ATmega128作为系统的控制器。
ATmega128为Atmel公司推出的8位AVR微处理器,具有很高的信价比,工作时最高速度可以达到16MIPS,128 KB的FLASH、4 KB的E2PROM,足够满足方案中数据暂存的需要,另外,ATmega128具有53个可编程输入/输出口,可扩展64 KB的外部存储器,便于实现多点硬度值数据采集的硬件扩展。
在该系统中,MCU ATmega128承担着数据采集和的双重任务,主要完成采集多路数字量输入、配合PC机控制通信电路完成硬件检测、枚举连接及数据的双向传输;控制存储电路完成数据的存取等控制功能。
本方案选用的USB芯片PDIUSBD12是Philips公司成熟且价格低廉的产品。片内集成了高性能USB接口器件、FIFO存储器、收发器以及电压调整器等,支持USB 2.O的全速模式。
为保证USB数据传输的效率,本方案采用离线测量,定量传送的实现方式。按工艺流程将一组产品硬度测量值临时存入MCU的存储器中,再将MCU存储器中的临时数据打包通过USB发给PC机并存入主机数据库,主机应用程序需要时对数据进行处理。

2 软件系统实现
本方案要解决以下三个方面的工作:一是在MCU上设计USB固件程序;二是编写上位机的USB驱动程序;三是实现上位机数据处理应用程序。
2.1 USB固件程序
固件设计主要完成设备枚举、主机与设备的数据交换、设备端的数据处理和控制等工作,固件程序设计成前后台模式,把设备端数据处理和控制作为MCU的前台任务,枚举及枚举成功之后的USB数据交换放在后台进行。实现设备与主机以最大的传输速率通信。
设计时将USB端口1和端口2定义为普通输入/输出类型,对应于PDIUSBD12的模式0。控制端口0完成响应USB标准请求的功能,输入端口用于把数据采集电路采集并打包的硬度值数据送给USB主机,输出端口接收USB主机发送的包。
PDIUSBD12从USB收到一个数据包,就对MCU产生一个中断请求,MCU立即响应中断,中断服务子程序用来处理由PDIUSBD12引发的中断,它将数据从PDIUSBD12的FIFO中取回到MCU存储器中。各端点中断处理程序如下:
d.JPG
在各端点的中断处理程序中,MCU主要是通过对PDIUSBD12端点缓冲区写入或读取数据包来完成处理过程的,其流程如图2和图3所示。

e.JPG



评论


相关推荐

技术专区

关闭