首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
ISPl362在基于FPGA的红外成像系统中的应用
来源:本站整理  作者:佚名  2010-04-09 11:33:55




2.3设备响应请求
    当芯片工作于设备控制器模式下时,设备端的工作就是被动的执行主机发来的请求。请求类型的确定是通过读取out缓冲区里的setup包来完成的。一个setup包(即请求包)有8个字节,根据其中第二个字节能够判断出请求类型。由流程图可以看出,枚举过程中主机要发出获取描述符、设置地址、设置配置等请求,对于获取描述符的请求,还需要进一步判断是获取何种描述符的请求,这可以通过请求的第三,四字节的值来确定。一旦确定了请求类型,设备就可以确定该如何响应请求。当确定主机发的是获取何种描述符请求之后,固件就将相应的描述符的值写入in端点的端点缓冲区。写in端点缓冲区的方法与寄存器配置类似,其时序如图4所示。


    图4中ISP_A0为高时对应的ISP_Data(即0001)是写in缓冲区的命令,ISP_A0为低时对应的ISP_Data为写入的数据,其中第一个数据即(0012)为要写入的数据的长度,其余为设备描述符。当需要发送数据时,只需使能in缓冲区即可。若是设置地址请求,固件的工作就是将地址值取出来写入设备地址寄存器,然后再向主机发送一个空包。

3 LISB固件代码实现
    在FPGA上用Verilog HDL实现上述功能时,难点有:一是多驱动问题;二是输入/输出端口的使用问题。由于程序中有多个模块同时作用于ISP1362的控制信号线以及数据线,如果处理不当,可能会产生同一时刻对同一信号有两次或两次以上的赋值的现象。为了避免这种情况的发生,就要在适当的时刻给信号线附上高阻,即当一个模块在驱动某一信号时,应避免其他模块也在这一时刻驱动这一信号。芯片的16位数据线为双向,这可以减少管脚的数量,节省资源。但在使用时若不注意,同样容易出错。inout管脚在使用时一般用三态门来实现,当inout端口不输出时,要将三态门置高阻。这在具体的软件实现中可以使用一个连续赋值(Assign)语句来实现,通过连续赋值语句将一个条件操作符赋值给这个输入/输出变量。该设计的代码中,双端口用语句ISP_Data=en? data:16’hzzzz实现其输入/输出功能。当en信号为高时,ISP_Data作为输出信号使用,其值即为data的值;当en信号为低时,ISP_Data作为输入信号使用。因此,程序中就可以根据需要通过控制en信号的高低来实现ISP_Data的输入/输出使用。

4 结语
    采用高性能的Altera的FPGA中的EP2C70F672C6作为主控器件,实现了ISP1362在设备控制器工作模式下的功能,为解决红外图像处理系统中的数据传输问题提供了新的途径。在具体的软件实现中,成功地解决了多驱动问题和双向端口的使用问题。验证结果表明,程序的稳定性好、可移植性高,并且容易实现、易于维护。在成功地进行了枚举的过程之后,加载上设备驱动程序即可实现数据向主机以12 Mb/s的传输。

上一页  [1] [2] [3] [4]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:204,343.80000 毫秒