基于ARM+FPGA的高速数据采集智能控制器设计
60_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,满足高速实时性的要求。具有很高的应用价值。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)