基于Nios II的USB接口模块设计
时间:08-01
来源:互联网
点击:
3.4 SL811HS读写函数的实现
读写操作是Nios II与SL811HS最基本的通信方式,Nios II读SL811HS缓冲区数据的时候,先用IOWR函数把所读缓冲区的地址发送给SL811HS,然后调用IORD函数,得到的返回值就是缓冲区的数据。Nios II往SL811HS缓冲区写数据的时候,先发地址,然后调用IOWR函数把数据发送到SL811HS缓冲区的指定地址。在用户工程中的inc/excalibur.h可以找到USB模块对应地址,根据这个地址来实现SL811HS寄存器的读写操作。Nios II每个寄存器占32位,而地址按字节分配,所以每个寄存器使用4个地址,USB模块对应的地址寄存器地址为0x00900c00,数据寄存器地址为0x00900c04。
#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.总结
本文作者创新点:用verilog编写Nios II用户自定义逻辑模块,实现AVALON总线时序与USB控制器SL811HS的时序转换。同时给出了该模块的底层读写函数。本模块已成功在FPGA上实现视频传输功能。
SOPC技术利用库,可以快速生成嵌入式系统。同时,可以方便地把用户自定义的逻辑加入到系统中,体现了用设计嵌入式系统的灵活性。此外,还可以通过SOPC Builder向处理器中添加用户自定义的指令,扩充了Nios II指令集。对于原型机的开发,是一种很好的开发方法,且能够快速地生成最终产品,有效地缩短了开发周期。
读写操作是Nios II与SL811HS最基本的通信方式,Nios II读SL811HS缓冲区数据的时候,先用IOWR函数把所读缓冲区的地址发送给SL811HS,然后调用IORD函数,得到的返回值就是缓冲区的数据。Nios II往SL811HS缓冲区写数据的时候,先发地址,然后调用IOWR函数把数据发送到SL811HS缓冲区的指定地址。在用户工程中的inc/excalibur.h可以找到USB模块对应地址,根据这个地址来实现SL811HS寄存器的读写操作。Nios II每个寄存器占32位,而地址按字节分配,所以每个寄存器使用4个地址,USB模块对应的地址寄存器地址为0x00900c00,数据寄存器地址为0x00900c04。
#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.总结
本文作者创新点:用verilog编写Nios II用户自定义逻辑模块,实现AVALON总线时序与USB控制器SL811HS的时序转换。同时给出了该模块的底层读写函数。本模块已成功在FPGA上实现视频传输功能。
SOPC技术利用库,可以快速生成嵌入式系统。同时,可以方便地把用户自定义的逻辑加入到系统中,体现了用设计嵌入式系统的灵活性。此外,还可以通过SOPC Builder向处理器中添加用户自定义的指令,扩充了Nios II指令集。对于原型机的开发,是一种很好的开发方法,且能够快速地生成最终产品,有效地缩短了开发周期。
电路 SoC 总线 EDA Altera Quartus USB Cypress 嵌入式 收发器 仿真 Verilog FPGA 相关文章:
- 浅谈E1线路维护技术与应用(01-12)
- R4网络接口和电路域容灾技术(01-05)
- 移动通信网引入IMS的相关探讨(02-21)
- 未来接入网的结构与演进(01-26)
- 电子熔丝在计算机应用中的优势(06-08)
- 高性能、高集成度的TD-SCDMA模拟基带集成电路的实现和应用(01-09)