基于niosii嵌入式处理器的sopc的接口接口_第1页
基于niosii嵌入式处理器的sopc的接口接口_第2页
基于niosii嵌入式处理器的sopc的接口接口_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于niosii嵌入式处理器的sopc的接口接口

1sopc系统的接口改造目前,sopc技术已成为套接字机设计的趋势。Altera公司的SOPCBuilder能方便的构建一个基于FPGA的SOPC系统。用户在系统构件库中挑选所需的构件,设置相关参数,SOPCBuilder自动生成一个以Avalon总线连接各个模块的SOPC系统。SOPCBuilder的构件库中包含了一些常用的外设,对于一些库中没有提供的器件,需用户自定制接口接入。当此接口需完成一些具体的功能时,则需要用HDL语言描述定制模块,如果只需接入总线,则可采用直接与总线相连或通过I/O口的方式接入,以构建一个SOPC系统。前者利用SOPCBuilder中的新模块定义功能定制一个时序上的转换逻辑,将外设直接接入总线,并编写相关的软件对其进行操作,当对Avalon总线规范及外设控制时序很了解时,这是一种很方便的方法。后者通过I/O口将外设接入总线,在硬件的接入上很直观,但需要根据外设的控制时序去编写相关的控制时序模拟程序,对时序的要求比较严格。本文将用以上两种方法将USB控制芯片372接入Avalon总线,并在FPGA上实现。2引脚选择引脚CH372芯片在本地端提供了通用的被动并行接口,包括:8位双向数据总线D7~D0、读选通输入引脚RD#、写选通输入引脚WR#、片选输入引脚CS#、中断输出引脚INT#以及地址输入引脚A0。CH372芯片的读写时序图如下:A0=0WR=0写入数据,A0=1WR=0写入命令,A0=0WR=0读出数据TASWR/RD前的地址输入建立时间(建立时间)典型值大于5nsTWW/TRW有效的写/读选通脉冲WR/RD的宽度(等待时间)典型值90到10000nsTAHWR/RD后的地址输入保持时间(保持时间)典型值大于5ns3avalon总线数据码解析Avalon总线是Altera公司发布的一种将处理器及周边外设互联的一种片上总线。将外设CH372直接接入Avalon总线,是根据Avalon总线规范和外设的时序控制要求,通过在SOPCBuilder中利用Newcomponentedit自定义模块,在singnals和interface选项做出相应的设置,使得此模块符合Avalon总线规范和372的时序要求,再编写相关软件进行读写。3.1ch372信号对应于avalon线的信号类型3.1.1avalon表面名称的由来Avalon总线规范不要求外设必须包含哪些信号,它只定义了外设可以包含的信号类型,如地址,数据,时钟等。Avalon总线规范不规定Avalon外设的命名规则。不同信号类型的作用是预先定义的,而型号的名称则是由外设决定的。Avalon总线规范给出了这样一些预先定义的型号类型:全局时钟clk,来自Avalon总线模块的地址线address,读使能read,读数据信号readdata,写使能write,写数据信号writedata,中断请求irq等。3.1.2脚结构输入引脚对于我们要接入的CH372有这样一些信号线:8位双向数据总线D7~D0、读选通输入引脚RD#、写选通输入引脚WR#、片选输入引脚CS#、中断输出引脚INT#以及地址输入引脚A0。要想将其接入Avalon总线,则需要做一些逻辑上的转换,让其符合Avalon总线规范,在SOPCBuilder中的newcomponentedit的设计如下:3.2ch372序列和avalon线程读取序列一致3.2.1avalon线程序记录时间Avalon总线端口的传输也要遵循一定的方式,以下只介绍和372读写相关的几种模式。(1)固定等待周期的写入过程如上图,等待了几个周期及address,chipselect等信号稳定了几个周期后,从端口才捕捉来自Avalon总线的数据信号。(2)记录数据在使用作用前后和稳定一个时间的情况,即财产有一些外设要求address,chipselect,writedata各种控制信号需要在写使能信号write有效前后能稳定一段时间,分别叫做建立时间和稳定时间。读过程和写过程相同,只是没有保持时间。3.2.2avalon总线运行要求如前所述,372的读写也有一定的要求,如图1,2所示,其写过程要求在写使能信号有效前和失效后分别有建立时间TAS和保持时间TAH,并且写使能信号有一个持续时间TWW,写使能信号有一个持续时间就对应于固定等待周期;其读过程要求在读使能信号有效前有建立时间TAS,并且读使能信号有一个持续时间TWW,读使能信号有一个持续时间也对应于固定等待周期;要使得Avalon总线的读写时序和372的一致,需在newcomponentedit中作相应的设置,其SOPCBuilder中设计如下:以上为newcomponentedit中interface的设置,setup,hold分别对应建立时间TAS和保持时间TAH。readwait,writewait对应读写使能信号有一个持续时间,这样设置使其能同时满足Avalon总线要求和372的时序要求。3.3软件完成以下为写数据的函数,写命令读数据函数与其相似,易于类推:4基于接口的时代流程通过I/O口的方式将外设接入总线是一种较为直观的方法,将外设的各个引脚通过通用I/O口接入总线以构建系统,对外设的操作则需根据外设的时序图编写相关的驱动程序以供应用程序调用。4.1i/o口的配置用I/O口的方式将372接入Avalon总线,即将372的各个控制端口接到系统的通用I/O口上,SOPCBuilder的库中有现成的通用I/O口,通过在SOPCBuilder中设置,其I/O口可配制成输出口,也可以配制成输入口或是通过捕捉不同电平情况来检测中断的端口,此外,还可以配制成既可输入又可输出的双向端口。为了将372接入,根据372信号线,在SOPCBuilder添加了data_pio,a0_pio,cs_pio,wr_pio,rd_pio,int_pio这样几个I/O口。其中data_pio为双向端口用于传递数据,a0_piocs_pio,wr_pio,rd_pio为输出端口用于输出控制信号,int_pio为输入端口用于检测中断。4.2信号时间的确定wr的加入顺序,a0,b满足372的读写时序要通过软件模拟来实现。如前所述,372的读写时序主要是对各信号的加载顺序、持续时间的要求。为了保证写入的数据有效,在写过程中信号加入顺序如下a0,data,wr。wr信号的有效时间通过延时实现,有效时间参考TWW及有效的写选通脉冲WR的宽度,也就是等待时间,其典型值90到10000ns。以下为写命令的子函数。5基于社会变量的方法本文介绍了两种将同一外设接入Avalon总线的方法,是除需用硬件描述语言定制模块接入情况的两种有效方法,两种方法均在cycloneIIEP2C20240C8的FPGA上实现,试验结果符合要求。直接接入需要对外设的时序控制要求及Avalon总线规范很了解,但代码量比较少;而用I/O口的方式接入则比较直观,但需要软件去模拟外设的时序。两种方法各有千秋,用户可根据实际外设情况以及自己对外设相关知识的了解情况来选择合适的方法。本文作者创新点:对比介绍了两种将外设接入Avalon总线的方法,并以CH372为例验证了两种方法

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论