《工业控制计算机》2010年第23卷第7期 61 基于USB接口的计算机外围控制系统设计研究 Peripheral Control System Design of Computer Based on USB Interface 赵帼英 (安徽工业大学计算机学院,安徽马鞍山243002) 摘 要 随着计算机外设的增多,通用串行总线作为一种新型接口技术得到广泛应用,它不但解决了设备对传输速率的需求, 而且简化了计算机与外部设备的连接过程。给出了利用CY7C68013A芯片设计控制系统的模式选择,同时对系统固件功 能和驱动程序设计作了详细讨论,并提出了系统设计中需要注意的一些关键问题。系统固件程序在Keil C51开发环境下 采用C语言编写,并在Visual C#环境下完成上位机程序开发。 关键词:CY7C68013A,CH375A,通用串行总线,Visual C ,模式 Abstract With the increasingly number of computer peripheral,the universal serial bus as a new interface technology has been ex- tensively applied.This technology not only meets the data transmission need between the peripheral and PC.but a}so makes the connection very simple This paper presents how to select the mode of the control system by using CY7C6801 3A,and dis— Cusses the function of the system firmware and the design of driver in detai lThe key questions proposed are very important to the USB system design Finally,the control system firmware is programmed with the C language using the Keil C51 soft— ware and the control interface run on the PC is developed under the Visual C#development environment. Keywords:CY7C68013A,CH375A.USB Visual C#。mode 目前,很多设备已经采用USB接口来实现,同时计算机也 逐渐使用USB接口替换了以前的常用接口。具有USB接口功 能的芯片也很多,如Cypress的CY7C68013A系列,南京沁恒 公司的CH375A以及西安达泰公司的USB20C模块等。根据使 用芯片的不同,设计方法有所不同,但差异不是太大。相比较, 种内部主机控制模式,与Slave FIFO相比,其采用的是内部逻 辑来控制FIFO缓冲区的读写操作。不同的模式,其设计方法会 有所差异,结合实验,选用普通l/O模式。 EZ~USB在没有固件的情况下被列举为一个缺省的USB 设备,之后将其固件和描述符等下载到RAM,开始执行固件程 序,此时模拟一个物理上断开和重新连接的过程。在列举过程 中,根据芯片有没有在FC总线上挂接EEPROM存储器,以及 Cypress的CY7C68013A芯片功能较强大。 1 CY7C6801 3A主要特点 CY7C68013A是Cypress公司的EZ—USB FX2LP系列低 功耗版本微处理器,具有增强型8051内核,比标准的8051的 速度快,兼容8051指令系统,同时包括USB收发器和完整的 USB2.0协议串行引擎(SlE),并且提供了完善的固件及主机程 序开发包。SlE负责完成串行数据的解码、差错控制、位填充等 功能,减轻了嵌入式内核的负担,简化了固件程序的开发。主要 具有以下特点: 存储器中第一个字节值的不同,其启动方式主要有:不连接 EEPROM的缺省设备列举、CO加载、C2加载等。在此系统的设 计过程中,采用第一种方式,即芯片没有连接任何片外存储器, USB的描述符以及VlD、PID和DID等均由芯片内置的逻辑提 供,然后根据驱动程序中提供的VlD、PID和DID,下载主机上对 应的固件程序到片内RAM中,并执行固件代码。该方式具有硬 件连接简单,节省器件等特点。 2.2系统固件程序设计 控制系统的固件功能主要有芯片外围设备的时序控制、数 1)具有第二个数据指针及USART。 2)FIFO/GPIF数据传输模式。 3)具有三个唤醒源的休眠模式。 据传输,以及对USB设备的功能描述等,同时担负与上位机通 信的任务,响应和解析上位机发送的标准请求和自定义请求。其 中,描述符具有非常重要的作用,主要是让上位机了解USB功 能设备的基本配置信息和能力,如端点、接口等,以便合理控制 和分配资源。在此主要使用标准描述符来说明USB设备,如设 备描述符、配置描述符、接口描述符、端点描述符、设备限定描述 符等。在该控制设备中,这些描述符的层次结构如图1所示。 系统中,设备描述符的VID、PID分别设定为0x04B4、 0x1304,其主要用于指示设备供应商和产品信息,以便区别于 其它设备,并在上电时帮助主机加载合适的驱动程序,进而下载 相应的固件代码。同时为设备分配了2个配置描述符,分别为高 4)8个额外的中断(1NT2一lNT6、V\/AKEUP、T2、USART1)。 5)CPU时钟可以运行在12MHz、24MHz、48MHz。 2控制系统设计 基于USB的控制系统设计主要包含系统硬件设计中接口 设计模式的选择,芯片固件程序的开发,以及上位机(主机)控制 界面的设计。CY7C68013A芯片采用的是一种软配置模式,即 程序和数据都存放在内部RAM中,并从RAM中开始执行。 2 1接口模式和启动模式选择 CY7C68013A作为广泛使用的USB功能设备芯片,具有 多种接口设计模式可供选择,主要有普通l/O模式,Slave FIFO 模式,GPIF模式。普通l/O模式用于一般简单的控制,设计方法 速配置和全速配置,每个配置使用1个接口,并对应1个接口描 述符,每个接口应用了4个端点,分别对应4个端点描述符。端 点配置为块传输(BULK)模式,2、4端点用于OUT数据传输,6、 8端点用于IN数据传输,最大数据包长度均设置为512字节。 及数据处理方式与其他处理器一致,但会占用很多CPU资源, 且效率低。Slave FIFO模式主要利用外部逻辑来读写内部FIFO 缓冲区,达到数据控制和传输的目的,效率较高。GPIF模式是一 62 图1描述符层次图 上位机通过控制端点O来操作、控制USB设备。 固件中对标准请求的响应部 分,主要是让上位机能够对描述符 进行读取和写操作。自定义请求响 体眠模式、远程晚醒等韧始化 应主要实现上位机发送控制命令, ’ 来使能USB功能设备、以及执行相 1用卢设备初始化TD tnitOl 应功能的目的。固件程序设计流程 定向IISB描j耋符,并丌肩全局中断FA=】 图如图2所示。 TD—Init0子程序主要用来对整 重列举RE L f~0.DISCON ̄O 个USB用户设备进行初始化,包括 fVigile{TO P。I10;SetupC。mman…}f 远程唤醒、端口属性定义、USB时 钟配置等。在重定向描述符之后,把 所用中断打开,并开启8051全局 图2固件程序设计流程图 中断EA=1。因为EZ—USB设备启 动需要重列举,因此要通过设置和判断USBCS寄存器的 RENUM和DfSCON位来模拟设备物理上的断开和连接过程。 主循环while{}中包含TD—Poll()、SetupCommand()等子程序, 其中TD—Poll 0用于实现用户外围设备控制功能,SetupCom— mand0函数用于接收、分析上位机的控制信号,响应上位机请求 即标准请求和用户自定义请求。 2.3上位机控制界面设计 为了能够方便地控制USB设备,需要编写上位机控制界 面。该界面程序采用Visual C#语言开发,该语言具有快速、简 单的优点。Cypress公司为EZ—USB系列芯片提供了基于该语 言的Microsof1.NET开发类库CyUSB.dll,使用其中的控制函数 类,可以在Visual C#环境下开发界面程序。建立C}}的Win— dows窗体应用程序后,在项目中主文件之前需使用using引入 CyUSB命名空间。利用CyUSB—Device进行类的实例化,然后 调用对象属性,如Name、DevClass、VendorlD、ProductlD等, 可以获取USB设备的相关描述信息,同时也可以编写相关的控 制功能程序。 2.4系统设计中关键问题 1)一个设备有且只能有~个设备描述符,可以有多个配置 描述符,多个接口描述符,以及多个端点描述符。如本系统就有 两个配置,多个端点。 2)设备描述符中VlD、PID要与驱动中的相一致,否则不能 自动加载相应的固件程序。固件中的VID、PID采用倒序写法, 如设备VID为0x04B4,则固件中应写为0xB404。 3)固件程序必须转换为spt格式的代码,用于固件加载的 驱动程序和固件程序应放在一个文件夹中,拷贝到C:\WlN— DOWS\system32目录下。 4)端点O为USB2.0协议规定的缺省控制端点,其可设置 最大数据包长度为64字节,在设备描述符中wMaxPacketSize 字段描述。 基于USB接口的计算机外围控制系统设计研究 5)传输模式有中断传输(Interrupt)、块传输(Bulk)、同步传 输(Isochronous)、控制传输(Contro1)四类,需根据自己设计需 求选择,同时注意最大数据包长度的设置。 3驱动程序 在Windows操作系统下操作USB设备,必须借助于驱动 程序来实现,主机和驱动程序直接通信,交换数据,而驱动程序 则和硬件资源进行通信,从而很好地控制USB设备。Cypress 提供的开发环境中提供了相关的驱动程序CyLoad.sys和 CyUSB sys,可以直接使用,从而缩短系统的开发周期。Cy— Load.sys用于上位机向USB设备下载固件程序,CyUSB.sys 实现上位机和固件程序通信。CyLoad.sys可以实现固件的自动 下载,但生成的十六进制固件代码CyLoad.HEX必须转换为适 合自动下载的CyLoad spt文件,并且与CyLoad.sys一起放在 CyLoad文件夹下,并且安装文件CyUSB.inf中设置的PID、VlD 必须和描述符中的一致。该方式简化了固件升级或更改设备功 能的过程,只需把固件修改好并放到相应位置,在USB设备复 位后,就可以实现固件自动更新。 4实验 采用56引脚3.3V电压供电的CY7C68O13A作为USB设 备芯片构建实验系统,实现控制LED和读取J/O数据功能。为 简化实验电路设计,从主机USB口取电,经电压调整芯片 LM317转换为3 3V。PA口LED用于显示判断主机发送数据。 PB口接高/低电平,用于主机读取该口数据,可以验证主机接收 数据的正确性。PD口接LED,显示TD_Poll(void)实现的功能 (亮/灭周期40Oms)。 设备功能子程序: void TDl-Poll(void) f IOD=0x00; //D口输出低电平 EZUSB-Delay(400);//延时400毫秒 IOD=0xFF; //D口输出高电平 EZUSB—Delay(400);} 上位机类实例化程序: USBDevlce List devList; devList=new USBDeviceList(CyC0nst.DEVICES_CYUSB); (devList Count==0){ MessageBox.Show( 未发现USB设备!!”): this Close();} CyUSBDevice device=devList[0】as CyUSBDevice; (device!=nul1) {label1 Text=”< +device.FriendlyName+,,>”+” 已经成功连 图3上位机控制界面运行结果 (下转第64页) 清洗地膜污水处理自动控制系统的设计 程、COM组件等新技术,实现了实时多任务,软件运行稳定可靠。 监控操作画面分多屏,包括方便工人操作的监控画面、为软 量。该部分结构框图如图3。 件工程师提供接口的整定画面、形象直观的模拟画面、易于统计 的参数画面、便于追查事故原因的历史趋势画面、提供技术分析 信息的实时曲线画面以及报警窗口,除此之外,还可以实现历史 记录的储存和报表的打印。 3关键控制技术 图3浮选加药控制系统框图 污水处理的特点要求控制系统必须能够兼顾流程和单元控 PID控制器是一种比例、积分、微分并联控制器,工作原理 可以用下式表示: r 1 制,流程控制与系统的工艺流程相关,在此不做详细讲述。而计 算机控制的基础是单元控制,是实现系统优化控制的条件,有必 要重点研究。根据工艺要求,重点研究了污水提升泵站和浮选加 药环节的控制系统。 u(f)= l e(f)+手 )df+ d警J 式中:U(t)一控制器输出;e(t)一控制器输入,即偏差信号; k。、 、1Id一控制器的比例系数、积分系数、微分系数。 本系统采用S7—300 pLC内部的SFB41“CONT-C”连续 控制功能模块,利用FC105功能模块接受一个IN,并将其转化 为介于L0一LlM与HJ—LJM之间的实型值,通过模拟量输入输出 模块持续接受输入变量并发出输出变量对过程进行控制。 通过数学建模和MATLAB仿真最终理论确定,流量环kp= (1)污水提升泵站PID控制技术 泵站工艺要求:①污水提升泵启动速度快,保证污水全部进 入处理系统;②泵房集水井水位可在一定范围内变化;⑧三台提 升泵负荷平均分配,在闲时可关闭一至两台。 近年来基于PID算法的泵站控制方式得到了广泛关注.该 方法结构简单,使用时不需要确定精确的系统模型,控制精度 高,响应速度快,适合用于控制系统负荷变化大、容量滞后大、对 控制质量要求叉比较高的场合,本系统采用PID变频调速方法 对泵站进行控制。该部分结构框图如图2。 r一~ i18.4,T.=O,Td=13.2,浊度环kp=55.4,Ti=0.7,Ta=O,基本可使系 统达到理想的控制效果。 同时,应注意在启动阶段,各电机不能进行PID调节,以防 出现震荡。 4结束语 1 PL(’ 一一… 护 。。_~一 一] J 一 实现水处理自动化的目的是节能减排、提高工作人员的劳 动生产率,本系统采用“EfC三电一体化”计算机集散控制技术, 以PLC控制的自动控制系统代替原有的人工控制以及继电器 控制,具有较高的自动化程度,运行可靠,可维护性号,兼具一定 的灵活性,可以极大降低投资,减小劳动强度。 经过试验统计得出,使用自动控制的水处理系统后的每吨 地膜清洗成本可以降至原生产成本的6O%左右,大大降低了生 产成本,提高了企业的市场竞争力。 参考文献 [1]温盛军基于PLC的水厂源水处理自动控制系统[J].重庆科技学院 学报(自然科学版),2008,10(1):69—72 [2]毛慧欧城市污水处理计算机控制系统的应用研究[J].环境污染治 理技术与设备,2001,2(5):32—36 [3]郑晨刚基于PLC控制的变频调速系统设计[J].商场现代化,2007 根据处理设备具体需要,本系统采用了药剂流量、出口浊度 (5):391 双闭环控制系统。利用PID控制调节加药量,从而提高控制质 希 ; 石\蛉 、 、 ; ; ; ; 式、 !; 石 石 ;\0; ; 五 [收稿日期:2010.3.25] ; 写 石 (上接第62页) 际运行,工作稳定、可靠。 参考文献 [1]周立功.PDRJSBD12 USB固件编程与驱动开发[M].北京:北京航 空航天大学出版,2003 接! :l 上位机控制界面运行结果如图3所示。界面中的设备基本 信息和端点配置分类框中为USB相关信息,由主机通过标准请 求获得。操作分类框为主机向USB设备PA口写入数据,以及 从USB设备的PB读取信息的情况。 5结束语 [2]李英伟,王成儒,等USB2.0原理与工程开发[M].北京:国防工业出 版社,2007 『3]Cypress EZ—USB F×2LPTM USB Microcontroller Datasheet. http://www cypress.COM 采用CY7C68013A实现USB控制系统,其固件程序编写、 主机控制界面开发非常简单、方便,同时采用Cypress提供的 设备驱动程序,缩短了设备开发周期。采用USB 13供电及固件 存放在主机上的方式,简化了硬件设计,降低设备成本,提高了 设备的可靠性。文中给出需要注意的关键问题,对于USB控制 [4]Cypress.Cypress CyUSB NET DLL Programmer S Reference. http://www cypress corn [牧稿日期:2010.4.25] 设备的设计具有重要的指导意义。上述系统和程序经过长期实