基于AT91SAM9G10(AT91SAM9261)与FPGA的高精度数据采集系统
来源:互联网 发布:如何兼职软件开发 编辑:程序博客网 时间:2024/05/02 04:45
图<一> 数据采集系统正面图
图 <二>数据采集系统背面图
本数据采集系统是基于ARM9和FPGA通信实现的采集系统。系统由12bit高精度的AD574作为数据采样输入。采样触发电平可以远程设置。数据通过AD采样,然后存储到与FPGA相连接的SDRAM中。在采样完成后,将SDRAM里面的数据保存到通fpga接口的128M的nandflash中去。同事保存的数据可以通过USB控制芯片FT232将nandflash里面的数据读取出来。在fpga EP2C20中,内建一个64K 16bit宽的FIFO,通过控制器将SDRAM里面的数据,压进FIFO。FIFO的外部接口通ARM9 AT91SAM9G10接口。通过EBI接口中的SMC控制器,控制对FPGA中的SRAM进行大量数据的读写。本系统要求一次性能读出8M的数据。系统设计保证能读取32M数据。读取到ARM中的数据会保存在SDRAM中。同时会将数据通过USB WIFI传输到远端的PC机上去。
其中本系统的重点应该是,FPGA和ARM9通信过程中的驱动设计。硬件设计过程中考虑的是 NWR 、NRD、 NCS0、AD2~AD9、D0~D15。在驱动设计过程中,肯能会遇到总线挂起的问题。遇到这类型的问题,首先考虑的是上电顺序问题。如果特别是完成了FPGA中代码设计后,讲FPGA代码下载到ram中,需要是上电下载。这个过程可能导致的,总线挂起。我首先想到的解决问题就是上单顺序的问题。我割掉了板子上面的核心板的供电。结果问题还是没有解决。最后发现两个问题,第一是总线总的数据总线设计问题。对于数据总线应该是可控的模式,在写有效的过程才能输出电平。平时应该为三态。解决完这个问题后,后面还是存在。最后发现NCS0 必须应用。用于保证总线时序正确。
大量数据的读取,本系统设计由于是数据采集系统。所以存在大量数据读写的问题。本来考虑的是连续读写的,结果发现地址偏移和系统偏移都麻烦。最后决定设计过程中改为FIFO做数据缓冲。本思路应用起来相当方便,类似在系统中建立了一个数据管道。sdram能存储多达的数据,这边就能读出多达的数据。使用非常方便。
将大量数据写到ARM9的linux系统的动态内存中,linux内核使用的是linux-2.6.30,然后u-boot使用的是 u-boot1.3.4文件系统使用的是yaffs2。将驱动和应用写进去,通过动态内存分配的方式,分配8M大小的空间,将数据读写出来。最后通过USBwifi传送出去。本系统用于多点远程数高精度数据采集。AD可以换成16bit。
- 基于AT91SAM9G10(AT91SAM9261)与FPGA的高精度数据采集系统
- 基于AT91SAM9G10(AT91SAM9261)与FPGA的高精度数据采集系统
- 基于FPGA的数据采集系统
- 基于USB2.0与FPGA技术的高速数据采集系统的设计
- 基于FPGA的多通道数据采集系统设计
- 基于W5300和FPGA的实时数据采集系统设计
- 基于FPGA和USB2.0的数据采集系统
- 基于MPX2100型压力传感器的高精度数据采集系统
- 基于FPGA与CY7C68013A的数据采集开发板测试(一)
- FPGA综合系统设计(二):基于FPGA的温度采集和以太网传输
- 基于FPGA和USB的高速数据采集及显示系统
- 基于dsPIC30F的高精度数据采集器的研制
- 基于FPGA的160路数据采集系统设计
- 基于FPGA的高精度数字信号发生器
- 基于FPGA的智能温度采集控制器
- 基于蓝牙的家居网关数据采集处理系统的设计与实现
- 基于Zynq的数据采集系统设计与调试(三) —— FIFO的使用
- 基于Zynq的数据采集系统设计与调试(三) —— FIFO的使用
- 启动特定版本的Inventor
- Java回调机制分析
- [028] 微信公众帐号开发教程第4篇-消息及消息处理工具的封装
- 【松鼠科学会】头脑练功房:冥想真的有效吗?
- 我的gvim配置
- 基于AT91SAM9G10(AT91SAM9261)与FPGA的高精度数据采集系统
- 解决ora-01861文字与格式字符串不匹配
- 怎样起多个Notepad++实例
- SSH集成整合
- vmare tool安装 全屏
- 判断两个链表是否相交
- Http/ https 及 ASIHTTPRequest 详解
- MyReport.TD套打引擎
- 字节对齐(强制对齐以及自然对齐)