文档详情

基于Nios II处理器的USB接口设计.doc

发布:2017-12-13约5千字共7页下载文档
文本预览下载声明
摘要:本文以Nios?II嵌入式软处理器为核心,利用USB控制芯片CH372,设计了基于Nios?II嵌入式软处理器的USB通信接口。本文重点介绍了USB接口的硬件实现方案,分析了CH372的通信流程,并编写了下位机和上位机PC的通信程序。与传统的嵌入式设计方案相比,该方案的整体性更好,具有很强的扩展性和灵活性,降低了软件的开发成本以及硬件实现风险。 关键词:Nios?II;CH372;嵌入式处理器;可编程片上系统? 1 引? 言 高速化、便携化成为科学仪器的设计发展方向.而通用串行总线USB接口技术以其使用方便、速度快、成本低等特点,为用户和设计者青睐,大大促进了科学仪器在此方向上的发展。目前工业控制及教学、实验、科研中经常用到的数据传输系统,也越来越多的使用USB接口与主机相连。 本设计主要以Nios II嵌入式软处理器为核心,它是一个32位的处理器提供了USB接口具体的软、硬件设计方案。采用的FPGA(Field Programmable Gate Array)器件是Altera公司的Cyclone II系列EP2C20Q,嵌入式USB控制芯片是南京沁恒公司生产的CH372,实现了USB的通信设计。 2 系统结构设计 本文设计的USB接口用于汽车行业中硬件在回路仿真系统与上位PC机的数据传输。硬件在回路仿真系统的功能是对新开发的汽车防抱死制动系统(Antilock Braking System,(简称ABS))的电控单元(ECU)的性能指标进行测试。系统结构如图1所示。系统内运行汽车动力学模型,读取来自汽车ABS电子控制单元(ECU)的数据,进行处理,并实时改变轮子的速度。轮速的改变通过PWM模块输出至ECU,ECU根据当前的轮速发出相应的数据。如此循环,完成整个模型在刹车过程中的仿真。硬件在回路仿真器在整个仿真过程中的数据通过USB接口发送至上位PC机进行存储显示;上位PC机可以通过USB接口修改汽车动力学模型的各项参数。 系统主要包括以下几个模块: l???????? CycloneII系列FPGA,型号为EP2C20Q,有18752个LEs,239616 bits的RAM, 4个PLLs. 在其内部配置Nios II软核处理器; l???????? EPCS16,串行flash主要存放硬件的配置信息和程序代码,断电后可以保存数据; l???????? SRAM采用双片IDT公司的IDT71V416,系统在SRAM内运行程序; l???????? USB Interface提供了与外部USB控制芯片CH372的接口; l???????? 在SOPC Builder中添加Avalon Tri-State Bridge, 它实现了SRAM,USB Interface与CPU内部Avalon总线的连接[1]; l???????? I/O口接受来自ECU的控制信号; l???????? PWM模块根据本次仿真后的轮子速度发送相应频率的方波信号至ECU。 如图1所示,系统通过PLL锁相环把外部输入时钟倍频到所需的80.0MHZ;通过I/O口与其他设备交换需要处理的数据,把处理过后的数据通过CH372传递给上位机PC机显示。 图1 系统结构功能图 3 USB接口的硬件设计 CH372是一个USB总线的通用接口芯片,是同类产品CH375的功能简化版本,内置了USB1.1通讯中的底层协议,提供一对主端点和一对辅助端点.支持控制传输、批量传输和中断传输。CH372支持SLAVE设备方式(CH375还支持HOST主机方式及其模式下的串行通讯方式)。在本地端,CH372具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接至MCU的系统总线上。并且CH372所需外围电路十分简单,只需要一个晶振和两个电容,芯片的D+、D-引脚可直接与计算机USB接口的D+、D-信号线相连。 CH372内部集成了USB接口SIE、数据缓冲区、被动并行接口、命令解释器、电压调整器、控制传输的协议处理器、通用的固件程序等。芯片内部设置了5个物理端点:端点0是默认端点.支持上传和下传,上传和下传缓冲区各为8个字节;端点1包括上传端点和下传端点,每个端点缓冲区为8个字节;端点2也包括上传端点和下传端点,每个缓冲区为64个字节。芯片具有两种工作模式:内置固件模式和外置固件模式。内置固件模式下屏蔽了相关的USB协议.芯片自动完成标准的USB枚举配置过程.完全不需要本地端的MCU做任何处理,并且CH372自动处理默认端点0的所有事务.端点1的下传端点被禁止.端点1的上传端点为中断端点.端点2的上传端点作为批量数据发送端点,端点2的下传端点为批量数据的接受端点,本地端的MCU只是负责数据交换:在外置固件模式下,由外部MCU根据需要自行处理各种USB请求
显示全部
相似文档