基于Nios II实现AVALON总线与USB控制器的接口设计

网友投稿 265 2022-11-21

基于Nios II实现AVALON总线与USB控制器的接口设计

1. 引言

AVALON总线拥有多种传输模式,以适应不同外设要求。基本传输模式是在主从外设之间进行单字节,半字或字的传输。AVALON总线还支持一些高级传输模式,例如支持流操作,支持延时操作,支持多个主设备同时访问。

2.用户自定义逻辑模块设计流程

图1 SOPC设计流程

这里以常用的USB控制芯片SL811HS为例详细介绍如何在Nios II中添加用户自定义模块。图2是系统结构图。

3.1 USB控制芯片介绍[2]

3.2 USB接口模块设计

图3 自定义USB接口模块

在Quartus II中对模块功能进行仿真,由于SL811HS是数据/地址复用端口, Nios II对其缓冲区写的时候,先把地址通过nios_write_data[7..0]发送到ad[7..0],然后把数据通过nios_write_data[7..0]发送到ad[7..0]。从SL811HS缓冲区读数据的时候,先把缓冲区地址通过nios_write_data[7..0]发送到ad[7..0],然后通过ad[7..0]读数据到nios_read_data[7..0]中。如图4所示。

图4 接口转换模块仿真波形

3.3添加用户自定义逻辑

当SOPC Builder生成一个Nios II处理器设计时,会完成以下工作:

生成Nios II处理器系统的硬件设计文件*.ptf,可以用这些文件来创建Nios II系统硬件。

3.4 SL811HS读写函数的实现

#define ADDR_REG 0x00900c00

#define DATA_REG 0x00900c04

sl811_read(u8 reg)

{IOWR(ADDR_REG,0,reg);

return IORD(DATA_REG,0);

}

sl811_write(u8 reg, u8 val)

{IOWR(ADDR_REG,0,reg);

IOWR(DATA_REG,0,val);

}

4.总结

SOPC技术利用库,可以快速生成嵌入式系统。同时,可以方便地把用户自定义的逻辑加入到系统中,体现了用设计嵌入式系统的灵活性。此外,还可以通过SOPC Builder向处理器中添加用户自定义的指令,扩充了Nios II指令集。对于原型机的开发,是一种很好的开发方法,且能够快速地生成最终产品,有效地缩短了开发周期。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何使用PHP在页面中原样输出HTML代码
下一篇:js中如何利用正则匹配多个全部数据
相关文章

 发表评论

暂时没有评论,来抢沙发吧~