USB1.1 OTG控制器设计与实现——基于Verilog的IP核开发

需积分: 17 17 下载量 95 浏览量 更新于2024-08-10 收藏 957KB PDF 举报
"控制器模块设计-基于89c51的ic卡读写器设计与实现" 本文主要探讨了基于89C51微控制器的IC卡读写器的控制器模块设计,尤其是串行接口引擎模块。该模块是读写器与外部设备(如USB设备)通信的关键部分,涉及到了USB 1.1 OTG(On-The-Go)标准。 3.3.1 串行接口引擎模块 该模块包含了两个关键工作模式:接收和发送。在接收模式下,它从USB收发器接收数据,经过一系列处理,包括检测总线状态、识别速度、同步域检测、NRZI解码、位填充去除、CRC校验检测和串并转换。这些步骤确保了从总线接收的数据的完整性和准确性。而在发送模式下,模块从主机或设备控制器接收数据,然后进行并串转换、CRC生成、NRZI编码、位填充插入、SYNC和EOP产生等操作,确保数据能正确无误地发送到收发器。 USB总线状态的检测和速度识别依赖于D+和D-数据线的信号电平,这些状态包括差分0、1、J、K、SE0、Idle、Resume、Suspend和EOF。NRZI编码是一种数据编码方式,其中'1'表示电平不变,'0'表示电平变化。位填充是为了防止连续多个'1'导致编码中的静默区,确保数据正确传输。接收端需要去除位填充,发送端则需要添加位填充。 包(Packet)是USB数据传输的基础,通常包含同步域、PID、地址、有效数据和CRC等字段。数据以低有效位在前,高有效位在后的顺序传输,同步域“KJKJKJKK”用于确认包的开始。 此外,该文还提到了一个硕士论文,涉及USB 1.1 OTG控制器的IP核设计。作者张明在导师王礼平指导下,采用Verilog硬件描述语言,遵循IP核设计流程,完成了设计。文中详细讨论了USB规范、OTG协议,分析了控制器的主要功能,并进行模块化设计和系统功能仿真,最终在Synplify环境中进行了面向FPGA的综合,评估了资源消耗,并提出了优化建议。 本文涵盖了基于89C51的IC卡读写器的控制器设计,特别是串行接口引擎的详细工作原理,以及USB 1.1 OTG控制器IP核设计的关键步骤和方法。这些知识点对于理解和实现USB通信设备的硬件设计至关重要。