基于USB接口的水量数据采集系统的设计与实现
艺制作的可编程器件,其编程数据存储于器件的SRAM存储器内。这是一种易失性的存储器,在系统掉电时,FPGA芯片中的逻辑将会丢失,芯片功能随即消失,上电后需要重新对其进行配置。利用此功能可以灵活地改变FPGA芯片中的逻辑结构。这是一种动态配置过程,这种方式称为ICR方式(in circuit reconfigurable)。
本系统中对FPGA的配置采用PS(passive serial,即被动串行)方式。通常采用的是以下两种配置方法:配置数据来自于ALTERA公司生产的串行配制器件或系统控制器,如 等,系统上电时可对ACEX1K系列芯片进行配置;配置逻辑也可以通过ALTERA公司生产的Master Blaster、Byte Blaster MV或Bitblaster下载电缆进行手工下载。但是前者会增加系统的成本,而后者又很不方便。
上面的程序给出了这一次读过程中读地址指针的变化情况。随着读地址指针的变化,缓冲器中的数据顺次输出到数据总线D[7…0>上去。程序中 …0>为缓冲器的读地址指针,
…0>是缓冲器的输出端口,
…
是
芯片的数据总线
…
。
3.5 功能的实现
在 芯片与
芯片进行数据传输的同时,双方需要一些握手信号来协调传输过程。为此,我们选择了
芯片中的
总线主控制器作为
端口,用来传输一些必要的控制和状态信息。
为了与 芯片中的
总线主控制器配合工作,我们在
芯片中编写了一个
总线从模块,使得
总线上的数据传输能够顺利进行。根据
总线传输规范,我们设定了一个状态机
,它共有如下7个状态:
。图6给出了此状态机的状态图。
图6 总线状态机流程图
由图6可以看出,在开始条件( 产生后,
由空闲(
状态进入地址状态(
。我们在
中指定了两个寄存器用于存储从
总线上发送来的控制信号和将要发送到
总线上的状态信号,它们分别是控制寄存器
‥0
和状态寄存器
‥0
,这两个寄存器地址的高4位均为“1110“。同样,我们可以把1
芯片中所有由
总线寻址的寄存器的高4位地址都设定为“1110”。如图6所示,
总线在地址期内发送的高位地址只有为“1110”时,1
才会产生响应。这样做的好处是便于扩充其它
总线设备。
总线在地址期内发送的最低地址用于指定随后的数据传输是主要设备读还是主设备写,高电平表示主设备读,低电平表示主设备写。读写状态转换如图6所示。因此,8位地址中可以用作寻址
端口的地址位为
‥
。
4 结束语
本文介绍了数据通信解决方案中数据传输通道和 功能的实现。实验证明,两个模块配合工作即可实现数据的正常传输,从而顺利地将
转换器的输出信号经
总线传送到上位机去。这个解决方案基于
总线设计并且结合
来进行控制,充分利用了
总线数据传输速率高、
设备可热插拨等功能和
速度快、效率高、配置灵活的特点。经实践证明,它是一个功能完备、高效稳定的解决方案。
- 基于引言DSP平台的USB接口设计(11-30)
- 低成本USB接口密钥的设计方法(12-21)
- USB接口类型(12-15)
- C#实现USB接口的程序代码(12-14)
- USB接口的基础理论知识(12-14)
- USB接口标准及常用USB接口(12-13)