基于ARM+FPGA的高速信号采集系统设计
Design of Hi-Speed Signal Acquisition System Based on ARM and FPGA
蔡弘 戴胜华
(北京交通大学 电子信息工程学院, 北京市 100044)
Cai Hong Dai Shenghua
(School of Electronics and Information Engineering in Beijing Jiaotong University, Beijing 100044)【摘 要】本文提出了一种实现信号采集方案,介绍了由ARM处理器S3C2410和EP2C8 FPGA组成的高
速信号采集系统的系统设计,并着重介绍前端硬件的设计,并就ARM处理器和FPGA的互联设计进行探讨。利用FPGA硬件控制A/D转换,达到了较好的效果,实现了信号的采集与存储。
【关键词】ARM 嵌入式系统 FPGA FIFO AD
Abstract: The design of Hi-speed signal acquisition system based on ARM processor S3C2410 and FPGA EP2C8 waspresented in the paper. The hardware design was mainly introduced. The interconnection of ARM processor and FPGAwas discussed. A/D conversion is controlled by hardware implemented in FPGA. The acquisition and storage of datawas realized.
Key words: ARM Embedded System FPGA IDE AD
在图像处理,瞬态信号检测、工业、国防、通信等领域常常需要对传感器等的外部输入信号进行处理与存储。采用ARM嵌入式处理器与FPGA的方式来实现高速数据的采集和存储,提供了一种高速度、高精度、低成本的数据采集方案。本系统使用Samsung公司的S3C2410处理器和Altera公司的EP2C8 FPGA作为系统的核心,同时使用Ti公司的A/D转换芯片ADS5220对输入信号做模数转换,可以实现采样频率达到1-40MHz。本文从硬件设计角度介绍系统的设计,着重介绍FPGA和ARM处理器的互联设计。1 系统结构
系统主要由A/D转换器、FPGA和ARM处理器三大部分组成。通过AD芯片以1~40MHz的采样率把输入模拟信号转换为12bit精度的数字信号,经过FPGA中的FIFO存储器缓存后由ARM处理器以DMA的方式接收采集数据,再通过IDE接口存储数据到大容量硬盘,ARM处理器接收数据之前可在FPGA中以硬件实现数字滤波,处理分析,数据压缩等硬件单元,或由ARM处理器做一些简单的处理。图1是系统的结构框图。
2 AD芯片
ADS5220是Ti公司的高速AD转换器,其主要参数如下:
* 12bit精度,最高采样率40MSPS
* 在频率10M下的信噪比(SNR)达70dB,无杂散动态范围(SFDR)达88dBFS。
* 模拟输入带宽300MHz
* 输入信号电压范围0.5~2.5V
A/D转换器电路部分包括对输入信号的调理电路、AD芯片自身外围电路和输出数字信号的驱动。
输入信号经过一阶RC高通滤波电路滤除信号直流和低频分量,滤波器的截止频率为2kHz。在AD输入的前端采用了Ti公司的运算放大器OPA685,对所输入的模拟信号进行放大,本电路中放大倍数为2倍,另外在放大器的前端加了2.5V的直流偏置电压。OPA685具有很高的转换率、很低的输入噪声和很强的输出驱动能力,这些使得ADS5220能够达到最高的输入频率。ADS5220的共模输入为1.25V。参考电压
图1 系统结构框图
收稿日期:2007-11-29
作者简介:蔡弘,北京交通大学电子信息工程学院硕士研究生,主要研究方向为嵌入式系统开发及应用。
图2 信号调理电路原理图
38仪器仪表标准化与计量2007・6应用与实践
选择可编程的内部参考电压2V,信号输入的峰峰值为2V。在数字信号输出端设置了高速三态信号驱动芯片74VHC541缓冲信号。3 Cyclone II FPGA
ALTERA公司的Cyclone II系列FPGA使用90nm制程工艺,功耗低,密度高;比上一代产品新增嵌入式乘法器,大大增强DSP处理能力;高速存储器接口,支持DDR II内存;集成更大的片上存储器。本系统选用此系列型号EP2C8T144C8的FPGA,EP2C8使用1.2V电压供电,封装形式为TQFP144。片内有两个PLL,可对外部时钟输入通过倍频、分频获得所需的时钟;还有165888bit的RAM块,用来设计FIFO存储器。
FPGA硬件设计主要是设计其电源、JTAG调试口编程电路及外围电路。3.1 电源设计
FPGA电源引脚有三类,VCCINT,VCCIO和VCCA_PLL。
(1) VCCINT是内部供电电压,1.2V供电;(2) VCCIO是I/O电压,可根据外部I/O电平来选择,一般为3.3V,特别的是FPGA I/O管脚分成4个BANK,多个VCCIO对应着这4个BANK,可以提供不同的VCCIO使I/O引脚支持不同的电平值。(3) VCCA_PLL是锁相环的供电引脚,电压1.2V,ALTERA公司FPGA的PLL都是模拟的锁相环,对噪声比较敏感,需要将其与数字电源分开供电。通过串联电感或磁珠将数字和模拟电源隔离。
芯片供电电源使用LDO电源芯片来产生。3.3V的LDO可以使用常用的LM1117-3.3,LT1083-3.3等,1.2V电压的有LD1117-1.2等,由于VCCINT的电压范围是1.2~1.3V,可以利用可调型号LD1117-ADJ来得到1.25V的电压。其原理图如图3,LD1117-ADJ当使用1.25V输出时需在电压输出端并联一个120欧姆的电阻。
图4 FPGA的JTAG接口原理图
FPGA芯片是基于SRAM工艺的,每次上电后都需要对FPGA的内容进行配置,掉电后内容消失,而这些配置数据需要存放在配置专用的非易失性存储芯片中或在线下载到FPGA中。Altera公司FPGA的配置方式有很多种,Cyclone II系列支持JTAG、主动串行(AS)、被动串行(PS)三种方式。Cyclone II系列FPGA在实际应用中一般使用JTAG和主动串行方式。
* JTAG是绝大多数Altera器件都支持的一种方式,通过JTAG将配置数据在线下载到FPGA中,注意其中的上拉电阻是必须的,使得JTAG可以可靠的与PC机通信。其JTAG连接硬件原理图如图4。
* 主动串行方式是对专用配置芯片进行编程,使得FPGA上电后可以自动读取配置芯片内容进行配置。Altera公司的专用配置芯片主要是EPC和EPCS系列,当使用主动配置方式时需要使用EPCS系列,如EPCS4芯片,这是一个容量为4Mbit的配置芯片。其原理图如图5。
图5 FPGA的编程接口原理图
3.3 外部I/O管脚互联
FPGA中大部分管脚属于I/O管脚,其中一部分是外部时钟信号输入管脚,只可作为输入,在EP2C8中这种管脚共有8个,可接外部时钟源,如接外部有源晶振;还有一部份作为FPGA配置专用引脚,其他用于连接外部设备。在本设计中I/O引脚一部分连接AD转换芯片,一部分连接ARM处理器。4 ARM处理器和FPGA互联
在实际设计中有时需要利用FPGA高度可编程的
仪器仪表标准化与计量2007・6图3 LD1117-1.2
3.2 编程和配置芯片
这部分是FPGA设计过程中十分重要的一环,否则就不能进行编程调试,光有硬件是不能让FPGA工作的,重视和仔细设计是保证设计成功的关键。
39Application and Practice
特性来实现某些辅助硬件,如协处理器、FIFO存储器等,同时完成系统的一些数字逻辑电路,这就涉及了控制器和FPGA之间的连接通信。在需要进行大量的数据传送的应用中通常将FPGA与CPU通过外部总线连接,将FPGA映射成系统存储器中的一段进行访问。本系统将ARM处理器外部总线的数据线DATA[0:15]、地址线ADDR[1:4]、读写信号nOE、nWE、片选信号nGCS3连接到FPGA的I/O管脚。
读到的便是下一个数据,写入端也是如此,所以使用一个数据寄存器来访问。时钟发生器产生采样时钟和FIFO读写时钟信号,在每个时钟周期的上升沿,AD芯片完成一次采样,FIFO通过写时钟信号将数据读入,当FIFO中数据半满时(即存入4096个数时),将产生半满中断信号,通知CPU读取数据。FPGA与CPU的外部总线相连,数据总线宽度16bit,控制逻辑电路完成与CPU总线的接口工作,CPU可通过写寄存器的方式控制AD的启动关闭和其他工作,也可读取FIFO中存储的数据。5 结束语
本文详细介绍了基于ARM+FPGA的信号采集系统前端的软硬件设计,目前已实现,运行可靠。该方案充分利用了FPGA和ARM处理器的优点,简化了
图6 ARM和FPGA连接示意图
硬件设计和增加了设计的灵活性,可适用图像处理、工业、国防、通信等领域。参考文献
[1] Altera Cyclone II Device Handbook[2] Altera FPGA/CPLD设计.北京:人民邮电出版社
[3] 侯伯亨,编著.VHDL硬件描述语言与数字逻辑电路设计
[4] Altera Single-&Dual-Clock FIFO Mega-function User Guide □需要进行软件验证,以保证每个阶段软件输出与输入的关系符合要求。
应仔细选择技术与措施,保证软件验证满足软件要求的SIL。需要考虑的技术措施包括形式证明、概率测试、静态分析、动态分析和测试、软件复杂性度量、软件模块测试和集成、软硬件集成测试、软件系统测试等。
3 功能安全评估
应按照集成系统的功能安全评估要求进行软件的功能安全评估,需要根据SIL选择适当的软件功能安全评估技术措施,包括:检查列表、判定/真值表、软件复杂性度量、失效分析、多种软件的共同原因失效分析、可靠性块图等等。4 结束语
安全相关软件的SIL设计是一项十分严格复杂的工作,伴随着开发的每一步,还有测试、验证、确认、评估等活动,所有工作和活动的过程和结果都需要文档化,用以保证和证明软件的安全性。研究相关标准的要求,严格遵守标准,是开发符合标准的安全软件的第一步。
□
FPGA连接到ARM处理器外部总线的BANK3上,只使用4根地址线,寻址空间是0x18000000-0x18000020,每2个地址对应一个16bit的寄存器,这些寄存器是通过在FPGA中编程实现,其中一个是FIFO数据寄存器,用于读取FIFO存储器的数据,其他作为控制寄存器或保留。
FPGA内部主要由三大部分组成,FIFO、时钟发生器和控制逻辑电路组成,FIFO大小为12bitx8192。FIFO存储器内部有读写指针,当CPU读取一个数据后,FIFO中的读指针会指向下一个数据,再次读取时(上接第26页)
证已改变的软件模块、再验证已受影响的软件模块、再确认整个系统、软件配置管理、数据记录和分析等。
6)软件安全确认
此阶段为图1中方框9.6。
为了保证集成系统符合规定的SIL,需要对每一个安全功能进行确认并将结果文档化。当预期和实际结果出现差异时,对是否继续确认做出的分析和采取的决定,或发布变更请求和返回开发生命周期较早阶段,都应作为软件安全确认的结果的一部分文档化。
软件安全确认主要通过测试进行,以确认系统能够正确执行安全规范中规定的功能,而不执行非预定的功能。
应仔细选择技术与措施,保证软件安全确认满足软件要求的SIL。需要考虑的技术措施包括概率测试、仿真/建模和功能和黑盒测试等。
7)软件验证
为了达到所需的SIL,在软件安全生命周期的软件安全要求规范、软件结构、软件系统设计、软件模块设计、代码、数据、数据模块测试、软件集成测试、软硬件集成测试、软件安全要求措施等多个阶段,都
40仪器仪表标准化与计量2007・6
因篇幅问题不能全部显示,请点此查看更多更全内容