新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM-Linux的数据采集和网络传输系统设计

基于ARM-Linux的数据采集和网络传输系统设计

作者:时间:2016-09-12来源:网络收藏

8片MAX1308由两片Altera公司的Cyclone II系列FPGA芯片控制,每片FPGA内部分为两个模块,一个为AD转换控制模块,另一个为FIFO存储模块。最终两个FIFO存储器分别挂在S3C2440芯片的BANK3和BANK5上,通过数据总线,ARM处理器可以读取FIFO内的数据。ARM与FPGA(FIFO)接口电路如图4所示。

基于ARM-Linux的数据采集和网络传输系统设计

其中的FIFO由Quartus II提供的IP核手动配置,自动生成。FIFO的输出通过一组三态门与ARM的数据总线相连,三态门的EN端分别由nGC S3和nGCS5控制,同时nGCS3和nGCS5通过反相器分别与两个FIFO的rdreq端相连,这样ARM通过这两个片选信号可同时打开FIFO的输出通道以及读使能信号rdreq。nOE信号通过反相器分别与两个FIFO的rdclk端相连,来提供FIFO的读时钟信号。

3 软件设计

3.1 AD控制部分

MAX1308采用内部时钟的采样时序图如下图5所示。其中双向并行接口DO~D7用来设置8位配置寄存器,以激活和禁止相应的采样通道。内部时钟模式下,启动一次转换,需在采样时间(tACQ)内将CONVST置为低电平,此时T/H捕获信号,在CONVST上升沿转换开始。一旦能够读取转换结果,转换结束信号(基于ARM-Linux的数据采集和网络传输系统设计)将给出一个低电平脉冲。当最后一个通道的转换结果可以被读取时,最后转换结束信号(基于ARM-Linux的数据采集和网络传输系统设计)跳变到低电平。

基于ARM-Linux的数据采集和网络传输系统设计

FPGA内部按照上述时序逻辑实现采集模块后,再连接到FIFO模块上,然后通过一组三态门挂接到ARM数据总线上。

3.2 设备驱动

设备驱动程序在内核中扮演着特殊的角色,它使某个特定硬件响应一个定义良好的内部编程接口,这些接口完全隐藏了设备的工作细节。用户的操作通过一组标准化的调用执行,而这些调用独立于特定的驱动程序。将这些调用映射到作用于实际硬件的设备特有操作上,则是设备驱动程序的任务。

3.2.1 FIFO设备驱动

用户空间驱动程序具有很多优点,比如可以和整个C库连接,可以使用通常的调试器调试驱动程序代码,而不用费力地调试正在运行的内核等。

该驱动程序是通过mmap函数将外设FIFO存储器映射到用户空间的一段内存中,进而对其进行操作。映射一个设备意味着将用户空间的一段内存与设备内存关联起来。mmap函数定义如下:

#include

void*mmap(void*addr,size_t len,int prot,int flag,int filedes,off_t off);

此函数将在进程的虚拟地址空间(地址起始为addr,长度为len字节)和与文件描述符fd关联的文件(偏移量为off,长度为len字节)之间建立映射。映射后系统对设备的读写操作就等同于对用户内存的读写。

基于ARM-Linux的数据采集和网络传输系统设计

程序中需要对S3C2440的存储器控制寄存器进行配置,主要是BANKCON3、BANKCON5和BWSCON 3个寄存器,使BANK3和BANK5数据总线宽度为16位,WAIT等待信号无效,合理配置读写信号周期。这些同样是通过存储映射的方式实现。

3.2.2 DM9000网络设备驱动

2.6.30.4内核中的网卡驱动相当完善,其中包含DM9000的驱动,所以随着内核的移植,该驱动就可以直接使用了。

3.3 网络应用程序

Linux OS之所以得到广泛应用的一个主要原因是其卓越的网络应用。是一种实现网络不同主机进程间通信的一种机制。

为了数据的可靠传输,我们选择基于面向连接的TCP通信协议进行应用层的开发,面向连接的通信流程如图7所示。

基于ARM-Linux的数据采集和网络传输系统设计

众所周知,使用多进程的服务器模型有利于程序的健壮性。下位机作为服务器端,设置listen()侦听客户端的连接请求,针对每个Soc ket连接请求,利用fork()函数产生一个子进程处理到来的连接,在子进程中完成客户指令的接收与判断、数据的处理与发送等,并关闭服务器侦听,在父进程中关闭客户端的连接,采用多进程思想,解决多客户端问题。上位机应用程序为字符界面,将接收到的数据以文件的形式保持起来。

4 系统测试实验

用SG1110数字合成信号发生器给采集板输入一个频率为4 kHz,峰峰值为8.6 V的正弦波信号,如图8(a)所示,在单通道采集的模式下将采集的一段数据传送给网络上的客户端,并将此数据用MATLAB程序画图如图8(b)所示。

基于ARM-Linux的数据采集和网络传输系统设计

由上图可以看出,还原后的图像为一正弦波,每个周期的采样点数约为160个,采样频率接近640 kHz,符合预期结果。

5 结论

嵌入式远程系统是一种新的将分散信息集中处理的有效方法,对工业控制的数据集中处理、环境监控等有非常重要的应用价值。该系统的创新点是在用户空间实现了FIFO设备驱动,最大的特点是实现了多达64通道的模拟,实现了多数据源采集的要求。系统的便携化程度高,实用性和智能性强,潜在的经济效益巨大。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭