基于USB的数据采集卡设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于
USB 的数据采集卡设计
刘铁
(北京经纬纺机新技术有限公司100176)
摘要本文介绍了PIC 单片机PIC18F4580控制PDIUSBD12,实现USB 主机的硬件设计和底
层驱动程序的编写。通过PC 机上的软件完成对监控设备的脉冲信号频率、CAN 通讯数据监控。关键词U SB
PIC18F4580PDIUSBD12
数据采集卡
1引言
随着工业技术的发展和现场监控要求的提高,
许多应用场合需要对现场的数字、模拟信号以及通讯数据进行实时监控和操作。目前常用的监控手段一般采用基于PCI 总线的板卡或基于RS232、RS485通讯总线,PCI 总线虽然传输速度快,但要占用PC 机扩展槽地址或中断资源,且现场插拔不方便。RS232、RS485总线虽然插拔比较方便,但传输速度有限,而USB 接口很好的解决了上述问题,它是PC 机的基本配置,即插即用,并且具有较高的传输速度,是实现数据监控比较理想的一种方式。
2
硬件实现
图1系统硬件示意图
本硬件系统包括内嵌CAN 总线控制器的Mi crochip 公司PIC18F4580单片机,USB 接口芯片采用的DIUSBD ,N 通讯收发器采用M 55,外部数字脉冲信号直接进入单片机捕获单元。供电采用U SB 系统电源,由于USB 控制芯
片即可以采用5伏供电也可以采用3.3伏供电,因此单片机和USB 控制器数据线和控制线可以直接连接,不需要进行电平转换或缓冲。硬件系统图如图1所示。
2.1PIC18F4580单片机特点
PIC18F4580是美国Microchip 公司生产的内嵌增强性CAN 控制器的8位处理器,内部包含了32K Flash Rom,256个字节的EEOROM,1536个字节SRAM,11路10位A D 输入通道,2路捕获和比较单元,1路EUSRT 和MSSP 模块,灵活的时钟晶振结构和高达40M 时钟频率等十分丰富的外设模块来满足不同用户使用需求。
2.2PDIUSBD12芯片特点
PDIU SBD 12是PH ILIPS 公司生产的兼容USB1.1协议带有并行总线和局部DMA 传输能力的全速USB 接口器件。片内集成了高性能USB 接口器件,SIE,FIFO 存储器,收发器以及电压调整器等,可与任何外部微控制器微处理器实现高速并行接口(2MB S)。PDIU SBD13可理想地用于数据监控设备当中。
3软件设计
软件设计主要包括U SB 设备驱动程序、用户应
用程序和USB 固件程序设三部分,其中USB 设备驱动程序采用DriverWorks 为开发工具,用户应用程序在VC++6.0平台上编写,设备固件程序的设计是本文研究重点。固件程序设计成中断驱动的方式(如图2所示),单片机响应PDIUSBD12外部中断并调用中断服务程序,通过数据总线以及一些控制信号的时序配合从DIUSBD 内取出数据,并置位相应的事件标志,通知主循环程序进行处理。
11
纺织机械2010年第4期研究与应用Philips P 12C A CP21P 12
图2中断服务程序流程
主循环程序会对端点接收的数据进行解析,以确定如何响应。一般数据域的数据格式是固定的,在固件程序中可以用C语言结构来描述所接收到的信息特征。
typedef struct_REQU ESTCMD
{
uint8bmRequestType;
uint8bRequest;
uint16wValue;
uint16wIndex;
uint16wLength;
}
REQUESTCMD,*pREQUEST CMD;
可分以下几种情况对数据域进行解析:
当bmRequestType=0x80且bRequest=0x06,主机请求类型为GET_DESCRIPTOR,此时若wValue的高字节为0x01表明主机向设备请求设备描述符;为0x02表明主机向设备请求配置描述符。
当bmRequestType=0x00且bRequest=0x05,主机请求类型为SET_ADDRESS,wValue的高字节为设置的地址值。
当bmRequestType=0x00且bRequest=0x09,主机请求类型为SET_CONFIGURAT ION,wValue 的低字节指示了一个设置配置。
当bmRequestT ype=0x21且bRequest=0x0A,主机请求类型为S_I,该请求的作用是限制中断输入端点的报表频率来节省总线带宽,V的高字节设置了报表之间的最大时间间隔,低字节设置了设备所支持的报表类型。
主循环程序对接收到的信息解析后,然后发送相应的信息给主机。其中主要有地址分配,设置配置和描述符类信息,描述符类信息同样可用C语言的结构体表示,主要包括设备描述符、配置描述符、接口描述符、端口描述符、字符串描述符,每一个描述符都以一个字节开始表示描述符的长度,后紧跟一字节表示描述符类信息等,U SB设备就是通过各种描述符来向主机报告它的属性。
USB设备配置结束后,设备就可以正常使用,主机通过IN,OUT指令可以和设备设定的端口进行监控数据的交换。设备监测的CAN通讯线上的数据以及数字脉冲信号的频率等数据就可以在主机人机界面上显示出来,从而达到实时监控目的。
4结论
本文主要讨论了基于USB接口芯片PDIUS BD12和PIC18F4580的数据采集单元的设计,该采集单元已投入使用,运行状态稳定,实现了CAN通讯数据和脉冲信号频率监控以及数据的保存。由于USB1.1使用简单、即插即用、高速稳定,已广泛地应用在PC的外设上并且通讯协议兼容,大大提高了数据传输能力和速度,在数据采集和处理中达到了令人满意的效果。
参考文献
[1]萧世文,宋延清.USB2.0硬件设计(2版)[M].北京:
清华大学出版社,2006.
[2]周立功.P DIUSBD12USB固件编程与驱动开发[M].
北京:北京航空航天大学出版社,2003.
[3]PDIUSBD12芯片在USB接口电路中的应用.http://
[4]Microchip Technology Inc.P IC18F xx8data sheet.ht
tp://
12研究与应用纺织机械2010年第4期
et dle
w alue