基于CY7C68013的存储器测试台的USB通信设计

2014-09-26 08:58李俊萍张艳兵
电子器件 2014年2期
关键词:固件存储器读数

李俊萍,靳 鸿,张艳兵

(中北大学电子测试技术国家重点实验室,仪器科学与动态测试教育部重点实验室,太原030051)

基于CY7C68013的存储器测试台的USB通信设计

李俊萍,靳 鸿*,张艳兵

(中北大学电子测试技术国家重点实验室,仪器科学与动态测试教育部重点实验室,太原030051)

为了对飞行器存储器进行测试,需存储器测试台与飞行器存储器之间完成数据通信。由于USB总线技术具有成本低、数据传输速度快、抗干扰能力强等的优点,这里选用USB总线来完成测试台与存储器之间的通信,用CY7C68013芯片作为USB通信的控制芯片。选用 Keil μvision2作为 USB通信软件设计的开发环境。通过上位机软件编程来控制测试台CY7C68013与信号源模块,CY7C68013与固态存储器之间的通信。通过对USB通信硬件电路和软件程序的设计,最终完成测试台的USB通信设计。经测试,达到了设计的目的和要求。

存储器;USB;CY7C68013;通信

USB总线可以很方便与PC机进行连接,并且USB接口可以为外界提供电源[1]。这里为了完成上位机,存储器,测试台之间的通信,用CY7C68013作为USB通信的控制芯片,使得开发过程更简单和廉价,同时也大大提高了开发效率,缩短了产品的研发周期[2]。

1 USB通信总体设计

USB总线通信模块在地面综合测试台工作过程中起连接作用,它将信号源模块(这里的测试信号由两片MSP430来产生)、供电模块分别与上位机(这里的上位机软件用VB编写)连接起来,实现上位机与下层各个模块之间的通信。USB总线通信模块框图如图1所示。

图1 USB总线通信模块框图

当采用低速读数模式时,PA0和PA1控制两个继电器产生15 V起飞信号和28 V启动存储信号,当固态存储器收到起飞信号后,CY7C68013经过串口0给固态存储器发送RS-485读数命令,固态存储器每次收到读数命令后发送开始读数命令,然后经数据总线传输至上位机并存储。

当采用高速读数模式时,PA0和PA1控制两个继电器产生15 V起飞信号和28 V启动存储信号,当固态存储器收到起飞信号后,CY7C68013经过串口0给固态存储器发送RS-485读数指令,固态存储器每次收到读数命令后发送开始读数命令,高速读数采用的是GPIF模式,GPIF产生一个地址(GPIFADR[8:0]),驱动FIFO数据总线,然后,在CTL0输出拉低后,等待一个外部提供的握手信号(RDY0)变低,当RDY0信号返回高电平时,GPIF也将CTL0带回高电平,数据经PB[7:0]从高速读数口传输至上位机并存储。

2 USB通信的硬件设计

2.1 硬件电路设计

USB通信模块由主控芯片 CY7C68013、芯片MAX3491、I2C总线电路及一些外围电路组成。

2.1.1 主控芯片CY7C68013配置设计

实现USB接口的数据通信,CY7C68013可配置为3种模式:端口模式、GPIF模式、Slave FIFO模式[3-5]。地面测试台在数据回读的过程中采用了低速读数和高速读数两种模式。低速读数采用RS-485差分信号传输,数据传输距离长(≥100 m),采用开发简单且开发周期短的端口模式;高速读数数据传输距离短(≤5 m),由于GPIF模式采用的是FX2的管道连接方法,单片机的CPU不参与数据传输,开发速率较高,所以高速读数时采用 GPIF模式。

2.1.2 RS-485通信电路设计

考虑到地面综合测试台可能需在高温环境下工作,RS-485适用于环境相当恶劣的场合以及传输距离比较远的场合,并能很好的保证数据传输的稳定性。这里采用全双工通信的RS-485接口芯片MAX3491。MAX3491有一个输出脚可以直接与CY7C68013的 TxD 脚相连,一个输出脚与CY7C68013的 RxD 脚相连,当接收到来自CY7C68013的信息时,可立刻通过传输线驱动器将TTL逻辑电平转换成差动电压发送出去,同时,当接收到差动电压时,可立即转换成逻辑电平给CY7C68013处理。

2.1.3 I2C电路设计

FX2的 I2C总线控制器可以完成两个目标:第1,用于管理串行EEPROM接口自动运行,在上电时决定枚举的模式;第2,CY7C68013一旦开始工作,I2C总线控制器就作为一般用途,固件程序能够对它进行存取操作。

I2C总线的两个引脚SDA和SCL上各自连接了一个2.2 K的上拉电阻,用来提高总线输出的驱动能力,同时适当的搭接EEPROM的地址线。搭接引导EEPROM地址线的具体值的表格如表1所示。本设计采用的是EEPROM为8K的ATMEL24C64,三根地址线A0、A1、A2搭接为1、0、0。

表1 搭接引导EEPROM地址线的具体值

3 USB通信的固件程序设计

所有基于微控制器及其外围电路的功能设备的正常工作都离不开固件的参与,固件的作用就是辅助硬件或者说是控制硬件来完成预期的设备功能口[6]。

本模块中固件程序的主要功能有:

(1)完成所需设备的初始化工作和一些特殊寄存器初值的设置。

(2)设备的重新枚举。包括模拟设备的断开和重新连接、响应主机的请求、完成对主机的配置任务。

(3)完成CY7C68013固件程序对数据接收和发送的端点配置,以保证 USB设备对数据的正确收发。

(4)中断响应。USB接口在设备枚举、响应主机请求、数据收发等过程中会产生中断请求,并能正确的处理中断请求,保证USB设备的正常工作。

(5)外围电路的控制,完成USB对RS-485通信接口和MSP430F1611的状态命令的收发。

3.1 端点配置

本设计在高速读数过程中,采用的是端点模式,数据双向传输,因此选择EP0、EP2、EP6来进行数据传输,EP0不需要配置寄存器,被固定配置为有效IN/OUT控制端点;固件程序将EP2设置为IN端点,将其分配2 K的缓冲区,用来把读取的数据传输给计算机;固件程序将EP6设置为OUT端点,将其分配512 byte的缓冲区,用来将计算机的命令发送给固态存储器。

3.2 通用可编程接口(GPIF)设置

这里使用8位数据线实现CY7C68013与固态存储器MSP430F1611之间的数据通信,使用CTL0控制输出信号作为固态存储器Flash的读时钟信号rclk,使用RDY0判断固态存储器的读数使能标志。

图2为GPIF读配置波形图。一个波形由多达7个可编程状态构成,它们是S0~S6以及一个特定的空闲状态S7,当GPIF程序转移到空闲状态时,则波形终止。每个状态可以是两个基本类型之一:非判决点(NDP)和判决点(DP)。对于非判决点,它在一个单位IFCLK周期中,具有一个可编程固定的持续时间;对于判决点状态,先判断采集信号上的操作产生的结果,若结果为逻辑1,则通过转移到一个状态,若结果为逻辑0,转移到不同的状态,其中IFCLK是默认的内部时钟48 MHz。

图2 GPIF读配置波形图

在上述GPIF读配置波形中,S2和S6为判决点状态。对于判决点S2,当检测到为逻辑0时,表示Flash的写地址和读数命令未完成,不可读数,跳入S0状态,等待读数;当检测到为逻辑1时,表示Flash的写地址和读数命令完成,可以读数,跳入S3状态,开始读数。对于判决点S6,当检测到TCXpire为逻辑0时,表示未读完Flash当前页中的2 048 byte的数据,跳入S3状态,继续读数;当检测到TCXpire为逻辑1时,表示已读完Flash当前页中2 048 byte的数据,跳入Idle状态。然后进入下一个读数状态,直到数据全部读取完毕。

3.3 软件程序的开发和数据传输的实现

USB通信模块的程序是用Keil μ vision2编写,计算机读数处理软件采用Visual Basic编写。USB通信模块的程序流程图如图3所示。

3.3.1 USB通信模块控制信号源的固件程序

图3 USB通信模块程序流程图

使用CY7C68013单片机串口UART1接口,接收到VB相应指令后开始发数,发数内容为控制MSP430F1611发送相应频率的模拟信号和数字信号(共5 byte)。数据格式采用标准的串行方式,低位先发送,高字节先发送,数据发送波特率为115.2 kbit/s,1位起始位,8位数据位,1位停止位,无校验。

CY7C68013单片机每次接收到VB的指令B5后,CY7C68013单片机发送相应的命令给MSP430F1611。具体命令定义见表2。其中XXH的定义具体见表3。

表2 UART1与MSP430F1611通信命令定义

表3 UART1与MSP430F1611通信命令XXH具体定义

MSP430F1611收到CY7C68013发送的相应命令后,把最后一个有效命令字节XXH通过异步串口发送给CY7C68013。CY7C68013收到相应的数据并上传给计算机VB程序,VB程序中比较得出本次命令是否发送成功。

3.3.2 USB通信模块控制数据读取的固件程序

RS-485接口读数:使用CY7C68013串口UART0接口,给固态存储器发送RS-485读数指令,发送内容为读数起始位置和数量(以MB为单位)。数据格式采用标准的串行方式,低位先发送,高字节先发送,数据发送波特率为115.2 kbit/s,1位起始位,8位数据位,1位停止位,无校验。

固态存储器每次收到读数地址指令后将收到的数据发送给上位机CY7C68013。表4为RS-485通信命令定义。

表4 RS-485通信命令定义

CY7C68013接收到固态存储器返回的数据后,发送开始读数命令,立即进入低速读数状态。表5为开始读数命令。

表5 开始读数命令

CY7C68013单片机内部集成的USB2.0的SIE能完成大部分USB2.0协议的处理工作,从而减少了用户对繁杂的USB协议的处理。用户在使用该单片机与外围设备进行数据传输时,只需直接利用GPIF接口来实现与外围设备之间的逻辑连接,就可以进行高速数据的传输[7]。

高速读数:使用串口UART0接口,给固态存储器发送读数指令,发送内容为读数起始位置和数量(以MB(Mbyte)为单位)。数据格式采用标准的串行方式,低位先发送,高字节先发送,数据发送波特率为115.2 kbit/s,1位起始位,8位数据位,1位停止位,无校验。

固态存储器每次收到读数地址指令后将收到的数据发送给上位机CY7C68013。表6为GPIF通信命令定义。

表6 GPIF通信命令定义

CY7C68013接收到固态存储器返回的数据后,发送开始读数命令,立即进入高速读数状态。表7为开始读数命令。

表7 开始读数命令

启动存储信号(28 V):CY7C68013收到计算机VB发的命令B7后,把PA 1置高,并保持50 ms。

起飞信号(15 V):CY7C68013收到计算机VB发的命令BD后,把PA0置高,并保持50 ms。

4 USB通信系统的测试

将存储器,测试台,上位机连接起来。当USB接口接入PC后,首先进行PC的设备搜索,从USB端获得设备的VI D/PI D以及USB芯片的工作方式;然后PC机通过得到的VI D/PI D获取设备的驱动,保证设备的工作。与此同时,USB芯片上电开始,MCU开始从EZ PROM中获取MCU的工作状态、采用的工作模式、数据传输方式、所用到传输方式端点的大小以及传输方向,并对接口器件进行相应芯片寄存器的初始化[8]。系统上电以后,计算机通过USB接口给信号源模块发送命令,信号源模块接收到发送的命令以后产生模拟信号和数字信号。计算机通过USB接口模块发送命令控制数据存储,利用CY7C68013串口通信给固态存储器发送1路起飞信号,1路启动存储信号,固态存储器接收到启动存储信号后开始采编各路模拟信号、数字信号,采编完成后自动停止存储。存储完成后,发送1路起飞信号。计算机通过USB接口模块发送命令控制读数接口模块,利用CY7C68013串口通信给固态存储器发送读数命令,进入读数状态。低速读数时,地面综合测试台和固态存储器之间用RS-485标准串行接口进行数据传输;高速读数时,地面综合测试台和固态存储器之间用普通8位并行接口进行传输。

经测试,USB的通信设计实现了预定的功能和目的。下面是测试过程中的一些数据。

计算机读取的频率为1kHz的速变信号的波形如图4所示。

图4 上位机读取的模拟信号源数据

计算机读取的RS-422数字量的数据如图5所示。

图5 上位机回读的数字信号量数据

5 结束语

本文通过对存储器测试台的USB通信设计,完成了存储器,测试台,上位机之间的通信要求。对于存储器测试台功能和性能的完善具有重要意义,同时对存储系统的测试也起到了桥梁作用。

[1] 肖峰,刘明.USB接口的RS485信号模拟器设计[J].单片机与嵌入式系统应用,2009(6):53-55.

[2] 颜荣江,阴大兴.嵌入USB控制器的51系列单片机EZ-USB[D].单片机与嵌入式系统应用,2002,(1):39-40.

[3] 钱峰.EZ-USB FX2单片机原理、编程及应用[M].北京:北京航空航天大学出版社,2006:3.

[4] Cypress Semiconductor Corporation.CY7C68013 EZ-USB FX2TMUSB Microcontroller.USA,2002.

[5] Cypress Corp.EZ-USB(R)Technical Reference Manual.www.cypress.com,2011.2.15.

[6] 边海龙,贾少华.USB2.0设备的设计与开发[M].北京:人民邮电出版社,2004:1.

[7] 林刚勇,马善农,许邦莲.CY7C68013在数据传输中的应用[J].微计算机信息,2007(10):76-78.

[8] 李强,伍坚,姚冬苹.CY7C68013芯片的USB接口固件设计[J].单片机与嵌入式系统,2006(10):70-72.

李俊萍(1986- ),女,汉族,山西省吕梁市孝义人,在读硕士研究生,研究方向为动态测试与智能仪器,347806919 @qq.com;

靳 鸿(1974- ),女,汉族,河北阜平人,博士,副教授,研究方向为动态测试系统的微型化及智能仪器,jinhong @nuc.edu.cn;

张艳兵(1977- ),男,汉族,山西省太原市人,讲师,主要研究方向为计算机控制,信号与信息处理等,zhangyanbing @nuc.edu.cn。

Design of Communication about the Memory Test Bench Based on CY7C68013

LI Junping,JIN Hong*,ZHANG Yanbing
(National Key Laboratory for Electronic Measurement Technology,Key Laboratory of Instrumentation Science and Dynamic Measurement,North University of China,Taiyuan 030051,China)

In order to fully test the aircraft memory,it’s needed to complete data communication between memory test bench and aircraft memory.USB bus technology has the advantage of cost,speed of data transmission,anti-interference ability and so on,so it is selected to complete the communication between the memory and the test bench. CY7C68013 chip is selected as the USB communication control chip.Keil μvision2 is selected as USB communication software design development environment.The communication between the test bench CY7C68013 and signal source module,CY7C68013 and solid state memory is controlled by PC software program.The final completion of the USB communication design of the test bench includes the design of USB hardware circuit and software program. It achieves the purpose and requirements of the design on test.

memory;USB;CY7C68013;communication

10.3969/j.issn.1005-9490.2014.02.042

TN919.1

A

1005-9490(2014)02-0361-06

2013-07-12修改日期:2013-08-11

EEACC:6100;7210B

猜你喜欢
固件存储器读数
静态随机存储器在轨自检算法
读数
读数
读数
读数
基于固件的远程身份认证
提取ROM固件中的APP
存储器——安格尔(墨西哥)▲
一种通过USB接口的可靠固件升级技术
基于Nand Flash的高速存储器结构设计