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

发布者:火星叔叔最新更新时间:2006-10-23 来源: 单片机及嵌入式系统应用关键字:协议  串行  总线  控制 手机看文章 扫描二维码
随时随地手机看文章

引言

通用串行总线(USB)具有快速、双向、大批量传输、廉价以及可实现热插拔等优点,Cypress公司的FX2系列芯片之一CY7C68013是最早符合USB2.0标准的微控制器,集成了符合USB2.0的收发器、串行接口引擎(SIE)、增强型8051内核以及可编程的外围接口,实现基于USB2.0的接口数据通信,CY7C68013可配置成3种不同的接口模式;Ports(端口模式)、GPIF Master(可编程接口模式)和Slave FIFO(主从模式),其中,后两种模式利用其内部集成的可以独立于微处理器而自动处理USB事务的硬件(USB核),数据的传输通过执行USB本身的协议来完成,微处理器可不参与数据传输,从而使数据的传输速率大大地提高,同时也简化了固件代码的编写。后两种方式由于克服了微处理器这个带宽"瓶颈",因而广泛应用于大批量的数据传输,如图像、视频等信号的采集。

而对前一种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开发的工程人员来说,也不失为一种有效的开发方式。

关键字:协议  串行  总线  控制 引用地址:Ports模式下CY7C68013和FPGA的数据通信

上一篇:基于DSP控制的全数字UPS逆变器设计
下一篇:融合双处理器的高性能微处理器MPC8260

推荐阅读最新更新时间:2024-03-30 21:22

基于CAN总线GaAs光电阴极制备测控系统的研究
0 引言   GaAs光电阴极是一种负电子亲和势光电阴极,具有量子效率高、发射电子能量和角度分布集中的优点,因而在微光像增强器、半导体敏感器件、自旋极化电子源等众多领域得到了广泛的应用 ,但GaAs光电阴极的制备过程却极为复杂,对制备工艺和条件都有严格要求。目前GaAs光电阴极的制备都主要依赖熟练操作人员进行手工操作,这种操作方式不尽浪费大量人力物力,而且制备质量和效率得不到保证。而在制备过程中普遍采用的在线光谱响应测试仪 ,只能用于阴极制备后的光谱响应曲线测试,评估阴极的制备质量,它对阴极制备过程中的许多其它信息量,如真空度、铯源和氧源电流等,都没有实时采集功能,更没有对铯(氧)源电流的计算机控制和制备过程的自动化,从而大大的制
[测试测量]
基于CAN<font color='red'>总线</font>GaAs光电阴极制备测控系统的研究
基于STM32步进电机多细分控制的设计
本文主要介绍了一种基于STM32的混合式步进电机控制方案,STM32产生PWM(脉宽调制信号),利用PWM完成DAC转换,通过PWMDAC的输出电压实现对步进电机的多细分控制。该设计相比利用DAC数模转换芯片的设计方案具有电路简单,费效比高的优点,而且可实现步进电机十六分之一步的驱动控制,精度较高。 1、硬件设计 硬件设计框图如图1所示,主要由PC上位机给STM32F103发送控制命令,通过STM32F103控制A3988,从而驱动两个步进电机转动。其中,STM32F103是意法半导体公司生产的基于ARMCortex—M3内核的微控制器,内核架构先进,性能优越,主频可达72MHz,执行效率高,具有较高的运算能力及数据处理功能,
[单片机]
基于STM32步进电机多细分<font color='red'>控制</font>的设计
基于PLC控制的自动配料系统研究与应用
0.引言   自动配料系统是精细化工厂生产工艺过程中一道非常重要的工序,配料工序质量对整个产品的质量举足轻重。自动配料控制过程是一个多输入、多输出系统,各条配料输送生产线严格地协调控制,对料位、流量及时准确地进行监测和调节。系统由可编程控制器与电子皮带秤组成一个两级计算机控制网络,通过 现场总线 连接现场 仪器仪表 、控制计算机、PLC、 变频器 等智能程度较高、处理速度快的设备。在自动配料生产工艺过程中,将主料与辅料按一定比例配合,由电子皮带秤完成对皮带输送机输送的物料进行计量。PLC主要承担对输送设备、秤量过程进行实时控制,并完成对系统故障检测、显示及报警,同时向变频器输出信号调节皮带机转速的作用。 1.自动配料系统的构成  
[嵌入式]
STM32串口的485收发控制角的电平控制
关于485电平控制,如果在发送中断处理后边直接电平转换,会导致发送数据不全,如果加入一定延时,然后在进行电平转换,可以解决这个问题,但略显笨重。解决方法是开启发送完成中断:USART_IT_TC(Transmission complete interrupt)可以完成精准控制,需要注意的是,这个中断没发送完一个字节都会产生,因此建议在最后一个字节装入发送缓存器后再开启。 void USART1_IRQHandler(void) { CPU_INT08U rx_data; CPU_INT08U tx_data; if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
[单片机]
英特尔和百度签署移动互联网战略合作协议
英特尔信息技术峰会,2013年4月11日,北京 ——今天,英特尔公司和百度公司共同签署了一份面向移动互联网的战略合作协议。双方将组建联合创新实验室,加强对前后端技术的研发,打造一个更具竞争力的智能手机云平台。双方还将积极服务于广大移动应用开发者、手机制造商等合作伙伴,一起打造智能云手机的生态环境,为中国用户提供高品质的移动生活体验。 目前,各大厂商纷纷瞄准“云”端建设,手机市场也掀起了“云手机”的浪潮。无论是从技术实力还是市场资源方面来看,英特尔与百度的此次合作都将为智能云手机的发展注入全新动力。根据签署的战略合作协议,双方将共同组建联合创新实验室,加强在英特尔架构上的技术研发和应用创新,以打造一个更完备、更具市场竞争力的智能手
[网络通信]
单片机无功动态补偿控制器的设计
  为了提高供电系统及负载的功率因数,降低设备容量,减少电能损耗和稳定受电端电网电压,在用户侧的低压配电系统中均设有无功补偿控制器。它根据检测的功率因数或无功功率,按照一定的控制规则投/切电容器,实现对线路无功功率的实时补偿。根据用户的要求和依据电力部行业标准,我们研制开发了单片机无功动态补偿控制器。该控制器可以控制八组电力移相电容器;具有反时限特性、过电压保护功能和工作状态指示等。 1 系统硬件设计 1.1 系统框图和原理简介   控制器以单片机为核心,其结构框图见图1所示。单片机通过电压、电流取样电路和A/D转换电路测得负载电流、电网电压以及电流、电压的相位差,通过计算得到功率因数和需要补偿的无功功率。然后根据每组电容器的容量、
[单片机]
单片机无功动态补偿<font color='red'>控制</font>器的设计
MPC555微控制器与汽车电子
引言 7 w& }: E5 L4 X3 @# F* p; X& d' l8 q0 y 随着 汽车 工业的飞速发展, 汽车 在控制、通信和 网络 方面的要求越来越复杂。以32位微 控制器 及嵌入式实时操作 系统 为基本 技术 特征的新一代 电控 单元ECU(Electronic Control Unit)成为 汽车 电子 应用的主流。32位微 控制器 MPC555以其强大的 性能 在 汽车 电子 等领域得到了广泛的应用。 0 j A I+ x5 L0 J1 ?3 |+ C ) Q& o9 }9 N2 y& L# j6 _3 I 1 MPC555微控制器简介 : y x6 @3 ~6 B MPC555微控制器是Motorola
[汽车电子]
总线(1-Wire Bus)技术及其应用
摘要:介绍了美DALLAS公司推出的单总线技术的原理和信号传输方式,说明了单总线通信协议,最后以单总线器件iButton在安防系统中的应用为例,给出了单总线的数据传输方法。 关键词:单总线 单总线协议 iButton 1 引言 目前常用的微机与外设之间进行数据传输的串行总线主要有I2C总线、SPI总线和SCI总线。其中I2C总线以同步串行2线方式进行通信(一条时钟线,一条数据线),SPI总线则以同步串行3线方式进行通信(一条时钟线,一条数据输入线,一条数据输出线),而SCI总线是以异步方式进行通信(一条数据输入线,一条数据输出线)的。这些总线至少需要两条或两条以上的信号线。近年来,美国的达拉斯半导体公司(DALLAS SE
[传感技术]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved