APP下载

基于Slave FIFO模式的光栅尺精度检测系统接口程序设计

2019-06-03俞显佳

装备制造技术 2019年2期
关键词:传输数据端点上位

俞显佳 ,韩 锦 ,任 湘

(1.广东省佛山市质量计量监督检测中心,广东 佛山528225;2.广东工业大学机电学院,广东 广州 510006)

0 引言

光栅尺在制造行业中具有极其广泛的应用[1-3],因此光栅尺精度检测系统对检测增量式光栅尺产品是否满足精度要求、保证出厂产品合格率具有重要意义。精度检测系统的接口用于连接系统上位机和下位机两个部分,构建两者通信的桥梁,实现两者之间数据传输。一些光栅尺生产制造公司针对其产品开发了光栅尺精度检测的工具套件,但是这些套件往往难以兼容其他公司产品。也有研究探讨设计通用光栅尺精度检测系统[4-5],这些系统多数采用专用数据采集系统(如光栅尺数显系统)进行数据采集,然后上位机进行精度检测分析。但是,这些数据采集系统不能进行多任务处理,采集速度较慢,影响了精度测量效率。

为满足系统数据传输的实时性、可靠性以及降低软硬件开发难度,系统接口采用USB传输方式,接口芯片采用赛普拉斯公司的CY7C68013芯片[6],设计了一种基于Slave FIFO模式的光栅尺精度检测系统的接口程序,涉及固件程序设计和上位机通信接口程序设计。

1 接口硬件设计及原理

系统实现的总体方案如图1所示。上位机软件和FPGA通过USB接口建立连接来控制FPGA的工作方式。当上位机发送检测命令时,固定基准尺和待测尺实时发送位置数据给FPGA,FPGA将采集的位置数据按照通信协议定义的数据格式通过USB接口发送给上位机,上位机接实时处理后得到待测尺误差精度,并以图形化的方式显示误差曲线。USB接口芯片和上位机之间的数据传输采用Slave FIFO模式。

图1 系统实现方案框图

芯片在Slave FIFO模式下,外部逻辑和USB芯片之间接口引脚连接如图2所示。接口芯片作为从设备(Slave),而外部逻辑则作为主设备(Master)。主设备可以使用8位或者16位的数据总线FD,和芯片的内部端点FIFO进行通信。外部逻辑主设备通过FIFOADR[1:0]引脚用来选择哪个片内FIFO连接到FD数据总线上,并被外部主设备控制。芯片内部有4个FIFO可供选择,分别对应端点2、端点4、端点6和端点8。USB接口芯片的数据总线FD是双向的,SLOE引脚来控制输出。

图2 Slave FIFO模式接口引脚

2 系统接口软件设计

2.1 固件程序设计

光栅尺精度检测系统通过配置USB CY7C68013芯片内的多个寄存器来实现Slave FIFO工作模式。主要包括配置IFCONFIG寄存器选取工作模式和同步或异步工作方式的选取、配置接口时钟寄存器IFCLK确定是使用内部时钟或者是外部时钟、配置EP2和EP6相应的寄存器EPxFIFOCFG确定数据传输宽度等。USB接口芯片的Slave FIFO模式是通过SLOE(Slave的输出使能)、SLRD(Slave读信号)、PKTEND(包结束)和 FIFOADR[1:0](FIFO 选择)引脚来进行读写控制[7]。

将端点EP2和端点EP6均设置为同步Slave FIFO工作模式,EP2采用Auto Out方式传输数据,EP6采用Auto In方式传输数据。Slave FIFO模式的初始化一般在TD_Init()函数中执行,该函数在USB上电后只执行一次。程序的部分代码如图5所示。在该段代码中,主要设置了EP2和EP6端点的工作模式和清空各端点数据。

2.2 上位机通信接口程序设计

图3给出了光栅尺精度检测系统的上位机检测通信程序流程。上位机和USB芯片通信借助Cypress为开发者提供的软件开发包,采用CyAPI控制函数类进行程序开发,实现系统上位机软件和数据采集器之间的通信。

图3 通信流程图

本方案采用USB块传输方式传输数据,因此上位机开发采用USB块传输端点控制类CCyBulkEnd Point完成 USB块传输操作。使用库函数中的XferData()完成USB数据传输工作,进而建立上位机与FPGA之间的通信。

3 实验结果与分析

固件程序功能的测试采用了Cypress的固件调试工具EZ-USB Interface进行仿真操作,验证USB端口能否满足数据上传或下发的功能。以验证USB的EP2端口功能实现为例,仿真软件的端点选择EP2端点,传输方向为OUT,传输的数据为512个字节的0x05。单击“Bulk Trans”按钮执行块传输操作,软件工作界面显示成功将指定数量的数据传输到USB端点2的缓冲区中,缓冲区的数据可被其他外围设备读取,说明EP2端点能满足功能要求。如图4所示。

图4 块传输数据发送

上位机初期的调试软件实现了两路光栅尺位置数据的接收和位置显示功能,工作界面如图5所示,说明上位机和数据采集模块之间的通信能满足通信协议要求。

图5 调试阶段主机程序界面

4 基于Slave FIFO模式的光栅尺精度检测系统的优越性

本文采用FPGA设计一种光栅尺精度检测系统数据采集器,实现了基于Slave FIFO模式的光栅尺精度检测系统接口程序,具有以下优点:

(1)具有较强的时序逻辑控制能力,生成光栅尺信号采集时序和触发激光干涉仪采集数据的脉冲,从而完成数据采集的任务;

(2)具有多任务并行处理能力,可以实现多种光栅尺产品的精度检测;

(3)具有极小的延时误差,保证光栅尺位置数据的同步性,严格控制检测误差。

5 结束语

本文设计了基于Slave FIFO模式的光栅尺精度检测系统的接口程序,构建了系统数据采集模块与上位机之间的数据传输通道,并通过相关实验验证了接口各部分设计。光栅尺精度检测系统工作时,FPGA采集模块能将采集的两路光栅尺位置数据发送给上位机进行进一步的数据处理,实现了光栅尺产品精度检测。

猜你喜欢

传输数据端点上位
基于单片机的物联网传输数据高并发读写系统设计
基于SSL VPN实现安全共享疾控单位之间的数据
基于深度强化学习的物联网传输数据实时调度方法
例谈求解“端点取等”不等式恒成立问题的方法
不等式求解过程中端点的确定
苹果专利可采用光纤输出灯光并传输数据将光纤隐藏于车辆部件内
要攻城略地关键要有好筹码,这匹水产动保“黑马”如何能迅速上位?
特斯拉 风云之老阿姨上位
基于ZigBee和VC上位机的教室智能监测管理系统
基丁能虽匹配延拓法LMD端点效应处理