目前智能仪器已广泛应用于科研和工业生产当中,但是许多仪器分散在不同的地理位置上,不易操作和维护,并且实时跟踪性能差,人为误差大,数据无法保存,另外大量高档仪表价格相当昂贵。为解决上述难题,在计算机的提示下完成操作,可以减少人为因素造成的损坏,并提高测试数据的准确度。由于智能仪器是RS 232接口,上位机用的是USB接口,所以还需由FPGA实现RS232与USB之间的接口转换。由于FPGA可以并行处理,集成度高,可用资源丰富,所以利用FPGA进行数据处理,可以减少上位机的工作量,减少数据处理的时间,还可以缩短设计周期,减小板卡体积,以便于集成到其他板卡上。
1 控制系统及接口简介
1.1 系统功能
在整个系统中,上位机可以实时对系统进行监控,并下发相应的命令。智能仪器传出的数据通过RS 232接口传送到FPGA,FPGA根据上位机下发的命令对这些数据进行判决、处理,然后经过USB接口上传给上位机,再由上位机对FPGA处理过的数据进行显示、存储等操作。
1.2 USB接口芯片简介
本设计采用的是CYPRESS半导体公司的EZ-USBFX2系列芯片CY7C68013。CY7C68013是一款高性能USB 2.0微控制器,它提供了全面的USB 2.0外围设备解决方案。工作模式有Port,Slave FIFO和GPIFMaster三种,本方案采用Slave FIFO模式。在该模式下,外部控制器(如FPGA)可像对普通FIFO一样对FX2中端点为2,4,6,8的数据缓冲区进行读/写。FX2内嵌的8051固件的功能只是配置Slave FIFO相关的寄存器,以及控制FX2何时工作在Slave FIFO模式下。一旦8051固件将相关的寄存器配置完毕,且使自身工作在Slave FIFO模式下后,外部逻辑(如FPGA)即可按照Slave FIFO的传输时序,高速地与主机进行通信,而在通信过程中不需要8051固件的参与。
1.3 RS 232接口简介
RS-232C标准(协议)的全称是EIA-RS-232C标准。EIA-RS-232C是用正负电压来表示逻辑状态的,与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够与计算机接口或终端的TTL器件连接,必须使EIA-RS-232C与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。该设计用的是MAX3232芯片。
RS 232的数据传输格式如图1所示。
RS 232传输格式包含起始位(1 b)、有效数据位(8 b)、奇偶校验位(0~2 b)、停止位(1 b)。传输线在空闲时为高电平,因此起始位为低电平,停止位为高电平。奇偶校验位可设置为奇校验、偶校验或不校验,有效数据位是从低位开始传送。
2 FPGA设计
2.1USB接口时序
在Slave FIFO方式下,外部逻辑与FX2的连接信号如图2所示。
在Slave FIFO模式下,CY7C68013芯片为端口2,4,6,8提供满空标志位FLAGA,FLAGB,FLAGC,FLAGD。IFCLK为FX2输出的时钟,可作通信的同步时钟;SLCS为FIFO的片选信号;SLOE为FIFO输出使能;SLRD为FIFO读信号;SLWR为FIFO写信号。对FPGA来说,4个端口分别为4个FI-FO。FPGA检测4个满空标志位来分别对相应的FIFO进行读/写。FPGA可以选择同步或异步读/写,在该设计中采用异步读/写。在异步Slave FIFO写时,时钟由FPGA提供。数据在SLWR的每个有效一无效的跳变沿时被写入,FIFO写指针递增。异步Slave FIFO读时,FIFO读指针在SLRD的每个有效一无效的跳变沿时递增以改变数据。 |