江西有色金属  2003, Vol. 17 Issue (1): 44-47
文章快速检索     高级检索
基于USB接口技术的电除尘控制系统设计[PDF全文]
宋玉春 , 许伦辉     
南方冶金学院,江西 赣州 341000
摘要:利用计算机接口新技术USB,介绍了基于USB总线的电除尘控制系统,具体工作包括系统硬件设计、固件设计、驱动程序设计和应用程序设计。
关键词USB    PDIUSBD12    电除尘    
The Design of ESP based on USB Interface
SONG Yu-chun , XU Lun-hui     
Southern Institution of MetaIIurgy, Ganzhou 341000, Jiangxi, China
Abstract: In this paper, the electrostatic precipitation(ESP) control system is introduced by using of universal serial bus (USB), a new technology about interface in computer.It is included the design of system hardware, firmware, USB interface driver and application.
Key words: USB    PDIUSBD12    ESP    
0 前言

电除尘器广泛应用在冶金、水泥领域来捕集煤烟型粉尘,是生产工艺的重要组成部分,也是为保护环境而必须采取的工序。在湿法锌冶炼中,电除尘是回收沸腾炉生产出的氧化锌的必要手段,收尘性能是影响锌回收率的重要因素,也关系着下个工序硫酸的生产。目前电除尘控制系统有两大类,一类是由传统的分立元件组成,二是微机控制系统。后者比前者性能有大幅度提高,但主机与下位机是串口通讯,由于串口速度较慢,影响了控制性能。为此,设计采用USB接口技术,实现了电除尘自动控制系统的高收尘性和高可靠性。

传统的外设与主机通讯接口一般是基于PCI总线、ISA总线或是RS-232C串行总线。PCI总线虽有很高的传输速度(132MB/S),但其缺点是插拔麻烦,设计极其复杂,难于得到底层的协议;ISA是属于过时要淘汰的总线;RS-232C串行总线虽然连线简单,但其缺点是传输速度慢(56kB/S),串口数量有限。USB(Universal Serial Bus)通用串行总线是由Intel、Microsoft、IBM及NEC等共同制定的微机总线接口规范,具有较高的传输速度,USB1.1协议支持的最高传输速度可达12MB/S,USB2.0协议可达480MB/S,支持“即插即用”及热插拔功能。

笔者应用USB接口实现微机—单片机除尘控制系统,提高了上位机下位机的通讯能力,间接提高了控制的实时性,实现了对除尘极板间电压的精确动态控制,取得了较好的控制和除尘效果。USB接口是通过专用接口芯片PDIUSBD12实现的。

1 PDIUSBD12的结构与原理

PDIUSBD12是一款性价比较高的USB器件。它通常用作微控制器系统中实现与微控制器进行通信的高速通用并行接口。它还支持本地的DMA传输。

PDIUSBD12完全符合USB1.1版的规范。它集成了SIE、FIFO存储器、收发器、以及电压调整器,可与任何外部微控制器/微处理器实现高速并行接口(2MB/s),完全自治的直接内存存取(DMA)操作,主端点双缓冲配置增加了数据吞吐量并轻松实现实时数据传输,在批量模式下和同步模式下均可实现1MB/s的传输速率,工业级的操作温度:-40~+85℃,具有高错误恢复率(>99%)的全扫描设计,确保了高品质。

实现USB接口的标准组件可使设计者在各种不同类型微控制器中选择出最合适的微控制器。其灵活性减小了开发的时间、风险以及费用(通过使用已有的结构和减少固件上的投资),从而用最快捷的方法实现最经济的USB外设的解决方案。

此外它还集成了许多特性,包括SoftConnetTM、GoodlinkTM、可编程时钟输出、低频晶振和终止寄存器集合。所有这些特性都为系统显著节约了成本,同时使USB功能在外设上的应用变得容易。PDIUS-BD12功能框图如图 1

图 1 PDIUSBD12功能框图

PDIUSBD12有3种基本类型的命令:初始化、数据流、通用命令,具体使用方法及引脚信号可参照器件使用手册。

2 系统及硬件设计 2.1 系统设计

电除尘设备包括收尘本体和振打系统,本体内的阴阳极板间加有高电压,由于电子的运动,尘埃依附在阳极板,经振打落在收尘斗内。为实现高控制性能,主机须分别完成对振打系统和升压系统的上层控制。主机根据采集到的数据,分析计算后为振打系统提供振打方式、振打周期,为升压系统提供电压给定、电压上升、下降速率等。基于以上分析,系统框图如图 2所示。

图 2 电除尘系统框图

该系统用微机作上位机给出友好的人机界面并执行高级控制算法,单片机在上位机的控制下作正常运行,它们之间的通讯采用高性能的USB接口;一旦微机出现故障,单片机可独立运行,保障了系统可靠性。由于主机与单片机是放在一起的,符合USB接口传送距离4~5m的要求。采用USB接口的优点有以下几方面。

(1) 采用USB接口可大大提高通讯性能,若采用普通串口,一般传输速率在1 200B/S,而应用USB1.1规范,传输速率达1MB/S以上;USB在同一套总线上可以同时支持同步和异步传输类型;在主机和设备上支持对多个数据和消息流的传输。由于具有较高的传输速率,数据采集也具有较高的精度,可以更好跟踪收尘极板间的电场电压变化,控制的实时性也得到大幅提高。

(2) 实现费用低。为外设和主机硬件中的集成进行了优化;可以用于开发价格便宜的外设;所需的电缆和连接器价格低廉。

(3) 稳定。协议中包括中了差错控制/缺陷发现机制;可以动态插入和拔出USB设备;支持对缺省设备的识别。

2.2 硬件设计

PDIUSBD12与80C5l的接口如图 3所示。

图 3 PDIUSBD12与80C51的接口

8OC51利用PDIUSBD12的时钟输出;PDIUSBD12的A0脚可接任一I/O端口,本例接P3.3,该端口控制PDIUSBD12的数据和命令状态;80C51通过P2.2引脚选中PDIUSBDl2芯片;PDIUSBD12的中断INT-N引脚、写选通WR-N、读选通RD-N直接与80C51的相应引脚相连。

2.3 固件设计

固件设计即单片机程序设计,根据上图,从80C51看,PDIUSBD12就象仅具有两个地址的外部数据存储器,单片机端软件比较简单。

(1) PDIUSBD12初始化过程依次是:

Set Address Enable;

Set Endpoint Enable(此时LED亮);

Disconnect;

delay(1~2s);

Connect(即用43h参数调用Set Mode, 此时LED灭);

Read Interrupt Register[1]

(2) 向PDIUSBDl2中输出命令

MOV DPTR,#OFBOOH

SETB P3.3;命令方式

MOV @ DPTR,A

(3) 从PDIUSBD12中读取数据

MOV DPTR,#OFBOOH

SETB P3.3;数据方式

MOV @DPTR,A

(4) 向PDIUSBDI2中输出数据

类似与(3)

3 上位机的应用程序和USB设备驱动程序

为了使电除尘控制系统具有较高的稳定性,主机采用Windows 2000操作系统,它采用NT内核。为了健壮性和可靠性目标,NT的设计者为它的核心实现部分选择了客户-服务器体系结构。用户应用程序(客户软件)作为OS服务器的一个客户在操作系统上运行。硬件模式是特殊的用户模式,在这个模式中,代码局限于无害操作,不能执行硬件I/O指令。用户进行I/O操作必须通过驱动程序。所以本系统必须编写驱动程序[2]

3.1 USB驱动的体系结构

USB驱动程序的设计是基于WDM(Windows Driver Model, Windows驱动模型)。WDM模型采用分层结构,如图 4所示。Windows对构成一个USB主机的不同软件部分进行了十分清楚的划分。不同层间通信使用IRP(I/O请求分组)机制,实际的USB请求存放在通用串行总线请求(URP)的结构内。

图 4 WDM模型分层结构

其中UHCD(通用主控制器驱动程序)和Open-HCI(开放主控制器接口)是不同的USB厂商提出的用于管理一个系统中的USB主控制器的两个软件接口。Microsoft提供了对两种接口的支持。

设计人员需要开发的是客户软件部分和USB驱动程序(USBD)部分[3]

3.2 USB驱动程序(USBD)设计

USB驱动程序(USBD)一般要用Windows 2000 DDK开发,此套件可在微软网站免费下载。

设计的重点是驱动程序硬件控制函数(IOCTL),驱动程序中对硬件I/O控制函数位于Dispacth例程中,实际上是利用Windows系统提供的ICO-CODE宏而由驱动程序开发人员新定义的I/O控制代码。主要有:

(1) IOCTL-INTERNAL-USB-SUBMIT-URB, 该IOCTL是客户驱动程序用来发送URB的停止等待结果;

(2) IOCTL-INTERNAL-USB-RESET-PORT, 复位并重新启动一个端口;

(3) IOCTL-INTERNAL-USB-GET-PORT-STATUS, 该IOCTL返回当前的端口状态;

(4) IOCTL-INTERNAL-USB-CYCLE-PORT, 该IOCTL将模拟一个集线器端口上出现的接入/拆除操作。

3.3 应用程序设计

用户端的软件设计由两个部分组成,动态连接库和应用程序。动态连接库负责与内核态的USB功能驱动程序通信,并接受应用程序的各种操作请求,而应用程序负责对采集的数据进行实时显示、分析、存盘,向单片机发出指令。

应用程序通过Windows定义的软件接口来同驱动程序进行通信,Windows 2000提供的USB接口函数主要有:

(1) UsbBuildFeatureRequest(),允许应用程序打开或关闭一个USB设备上的个别特性;

(2) UsbBuildGetStatusRequest(),允许应用程序查询一个给定的USB设备、端点、管道或接口的状态;

(3) UsbBuildInterruptOrBulkTransferRequest(),在主机和一个设备之间建立一个用于批量传输或中断传输的请求;

(4) UsbBuildVendorrEQUEST(),允许用户向一个USB设备上的某个管道、端点或接口发出专用的设备请求。

4 结语

PDIUSBD12是一个性能优异的USB接口器件,在性能、速度、方便性以及成本上都具有很大的优势。因此,使用PHILIPS公司的PDIUSBD12可以方便连接主机与单片机控制系统。应用USB接口实现微机—单片机除尘控制系统,提高了上位机下位机的通讯能力,更好的跟踪了现场工况,实现了对除尘极板间电压的精确实时动态控制,可取得更好的控制和除尘效果。

参考文献
[1]
王朔, 李刚. USB接口器件PDIUSBD12的接口应用设计[J]. 单片机与嵌入式系统应用, 2002(7): 122–128.
[2]
Art Baker Jerry Lazano. Windows 2000设备驱动程序设计指南[M]. 北京: 机械工业出版社, 2001: 1-2.
[3]
张念淮, 江浩. USB总线接口开发指南[M]. 北京: 国防工业出版社, 2001: 261-265.