您当前的位置:五五电子网电子知识电子知识资料传感-检测-采集技术高速实吋数据采集智能控制器的设计 正文
高速实吋数据采集智能控制器的设计

高速实吋数据采集智能控制器的设计

点击数:7395 次   录入时间:03-04 11:40:08   整理:http://www.55dianzi.com   传感-检测-采集技术

    3.2 协处理器FPGA控制程序

    协处理器FPGA控制程序分为三个部分:控制ADC数据采集模块、控制读写SRAM模块和FPGA与ARM总线通信模块。其中FPGA与ARM总线通信模块位于顶层模块,控制ADC数据采集模块、控制读写SRAM模块的是底层模块。顶层模块主要是例化底层模块,然后进行数字信号综合处理。

    控制ADC数据采集模块,控制并行ADC比较简单,正常工作需要时钟驱动ADC CLK,在编写ADC采样程序时最为关键的是注意在ADC CLK上升沿读取采集的数据才是稳定可靠的。FPGA会对两路ADC采集的数据进行多点求平均的预处理,主要是滤除50Hz的工频干扰,然后写入SRAM存储。

    控制读写SRAM模块,FPGA写SRAM与读SRAM操作是非常相似的,SRAM型号是CY7C1021DV33,工作时片选信号CE要拉低。读操作时注意OE信号先拉低再拉高,在其上升沿,读取数据。写操作时注意WE信号先拉低再拉高,在其上升沿,写入数据。FPGA读SRAM时需要关注sram_cs(片选)、sram_oe(读控制)、sram_addr(地址线)和sram1_data(16bit数据线),将sram_cs、sram_oe同时拉低,同时给地址线sram_addr赋值,一个时钟后数据端口sram_data的数据就有效了。

    FPGA与ARM通信模块较为复杂,首先,是ARM向FPGA发控制命令。ARM写FPGA内部寄存器时比较重要的信号有:NCS4(片选)、at9260_wr(写信号)、at9260_addr(地址线)、at9260_data(数据线),当NCS4=0&&at9260_wr=0时,意味着ARM9260正在写FPGA寄存器,具体写哪个寄存器由地址信号at9260_addr决定,这样可以将at9260_data写入到相应地址处对应的寄存器。

    其次,ARM读FPGA内部状态寄存器,与ARM写FPGA寄存器是非常类似的,当NCS4=0 &&at9260_rd=0时,意味着ARM9260正在读FPGA寄存器,这时我们将寄存器的值赋给at9260_data即可,at9260_data是双向IO,在不读时需要置为高阻态。

    最后,ARM获取两片SRAM存储的预处理后的数据,ARM的控制信号是NCS5、at9260_rd、at9260_addr、A14,FPGA将这些信号转换为FPGA读SRAM的信号,然后将FPGA读到的数据传给ARM,这里FPGA起到数据中转的作用。

    3.3 主处理器ARM应用程序

    主处理器ARM的应用程序是整个软件系统的控制核心。应用程序由两个线程构成:main主线程和data_recv线程。main主线程主要是创建线程,向FPGA发送控制命令;data_recv线程接收FPGA状态信息和FPGA预处理后ADC采集的数据。应用程序是通过文件描述符fd_fpga来控制和管理协处理器FPGA设备。因为在主处理器ARM移植了操作系统Linux,内核版本为Kernel 2.6.30,所以应用程序的开发是在Linux操作系统Ubuntul2.04 LTS版本下,使用开发软件是Eclipse C/C++。设置Eclipse使用交叉编译器arm-none-linux-gnueabi-gCC和Release配置生成二进制可执行文件。然后可以通过Tftp服务下载到目标板上。

高速实吋数据采集智能控制器的设计与实现

    4 结束语

    本文论述了基于ARM+FPGA体系架构的高速实时数据采集智能控制器的设计与实现。其结合ARM和FPGA两者的优势,具有更好的运算处理性能,丰富的外围标准接口。系统采样率达10MSPS,满足高速实时性的要求。具有很高的应用价值。



上一页  [1] [2] 


本文关键字:控制器  智能  数据采集  传感-检测-采集技术电子知识资料 - 传感-检测-采集技术

《高速实吋数据采集智能控制器的设计》相关文章>>>