新闻中心

EEPW首页 > 模拟技术 > 设计应用 > CY7C68013和FPGA的数据通信

CY7C68013和FPGA的数据通信

作者:时间:2013-12-04来源:网络收藏
TOM: 0px; WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; MARGIN: 20px 0px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT: 14px/25px 宋体, arial; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; PADDING-TOP: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">  ALE(IOB0):例如ALE的上升沿,通过IOA端口向传送控制指令,例如,当IOA=01H时,表示系统开始工作,A/D和D/A转换器开始启动。当IOA=88H时,表示转换结束,将不再接收或发送数据,当IOA=02H时,表示将读取内状态寄存器的内容,由读取两状态标志位的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模式下数据的传输,由于是由内部的CPU核来实现的,因此,对固件程序的编写显得比较重要,总的来说,固件程序的编写有两种方式:一是由于的内部集成有增强型8051内核,对熟悉8051汇编语言的用户来说,可以直接利用会汇编语言编写高效的固件代码;二是Cypress公司EZ-USB FX2系列配套有现成的固件程序框架函数,用户需要时,只需添加相应的用户程序即可。当然,用户程序中的的实现也就是如何完成通信协议的过程。

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

  

CY7C68013和FPGA的数据通信

  

CY7C68013和FPGA的数据通信

  

CY7C68013和FPGA的数据通信

  5 总结

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

fpga相关文章:fpga是什么


数字通信相关文章:数字通信原理


通信相关文章:通信原理




评论


相关推荐

技术专区

关闭