微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于Nios II的USB接口模块设计

基于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指令集。对于原型机的开发,是一种很好的开发方法,且能够快速地生成最终产品,有效地缩短了开发周期。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top