没有合适的资源?快使用搜索试试~ 我知道了~
单片机与DSP中的基于USB总线和89C51单片机的数据采集系统设计
1 下载量 58 浏览量
2020-11-29
19:22:24
上传
评论
收藏 93KB PDF 举报
温馨提示
试读
2页
摘要:本文介绍了基于USB总线的数据采集设备的开发方法,包括硬件设计、firmware(固件)设计、基于windows驱动程序模型(WDM)的设备驱动程序设计以及应用软件的设计,同时也介绍了基于USB的远程数据采集系统。 关键词:通用串行总线;数据采集;单片机 在工业生产和科学技术研究过程的各行业中,常常要对各种数据进行采集,现在常用的采集方式是在PC机或工控机内安装数据采集卡,如A/D卡及RS-422卡、RS-485卡。采集卡不仅安装麻烦,易受机箱内环境的影响,而且由于受计算机插槽数量和地址、中断资源的限制,不可能挂接很多设备。而通用串行总线(Universal Seria
资源详情
资源评论
资源推荐
单片机与单片机与DSP中的基于中的基于USB总线和总线和89C51单片机的数据采集系单片机的数据采集系
统设计统设计
摘要:本文介绍了基于USB总线的数据采集设备的开发方法,包括硬件设计、firmware(固件)设计、基于
windows驱动程序模型(WDM)的设备驱动程序设计以及应用软件的设计,同时也介绍了基于USB的远程数据采集
系统。 关键词:通用串行总线;数据采集;单片机 在工业生产和科学技术研究过程的各行业中,常常
要对各种数据进行采集,现在常用的采集方式是在PC机或工控机内安装数据采集卡,如A/D卡及RS-422卡、
RS-485卡。采集卡不仅安装麻烦,易受机箱内环境的影响,而且由于受计算机插槽数量和地址、中断资源的限
制,不可能挂接很多设备。而通用串行总线(Universal Seria
摘要:本文介绍了基于USB总线的数据采集设备的开发方法,包括硬件设计、firmware(固件)设计、基于windows驱动
程序模型(WDM)的设备驱动程序设计以及应用软件的设计,同时也介绍了基于USB的远程数据采集系统。
关键词:通用串行总线;数据采集;单片机
在工业生产和科学技术研究过程的各行业中,常常要对各种数据进行采集,现在常用的采集方式是在PC机或工控机内安
装数据采集卡,如A/D卡及RS-422卡、RS-485卡。采集卡不仅安装麻烦,易受机箱内环境的影响,而且由于受计算机插槽数
量和地址、中断资源的限制,不可能挂接很多设备。而通用串行总线(Universal Serial Bus,简称USB)的出现能很好地解决以上
这些冲突。我们利用89C51单片机设计了基于USB总线的数据采集设备,并可与MAX485结合起来实现数据的远程采集。
系统硬件设计
USB数据采集系统硬件模块主要由串行A/D转换器、89C51芯片、USB接口芯片和多路模拟开关等组成。
USB接口芯片采用National Semiconductor公司的一种专用芯片USBN9602。该芯片内部集成微处理器接口、 FIFO存储
器、时钟发生器、串行接口引擎(SIE)、收发器、电压转换器,支持DMA、微波接口。
多路模拟输入信号经多路模拟开关控制将其中的一路接入串行A/D转换器,A/D转换器经光电隔离后串行输出到移位寄存
器,移位寄存器将此结果转为8位并行数据,89C51系统通过8位的并行接口传送A/D转换器采集的数据,存储在FIFO存储器
中;一旦FIFO存满,SIE立刻对数据进行处理,然后89C51系统将数据从FIFO存储器中读出,由收发器通过数据线(D+、D-)送
至主机。 USBN9602与89C51的具体接口电路如图2所示。图中USBN9602的CLKOUT与89C51的XTAL1相连,即USBN9602
的时钟输出为89C51提供时钟输入。USBN9602的复位端接RC电路以保证复位电路可靠地工作。由于晶振频率较高,结合
USBN9602内部网络,在XOUT端串接100mF电容及470mH电感,起稳定内部振荡频率的作用。
系统软件设计
系统软件包括设备固件、 USB设备驱动程序和应用程序。
设备固件(firmware)设计
此处固件是指固化到89C51E2PROM中的程序,其主要功能是: (1)控制A/D转换器的采样。(2)控制芯片USBN9602接受并
处理USB驱动程序的请求及应用程序的控制指令。现主要介绍89C51系统如何控制USB控制器(USBN9602)与主机的通信。
89C51系统对USB控制器的操作是严格按照USB协议1.1进行的,按照USB协议1.1的规定,USB传输方式分为4种:控制
传输,块传输,同步传输和中断传输。在实际开发中使用了控制传输和块传输。控制传输主要用来完成主机对设备的各种控制
操作,也就是用来实现位于主机上的USB总线驱动程序(USBD.SYS)以及编写的功能驱动程序对设备的各种控制操作。块传输
主要用来完成主机和设备间的大批量数据传输以及对传输数据进行错误检测(若发生错误,它支持“重传”功能)。
89C51系统控制USB控制器的工作过程可以简单地概括为:当USB控制器从USB总线检测到主机启动的某一传输请求
后,通过中断方式将此请求通知89C51系统,89C51系统通过访问USB控制器的状态寄存器和数据寄存器获得与此次传输有关
的各种参数,并根据具体的传输参数,对USB控制器的控制寄存器和数据寄存器进行相应的操作,以完成主机的传输请求。
USB设备驱动程序设计
USB系统驱动程序的设计是基于WDM(Windows driver model 驱动程序模型)的。WDM采用分层驱动程序模型(见图3所
示),分为较高级的USB设备驱动程序和较低级的USB函数层。其中USB函数层由两部分组成:较高级的通用串行总线模块
(USBD)和较低级的主控制器驱动程序模块(HCD)。
在上述USB分层模块中,USB函数层由Windows98提供,负责管理USB设备驱动程序和USB控制器之间的通信,加载及
卸载USB驱动程序,与USB设备通用端点(endpoint)建立通信来执行设备配置、数据与USB协议框架和打包格式的双向转换任
务。
目前Windows98提供了多种 USB设备驱动程序,但并不针对数据采集设备,因此需用DDK开发工具设计专用的USB设备
驱动程序。在本设计中由四个模块实现:初始化模块、即插即用管理模块、电源管理模块以及I/O功能实现模块。
初始化模块提供一个入口函数DriverEntry(),所有对各种IRP(I/O Request Packet,IRP请求包)的处理例程都在此入口函数
中做出定义。
weixin_38698863
- 粉丝: 1
- 资源: 921
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0