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