系统集成作业.docx
- 文档编号:23589270
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:11
- 大小:267.19KB
系统集成作业.docx
《系统集成作业.docx》由会员分享,可在线阅读,更多相关《系统集成作业.docx(11页珍藏版)》请在冰豆网上搜索。
系统集成作业
设计一个FPGA数据采集系统,外部数据存储器为HM628512,给出FPGA控制模块流程及仿真结果。
大地电磁场携带着地球内部的结构、构造、温度、压力以及物质成分的物理状态等信息,为人们研究板块运动的规律、追溯地球的演化历史提供了科学依据。
大地电磁探测是研究大陆岩石圈导电性结构的有效方法之一,使人们从电性角度认识地球内部的构造形态,达到了解地下不同深度地质情况的目的。
该技术应用前景广泛,可用于地下更深层找矿、找水、找油、监测海底潜艇等,对国民经济和国防的发展都有重要的推动作用。
最常用的数据采集方案多以MCU为核心,控制多路信号的采集及处理。
但由于单片机本身的指令周期以及处理速度的影响,对于多通道A/D进行控制及数据处理,普通的MCU往往不容易达到要求。
考虑到FPGA器件的高集成度、内部资源丰富、特别适合处理多路并行数据等明显优于普通微处理器的特点,并针对大地电磁数据采集系统对实时性和同步性的要求,本文提出了一种多通道数据采集方案。
采用FPGA与ARM相结合的设计,采集主控制逻辑用FPGA实现,ARM用来实现采集数据的存储和数据传输控制。
1系统总体结构
系统总体结构如图1所示。
A/D转换器采用TI公司的24位高精度模数转换器ADS1255;FPGA采用Altera公司的EP2C35;ARM为ARM9内核的处理器S3C2410。
双口RAM由EP2C35内部存储器块配置而成,该双口RAM与ARM的系统总线相连,映射为ARM的一块内存区。
AD前端处理电路的作用是实现对信号的放大、衰减以及阻抗匹配,从而满足ADC对输入信号的要求。
滤波网络滤除高频噪声和工频信号的干扰,增益放大通过ARM给出的控制信号实现对模拟信号的不同增益的放大处理。
ADS1255负责把模拟电信号转换成数字信号,可以通过功能选择设置ADS1255工作在不同的工作模式下。
ADS1255的工作时钟由FPGA提供,改变FPGA输出时钟的频率就能实现AD采样率的改变。
FPGA并行控制5路AD的数据采集,并把采集到的各路数据按顺序以字节的形式写入双口RAM中缓存。
FPGA对双口RAM的数据写入和ARM对数据的读取是通过乒乓传输结构实现的。
当FPGA写满双口RAM上半区后,向ARM申请中断,ARM响应中断后,读出上半区数据到内存中进行存储;同时FPGA向RAM的下半区写数据,写满下半区后也向ARM发出中断,通知ARM读出下半区数据。
通过乒乓传输保证了系统数据采样和数据传输可以连续进行。
2FPGA的逻辑设计
本方案中的数据采集流程如下:
系统初始化后,ARM通过控制信号把采样频率、通道选择等参数通知给FPGA,然后FPGA向需要同步采样的通道对应的AD芯片提供统一时钟,使得AD同步地选择相应的通道进行数据的同步采样和转换,其结果由FPGA接收并存储在双口RAM对应的存储空间,然后由ARM从相应的双口RAM空间读取数据进行本地存储或经过网络传输给上位机进行处理。
根据以上流程以及FPGA要实现的功能,整个FPGA逻辑设计划分为通道和采样率选择模块、时钟模块、双口RAM模块、AD采样控制模块、串并转换模块、数据存储控制模块、ARM接口控制模块。
各模块连接关系如图2所示。
2.1通道和采样率选择模块
在实际应用中并不是每个通道都被使用,AD的采样率也不只一种,所以在通道的控制和采样率设置上应该具有可选择性。
通道和采样率选择模块提供2个8bit的控制寄存器A和B。
如图3所示,寄存器A的0~4bit分别对应ADC通道CH0~CH4,5~7bit保留;寄存器B的8bit分别对应采样率FS0~FS7。
如果要选择某几个通道,只需将寄存器A中相应的位置1,其他位置0,AD采样控制模块就会根据该寄存器中的内容使能相应的通道。
如果要选择某一个采样频率,只需把寄存器B中相应的位置1,其他位置0,时钟模块会产生相应的时钟控制AD的采样率。
在开启数据采集之前,ARM应根据所要求的通道和采样频率向寄存器A和B写入相应命令字。
2.2时钟模块
本设计中外部输入时钟为16.384MHz。
由于设计中各个模块工作时钟的不同以及AD采样率的变化,所以需要多种不同的时钟信号。
时钟模块的功能就是根据不同采样率为各个模块提供所需的时钟信号。
由于该设计采用同步时序电路,它是基于时钟触发沿设计,对时钟的周期、占空比、延时、抖动提出了较高的要求,为此本设计中采用FPGA所带的PLL时钟资源驱动设计的主时钟,使其达到最低的时钟抖动和延迟。
2.3双口RAM模块
本设计中双口RAM用于数据缓存,一方面存储各个AD芯片转换的数据,另一方面供ARM读取数据做进一步的存储与处理。
它具有真正的双端口,可以同时对其进行数据存取,两个端口具有独立的控制线、地址线和数据线。
该双口RAM模块是通过调用AlteraFPGA自带的参数化模型库(Mega-lpm)实现的。
2.4A/D采样控制模块
A/D采样控制模块的主要任务就是根据ADS1255的转换时序图,在其芯片的引脚发出相应的时序控制信号,使ADS1255完成启动、配置和数据读取等操作。
ADS1255的控制操作如下:
首先设置ADS1255的参数配置,读数据模,然后启动转换,通过查询ADS1255的DRDY信号判断是否转换完成,转换结束后将数据按bit顺序读出。
同时将数据输出给串并转换模块,完成一次A/D转换操作。
采样控制模块每完成一次采样操作,则停止等待下一个触发脉冲的到来。
这一控制过程通过状态机实现。
图4给出了该A/D转换控制模块的状态转换图。
当数据采集启动信号START为高电平时,状态机启动。
状态机的各个状态描述如下:
(1)conv_init:
状态机的初始状态。
(2)mode_set:
设置ADS1255内部的控制寄存器。
(3)conv_start:
启动A/D转换。
(4)conv_wait:
等待A/D转换结束。
如果转换结束则进入下一状态,否则将继续保持在该状态。
(5)conv_read:
A/D转换结束后读出每个bit信息,同时使能移位寄存器进行串并转换。
(6)read_next:
判断数据是否读完。
如果没有返回conv_read状态,否则进入下一状态。
(7)conv_next:
判断是否需要继续转换数据。
如果没有就进入下一状态,否则返回conv_start状态。
(8)cony_end:
表示本次采样任务结束。
状态机保持在该状态,直到采样启动脉冲触发重新开始新的一次采样任务,状态机复位到conv_init状态。
2.5串并转换模块
由于ADS1255是以串行输出转换结果的,故需要该模块将串行输出的数据转换为井行输出。
该模块主要采用移位寄存器来实现,其移位控制信号由AD采样控制模块提供。
2.6数据存储控制模块
该模块的作用是将5通道24bit经过串并转换的采样数据按通道顺序,以从低字节到高字节的次序,一个一个字节将其写入双口RAM中,实际上相当于一个字节意义上的并串转换。
该模块输入为5路采样数据reg24Data_0~4,dataF为输出的字节数据,wrenF为双口RAM的写控制信号。
图5是一个五通道数据存储的仿真示意图。
输入数据值分别为0x030201、0x060504、0x090807、0x121110、0x151413,输出字节数据为01~15,同时使能写RAM,满足设计要求。
2.7ARM接口控制模块
该模块为ARM与FPGA及其双口RAM交互提供桥梁。
当ARM向控制寄存器写入采集参数信息时,接口模块要将该信息通知通道和采样率选择模块;当ARM读取双口RAM中的数据时,接口模块对ARM的访问地址进行译码,选中对应的存储空间取出数据。
本文采用FPGA和ARM结合设计,很好地完成了多通道高精度的数据采集与处理,并且还详细介绍了FPGA逻辑的设计方法。
FPGA逻辑通过硬件描述语言Verilog实现,已应用到磁数据采集系统中。
本方案设计灵活,能很容易地扩展为更多路的数据采集,也能很容易地修改为与其他的A/D转换芯片接口。
所以该方案可根据不同的应用进行扩展,进一步增强了系统应用的灵活性。
在调研资料的基础上,设计一个烘干箱中使用的电子温度控制系统,设系统采用电阻丝方式进行加热,采用热电偶测量温度,最高温度为300℃。
采用七段LED共阴模块显示温度,采用手动拨码盘方式进行温度控制。
核心器件为FPGA。
请设计出该系统的结构框架图,说明工作原理和流程图。
为了实现精确控温,应该采取哪些技术途径?
目前市场中大多数温度采集卡的测量范围、测量方式及测量精度在出厂时就已经固定。
测量方式单一、测量范围固定、传感方式也只能适应一定的场合。
因此不能很好的适用一些多测量方式及测量范围的场合。
再者它们的测量程序和查表数据库已经固定,对于一些有特殊要求的场合不能适用。
本系统采用现场可编程门阵列(FPGAEP1K30QC208-3)对数据进行处理,它的程序能够在线修改,因此有极强的可塑性。
可以适时的对其程序及查表数据库进行改进和更新,能使系统的性能得到升级。
从而可以使系统满足不同的场合需要。
1温度采集系统硬件设计
由于不同的传感器有不同的输出量,但是最终都需要转换为0~10V的电压值,从而才能满足A/D转换器的转换要求。
因此各个传感器需要不同的转换和放大电路。
转换后的电压量经过多路模拟开关选择送到同一个A/D转换器进行转换。
再经FPGA进行数据处理及显示输出。
整机框图如图1所示。
1.1PN结测温原理
由于PN结随温度变化产生的是一个电压信号,温度每升高1℃,PN结的正向导通压降下降1mV。
但在0℃时要求输出电压为0V,因此必须将PN结连接成单臂非平衡直流电桥。
并且将输出电压放大到0~10V范围送A/D转换电路。
电路原理图如图
(2)所示:
1.2PT100热电阻测温原理硬件电路
由于PT100热电阻随温度变化产生的是一个电阻信号,当温度升高时电阻值增大。
因此必须将热电阻接成单臂直流电桥,将其阻值变化转换为电压变化信号。
再将这个电压信号放大到0~10V范围送A/D转换电路。
电路图略。
1.3热电偶测温原理硬件电路
热电偶的输出是一个随温度变化的电压信号,它必须加上冷端补偿电路才能正常工作,并且它的输出也要转换为0~10V的范围送A/D转换电路。
电路图如图3所示:
2温度采集系统软件设计
温度采集系统软件分为单片机程序设计和FPGA程序设计,单片机程序采用汇编语言编写,实现对外围电路的控制。
FPGA采用VHDL语言编写,实现对数据的处理及被测温度的显示输出。
2.1单片机控制
单片机用来控制多路模拟开关及FPGA,并显示是那种方式测量。
P1口接一位数码管(表示输出测量方式代码,1代表PN结测量方式,2代表热电偶测量方式,3代表热电阻测量方式)。
P2口接输出模拟开关控制字、存储器片选信号及FPGA程序切换控制信号。
程序流程图如图4所示。
2.2FPGA数据处理
FPGA对数据的处理是根据不同的测量方式进行数据处理的。
当选择PN结测量方式时,FPGA根据PN结的温度电压变化函数,对数据进行计算,从而得出对应的温度值;当选择热电偶或热电阻测量方式时,FPGA是依次查找对应分度表的数据与A/D转换的数据进行比较计算,最终得出其温度值。
可见热电偶或热电阻测量方式的数据处理是相同的,只是分度表不同而已。
2.2.1PN结数据处理
PN结测量方式,FPGA根据PN结的温度电压变化函数(温度每升高1℃,PN结正向导通压降减小1mV),对数据进行计算,从而得出对应的温度值。
2.2.2热电偶、热电阻数据处理
热电偶或热电阻测量方式,FPGA是依次查找对应分度表的数据与A/D转换的数据进行比较计算,最终得出其温度值。
程序流程图如图5所示。
3温度采集系统安装调试
安装调试是一个系统最关键也是最容易出现问题的一步,本系统安装调试中遇到的一些问题及给出最后处理方法如下:
(1)热电偶的工作必须有冷端补偿电路才能正常工作,在搭试其冷端补偿电路时,它的桥路电阻参数很难确定。
因为不同型号的热电偶其各桥臂电阻及限流电阻也会不同,在多次调整各个参数后才确定了其各桥臂参数。
(2)各放大电路在开始时用了一级的电压放大,出现了抗干扰能力差、放大倍数不稳定等问题。
为了提高抗干扰能力,稳定电压放大倍数。
后来采用两级放大,第一级采用低放大倍数的差放电路,消除共模干扰。
第二级再采用电压放大就很好的实现无干扰稳定放大。
(3)软件调试中出现了显示清零的现象,最后查出是AD转换数据没有锁存住。
采用软件锁存的办法使得该问题得到了解决。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统集成 作业