FPGA与PC的USB2.0通信实现
更新时间:2023-12-01 23:18:01 阅读量: 教育文库 文档下载
- pc与fpga通信推荐度:
- 相关推荐
FPGA使用USB2.0接口同PC进行同步传输
FPGA端完整的应用方案
参考官方的AN61345文档《Designing with EZ-USB FX2LP Slave FIFO Interface using FPGA》,同时附有verilog,VHDL,芯片固件库函数。
参考官方的《EZ-USB Technical Reference Manual》文档 基于CY7C68013A模块,使用SLAVE-FIFO模式
要先整理好数据传输的流程和编写好状态机,主要参考文档2
一系统硬件
内部框图
硬件连线
引脚说明:
SLRD SLWR SLOE FIFOADR[1:0] FD[15:0] FlagA/FlagB/ FlagC/FlagD IFCLK PARASET[2:0] 端口配置
FIFO读使能,同步模式可以和SLOE连在一起 FIFO写使能
允许FIFO数据输出使能 端口地址选择 16-bit data bus.
端口2输出空标志 =1可读出,输出满表示有数据,可读出。
端口6输入满标志 =1可写入,输入空表示缓冲器没有剩余空间可写入了 48 MHz and is generated by FX2LP.用于同步 我自己添加的,以便后面增加额外功能或工作方式。
端口2 地址00,输出,四缓冲*512K Bytes 端口6 地址10,输入,四缓冲*512K Bytes
(16位的接口应该每来一次数据和每写一次数据需要256次操作(或者严格按照时序要求来))(也即是说数据传输的最小单位是512K Bytes,最后一次数据传输可能小于它,要么填充假数据要么给PKTEND一个负脉冲(低有效)。同步模式下PKTEND pulse插入时间没有限制(只要缓冲器可用))
各种状态FPGA产生的基本控制信号: 状态 写入数据 写等待: 读数据 读等待 标志 FLAGD=1 FLAGD=0 FLAGA=1 FLAGA=0 读使能 slrd = 1 slrd = 1 slrd = 0 slrd = 1 输出使能 sloe = 1 sloe = 1 sloe = 0 sloe = 1 写使能 slwr = 0f slwr = 1 slwr = 1 slwr = 1 端口地址 addr = 10 faddr = 10 faddr = 00 faddr = 00 写入数据过程:
The FPGA monitors the Full flag of EP6 (Flag D) and Sync signal. FPGA continuously writes incrementing data into the FIFO when both Flag D and Sync signals are high(同步时钟下降沿时数据有效,因而同步时钟上升沿时写入数据,下降沿时读出数据). While writing data into the EP6 FIFO, the FPGA pauses the writing as soon as the Full flag gets asserted, and resumes the
writing when the flag gets de-asserted.读出数据过程和写入类似,只是针对的信号不一样。 (asserted指信号的active状态,这里指低电平,de-asserted指信号invalid状态,这里指高电平)
同步模式特点详细描述
1,IFCLK可以有usb芯片产生,也可FPGA产生,最好是内部产生,我修改程序内部产生, CLKOUT也可输出一个48M的时钟,因为它输出了一个48M的时钟。The FIFOADR[1:0] 选择端口,我们用到了2和6,分别为00和10。16位总线宽度时FD[15:8] 使用芯片的Port D,FD[7:0] 使用芯片Port B。通过FIFO’s WORDWIDEbit, (EPxFIFOCFG.0)寄存器设置。注意传输奇数个包的情况,
2,FLAGA, FLAGB, FLAGC, and FLAGD指示FIFO empty和full的状态或者indicates that a FIFO has filled toa user-programmable level.外部设备主要监视输入端口的满状态和输出端口的空状态。寄存器配置:The FLAGA, FLAGB, and FLAGC pins can operate in eitherof two modes: Indexed or Fixed, as selected via the PINFLAGSABand PINFLAGSCD registers。The FLAGD pinoperates in Fixed mode only.在fixed模式下The condition and FIFO are userselectable. For example, FLAGA could be configured toreport FIFO2’s ‘empty’ status, FLAGB to report FIFO4’s‘empty’ status, FLAGC to report FIFO4’s ‘programmablelevel’ status, and FLAGD to report FIFO6’s ‘full’ status。默认都是低电平有效但可以通过FIFOPINPOLAR寄存器设置反转。 3,控制引脚 (SLOE, SLRD,SLWR, PKTEND, FIFOADR[1:0]) SLOE (Slave OutputEnable), SLRD (Slave Read), SLWR (Slave Write),PKTEND (Packet End), and FIFOADR[1:0] (FIFO Select).‘Read’ and ‘Write’ are from the external master’s point ofview;SLOE and SLRD are active-low; their polaritiescan be changed via the FIFOPINPOLAR register.
在同步传输模式下,SLRD和SLOE可连在一起, the FIFO pointer isincremented on each rising edge of IFCLK while SLRD is asserted.异步传输模式下, theFIFO pointer is incremented on each asserted-to-deassertedtransition (上升沿)of SLRD.同步模式下data on the FD busis written to the FIFO (and the FIFO pointer is incremented)on each rising edge of IFCLK while SLWR is asserted. Inasynchronous mode, data on the FD busis written to the FIFO (and the FIFO pointer is incremented)on each asserted-to-deasserted transition(上升沿) of SLWR.
4,PKTEND 包结束控制,比如默认包大小是512K,如果传输小于512K的数据要么填充假数据要么给PKTEND一个负脉冲(低有效)。同步模式下PKTEND pulse插入时间没有限制(只要缓冲器可用),异步模式下SLWR and PKTEND should not be pulsed at the same time. PKTEND should be asserted after SLWRhas been deasserted for the minimum deasserted pulsewidth. In both modes, FIFOADR[1:0] should be held constantduring the PKTEND pin assertion.
时序图和仿真波形(参考) 1, 写入数据开始
写入数据时序
2, 写入数据结束
发送一个短数据包时
3, 读出数据开始
4,读出数据结束
实例
官方提供的程序和上面描述的硬件连接有些出入,上面的连接应该是有效的,关键处理好同步时钟信号和读写控制信号和状态监视。上面的实现是简单的,不知道为什么官方是另一种连接方式,
1,官方例程硬件连接图,程序参考文件
我们如何应用这个库呢?
1, 验证FPGA和USB模块同电脑的基本数据传输 2, 编写上位机验证数据传输
3, 编写上位机进行复杂,大量数据的传输
4, 考虑我们需要添加的特殊功能和是否需要修改固件 我的工作:
1, 主要熟悉用VC编写上位机通信软件,学习官方提供的USB操作的库函数,固件库几乎
不需要修改
2, 数据的接收和发送测试
3, 针对我们这个项目实现需要的数据传输,接收,图片和普通数据文件操作
我们如何应用这个库呢?
1, 验证FPGA和USB模块同电脑的基本数据传输 2, 编写上位机验证数据传输
3, 编写上位机进行复杂,大量数据的传输
4, 考虑我们需要添加的特殊功能和是否需要修改固件 我的工作:
1, 主要熟悉用VC编写上位机通信软件,学习官方提供的USB操作的库函数,固件库几乎
不需要修改
2, 数据的接收和发送测试
3, 针对我们这个项目实现需要的数据传输,接收,图片和普通数据文件操作
正在阅读:
FPGA与PC的USB2.0通信实现12-01
物流公共信息平台建设项目可行性研究报告09-12
村级矛盾纠纷处理流程图之一05-03
伟大的母爱作文500字记叙文04-28
空中游览运行如何实施规范化管理02-25
我局采取多种形式开展劳动保障监察执法工作03-19
岗位大练兵活动总结12-20
逍遥游理解性默写09-19
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 通信
- 实现
- FPGA
- USB
- 2.0
- 法律风险提示
- 信用证的内容(详解) - 图文
- 自然拼读法在小学英语教学中的应用分析
- Lesson Plan - 图文
- 长沙市同心援公益(义工联合会)发起人潘勇事迹简介
- 绵阳芙蓉汉城可行性分析研究报告1337306716
- 辽宁省沈阳市东北育才学校2018-2019学年高一下学期第一阶段考试(期中)英语试卷 Word版含解析
- 中小学教师家访记录表参考样式3篇
- 人力资源管理试卷A
- 区残联规章制度汇编
- 外科护理病历
- 2017-2022年中国标准型吸风烫台行业运行模式及发展前景预测报告(目录) - 图文
- 年产68万吨焦化厂硫铵工段的初步设计
- 四年级下语文教材解读-人类的老师-苏教版
- 2018届中考数学全程演练含答案:第42课时 阅读理解型问题
- 2019年江苏省盐城市中考语文试题(word版,含答案)
- ESFP - 10了解自己:MBTI性格测试
- 完全成本法与变动成本法的比较及其结合应用问题(1)
- 2011年宣州区生活饮用水卫生监督检查工作总结
- 汽轮机原理习题(作业题答案)