c语言sscanf函数的用法是什么
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~