ARM9数据采集系统

2024-07-07

ARM9数据采集系统(共8篇)

ARM9数据采集系统 篇1

1 引 言

在科研、生产和人们的日常生活中,模拟量的测量和控制是很常见的。为了对温度、压力、流量、速度、位移等物理量进行测量和控制,通过传感器把上述物理量转换成能模拟物理量的电信号,即模拟电信号,将模拟电信号经过处理并转换成计算机能识别的数字量,送入计算机,这就是数据采集[1]。

数据采集的主要问题是采集速度和精度。采集速度主要与采样频率、A/D转换速度等因素有关,采集精度主要与A/D转换器的位数有关。高速数据采集系统的设计需要解决系统在速度、精度、数据存储等方面的矛盾。

2 数据采集系统的结构

本文介绍的数据采集系统采用Samsung公司的S3C2410微处理器。数据采集系统按照功能可分为以下几个部分:模拟信号调理电路,模数转换器,数据采集和存储,时钟电路和系统时序及逻辑电路,如图1所示。

3 数据采集系统关键技术分析

3.1 系统时钟电路设计

时钟信号的稳定性决定了采样系统的性能。相位噪声和相位抖动是反映时钟稳定性的的两个主要指标。其中相位噪声描述时钟信号的频谱纯度,相位抖动直接影响时钟的过零点。通常高速的AD采样系统采用三种时钟源:锁相环、晶振、模拟混频器[2]。由于锁相环一旦失去基准频率,输出频率会立刻跳回振荡器本身的频率,此外当进行频率调整的时候,输出频率会产生抖动,频差越大,抖动会越大,不利与高速AD采样系统。模拟混频器速度慢,只适合在低频的条件下工作。因此,在高速电路的设计中,一般选择高频晶振作为时钟源。

在高速AD采样系统中,取样时钟的稳定性与信噪比的性能密切相关。任何时钟信号噪声及时钟信号相位抖动都会影响采样系统的精度,时钟信号相位抖动对模数转换信噪比(SNR)的影响,可通过公式计算:

undefined

其中:fs为采样时钟频率,N为模数转换器位数,Δclk为时钟信号相位抖动量。

3.2 模数转换器的选择

ADC的选择除了要考虑数据输出电平,接口方式,控制时序,参考源,带宽等因素外,最重要的是根据设计需求计算动态指标:信噪比,采样率,满度范围等,从而可以得到ADC的位数、最高时钟频率、模拟输入范围等参数,既可选择所需要的ADC。本设计根据要求:采样频率20 MHz,实时采样20 Msps,转换位数12位,选择了美国AD公司的AD9224芯片。

3.3 模拟信号调理电路设计

被采样的信号经过模拟信号调理电路的低噪声放大,滤波等预处理后,进入输入通道。由于高速数据采集系统的输入信号多为高频信号,需要进行阻抗匹配和前置放大。因此可以选择高速低噪声信号前置放大器和信号变压器。

信号前置放大器的优势是放大系数可变,信号输入的动态范围大,还可以配置成有源滤波器,但是放大器的最高工作频率和工作带宽必须满足系统的需要,以避免信号失真。

信号变压器的性能指标要优于信号放大器,而且信号失真小。但是信号变压器的信号放大系数固定,输入信号的幅度受到限制。

3.4 硬双缓冲实现连续采集存储

在高速的数据采集过程中,要求数据存储和S3C2410读数据同时进行,在相关文献中提出了一种基于软件系统双缓冲模式的存储技术,但是经过分析发现其在解决连续存储和读数的同时也降低了微处理器的性能[3]。在本设计中提出的基于硬件的双缓冲模式可以很好地解决这个矛盾,其工作原理如图2所示。

图中序号1~6代表工作流程,采集数据经CPLD控制首先由FIFO写入存储器1,当存储器1数据写满后,产生硬件中断信号,该信号有两个作用:通知微处理器系统数据已经准备好,由微处理器从存储器1取回数据放入缓冲区;通知CPLD控制逻辑关闭FIFO与存储器1之间的数据通道,同时开启FIFO与存储器2之间的数据通道,后续数据得以连续无间断的存入存储器1。此时,存储器1的数据正被微控制器读出,当存储器2数据就绪后,同样产生硬件中断信号。如此交替循环就可以实现采集数据长时间连续无断点存储。

3.5 多路同步采集存储时序分析

要完成多路信号的同时存储且数据连续无间断点、无差错,对时序逻辑的设计提出了较高的要求,本文采用的CPLD器件,利用其在结构、密度、功能、速度和性能上的特点,并配合在线可编程(ISP)技术,实现了精确的时序控制,大大减少线路的噪声和功耗[4]。

对多路信号同时锁存,若不允许丢失数据,必须在单个采集时钟周期内把多通道锁存的数据存入同一存储器中。假设同步采样频率为fs,通道数量为m,每个通道的存储时间为tn(n=1,2,3,…,m),则有 t1+t2+t3+…+tm=1/fs,既所有通道存储时间之和为采样周期。

假设t1=t2=…=tm=T,则各通道存储时间相同的条件为:

undefined

从实际角度出发,在一个采集时钟周期内还有其他的时间消耗,如保持时间和转换时间等,假设其他时间消耗为ta,则:

undefined

如果fs的占空比为1∶1,根据ADC实际工作时的情况,可以近似认为ta=1/(2*fs),既在一个采集周期中只有半周期的时间可供存储数据,则单个通道的存储时间:

undefined

根据上面的设计可以实现单采样周期内多路数据存储。

3.6 系统抗干扰设计

高速数据采集系统在抗干扰方面的问题远远大于中低速系统,例如信号连线上的延迟、反射、串扰、器件内部过度干扰和热噪声,电源干扰,地噪声等。轻则影响运算放大器、AD转换器等模拟器件的精度,严重时系统将无法正常工作。因此在高速数据采集系统设计中,整个系统的采集精度主要取决于系统的抗干扰设计。在电路设计初期和制板阶段就必须采取各种措施,以减小或者消除可能的干扰源。本文主要从以下几个方面进行考虑:

(1) 电源设计方面

根据高速电路设计理论,AD采集系统中的电源应当采用线性电源,以避免开关电源引入噪声。为了降低电源阻抗,减小噪声对电源的干扰,通常采用电源层设计,尽可能增大电源面积。在设计每个芯片的供电电路时,在每个芯片的电源附近并联去耦电容和旁路电容。去耦电容为芯片提供局域化的直流。旁路电容可以消除高频辐射噪声和抑制高频干扰。

(2) 接地技术方面

高速数据采集系统的模拟地和数字地应严格分开,最后单点共地。共地点通常选择在ADC芯片管脚所需电流最大的位置,这样可以使大电流对地回流最近,以避免对模拟电路的干扰,提高系统的采集精度。

模拟地和数字地可以通过磁珠连接,由于磁珠的高频阻抗大,而直流电阻为零,能够滤除高频电流减少地线上的高频噪声。

4 结 语

高速数据采集系统一直是测控领域内研究的热点,本文就基于ARM9的高速数据采集系统的结构,详细讨论了系统时钟电路设计、模数转换器的选择、模拟信号调理电路的设计、硬双缓冲实现连续采集存储、多路同步采集存储的时序分析,系统抗干扰设计等关键技术。经实践证明,该设计方案效率是很高的。

参考文献

[1]郭虹,艾延廷,盛元生.数据采集与处理[M].北京:航空工业出版社,1999.

[2]张卫杰,侯孝民.高速大容量数据采集系统设计与实现[J].电子测量与仪器学报,2005,19(4):51-55.

[3]杨坤德,赵亚梅,马远良.高速大容量多通道数据采集系统设计[J].数据采集与处理,2002,17(4):455-458.

[4]宋万杰,罗丰,吴顺君.CPLD技术及其应用[M].西安:西安电子科技大学出版社,1999.

[5]Roland E B.锁相环设计、仿真与应用[M].北京:清华大学出版社,2003.

ARM9数据采集系统 篇2

当前,嵌入式的技术应用越来越广发,从航天科技到民用产品,嵌入式产品的身影无处不在,而这些嵌入式产品的核心——处理器决定了产品的市场和性能。在32位嵌入式处理器市场中,ARM处理器占有很大份额。ARM不仅是一个公司、一种技术也是一种经营理念,即由ARM公司提供核心技术,只出售芯片中的IP授权,采取了别具一格的“Chipless模式”(无芯片的芯片企业),不参与生产,而是由合作厂商去生产具体的芯片和产品。

现在由于存储空间等原因,在嵌入式芯片上编程有较大的困难,选取合适的平台就显得很重要。由于Linux是开放源码的操作系统,吸引着全世界的程序员参与到发展和完善的工作中来,所以Linux保持了稳定而且卓越的性能。由于源代码可以修改、移植,Linux在嵌入式领域中的应用也越来越广。选用Linux作为平台,可以根据具体需要自由裁减源码,打造适合目标平台的环境,编写最有效率的应用程序。

可以预见,ARM与Linux在未来已经越来越壮大,在嵌入式产品市场上会占有越来越大的份额。在这种形式下,学习和研究ARM非常有必要,所以在这里介绍一下关于基于Linux系统的ARM9嵌入式系统设计的基础理论。

首先进行一下ARM开发环境的简介:

根据功能的不同,ARM应用软件的开发工具可分为编辑软件、编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统、函数库、评估板、JTAG仿真器、在线仿真器等。因此,一套含有编辑软件、编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统及函数库的集成开发环境一般来说是必不可少的。至于嵌入式实时操作系统、评估板等其他开发工具则可以根据应用软件规模和开发计划选用。使用集成开发环境开发基于ARM的应用软件时,其中涉及的编辑、编译、汇编、链接等工作可全部在PC机上完成,调试工作则需要配合其他的模块或产品完成。目前进行ARM嵌入式系统开发常见的开发工具主要有Real View MDK、IAR EWARM、ADS1.2、WinARM等。

RealView MDK开发工具是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具。RealView MDK集成了业内最领先的技术,支持所有基于ARM的设备,能够自动配置启动代码,集成了flash烧写模块,还具有强大的仿真模拟、性能分析等功能。

IAR Embedded Workbench for ARM是IAR System公司为ARM微处理器开发的一个集成开发环境。比较其他的ARM开发环境,IAR EWARM具有入门容易、使用方便和代码紧凑等特点。IAR EWARM中包含一个全软件的模拟程序,用户不需要任何硬件支持就可以模拟各种ARM内核、外部设备甚至中断的软件运行环境。由于ADS集成开发环境已经不再更新,因此无法支持新推出的微控制器芯片,而IAR EWARM在持续的更新环境中,因此IAR EWARM将成为越来越多的人进行嵌入式系统开发的首选开发环境。

基于ARM芯片的应用系统,多数为复杂的片上系统。在该复杂系统中,多数硬件模块都是可配置的,配置工作需要由软件预先完成。因此在用户的应用程序运行之前,需要专门的一段代码来完成系统基本的初始化工作。由于此类代码直接面对处理器内核和硬件控制器进行编程,所以一般使用汇编语言实现,这里我们称之为硬件启动程序。

在应用系统的程序设计中,如果所有的编程工作都由汇编语言来完成,其工作量巨大,并且不容易移植。由于ARM处理器的运算速度高,存储器的存取速度和存储量也很高,因此大部分编程工作可以使用c语言来实现。由此可见,c语言在ARM编程中具有非常重要的地位。

其次介绍一下ARM9嵌入式系统开发的过程:

第一,嵌入式软件开发的特点。学习嵌入式开发的过程,首先要了解嵌入式开发的特点。嵌入式系统与通用计算机在以下几个方面的差别比较明显:

一是人机交互界面,这是最大的区别,因为嵌入式系统很可能就不存在键盘,显示器等在计算机中常见的实现人机交互的设备,它所完成的事情也只能是不同的传感器的变化情况,并且按照事先规定好的过程仪式完成相应的处理任务;二是功能是有限的,嵌入式系统只能反复执行设计时已经定制好的并且在开发完成后不再变化的功能任务;三是时间的关键性和稳定性,大部分的嵌入式系统因为功能要求实时响应并且受到工作环境的影响很大,需要选择合理的硬件和保护措施,保证系统的稳定性可以正常运行。

除此之外,还要了解嵌入式软件开发具有的自身特点:

一是需要交叉的开发环境;二是引入设计方法;三是固化的程序;四是开发的难度很大。

第二,嵌入式软件开发的流程。嵌入式软件的开发因为它的开发难度大等自身特点,需要将硬件、软件、人力资源等集中起来,并进行适当的组合以实现目标应用对功能和性能的要求,而且实时性和功能一样重要。这就使嵌入式开发关注的方面更广,精准度更高。嵌入式软件开发的每个阶段都体现着嵌入式开发的特点。

一是需求分析阶段;二是设计阶段;三是生成代码阶段;四是固化阶段。

第三,嵌入式系统的调试。在进行嵌入式软件开发过程中,可以选择不同的调试方式,但应根据实际的开发需求和实际的条件进行选择,有以下几种主要的调试方式。

一是源程序模拟器方式;二是监控器方式;三是仿真器方式。

嵌入式系统的调试方法被分成不同的层次,就调试方法而言,分为硬件调试和软件调试两种。在使用硬件调试的时候,可以获得比软件调试功能更强大的调试性能,但是有的时候会价格昂贵,需要合适的开发工具。软件调试可以分为操作系统的内核调试和应用程序的调试,前者的操作比较困难,因为操作系统内核不方便增加一个调试器程序,而后者相对比较简单。

在这里我们只是对ARM9嵌入式系统做一个基础理论的讲解。嵌入式技术正在飞速发展,并期待着各种行业的深入渗透。我国具有雄厚的制造业基础,与传统的制造业结合,嵌入式系统有着巨大的市场空间。同时,基于嵌入式的应用可技术创新,将推动新产品、新产业的诞生。在新的高科技浪潮来临之际,我国正全力迎接机遇和挑战,嵌入式领域方兴未艾,Linux也越来越成熟,我们需要掌握更新的知识,实现自我价值,为祖国贡献力量!

参考文献:

[1]马忠梅,马广云,徐颖慧,等. ARM嵌入式处理器结构与应用基础(2版)[M].北京:北京航空航天大学出版社,2007.

[2]马忠梅,李善平,等. ARM&Linux嵌入式系统教程(3版)[M].北京:北京航空航天大学出版社,2014.

作者简介:刘阳(1993—),男,辽宁盘锦人,沈阳理工大学学生。

龙潜(1995—),男,江苏连云港人,沈阳理工大学学生。

ARM9数据采集系统 篇3

嵌入式系统作为计算机应用的一个崭新领域, 凭借其高稳定性, 高效率等优点越来越多的应用到各个领域, 而以嵌入式为平台的数据采集系统可实现高采样频率, 高数据传输速率, 并可实现对数据实施高速缓存。本论文主要设计了一种基于ARM9数据采集系统的实现方案, 并将它与其他类型的数据采集系统进行比较。

本文从嵌入式软件系统在数据采集和处理领域的发展, 并对ARM9的微处理器进行处理和介绍, 结合实际项目要求, 通过分析项目需求提出了新的解决方案, 并通过详细设计的方法实现了整个系统的过程。

2 ARM微处理器的特点及应用领域

ARM微处理器采用RISC结构, 除具有嵌入式系统共有的体积小、功耗低、性价比高等特点外, 还具有如下性能:支持Thumb (16位) /ARM (32位) 双指令集, 能很好地兼容8位/16位器件;大量使用寄存器, 大多数数据操作都在寄存器中完成;寻址方式灵活简单, 指令长度固定, 执行速度快、效率高。

3 数据采集系统关键技术分析

对于数据采集系统关键技术的探析笔者从系统时钟电路设计、模拟信号调理电路设计以及对系统的抗干扰设计三方面进行分析。首先对于系统时钟电路的设计。因为采样系统的性能是直接由时钟信号的稳定性来决定的。而对时钟稳定性起着关键性作用的指标就是相位抖动和相位噪声。而这两个指标的设计会直接决定了时钟的稳定性。相位抖动它直接影响到时钟的过零点;而相位噪声而只描述频谱纯度。我们通常所讲的AD采样系统主要采用的是锁相环、晶振以及模拟混频器三种时钟源。运行过程中如果锁相环失去基准频率, 输出频率就会回归原始。除此之外, 在进行频率调整的时候一定要注意防止输出频率的抖动, 因为它的抖动直接会影响到频差, 这样一来就非常不利于AD采样系统。而最后一种模拟混频器它的速度在运行过程中太慢, 所以只适合低频条件工作。综上所述对于高速电路的设计最终选择方案是以高频晶振作为时钟源。

在高速AD采样系统中, 取样时钟的稳定性与信噪比的性能密切相关。任何时钟信号噪声及时钟信号相位抖动都会影响采样系统的精度, 时钟信号相位抖动对模数转换信噪比 (SNR) 的影响, 可通过公式计算

其中:f为采样时钟频率, N为模数转换器位数, clk为时钟信号相位抖动量。

第二是对于模拟信号调理电路的设计。被采样的信号先要经过模拟信号的调理以及滤波等预先处理以后最后才能进入到输入通道。因为高速数据采集系统的输入信号不同其它系统的输入信号, 所以还需要进行匹配和前置。对此, 可以利用信号变压器和信号前置放大器来有效的解决这个突出的问题。之所以利用信号变压器和信号前置放大器的主要原因是, 其一信号变压器和信号放大器相比较, 它的性能指标要远远高于信号放大器, 另外它的失真效果不明显。尽管如此, 信号变压器还存在着一些局限性, 因为它的放大系数是固定的所以输入信号的幅度也会受到相应的限制;其二信号前置放大器。信号前置放大器的优势主要表现在, 它和信号变压器恰恰相反, 它的信号放大系数不是固定的, 另外它的信号输入范围大, 所以可以将它配置成有源滤波器。它尽管有着这样的优势, 但是它也同样有局限性, 它的最高工作频率和工作带宽如果满足不了系统的要求, 那么信号就会失真。

最后对系统抗干扰的设计。对于高速数据采集系统和中低速数据采集系统的两者对比结果显示出它们在抗干扰方面的性能是不相同的。相对而言, 高速数据采集系统的抗干扰问题大于中低速系统, 最严重的情况就是系统瘫痪不能够正常的进行工作。所以对于高速采集系统设计的重要考虑是看它对系统的抗干扰能力。所以无论是前期还是后期的工作都要可能地减少干扰尽可能地消除干扰。为了对系统抗干扰设计有更加深入的了解, 笔者从电源设计和接地技术两个方面对它进行了探讨。其一对于接地技术, 要严格将系统的模拟地和数字地进行区分, 最后单点共地。另外模拟地和数字地还可以通过磁珠进行连接起来, 通过磁珠将噪声进行过滤掉;其二对于电源设计。在对电源设计的过程中更多应该考虑的降低噪声产生的电源干扰, 所以可以进行电源层设计。这样的设计方法目的是为了增加电源的面积。

4 小结

对于高速数据采集系统的实现一直是测控领域的研究热点工作。笔者结合实际工作经验对ARM9的高速数据采集系统进行相关的探析, 并对涉及的三种主要相关技术进行了具体的阐述。实施方案的最终结果显示这种设计方案是合理并且高效的。

参考文献

[1]周立功等.ARM嵌入式系统教程[M].北京:北京航空航天大学出版社, 2006.

[2]杨宗德.嵌入式ARM系统原理与实例开发[M].北京:北京大学出版社, 2007.

[3]郑亚民, 董晓舟, FPGA器件开发软件QuartusII[M].北京:国防工业出版社, 2006.

[4]邵贝贝译.嵌入式实时操作系统c/os-II[M].北京:北京航空航天大学出版社, 2003.

ARM9数据采集系统 篇4

随着嵌入式技术的不断发展, 特别是处理器运算能力的不断提升以及一些优秀的图形用户界面软件 (如国产Mini GUI、Trolltech公司出品的Qt等) 的出现, 使医疗设备更加小型化, 使用也变得更加容易。本文以三星公司生产的基于ARM920T内核的S3C2440A作为主控制器, 以Linux为操作系统, 开发了四导心音采集显示系统。

1 系统总体设计

系统总体结构如图1所示, 包括以下几个模块:

(1) 信号采集调理模块, 完成对主动脉、肺动脉、二尖瓣、三尖瓣心音信号的采集以及放大与去噪; (2) 数字信号处理模块, 选用高性能的A/D芯片再配合CPLD的控制进行模/数转换, CPLD通过模拟SPI接口将数据传给ARM9; (3) ARM9核心处理模块, 核心模块主要由S3C2440A、64 MB SDRAM以及512 MB Nandflash组成, 完成对数据的接收保存, 并通过10英寸液晶屏显示心音波形, 在Nandflash中单独划分出400 MB的空间来保存心音文件, 通过移植USB Gadget驱动实现当采集板通过USB接口插上电脑后能像U盘一样读取这400 MB空间中的内容。

2 系统硬件设计

2.1 信号调理模块设计

系统使用了美国3M公司生产的Littmann和Classic IISE听诊头, 另外, 在听诊头上加入了一种新型的贴膜, 不仅有利于粘住身体所测部位, 而且能保证采集的音质不变。心音传感器模块能将心脏搏动信号转化为低阻抗音频信号[2]。针对心音信号具有的信号微弱、易受干扰等特点, 首先要进行初级放大以满足后面滤波的需求, 在经过带通滤波电路滤去不属于心音信号频带的部分后, 再经工频陷波电路, 最后经过主放大电路。

(1) 前置放大电路采用了TI公司生产的一款低功耗、低噪声、高输入阻抗的运算放大器TLC2252。电路如图2所示, C1和R2组成的电路起到两个作用: (1) 阻止C1左端的直流电流通过; (2) 允许心音传感器输出的交流小信号通过并传递给后面的放大器, C2、R3、R4、R5构成同相放大电路, 其具有输入阻抗很高、输出电阻很低的特点, 非常适合于前置放大电路。

(2) 前置放大电路输出的信号并不是纯粹的心音信号, 里面还含有一部分低频信号, 比如传感器与皮肤的摩擦、呼吸噪音等[3]。当采集时遇到咳嗽声音、器件掉落的声音可能会引入高频噪声。为了不影响心音信号的分析, 必须将其滤除。在此设计了带通滤波器, 前面为二阶压控电压源低通滤波器, 低通滤波电路主要滤掉信号中高于心音信号频率范围的信号, 低通滤波器的上限设为800 Hz。由于心音频率的下线为2~5 Hz, 为了不损失低频分量, 后面高通滤波器的截止频率设置为2 Hz[4]。采用二阶压控电压源低通滤波器, 电路如图3所示。

(3) 系统采用电源适配器来供电, 不可避免地引入了50 Hz的工频干扰, 而它正好落在心音信号的频带范围内, 因此需要采用50 Hz工频陷波电路将其滤除。目前广泛使用的对称型双T有源滤波陷波器, 但是对称型双T有源陷波器对电路元件的对称性要求较高, 如不能满足对称性要求则会极大影响陷波器的中心频率和Q值。因此, 本系统采用二阶无限增益多级反馈有源陷波器[5], 如图4所示, 其中C7=C8=C, 中心频率的计算可参考式 (1) , Q值的计算可参考式 (2) 。

(4) 经过上述滤波电路后, 心音信号已经较为纯正, 但心音信号的幅度因人而异, 有些人的心音强度较弱, 为了能在适当的范围内正确显示心音波形, 添加了一级放大倍数可调的主放大电路, 通过手动调整变阻器的大小, 方便心音信号的适当显示。通过测试, 此部分的放大倍数通常为10倍即可。图5显示了某一路信号通过上述模拟电路后的波形, 从图中可以明显看出第一心音与第二心音, 设计达到了预期的目标。

2.2 数字电路设计

考虑到转化精度和采样频率, 没有采用S3C2440自带的A/D, 而是选用了Maxim公司的四通道、16位量化精度芯片MAX11044。它具有固定的转换时间, 能同时对四个通道采样, 采样频率最高可达250 k Hz, 可保证对心音信号进行无失真采集。MAX11044输入电压范围为-5 V~+5 V, 输入阻抗高达1 GΩ, 对于适当放大后的心音信号无需电平抬升及外围阻抗匹配电路, 可直接进行采用量化, 从而简化外围电路。

通过控制MAX11044的CONVST引脚拉低持续时间来达到对采样频率的设置。当CONVST引脚为低时对模拟信号进行捕捉;当CONVST引脚为高时进行转换。由于心音信号的频带范围在20~800 Hz以内, 并依据耐奎斯特采样定理和实际的硬件处理能力, A/D的采样率设定为10 k Hz。由于MAX11044数据输出为并口, 而且还需要多根控制线, 在此选用Altera公司的CPLD芯片EPM570T144C5N作为数字电路控制核心, 通过编写Verilog程序来控制, 主要功能包括: (1) 接收ARM9发来的命令控制A/D开启与关闭; (2) 设置A/D的采样频率; (3) 获取A/D转换的数据; (4) 模拟SPI接口将数据通过SPI接口传送给ARM9。

3 系统软件设计

3.1 驱动程序的设计

驱动程序是操作系统与硬件的直接接口, 驱动程序屏蔽了硬件的细节, 使得应用程序可以像操作普通文件一样对硬件进行操作。在系统中S3C2440利用SPI接口来接收CPLD发来的数据。SPI是一种高速、全双工、同步的通信总线, 并且在芯片的管脚上只占用4根线, S3C2440芯片上集成了两个SPI控制器, 通过配置相关寄存器可以设置SPI的工作方式、主从关系、接收数据模式等。考虑到接收到的数据量大以及减少CPU的使用率, 在此采用了DMA的数据接收方式, CPLD有数据就会自动发送过来, 所以选择让ARM9做从设备。

驱动程序的接口用来描述驱动程序与设备的交互, 当应用程序操作设备文件时调用open、read、write、close等函数, 最终会调用对应的接口函数, 这些接口函数封装在file_operations结构中, 其结构如下:

(1) spi_open函数主要完成硬件的初始化工作, 使用s3c2410_gpio_cfgpin () 函数将所用到的引脚设置为SPI功能;开启SPI时钟, 并且配置SPI有关的寄存器, 主要包括读写模式、工作方式、主从关系等;由于使用了DMA的读写模式, 因此需要配置相关的操作, 包括设置DMA源和目的物理地址以及所在总线、缓存大小、传输模式;最后开启DMA。

(2) 当应用程序调用read时, spi_read函数将被执行, 在spi_read函数外, 需要初始化等待队列dma_waitq和全局变量ev_dma, 在spi_read函数中首先调用wait_event_interruputible (dma_waitq, ev_dma) 函数。ev_dma为等待条件, 当它为0时进程将休眠;当它为1时函数返回0, 不休眠。当DMA的缓存达到了设定的值时, 将产生DMA中断进入中断处理函数irqreturn_t DMA_irq (int irq, void*devid) , 在中断函数中将全局变量ev_dma设置为1, 并且调用wake_up_interruptible (&dma_waitq) 函数, 它将唤醒dma_waitq等待队列上休眠的进程, 然后在spi_read函数中调用copy_to_user () 函数把DMA缓存的数据拷贝到用户空间。

(3) 当应用程序调用close函数时, 相当于调用驱动程序中的spi_release函数, 主要是关闭DMA通道。

3.2 Qt程序的设计

Qt是一个跨平台的C++图形用户界面程序开发框架, Qt开发的软件移植性非常好, 编写好的代码只需使用不同平台的编译器编译, 而不用修改代码, 即可运行在不同的平台。软件使用了Qt/Embeded4.7以及扩展库Qwt来开发的, Qwt是一个基于Qt的扩展类库, 包含了大量用于工程开发编程的GUI部件和辅助工具。除了二维绘图控件类外, 它还提供了诸如刻度、滑块、转盘等控件类供开发使用[6]。采用的Qwt版本是qwt-6.0.1。程序流程如图6所示。

系统以Qt Creator为IDE, 首先将Qwt导入Qt Creator中, 利用交叉编译工具进行编译生成ARM版本的动态链接库, 将这些链接库拷贝到采集板文件系统的“/lib”目录下。

3.2.1 界面布局及设置坐标轴及背景网格

在布局界面中使用了Qt中的布局管理器生成一个.ui的文件, 通过拖拉左边的控件进行布局, 非常方便。

网格主要是描述画布中X和Y轴的刻度划分和网格线的颜色, 用到了类库中的Qwt Plot Grid类;坐标轴的设置主要是对横轴、纵轴的刻度及其所代表的意思进行设置。使用到的相关函数如下:

3.2.2 绘制波形

首先使用类库中的Qwt Plot Curve类生成4个绘图工具, 然后设置这4个绘图工具的画笔颜色以及依附的画布, 相关函数如下:

在点击开始按钮后就启动了一个定时器, 每过5 ms就会自动触发一次timer Event事件, 在事件中通过调用read函数接收CPLD传来的数据。由于一次接收到的数据是4个通道的64位二进制数, 因此需要将它提取出来, 对应于每个通道转换为十进制, 然后存放到y Data数组中。有了绘图数据, 就可以通过调用Qwt Plot Curve类的绘图函数实现绘图, 关键函数是:void Qwt Plot Curve::set Raw Samples (const double*x Data, const double*y Data, int size) ;函数中x Data和y Data指针分别指向一个一维数组, size表示要在画布上画多少个点。在没有外部中断的情况下将循环画图, 屏幕上会出现连续的波形。

3.2.3 按键事件

在本系统中有3个按键, 分别是开始、停止、保存。当点击开始按钮时将通过open函数打开spi_slave设备文件代码为:fd=::open (“/dev/spi_slave”, O_RDWR) ;O_RDWR表示以只读方式打开文件, fd为open函数返回的文件描述符。点击停止按钮时将调用close函数停止接收数据并对屏幕清屏。当点击屏幕上的保存按钮时将弹出一个软件盘, 提示输入要保存文件的名字, 点击确认之后文件将以txt格式被保存在“/mnt/udisk”目录中, 最后将接收到的全部数据写入刚才创建的文件中。

本文设计了四导心音采集显示系统, 采用4个听诊头同时检测临床4个听诊部位 (主动脉瓣、肺动脉瓣、三尖瓣和二尖瓣) 的心音信号。从硬软两方面详细阐述了系统的设计流程。通过触摸屏来操作硬件非常方便, 性价比高。本设计为后续的心音分析提供了可靠的数据。

参考文献

[1]周婷玉, 施元雪.新华网.我国成立“国家心血管病中心”[N/OL]. (2010-08-13) [2013-4-20].http://news.xinhuanet.com/2010-08/13/c_13444113.htm.

[2]周红标, 蒋鼎国, 柯永斌, 等.基于STC单片机和LabVIEW的心音信号检测系统[J].电子技术应用, 2012, 38 (1) :31-33.

[3]王晓燕, 曾庆宁, 栗秀尹.基于FPGA的心音信号采集[J].微型机与应用, 2012, 31 (11) :28-30.

[4]邢素霞, 陈天华.基于DSP的心音信号采集与分析[J].生物医学工程学杂志, 2011, 28 (2) :273-276.

[5]史志怀, 万遂人.脑电信号采集中工频陷波电路的设计[J].医疗装备, 2009, 22 (11) :12-13.

ARM9数据采集系统 篇5

在当今计算机技术得到快速稳定的发展,人们对所取的信息越来越大,考虑在便携式计算机上处理的各种领域的信息,新的嵌入式技术应运而生,它综合了先进的半导体技术、计算机技术、、电子技术等,也包括了不断创新的知识集成了体系。以至于嵌入式应用产品的大规模生产,它的应用范围出现在智能机器人、移动终端等领域,特别在信息时代,人们对信息领域的需求量逐渐增大,数据采集和图像采集及其应用技术受到了重视和应用。正是由于科学技术的发展,数据采集和人脸识别系统正向以着高精度、集成化和微型化的方向发展。目前,作为一个独立的大多数的数据采集监控系统,只能完成数据的工业现场采集或储存,这样满足不了实时通信。现代数据采集系统的发展正是依赖于嵌入式系统基础之上的完成。比如,基于ARM920T内核的数据采集和处理系统是单片机应用领域中使用最成熟的一类系统。数据采集是获取信息的基本手段 , 数据采集系统可对物理量进行采集、存储、处理和显示 , 实现对物理量的监测或控制 , 将处理后的数据送到显示设备进行显示 , 也可通过串行口送给其它计算机。以嵌入式系统为平台的数据采集系统就应运而生。在嵌入式系统中,主要涉及到可移植性、可裁剪性、系统服务、中断管理、稳定性和可靠性等几个过程。针对系统具有需要可靠性,稳定性、实时性的特点,嵌入式数据采集系统将具有十分广阔的前景。

1 系统总体设计

系统总体设计主要包括软件设计和硬件设计。该系统以ARM9微控制器S3C2410为中心的硬件和基于嵌入式实时操作系统μC/OS- Ⅱ的软件两部分而成。底层硬件层是数据采集系统,它主要完成实时数据采样、编码、并送入模数转换器变成数字信号,然后对通过协议传至尚上位机。上位机通信接口将实时数据发送到LCD显示,系统框架如图1所示。

其中最上层是AD采集系统的应用程序层,分成5个任务,分别是主任务,三通道的AD任务,LCD刷新任务。各个任务的优先级设置为12,20,21,22,23。便于任务管理与调度。中间层是μC/OS- Ⅱ操作系统,最底层则是硬件层,以微控制器S3C2410为核心的硬件平台。

2 硬件设计

系统资源以ARM9微控制器为核心,外围电路资源有电压调整电路,AD采集电路,JTAG电路,时钟复位电路,RS232电路,LCD显示电路,电源电路等,硬件系统设计框图如图2所示。

2.1 模拟量输入电路

S3C2410内部有一个8路10位逐次逼近式A/D转换器 , 最大转换率为500K。A/D转换器的最高时钟频率是2.5MHz,A/D转换器的基本时钟由APB总线时钟提供 , 10位精度要求的转换需要11个A/D转换时钟。配合多路模拟开关、信号放大调理电路以及相应的控制电路 , 可以完成8路0-5V电压信号。

2.2 RS232通信接口电路

S3C2410处理器自 带3个UART端口,每个UART通道都有16字节的FIFO用于接受和发送。系统时钟最大波特率可达230.4K,如果使用外部时钟UART可以更高的波特率运行。因此 , 选用UART1接口通过MAX3232与PC进行交互。RS232-C标准采用的接口是9针 (DB9) 或25针 (DB25) 的D型插头 , 本系统采用的是比较常用的9针D型插头。具体连接电路如图3所示。其中5个0.1μF的去耦电容用来提高抗干扰能力。

2.3 LCD 驱动电路

S3C2410处理器的LCD显示采用LCD显示屏,需要与驱动电路相配合使用,特点是体积小,需要另外加驱动芯片,如图4中的74HC245芯片。它是一个总线收发器,内部集成CMOS三态缓冲门电路。LCD供电电压5V或者3.3V通过跳线JP501设置。LCD显示采用640×480的TFT彩屏。

2.4 电压调整电路

该电压调整电路产生最大电压值为3.3V,最小为0V。在电路中采用最大电阻为10K的电位器来产生不同电压值。其中L1001是高频磁珠,用来隔离和储能作用。通过AIN0、AIN1、AIN2调节按钮来实时更新显示。如图5所示。

3 软件设计

软件设计主要涉及包括嵌入式实时操作系统μC/OS-II的移植以及相关任务子程序设计。

3.1 μC/OS-II 在 S3C2410 上 的 移植

在该系统采用了嵌入式实时操作系统μC/OS-II, 内核具有多任务抢占式可固化实时特点。支持64个任务 , 最多可以支持56个用户任务,其中统计任务优先级比空闲任务优先级高,分别是64和63。软件调试平台采用ADS1.2 , 可以生成可执行文件并用AXD软件调试。首先将μC/OS-II移植到S3C2410处理器上 , 需修改的文件主要包括。它们分别是内核文件(OS_CPU.H文件,OS_ CPU_C.C) 文件和启动代码文件(OS_CPU_A.S文件)。对于内核文件中的OS_CPU. H文件 , 根据AXD仿真器要求修改数据参数主要涉及 :类型定义、宏定义、堆栈单位、堆栈增长方向。对于内核中另一个文件OS_CPU_C.C , 它采用用C语言编写6个操作系统相关的函数(Function OSTask Create Hook,Function OSTask Del Hook,Function OSTask Sw Hook, Function OSTask Stat Hook,Function OSTime Tick Hook,Function OSTask Stk Init)其中被可以简单地空函数是前5个函数。而对于启动代码文件OS_CPU_A.S中编写4个与处理器相关的函数都是采用汇编语言 , 即function OSStart High Rdy() 作为运行优先级最高的就绪任务 ) 、function OSInt Ctx Sw ()( 中断级的任务切换函数 ) 和 ,function OS2TASK2SW()( 任务级的 任务切换 函数 ) 、function OSTick ISR()( 时钟中断处理函数 ) 。整个μC/OS-II移植过程基本上采用汇编语言。

3.2 子程序设计

任务子程序包括几类程序。它们是系统初始化程序、A/D数据采集处理程序、初始化系统消息、LCD显示程序、串口初始化及处理程序等。待系统初始化和启动以后 , 数据采集系统程序完成启动模数转换 , 将采集数据存入存储器中(NAND flash)并送入显示缓存区。通过显示程序把将存储器中缓存区数据进行显示在LCD屏幕上。负责输出当前的电压值由串口处理程序来完成,初始化A/D设备将在主任务程序中启动,实时显示出以采集到的电压值作为幅值显示一个周期为π/10的正弦波形。以及调用各种子程序和中断服务程序相互嵌套调用。系统通信程序包括串口通信 , 是系统软件设计的关键。程序流程图如图6所示。

LCD显示任务主要是通过任务优先级的高低,来调整任务运行来实现。正弦波形的显示主要通过创建设备上下文DC,即函数Create DC()。初始化ADC则通过init_ADevice() 函数实现。该函数放在Main_Task任务中,如果放在其它的子程序中,始终无法实现。因为主任务的任务优先级大于AD任务的优先级,在AD任务中采用Get ADresult() 来保存采集到的数据。然后将这些数据作为幅值显示一个周期为π/10的正弦波形。图形结果如图7和8所示。由于图形较多,只列出电压值为3.2V时的波形图。

4 结束语

在设计中,主要是针 对微控制 器S3C2410数据采集系统进行研究与设计。系统以32位ARM902T为内核,充分利用现有硬件资源 , 以其自带的ADC作为模数转换器件,提高了转换效率以及系统的实用性。软件方面移植了实时操作系统μC/OS-II内核 , 系统易于构建 , 便于扩展 ,系统的可靠性和实时性也得到很大提高 ,具有较良好的应用前景。

摘要:为了实现快速有效的数据采集和数模转换,采用基于ARM9微控制器S3C2410和嵌入式实时操作系统μC/OS-Ⅱ的多任务A/D采集系统。不仅能够以高精度、可靠、稳定、实时完成多路模拟量信号以及开关量信号的数据采集,并实时在LCD显示。系统软件在ADS1.2编译环境下完成,采用C语言与汇编语言混合编程,充分利用了不同语言的优点。文中构建了系统的总体的设计方案,详细给出了硬件电路设计的方法,同时介绍移植μC/OS-II嵌入式操作系统的关键以及软件设计的要点。

ARM9数据采集系统 篇6

本文介绍的基于ARM内核的室外环境信息采集器能够很好的解决上述问题。基于ARM9内核的室外环境信息采集器可实时采集大量信息并实时地向数据中心传输数据, 避免了存储空间太小而限制数据采集量的问题。其中GPRS网络是基于TCP/IP数据分组协议数据传输业务, 能有效地把GPRS网络和Internet网络连接在一起, 使得分组数据在两种网络之间自由传输, 室外环境信息采集器把采集到的信息通过Internet网络实时传输到远程监控中心, 进行分析处理。

1 环境信息采集器硬件设计

信息采集器的工作原理是:系统启动后首先对S3C2410X进行初始化配置;然后对GPS模块、GPRS模块、传感器模块进行初始化设定;若需要进行数据采集, 则通过GPS模块采集地理信息, 再将采集到室外环境属性信息 (如温度、湿度等) 存储到相应的数据存储单元, 把同一次采集的地理信息、环境属性信息附加上采集时间一起存储;如果需传送数据, 则把数据用TCP/IP协议打包, 经GPRS模块MC35把数据传送到远程数据中心。监控中心可通过网络向数据采集器发送命令, 并对各模块和系统运行的参数进行设置。其电路结构如图1所示。

1.1 ARM9嵌入式处理器S3C2410X

S3C2410X是16/32位RISC嵌入式微处理器[1], 主要应用在高性价比和低功耗的场合。运行频率一般是203Hz。它具有丰富的片上资源:SDRAM控制器;2个USB主机接口, 一个USB设备接口;2个SPI接口;3个通道的UART;4个通道的DMA;16K高速缓存 (cache) , 一个LCD控制器 (支持STN和TFT带有触摸屏的液晶显示屏) ;4个具有PWM功能的计时器和1个内部时钟;8通道的10位ADC;触摸屏接口;I2S总线接口。在本系统中使用了该处理器的多个功能模块, 结构紧凑, 大大减少了系统的复杂度。

1.2 数据采集模块

GPS模块采用河南友利华高科技开发有限公司开发的GSU-36 GPS OEM板, 用来采集经度、纬度地理信息, 其具有18接收通道, 外接电源为2.3~3.6V DC, 接收和发送的数据为反相CMOS电平[2], 通过反相器与S3C2410X相连[2]。

由于GPS采集的地理信息数据和室外环境属性数据信息量较大, 片外数据存储器扩展为64K 6264存储器以便于存储临时数据。

1.3 GPRS通信模型

GPRS模块采用SIEMENS公司研制的工业级的移动台设备MC35进行GPRS通信[3], 内含SIEMENS移动引擎 (Cellular Engine) 电路模块, 支持包括GPRS数据、语音、传真和短消息在内的所有移动台功能[2]。电源电压为3.3~4.8V DC, MC35支持AT指令集 (ITU-T V.25 ter) 、GPRS07.07AT指令集。工作频段为EGSM900和GSM1800, 兼容GSM Phase2/2+标准, 支持3V SIM卡, 串行接口采用AT命令通过 (CMOS电平) 双向总线传输命令和数据。

1.4 人机交互通道

人机交互通道的设计采用点阵液晶显示模块和4×4矩阵键盘的组合形式。液晶选用信利的MG12864-7型点阵液晶模块, 其显示容量为128×64个点, 体积只有54cm×50cm×6.5cm, 内部带有10V电压产生器和EL背光逆变器, 使用单5V电源供电。

液晶模块的工作电压是5V, S3C2410X的I/O口电压是3.3V, 需要在处理器和液晶模块之间加一片总线收发器74LVC4245。键盘采用4×4的矩阵键盘接口, 采用节省口线的“行扫描法”方法来检测键盘, 只需要8根口线, 系统选取PF口作为检测键用端口, 并设定PF0-PF3为输出扫描的端口, PF4-PF7为键盘读入口[3]。

1.5 其它功能模块

GPS模块和GPRS模块供电电压选为3.3VDC, 电源输出的为5V电压, 需经转换为3.3V, 其5V转换3.3V电路如图2所示。

实时时钟日历芯片采用美国DALLAS公司DS12C887, 用来提供实时时钟。它能够自动产生世纪、年、月、日、时、分、秒等时间信息, 其内部又增加了世纪寄存器, 从而利用硬件电路解决子“千年”问题。DS12C887中自带有锂电池, 外部掉电时, 其内部时间信息还能够保持10年之久。

2 环境信息采集器软件设计

软件设计采用嵌入式实时操作系统uC/OS—II[4], 并使用ARM和Thumb指令集混合编译来优化代码密度。首先将实时操作系统u C/OS一Ⅱ移植到S3C2410X嵌入式微处理器上, 将系统所要完成的功能细化为几个核心任务, 由uC/OS一Ⅱ实时内核进行调度, 实现了多任务的并行执行, 系统的可靠性和实时性得到大幅提升。信息采集部分放在定时器中断程序中执行, 在设置好的时间间隔内不停的采集数据。第一步是采集室外环境的光照、风速、温度、湿度等环境属性信息, 存储在相应的单元中并更新环境属性信息缓冲区的属性信息;第二步是采集地理信息, 包括经度、纬度等, 也存储在相应的单元并更新地理信息缓冲区的信息;第三步是把环境属性信息、地理方位信息和时间一起按顺序存储在相应的非易失性数据存储器。

GPRS通信子程序可实时的把数据传到数据中心, 传输方式有两种:手动和自动。手动的方式是把最近采集到的数据一起传输到数据中心;自动传输方式则是在数据采集完成之后, 马上就把数据传输到数据中心, 其执行原理如下: (1) 按照TCP/IP协议把采集到的数据进行封装;并设置通信的波特率发送指令AT+IPR=4800, 把波特率设置为4800b/s; (2) 测试GPRS业务是否开通, 发送指令AT+CGATT=1, 如果返回OK, 则GPRS连接成功, 如果返回ERROR, 则连接GPRS失败, 需重新连接; (3) 设置接入网关, 定义连接类型和后台服务器接入点的名称, 发送指令AT+CGDCONT=1, IP, “CMNET”; (4) 设置PPP协议数据的传输状态, 发送指令AT+CGDATA=1, 成功开始发送数据;数据发送完毕, 发送+++把模块从数据模式或在线PPP模式转换为命令模式, 发送指令ATH0结束连接状态。其数据传输示意图如图3所示。

3 结论

文章提出了基于ARM9内核的嵌入式数据检测系统, 并将其引入到室外环境信息检测中, 实现了对室外环境信息的实时远程检测, 具有数据检测的实时性、检测精度高、自动化程度高、人机界面生动直观, 操作简单, 等特点。该系统具有良好的工程推广价值, 已在发酵罐自动化改造中取得了良好的效果。

参考文献

[1]贾智平, 张瑞华.嵌入式系统原理与接口技术[M].北京:清华大学出版社, 2005:149-233.

[2]仲志燕.基于ARM内核的便携式农田信息采集器[J].电脑知识与技术, 2010, 1 (6) :7170-7172.

[3]缪兵.基于ARM9内核的嵌入式检测系统设计[J].仪表技术与传感器, 2010, 1:70-75.

基于ARM9的智能车载系统设计 篇7

随着社会经济的发展,汽车已成为人们工作、生活中不可缺少的一种交通工具。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,开发了各种各样的电子控制系统。本文设计一种基于ARM9 S3C2410A的智能车载系统,它能够通过GPS全球定位系统和GPRS无线通信技术,实现车辆定位以及车辆与控制中心之间的数据通信,构建CAN总线控制模块用于采集车辆主要部分的工作状态,实时监控汽车的主要技术参数,并通过LCD模块显示车载信息的综合信息。

1 智能车载系统的功能

车载智能导航终端应具有如下功能:

车辆定位 它指通过GPS全球定位系统获取车辆的当前所处位置,包括经度、纬度、运动速度、标准时间以及海拔高度等信息;

网络通信 它采用GPRS无线通信技术,与监控中心保持联系,实时获取道路交通状况,为交通道路的智能管理提供基础;

故障检测 它通过CAN总线实时检测汽车的主要技术参数;

信息显示 它通过LCD液晶屏显示车辆位置、调度信息以及检测到的汽车技术参数。

智能车载系统可根据用户需要实现其他功能,例如通过GPRS自动报警增加自动报警功能,扩展音频设备和IDE接口设备以增加娱乐功能,通过USB接口连接图像采集设备,对车内外进行视频监控等功能。

2 智能车载硬件系统设计

本系统以S3C2410A为主控模块,扩展了64 MB Nand Flash,用于存放启动代码和嵌入式Linux操作系统等;64 MB SDRAM用作系统运行时的内存;LCD提供了更好的人机交互界面,并通过串口与GPS模块相连,通过UART异步串口与GPRS模块相连,通过SPI接口与CAN总线相连,利用CAN总线挂接传感器,检测汽车主要技术参数,系统框图如图1所示。

2.1 主控模块

S3C2410A是韩国三星公司面向手持设备以及高信价比、低功耗和低价格而设计的一款基于ARM920T内核的16/32位RISC嵌入式微处理器。它采用5级流水线,资源丰富;带有独立的16 KB的指令Cache和16 KB的数据Cache,64 MB SDRAM,64 MB Nand FLASH,LCD控制器,RAM控制器,NAND内存控制器,3路UART,4路DMA,4路带PWM的定时器,并行I/O口,8路10位ADC,Touch Screen接口,I2 C接口,I2 S接口,2个USB接口控制器,2路SPI,其工作频率最高达到203 MHz。

2.2 GPS模块

GPS模块主要完成GPS定位信息的接收和处理。根据设计性能的要求和节约系统成本的考虑,选用的就是GARMIN公司的GPS25-LVC接收机,其内置了GPS25OEM板。该接收机与主控模块的接口方式采用RS 232兼容TTL的串行口方式,因此设计中将其与S3C2410A的串口1相连。GPS-25LVC与S3C2410A之间信号线仅需要连接GPS25-LVC的TXD1与S3C2410A的TXD1。另外,还要将GPS25-LVC的地线和电源线连接到主控板的地线和5 V电源上。

2.3 GPRS模块

GPRS模块主要完成车辆与车辆、车辆与控制中心的通信。在本系统中,GPRS模块选用MC35。MC35的数据输入/输出接口实际上是一个UART,它可以与S3C2410中的UART接口直接相连。

2.4 CAN总线模块

CAN总线模块可以使本系统与其他车载模块的连接,完成收集车辆的状态信息以及进一步控制。CAN总线模块主要包括CAN总线的控制器和收发器,在这里分别选用的是Microchip公司的MCP2510和飞利浦公司的PCA82C250。其中,CAN总线控制器MCP2510实现了CAN总线的协议,CAN总线收发器PCA82C250提供协议控制器和物理传输线路之间的接口。由于CAN总线控制器MCP2510具有SPI接口,因此,系统中将其与S3C2410A的SPI0相连。

2.5 故障检测模块

故障检测模块主要是对汽车的主要技术参数进行检测,并显示到LCD显示器上,如果检测到故障,会发出报警信号。本文主要检测的技术参数包括燃油消耗量、制动力、转向力、发动机温度、冷却液温度、前照灯,以及车内噪声和尾气等方面。该模块主要是通过各种传感器把各种信号转换为电信号,再利用信号处理电路把电信号进行相应的处理,使其能与CAN总线模块进行数据传输。

2.6 LCD模块

LCD模块用以实现信息的显示,提供一个良好的人机交互界面。本系统主控模块的处理器S3C2410内置了LCD控制器,支持STN-LCD和TFT-LCD。本文选用夏普公司的TFT-LCD模块LQ080V3DG01,该模块具有640×480的分辨率,18位的颜色深度,可与S3C2410A的LCD接口直接相连。

3 智能车载系统软件设计

由于Linux具有源代码公开、剪裁方便、移植方便等诸多优点,所以本系统选择嵌入式Linux作为软件运行平台。嵌入式Linux是将Linux内核移植到S3C2410A平台上。嵌入式Linux操作系统不仅可使软件的开发更加灵活,也能使整个系统的可靠性得到提高。该软件设计的具体流程如图2所示。

交叉编译环境是一个由编译器、连接器和解释器组成的综合开发环境。BootLoader是系统加电启动运行的第一段软件代码,类似于PC机的BIOS加上硬盘MBR中的引导程序。它可以初始化硬件设备,建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,为最终调用操作系统内核或用户应用程序准备好合适的环境。Linux操作系统的移植是将Linux内核经过重新的剪裁、编译后移入到S3C2410A上。下面主要阐述各模块驱动和应用程序的编写。

3.1 GPS定位功能实现

GPS模块软件设计的基本思想如下:首先接收完整的NMEA0183语句,然后提取相关的数据(时间、经纬度、速度),再将这些数据送去显示或者发送出去,并且可以保存,以便日后查看。

由于GPS模块是通过串行口1与S3C2410A进行通信的,因此本文设计了Linux系统下相应的串行口通信程序。串口程序设计具体步骤如下:

(1) 串行口1的初始化:设置串行口1的通信方式为8位数据位,1位停止位,无奇偶校验位。波特率为4 800 b/s。

(2) 一帧一帧接收ASCII码字符信息。

(3) 对每一帧ASCII码字符信息进行数据处理。

在数据处理过程中,针对需要的定位信息要求,设计了如下的串行通信思想:

① 以“$GPRMC”为过滤条件,接收定位语句。

② 在“$GPRMC”之后的59个字符为有用的信息,所以用“59”作为判断定位语句完整的依据。

③ 在数据接收的过程中往往会有两种情况,一种是每帧会得到一个以“$GPRMC”开头的完整语句,另一种是上一帧的后半部分在加下一帧的前一部分共同组成的完整定位语句。

3.2 GPRS通信模块实现

GPRS模块是借助GPRS无线网络实现数据的无线传输,从而在不同的车辆或车辆与控制中心之间架起沟通的桥梁,所以软件的功能主要是建立无线连接,按照GPRS通信协议传输数据。

GPRS模块的通信主要是通过串口驱动实现,在嵌入式Linux内核中已经提供了对串设备的支持,因此在配置内核编译选项时,只需要选中对串口设备的支持,就可以实现对GPRS模块的串口数据通信功能。为了实现与Internet的通信,还需要在配置内核编译选项时选中PPP和TCP/IP协议。这样一旦网络连接建立,就可以使用应用程序来实现网络数据的通信。

本系统数据链路层采用PPP协议,它是一种面向字符的协议,是为在两个对等实体间传输数据包连接而设计的,使用可扩展的链路控制协议LCP来建立、配置和测试数据链路。用网络控制协议族NCP来建立和配置不同的网络层协议,并且允许采用多种网络层协议。一个PPP会话分四个步骤:建立连接、连接质量控制、网络层协议配置和连接终止。

嵌入式Linux系统内核源自于Linux内核,并保留了对TCP/IP以及其他的网络协议的支持。在嵌入式Linux系统上编写网络应用程序与在Linux上编写网络应用程序没什么大区别,通常只需要做很小的修改就可以移植到嵌入式Linux系统上。至此,GPRS模块完整地集成到嵌入式终端中。

3.3 CAN模块实现

CAN总线驱动程序要完成的报文发送、接收等任务都是围绕CAN总线控制器展开的,因此驱动程序主要是对控制器MCP2510内部寄存器进行操作。CAN总线控制器MCP2510的初始化按照以下步骤进行:

(1) 软件复位,进入配置模式;

(2) 设置CAN总线波特率;

(3) 关闭中断,设置ID过滤器;

(4) 切换MCP2510到正常状态;

(5) 清空接收和发送缓冲区;

(6) 开启接收缓冲区,开启中断。

4 结 语

该系统不仅能够通过GPS和GPRS实现车辆定位以及车辆与控制中心之间的数据通信,还能够通过CAN总线检测汽车主要技术参数,为交通道路的智能管理以及汽车的安全驾驶提供了可靠保障。

摘要:该系统给出基于ARM9 S3C2410A的智能车载系统实现方案。首先介绍智能车载系统的主要结构特点和实现功能,然后从GPS,GPRS,CAN总线、故障检测等模块出发,详细阐述了智能车载系统的硬件构成与原理,最后给出该系统的软件实现方案,并介绍了GPS模块、GPRS模块以及CAN总线模块的驱动及应用程序的设计原理。

关键词:ARM9,GPS,GPRS,CAN,故障检测,嵌入式系统

参考文献

[1]Samsung Electronic.User′s Manual S3C2410X 32Bit RISCMicroprocessor[Z].2003.

[2]三星科技.ARM9原理与应用设计[M].北京:电子工业出版社,2008.

[3]GARMIN Corporation.GPS 25LP Series Technical Specifi-cation[Z].2000.

[4]胡友键,罗昀,曾云.全球定位系统(GPS)原理与应用[M].武汉:中国地质大学出版社,2003.

[5][美]Bates RJ.通用分组无线业务(GPRS)技术与应用[M].朱洪波,译.北京:人民邮电出版社,2004.

[6]邬宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,1996.

[7]武翠琴,杨金岩,李艾华.CAN控制器MCP2510及其应用[J].国外电子元器件,2001(10):48-50.

[8]周建鹏,黄虎,严运兵.现代汽车性能检测技术[M].上海:上海科学技术出版社,2007.

[9]Alessandro Rubini Jonathan Corbet.Linux设备驱动程序[M].北京:中国电力出版社,2002.

ARM9数据采集系统 篇8

控制终端是测控装置中不可缺少的主要组成部分,是测控系统存在的基础,目前应用的许多测控系统都具有规模大、控制点分散、大多控制点计算密度较低、受控体及接口种类繁多等特点。

近年来嵌入式系统以体积小、功耗低、控制功能较强、能够嵌入操作系统、易于扩展外围接口(包括各种现场总线和百兆网等)等优点,很适合计算密度较低的分布式控制终端的应用。本设计采用ARM9 S3C2440来开发测控终端,完成了测控装置中的RS485、RS232、CAN、IO输入/输出、IIC通信控制接口设计。下面重点介绍其设计方法和过程。

1 系统设计

图1系统总体结构是采取核心板跟底板的结构。核心板的资源包括S3C2440A的基于ARM920T核的处理器,其内部集成了许多外设,可以很容易地对处理器进行扩展,形成各种不同的控制/通信接口。存储系统方面核心板上扩展了64M的SDRAM,256M的NAND FLASH,以及2M的NOR FLASH,能够满足一般的工业控制需求。另外核心板上还集成着DM9000以太网控制芯片。在底板上利用S3C2440处理器上的功能模块,再加上外围电路,形成各种接口的扩展,其中包括有半双工的RS485、RS232、CAN通信模块、IO数字量口输入、IO口数字量输出。

2 模块硬件配置

2.1 RS-485总线接口的设计

S3C2440片内集成的三路UART接口,UART接口通过电平转换芯片可以很方便地转换为485接口。UART0作为嵌入式LINUX的控制台(console)接口,UART1用作RS485扩展,UART2作为RS232扩展。我们用到的是UART1。由于ARM处理器的引脚电平和EIA规定的电气标准不一样,所以必须要外接电平转换芯片,利用片内UART外接不同的转换芯片可以轻松地实现RS485或者RS232串行协议标准。RS485采用差分信号负逻辑,为了达到RS485总线的电气特性标准,设计中用到的是Analog Devices公司的半双工RS-485隔离收发器[1,2,3]。

ADM2483是带隔离的增强型RS485收发器,它包括一个三通道隔离器,一个带三态输出的差分驱动器和一个带三态输入的差分接收器,允许多达256个收发器接入总线,最高传输速率为500kb/s,逻辑端兼容3V/5V工作电源。总线端5V供电。

图2为系统中利用S3C2440中的UART1实现半双工的RS-485总线的原理图,其中的引脚RE'与DE分别为接收使能和发送使能端,现在将其并联起来接到S3C2440的nCTS0引脚,由该引脚的电平控制芯片数据的方向。要发送数据时要叫其置1,接收数据时要将其清0。

2.2 CAN总线接口的设计Microchip

公司推出的MCP2515是一款独立控制器局域网络协议控制器,完全支持CAN V2.0B技术规范。该器件能发送和接收标准和扩展数据帧以及远程帧。MCP2515自带的两个验收屏蔽寄存器和六个验收滤波寄存器可以过滤掉不想要的报文,因此减少了主单片机的开销。MCP2515与MCU的连接是通过业界标准串行外设接口(SPI)来实现的。在S3C2440处理器上片内集成了两个SPI控制器,可以通过SPI总线与MCP2515的控制线连接,进而对MCP2515进行控制和配置等各项操作。此外要组成CAN网络,仍需要一个与具体物理线路连接的CAN收发器,本设计中采用了Microchip公司的MCP2551。MCP2551是一个可容错的高速CAN器件,可作为CAN协议控制器与物理线路之间的接口,为CAN控制器起差分收发能力,能够把CAN控制器生成的数字信号转化成为适合总线上传输的信号[4,5]。

2.3 RS232接口的设计

RS232适于本地的设备之间的通信。利用S3C2440片内的UART可以轻松地实现串行数据的传输,MAX232采用单电压5V供电,可以轻松地实现电平转换,特别是在没有12V电源的情况下。该芯片采用DIP封装,集成了2个电压转换器,连线简单而方便使用。

2.4 数字量输入/输出接口的设计

数字量的输入输出可以直接控制ARM的引脚为GPIO功能而实现,输入和输出具有相同的原理。一般控制系统需要工作在恶劣的环境中,电压值会产生突变,而且一般都高于ARM处理器可接受的范围,所以必须采取一定隔离措施,需要外接隔离芯片。隔离芯片在电路中起到三方面的作用:1)隔离了破坏电压,防止处理器受到破坏性损坏;2)完成逻辑电平的转换,将工业控制中的信号逻辑电平转换为嵌入式处理器所允许的逻辑电平;3)隔离噪声,抑制共模信号。在本设计中采用的是ADI公司的ADuM1200数字隔离器。这款数字隔离器采用的是iCoupler磁隔离技术,无论在性能、工号体积等各方面都有传统的光电隔离器无法比拟的优势,具有比光电耦合器更高的数据传输速率,时序精度和瞬态共模抑制能力。在一个芯片上集成了两个独立的隔离通道,两端工作电压为2.7V~5.5V,每个隔离通道具有很低的脉宽失真,而且还具有直流校正功能[2,6,7,8,9,10]。综合上述各优势,是本设计中采取该隔离芯片的原因。

3 结束语

本设计成功应用在中微子实验室的环境测量系统中,实现了工业现场的嵌入操作系统、网络互联功能、微型化、高可靠性设计,运行稳定可靠、效果良好。但存在远距离通信时速度不高的缺陷,具体解决方法有待进一步研究。

摘要:控制终端是测控装置中不可缺少的主要组成部分,目前应用的许多测控系统都具有规模大、控制点分散、大多控制点计算密度较低、受控体及接口种类繁多等特点。文章设计了ARM9 S3C2440处理器下的RS485、RS232、CAN、IO输入/输出、IIC等通信控制接口,本文重点介绍其设计方法和过程。

关键词:ARM9,S3C2440,系统接口,控制终端,控制器

参考文献

[1]尤保常,杨源源,张晓,等.Linux环境下RS485通讯软件开发与界面设计[J].自动化仪表,2010(12):22-25.

[2]钟汉如,叶家威.基于RS485的PC与ARM间文件传输的实现.微计算机信息[J].2008,24(22):126-127.

[3]Sweet M R.Serial programming guide for POSIXoperating systems[EB/OL].http://www.easysw.com/~mike/serial/serial.html

[4]王志颖,马卫东.Linux系统下RS-485串行通信程序设计[J].计算机应用研究,2002,19(2):136-138.

[5]陈鼐,于盛林.基于S3C2410X的液晶屏接口设计与实现[J].测控技术,2006,25(12):68-71.

[6]王志颖,马卫东.Linux系统下RS-485串行通信程序设计[J].计算机应用研究,2002,19(2):136-138.

[7]叶顺流.基于ARM的嵌入式Linux研究与实现[D].重庆:重庆大学,2005.

[8]江泽涛,吴俊安.用Kylix实现Linux环境下的串行通信[J].计算机应用研究,2005,22(9):214-216

[9]郑燕飞,余海燕.Linux的多线程机制探讨与实践[J].计算机应用,2001,21(1):81-83.

上一篇:动力合成下一篇:用户界面程序