1基于CH375的仿真软驱设计摘要介绍仿真软驱的设计方案。本文采用MCU和USB接口芯片CH375作为仿真软驱的核心部分,实现软驱接口逻辑控制和对U盘的数据存取,取代了存储量小、使用寿命短的软驱和软盘,为将软驱作为唯一数据录入工具的设备如绣花机等工控设备提供了方便,降低了使用成本。关键词仿真软驱USB接口CH375U盘软驱绣花机引言近年来,随着USB(UniversalSerialBus)技术的不断发展,特别是存储工具U盘的普及,软驱软盘因其存储量小、质量差、易损坏等致命弱点正逐步被淘汰。然而目前还有不少几十万、上百万的将软驱/磁碟作为主要或唯一的数据录入工具的工业数控设备正在高速运行,绣花机就是其中一个典型的例子,它需要经常进行花样存取频繁使用软驱软盘,能够直接读取U盘或通过网络系统传输成为今后延续其生命力的最有效的手段,这就凾待一种全新的可以取代软驱的设备出现。仿真软驱设计构想由此产生。目前,USB接口设计的方案大致有两种类型:一种是采用MCU和USB接口芯片分离结构,此方案的特点是成本和开发难度较低。另一种方案是采用嵌入式结构,即采用带USB接口的MCU或内嵌MCU的USB芯片,此方案的特点是成本高,不适用于简单和低成本的开发。我们的目的是开发一种经济实用的可以取代软驱的设备,故采取第一种方案。1、硬件总体方案1.1硬件设计原理图1硬件设计原理图仿真软驱的硬件设计原理图如图1所示。设计主要包括MFM编解码、控制逻辑、USB接口、复位控制、存储这几部分,其中虚线方框的存储部分可以根据用户需要设置,它的作用是使仿真软驱本身具有容量为720KB/1.44MB的存储空间,方便使用中不需要给每一个仿真软驱配对一个U盘。整个设计原理大致如下:当用户操作软驱时,系统首先会有一个自检过程,该过程涉及U盘是否存在和驱动是否选中两个部分。自检完毕后,进入MCU与MCUFDIMFM编解码控制逻辑辑RAMCH375USB存储复位控制5V2FDI的数据交换阶段,该阶段中首先FDI测试虚拟马达和磁头工作状态,在收到控制逻辑返回的就绪状态后,FDI将数据以MFM编码格式发送,数据经过MFM解码后通过控制逻辑实现与MCU的数据交互。最后是MCU通过控制CH375完成USB协议处理并实现与U盘的数据交换。数据交换过程完毕后,若拔出U盘,MCU检测到无盘,系统自动复位。1.2CH375芯片应用介绍1.2.1CH375简介CH375是一个USB总线的通用接口芯片,支持USB-HOST主机方式和USB-DEVICE/SLAVE设备方式。在本地端,CH375具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/DSP/MCU/MPU等控制器的系统总线上。在USB主机方式下,CH375还提供了串行通讯方式,通过串行输入、串行输出和中断输出与单片机/DSP/MCU/MPU等相连接。CH375的USB主机方式支持常用的USB全速设备,外部单片机可以通过CH375按照相应的USB协议与USB设备通讯。CH375还内置了处理Mass-Storage海量存储设备的专用通讯协议的固件,外部单片机可以直接以扇区为基本单位读写常用的USB存储设备(包括USB硬盘/USB闪存盘/U盘)。CH375支持5V供电,支持低功耗模式,兼容USB2.0;提供一对主端点和一对辅助端点,支持控制传输、批量传输、中断传输;具有省事的内置固件模式和灵活的外部固件模式。内置固件模式下屏蔽了相关的USB协议,自动完成标准的USB枚举配置过程,完全不需要本地端控制器做任何处理,简化了单片机的固件编程;通用的8位并行数据总线控制简单,采用4线制:读选通、写选通、片选输入、中断输出;通用Windows驱动程序提供设备级接口;体积小,采用SOP-28封装。1.2.2CH375的接口电路如图2所示。CH375A的TXD引脚接地,从而使CH375A芯片处于并口的工作方式。CH375的8位并行接口直接与MCU的数据线低8位相连,/WR和/RD也分别与其WR和RD信号相连。电容C4构成外部电源退耦。晶体X1、电容C1和C2构成CH375A的时钟振荡电路,X1选用12MHZ的晶振,C1、C2选用30p的独石或高频磁片电容。左上为USB接口电路。图2CH375A的接口电路图1.2.3单片机通过CH375读写U盘文件一般情况下,单片机或嵌入式系统处理USB存储设备的文件系统需要实现图3左边的34个层次,右边是USB存储设备的内部结构层次。由于CH375不仅是一个通用的USB-HOST硬件接口芯片,还内置了相关的固件程序,包含了上图左边的3个层次(标为灰色部分),所以实际的单片机程序只需要处理FAT文件系统层,并且即使这一层也可以由CH375的U盘文件级子程序库实现。在仿真软驱的设计中不需要处理文件系统,也就是不处理图3左边的最顶层,那么CH375直接提供了数据块的读写接口,以512字节的物理扇区为基本读写单位,从而将USB存储设备简化为一种外部数据存储器,单片机可以自由读写USB存储设备中的数据,也可以自由定义其数据结构。文件级API应用层接口FAT32/16/12文件系统层SCSI/UFI/RBC命令层以扇区读写闪存或者硬盘Bulk-Only传输协议层Bulk-Only传输协议层USB基本传输:控制/批量USB基本传输:控制/批量USBUSB-HOST硬件接口芯片USB-DEVICE硬件接口芯片图3单片机读写U盘2、软件功能的设计和实现2.1仿真软驱自检流程图4仿真软驱自检的流程图是U盘是否存在U盘是否插入初始化U盘报告无盘系统输入三态进入与FDI数据交换系统复位驱动是否选中否否否否是是是是驱动U盘是否插入是否选中42.2FDI数据交换过程FDI和仿真软驱的数据交换是设计中的核心环节,下面是数据交换过程中的一些具体说明:首先FDC产生驱动器选择信号,接着产生马达接通、方向选择、步进脉冲和选面信号,寻找0磁道,此时MCU检测到FDC发送过来的信号后,返回0磁道信号。当用户操作FDC从仿真软驱读取数据时,FDC再次寻道,MCU通过检测方向选择、步进脉冲和选面三个信号判断FDC当前寻道的磁道,在FDC寻道的过程中磁道数会一直处于变化,当FDC停止寻道时,MCU马上从U盘读取的对应磁道的数据(18个扇区),然后MCU开始循环发送软盘格式命令,其中包括这18个扇区的数据。软盘数据命令有IBM(MFM)、IBM(FM)、Perpendicular和ISO(MFM)四种格式,下面以IBM数据格式为例加以说明,见图5。图5IBM数据格式在MCU循环发送数据命令的过程中,MCU同时还需要判断是否检测到以下五个信号:FDC的驱动器选择信号(检测FDC是否取消操作)、方向选择信号、步进脉冲信号、选面信号(检测FDC是否重新寻道)、写信号(检测FDC是否有数据写到仿真软驱),如检测到,应及时接受FDC的数据。FDC从仿真软驱读数据时,首先通过同步码进行同步(12个0x00),然后检测AM标志数据,读取track,head,sector,#bytes和CRC,判断要读取的数据的扇区地址,并在数据阶段接收相应的数据,完成一个磁道的数据交换。FDC写数据到仿真软驱时,将会在检测到要写数据的扇区的地址后,在GAP2阶段发送写信号,此时紧接着的数据阶段,FDC将会发送该扇区数据,MCU检测到写信号后,在此数据阶段接收数据,等待整个循环(最多18个扇区的数据)结束后,将数据写入U盘。该过程完毕后MCU重新开始检测驱动器选择信号、方向选择、步进脉冲和选面信号,等待FDC再次寻道。2.3软驱的数据记录方式MFM编译码也是一个重要部分,主机主要通过MFM编译码器实现MFM编码与实际存取二进制数据的转换。MFM制编码也称双密度编码方式、三频制或密勒码,是目前软磁盘机最常用的记录方式。这种方式同FM相比,减少了每个位单元磁道翻转次数,使用同样的磁介质可使其数据容量增加一倍。MFM制规定,在位单元中心写入一个脉冲为逻辑“1”,在位单元不写入脉冲为逻辑“0”,只有在一个位单元中记“0”,并且上一位单元也记“0”时,在这两个记“0”位单元中间才可以写入时钟脉冲。MFM制的编码效率为100%,同步能力强。软盘与主机之间进行信息交换的最小单位是扇区,以3.5英寸1.44MB的软盘为例,它是2面80磁道18扇区,扇区的物理地址与U盘的线性地址LAB之间的对应的关系如下:软盘的0面0道1扇区为U盘线性0扇区,0面0道2扇区为U盘线性1扇区……依次类推。2.4软驱的信号接口FDC通过软驱接口与仿真软驱的MCU进行数据交换,软驱的信号接口都是采用相同的标准,在使用上都具有通用性,都是采用ANSI(美国国家标准委员会)公布的标准,该标准采用34个引脚的插头,标准中未规定的引脚,可以根据需要自行规定信号。这些信号大5体可以分为三类,即控制信号、数据信号、状态信号。下面以1.2MB5.25英寸软驱接口为例加以说明,如图5所示。就设计接口而言,我们主要关心接口信号的作用、要求和时序,现简述如下:(1)接口信号都是低电平有效,由控制器送给驱动器。(2)控制器可选择4台驱动器之一与之通信,只有当某个驱动器被选中(相应选择线为低电平),该驱动器才能工作。驱动器内部一般有跳线选择电路,可由用户自己设置,每台驱动器只能接通一条跳线,且应不相同。(3)马达接通信号控制主轴电机启动,转速正常后,将发出“准备就绪”有效状态信号。如MCU检测到接口无盘,返回换盘信号。(4)仿真软驱自检工作完成后才可以进行主机与U盘的数据交换工作,“写选通”为真且“写保持”无效时,才允许驱动器执行写操作,即可接受“写数据”脉冲。(5)索引脉冲在主轴转动后产生,主轴每转一圈产生一个脉冲,控制器也可用它来检测主轴转速。图61.2MB5.25英寸软驱接口结语本设计从实用性出发,在USB接口设计中采用MCU和USB接口分离的方式,大大降低了成本和软件开发工作量,使得产品在保证性能之外更具成本优势。仿真软驱的设计方案选择驱动器0选择驱动器3索引磁头加载/使用保留/密度选择驱动器控制器选择驱动器1选择驱动器2马达接通方向选择步进脉冲写数据写选通00磁道写保护读数据选面1准备就绪/换盘24681002468100120140160180202224262830323412014016018202224262830321406还可以根据实际应用需求进行适当的修改和扩充。按照本文的设计,只能使用U盘的前1.44M或者720K,使得U盘空间大大浪费,通过添加键盘显示电路和人机接口可以实现仿真软驱支持多个虚拟1.44M或720K软盘,充分利于U盘空间的同时也方便文件管理。此外,随着无线通信的发展,对于数控设备台数较多的企业,使用无线通信接口,实现工业现场总线联网是一个必然趋势,在仿真软驱上添加无线传输模块通过无线通信将计算机设计的数据文件直接传输到每台生产设备上,实现数控设备的网络化管理,使得企业在管理提高效率的同时还具有防止数据文件流失和泄密的优点。目前支持一个和多个虚拟软盘的仿真软驱已通过大量的应用测试(主要集中在绣花机方面),并得到用户的肯定,无线版仿真软驱的优化是下一步的重要研究内容。参考文献【1】李广军.实用接口技术.电子科技大学出版社.1997【2】于英民于佳.计算机接口技术.电子工业出版社.2004【3】USB总线接口芯片CH375中文手册[Z].