Ports模式下CY7C68013和FPGA的数据通信》及本站其它信息均来自网络!
行业新闻技术文章解决方案电路图产品库厂商库供应信息求购信息外刊文摘
 技术文章 -> PCB电源单片机DSP设备与仪器EDA放大/转换存储器嵌入式接口与连接通讯与网络模拟技术其它技术文章
 解决方案 -> 汽车电子光电与显示测试测量计算机与外设仪器仪表通讯与网络视像设备消费电子工业控制其它解决方案
 产 品 库 -> 存储器嵌入式单片机电源通讯网络接口电路DSP视频音频EDA/PLD显示光电电测仪表传感与控制其它产品
 首页 -> 技术文章 -> 通信与网络 -> 正文

Ports模式下CY7C68013和FPGA的数据通信

而对前一种Ports(端口模式),文献中介绍较少,作为一种最基本的数据传输方式,其数据传输主要由固件程序完成,需要CPU的参与,因此数据传输速率比较低,适用于传输速率要求不高的场合,而且由于FX2内部集成有8051内核,对一个刚从单片机的开发过渡到USB开发的工程人员来说,也不失是一种有效的数据传输方式,现以一个工程开发的实例来详细说明一下在Ports模式下如何实现数据一双向传输。

1 设计要求

主机通过USB接口以4KB/s的速率分别向两个通道发送数据序列,并由外设的D/A转换器完成数据的转换,同时,由外部的两个A/D转换器以400KB/s的采样率完成数据的采集,采集后的数字信号也经USB接口传送至主机存储,其中,USB接口芯片采用Cypress公司的CY7C68013,FPGA采用Altera公司的EP1C6Q240C8,图1为其数据的多路传输系统框图。

2 USB 数据多路传输硬件

2.1 EZ-USB FX2 CY7C68013

EZ-USB FX2 CY7C68013支持USB2.0数据传输,其内部结构及功能在其他文献已有详细的介绍,现针对此芯片在本电路的作用进行简要的说明,在设计中主要利用CY7C68013的Ports接口模式完成多路数据的传输,USB和FPGA之间数据和状态的传输由CY7C68013的IOA接口完成,IOB接口中的IOB0-IOB2口线作为USB和FPGA之间的控制线。CY7C68013内部的EP2端口设置为512字节双缓冲、OUT、块传输,作为主机向外设发送数据的缓冲区;EP6端口设置为512字节双缓冲,IN、块传输,作为外设向数据传送数据的缓冲区。

2.2 FPGA芯片EP1C6Q240C8

FPGA采用Altera公司的Cyclone 芯片EP1C6Q240C8。在这里FPGA的作用有3个:其一,给两路D/A转通道各分配两个128×8位的RAM区,作为从主机向外设发送数据的缓存。其二、给两路A/D转换通道各分配两个512×8位的RAM区,作为从外设向主机传送数据的缓存,由于两路数据的传输和采集共用一个8位数据总线,因此,数据总线要针对不同的接收和发送来回切换,因而每个通道的两路分别采用两个RAM块,起到双缓冲作为,以防传输时数据"溢出"的。其三,由于数据总线要针对不同通道来回切换,控制切换的过程由状态寄存器来完成,因此,要在FPGA内部设置一个状态寄存器,所设置的状态寄存器仅包含两位,分别标识两个通道的数据RAM的"满"或"空"的状态,以确定当前应该为哪一个通道发送或接收数据。

3 通信协议的制定

采用CY7C68013的Ports模式实现数据通信,与FIFO和GPIF模式不同,后两种模式在数据传输方面主要由USB核完成,所需的控制信号由CY7C68013自身来提供。而对于Ports模式,控制信号没有专用的口线,那么就必须用其他通用的I/O接口来完成,在此,采用IOB0-IOB2作为USB和FPGA之间的控制线,由于自定义的3条线是通用口线,没有实际的意义,因此在USB和FPGA之间首先要制定两者的通信协议,即给这3条口线赋以实际的功能。

ALE(IOB0):例如ALE的上升沿,通过IOA端口向FPGA传送控制指令,例如,当IOA=01H时,表示系统开始工作,A/D和D/A转换器开始启动。当IOA=88H时,表示转换结束,FPGA将不再接收或发送数据,当IOA=02H时,表示CY7C68013将读取FPGA内状态寄存器的内容,由读取两状态标志位的0或1,来判断两个通道内的4个数据缓冲器的"满"或"空"状态,若D/A通道的任一个数据缓冲区为"空",则由FPGA向状态寄存器的第一个状态标志位内填1;否则填0;同理,若A/D通道的任一个数据缓冲区为"满",则由FPGA向状态寄存器的第二个状态标志位内填1;否则填0;当IOA=03H时,表示主机将通过USB向D/A通道发送转换数据,每次发送256个字节,前128字节为D/A转换的1通道,后128字节为2通道,当IOA=04H时,表示主机将要接收由A/D通道传送来的数据。

RD(IOB1):利用RD的上升沿通过IOA端口读取D/A转换器转换来的数据。

WR(IOB2):利用WR的上升沿通过IOA端口向A/D转换器发送由主机传送来的数据。

4 软件的实现

USB与FPGA在Ports模式下数据的传输,由于是由CY7C68013内部的CPU核来实现的,因此,对固件程序的编写显得比较重要,总的来说,固件程序的编写有两种方式:一是由于CY7C68013的内部集成有增强型8051内核,对熟悉8051汇编语言的用户来说,可以直接利用会汇编语言编写高效的固件代码;二是Cypress公司EZ-USB FX2系列配套有现成的固件程序框架函数,用户需要时,只需添加相应的用户程序即可。当然,用户程序中的数据通信的实现也就是如何完成通信协议的过程。

在此,采用后者来完成CY7C68013和FPGA的数据通信,实现数据通信功能的部分软件代码如下(以下代码均可写在框架函数void TD_Poll(void)内):


5 总结

CY7C68013和FPGA的数据通信中,采用基本的Ports接口模式,利用自动指针方法,通过数字示波器的观察,完成1KB的传送,大约需要750μs。与另外两种模式相比,虽然数据传输的速度较低,但作为一种数据传输模式,尤其对刚从单片机开发过渡到USB开发的工程人员来说,也不失为一种有效的开发方式。

()
Google
 >> 最近更新
 • 上海贝尔阿尔卡特TriplePlay解决方案
 • 普天TD-SCDMA整体解决方案
 • 烽火通信智能光网络整体解决方案
 • 安捷伦协议分析仪和试验器E2960B系列助力PCIe 2
 • TI数字光端机方案
 • 中兴通讯xPON系统的典型应用
 • 中兴通讯ICT综合解决方案
 • 频谱可用性对移动电视解决方案的影响
 • 完整的GPS+蓝牙接收系统解决方案
 • 基于T-DMB标准的手机电视解决方案
 • 手机中的电容式传感解决方案
 • 泰克整套针对IMS的性能测试和网络监测方案
 • 安捷伦全新多重播放测量解决方案满足多种需求
 • 如何才能提高无线网络覆盖的解决方案
 • 华硕服务器助力中小企业VoIP话音系统案例
 • 傲威通信:电信级虚拟运营商VoIP解决方案
 • 大学城视频直播系统解决方案(上)
 • 大学城视频直播系统解决方案(下)
 • WiMAX中小企业综合接入的优势
 • 校园网IP地址冲突的分析以及解决的方案
Copyright © 2005-2008 555DZ.com 联系站长:55dz@163.com