电竞作品基于SOPC的高精度多路数据采集系统

更新时间:2024-05-22 17:33:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于SOPC的工业现场高精度多路数据采集系统

电竞作品基于SOPC的高精度多路数据采集系统

Industrial Field High Accuracy Multi-Channel Data Acquisition System

Based on SOPC

(陕西科技大学 指导老师:张震强 学生:易长文 邓亚明 曾志强)

摘要:本作品应用SOPC技术来完成在工业现场高精度数据的采集。采用通用输入端子,实现了多通道多信号输入、高精度的数据采集。用户可以自由选择输入信号,具有克服温度漂移的自校准、手动校准、键盘输入、液晶显示和标准的RS232串口通讯的功能。在本设计中结合FPGA的特点与V/F转换器配合使用,实现高于16位分辨率的ADC转换功能。V/F转换器相当于一个双积分A/D转换器,抗工频干扰能力强。信号调理电路采用增益可调的仪表放大器,提高了共模抑制比。由于合理使用了ALTERA DE2板的资源,使外围硬件电路的结构更加简单,系统稳定性好,运行可靠。

关键词:SOPC 高精度 多通道 数据采集 自校准 串口通讯

ABSTRACT: High-accuracy data collection system is implemented Based on the SOPC Technology, which can achieve multi-channel signal via common input port. Input signal can be selected by users as their wish. can overcome Temperature Drift can be overcome by auto adjustment or manual adjustment via keyboard input in system. Data display and transport via RS-232 Serial Port to computer. System achieve higher than 16 bits Resolution A/D Convertion due to the resistance of Industrial Frequency disturbance in V/F Convertor. And Signal amplifying circuit enhances the CMRR (Common Mode Rejection Ratio) via Programmable-gain instrumentation amplifier. Thanks to resources in the Altera DE2 Board, system is running stable and reliable with simpler external circuit.

KEYWORDS: SOPC ,High Accuracy ,Multi-Channel,Data Acquisition

Auto-Adjustment , Serial Communication

一、选题意义

数据采集系统广泛应用于多个领域,比如医药、化工、食品等领域的生产过程中,往往需要随时检测各生产环节的温度、湿度、流量及压力等参数,因此,数据采集是工业测控中至关重要的一环。

本系统采用SOPC技术针对工业控制中的过程量4~20mA的变送器信号、0~5V的电压信号、-200~850℃的PT100的温度测量、频率<1MHZ的变送器的脉冲信号的采集、数据传送进行设计。利用Altera公司DE2开发板与外部配置接口电路实现多路高精度数据采集。通过DE2板上标准的RS232通讯接口与上位机连接,实现将现场采集数据上传和监控管理,使监控人员直接在监控机房通过上位机观察现场的数据并采取相应措施实现对现场设备的控制,从而使现场的仪器设备能够正常运行。通过RS232/485转换接口,还可实现远程数据传送和远程监控。本系统设计的输入信号接口电路为通用接口,用户可以自由选用外挂变送器设备,使用更加灵活方便。

0

杯陕西省电子设计专题竞赛

如果用传统方法设计多路数据电路,完成键盘设置、液晶显示、通讯等功能,则需要大量的外围硬件电路实现。采用Altera公司的DE2开发板,可以充分利用板上资源实现上述功能,大大简化了硬件电路设计。本设计以采集16路工业现场信号作为设计目标。如果充分利用板上资源,还可实现更多通道的数据采集。这样的电路可以被应用到分布型综合控制系统中。

二、方案选定

系统框图如图1所示。各部分功能分述如下:

FPGA DE2板 16 路信号输入 输 入 接 口 电 路 信号 数字 VHDL硬 件 电 路 NIOS II LCD显示 RS232口 键盘输入 上位机 串口通讯 图1 系统框图

1.16路信号输入

16路信号输入电路由接线端子组成,分别可接工业现场的8路电流信号、3路电压信号、3路Pt100的温度信号和2路脉冲信号。

2.输入接口电路

输入接口电路的框图如图2所示。该部分电路完成对输入信号的调理和实现A/D转换功能。其中对频率信号的采样,采用光电耦合和整形电路实现现场信号与系统的电气隔离和电平转换功能,既能保护DE2板上元件的安全,又能实现电平转换使输入的频率信号幅值能满足FPGA元件对输入电平的要求。

对于输入电压、输入电流和Pt100的电阻信号,首先将其转换为电压信号,再通过增益可调的测量放大器和V/F转换,将其转化为频率信号,进入FPGA内部计数电路,实现A/D转换。

2路频率信号 光电耦合及整形电路

程 转 8路电流信号 控 换 V/F

测 为 转

3路PT100信号 FPGA 量 电 换

放 压 电

3路电压信号 大 信 路

器 号 基准电压 1

基于SOPC的工业现场高精度多路数据采集系统

图2 输入接口电路

为了克服输入电路由于温度漂移、时间漂移产生的测量误差,系统采用内部基准源自校正电路,定时进入自校准模式,重新确定标度变换斜率以减小系统测量误差。

3.FPGA内部电路

本设计使用了ALTERA公司提供的NIOSII系统开发平台,该平台给提供了大量的模块。由该系统开发平台提供的NIOSII可以控制7段显示、LCD、LED、各种PIO、以及RAM等,通过它还可以设置定时器,UART模块。

设计方框图如图3所示,通过系统结构图,利用SPOC BUILDER搭建和生成自己的系统。主CPU是由NIOS II构成,包括Flash和Ram控制器,通过三态AVALON桥和NIOSII CPU连接;由于采用V/F 类型A/D转换,因而通过PLL模块产生稳定的系统时钟频率和AD的工作频率;另外在系统中加入定时器来精确的定时25ms,让计数器来精确的计数,以提高系统A/D转换的精度;LCD模块用来即时显示采集的各个通道的数据,通过按键可以控制要显示的通道和系统参数的设定。最后通过UART把采集的数据传输到上位机储存以用来实现后期的数据分析。

软件调试 上位机 JTAG 外 下载接口 部 接 串行通信接口 口 数据 Nios II 电 处理器 路 SDRAM 指令 定时器 通用I/O口 计数器 LEDS, LCD显示 按钮 开关 图3 设计方框图

4.串口通讯

UART(即Universal Asynchronous Receiver Transmitter 通用异步收发器)是广泛使用的串行数据传输协议。UART允许在串行链路上进行全双工的通信。 UART串行通讯帧格式如图4所示。

Avalon 总线 2

杯陕西省电子设计专题竞赛

图4 UART帧格式

包括线路空闲状态(idle,高电平)、起始位(start bit,低电平)、5~8位数据位(data bits)、校验位(parity bit,可选)和停止位(stop bit,位数可为1、1.5、2位)。 这种格式是由起始位和停止位来实现字符的同步。 UART内部一般有配置寄存器,可以配置数据位数(5~8位)、是否有校验位和校验的类型、停止位的位数(1,1.5,2)等设置。 UART主要有由数据总线接口、控制逻辑、波特率发生器、发送部分和接收部分等组成。Altera FPGA内UART核如图5所示。

图5 Altera FPGA内 UART 核

UART核符合RS-232逻辑电平标准。它通过TXD和RXD端口发送和接收串行数据。但大部分Altera的 FPGA器件与RS-232电平标准不一致,如果直接用RS-232 连接头送来的信号来驱动则很可能会把FPGA烧坏。为此,通过在 FPGA I/O口和RS-232连接头之间加入3.3V工作电压的MAX232的电平转换芯片,如图6所示,实现了标准的RS-232逻辑电平转换。

图6 UART核 逻辑转换电路

3

基于SOPC的工业现场高精度多路数据采集系统

5.系统控制及算法的实现

用NIOS II来协调电路的各部分工作。算法上采取针对不同对象采取不同的算法来实现。即:

(1)电压信号:为了保证精度采取分段线性化的方法。对不同段的数据采取不同的放大倍数。在本系统中采用5级放大的方法,如式○1

K×1×C 1.25V

U=

K×16×C 80mV

C——计数器的值;

(2)电流信号和Pt100的信号:转换为电压信号,然后作类似○1中的处理。 (3)频率信号:采取直接计数的方法实现对频率信号的采样。

F?M/T ○2

其中M为计数器的读数,T为采样周期,

三、硬件实现

硬件部分由外部的前端电路和DE2内部的FPGA电路两大部分组成。 1.外部的接口电路 (1)16位ADC的实现 a.A/D转换器的选取

A/D转换器的选型对整个系统的实现有重要的意义和影响,要作?1mV的精度,要达到该指标所需要的最少位数为:

最少位数?Log25000?Log5000?12.22 ○3

Log2所以选取大于13位的ADC,实际选取模拟器件公司的AD652,其A/D转换位数可超过16位。

AD652是AD公司推出的一种高线性度电荷平衡式V/F转换芯片。输出频率范围宽2MHZ(MAX),线性误差在满频度输出为1MHZ时最大为0.005%,增益误差最大为1.5%(Fclk=4MHZ),增益温度系数最大为75ppm/℃,可与TTL或CMOS电平兼容,外接电路

4

基于SOPC的工业现场高精度多路数据采集系统

为了使电阻网被选通时,能可靠的导通,不选通时输出电阻无穷大,制定了第二套方案,采用干簧管继电器 EDR202A0500,该器件采用DIP14封装,如图14,该器件有两组独立的触点,其闭合动作时间为1ms,断开动作时间是0.5ms。使用时要注意2脚和6脚之间要加续流二极管。但是,从功耗和模拟开关的性能指标考虑,最好用AD公司的AD7502来代替该器件效果会更好。 (3)基准源电路

为了克服系统温度漂移所引起的测量误差和保证测量的精度,采用了系统自校准模式。定时起动自校准模式,重新确定标度变换斜率以减小系统测量误差。校准精度与基准源的精度有关。

a.基准源的选取

由于对基准源的精度要求很高,所以选取了MOTOROLA公司的MC1403。该公司的MC1403和MC1404均为高精度基准源。MC1404为5V的基准源,MC1403为2.5V的基准源,但是MC1404已经停产市面上没有,所以选取了MC1403。为验证其稳压性能做如下实验:

实验电路:

Vi Vout

2 O I 1 1u F R MC1403 1uF 4.7u F

C1 I GND 3 GND 图15 MC1403实验原理图

实验数据:

表 3 实验数据表

Vi 5V 12V 15V

结论:

1.负载的影响。输出在10mA以内,输出很稳定都是+2.53伏。 2..输入的影响。理论上在+4.5V~+40V输入都可以,实际做了输入为+5V、+12V及+15V的实验。

由实验可以看出MC1403的性能很稳定,完全符合设计的要求。

b.实际电路

Vout(V) 2.53 2.53 2.53 加250欧的负载(V) 2.53 2.53 2.53 空载(V) 2.53 2.53 2.53 10

杯陕西省电子设计专题竞赛

基准源分压电路如图16,用2个HEF4501通过2EN、2C、2B、2A来控制基准源分压的导通,如表4所示。电阻R5~R12完成所需电压档的分压。

图 16 基准源分压电路 表 4 基准源分压档的选通 2EN 1 0 0 0 0 0 0 2C × 0 0 0 0 1 1 2B × 0 0 1 1 0 0 2A × 0 1 0 1 0 1 选通的电压(V) × 0.020 0.080 0.320 1.250 2.500 0.000 VOUT和AGND为基准电压源的输出,和其他的外部的测量信号一起被送到AD625的输入,

并根据需要,由程序选通。

(4)恒流源电路: 如图17所示,PT100工作时需要恒流源,根据PT100的特点,决定用OP07设计3.2mA的恒流源。 + 接

- 图17 PT100的连接示意图

3.2mA恒流源 11

PT100 基于SOPC的工业现场高精度多路数据采集系统

实际电路:

图18 OP07设计的恒流源

2.SOPC的硬件实现

如下图19所示,为加入到系统内部的各个模块。

图19 系统内部图

在生成NIOS CPU后,由于SOPC Builder模块池中没有计数器,采取在NIOS系统外围添加定时器模块,记数值通过NIOS I/O口读入NIOS系统。PLL锁相环输出频率分频后作为V/F转换器AD652的输入频率。

系统的顶层模块电路如下:

12

杯陕西省电子设计专题竞赛

图20 系统的顶层模块电路

3.通讯模块的硬件实现 (1) 结构示意图

系统使用RS-232C异步串行接口实现与上位机的通讯, RS-232C 接口是常用的、应用广泛的串行接口标准,大量的集成设备、工业产品都提供了RS-232C接口, 图 21为DE2板与上位机通过RS-232进行点对点通信的接口电路。

TxD

TxD RxD 上位机 GND

DE2 RxD

GND

图21 RS-232C点对点异步通讯接口

(2) 串行通信协议

在串行通信技术中,通信双发要进行正常的通信,必须要共同遵守一个通信协议。通用的串行通信协RS-232和RS-485仅对通信线路的电气特性进行了一些约束,并没有涉及通信内容的格式、类型的信息,而在实际应用中,往往需要考虑到数据传输的安全性、可靠性、通信效率的因素,因此,为满足这些实际需要的特殊要求,在串行通信系统设计中,经常需要为通信双方设定一个通信协议。这个协议通常搭建在RS-232、RS-485等硬件线路基础上,

13

基于SOPC的工业现场高精度多路数据采集系统

提供诸如握手信号、错误检测、分组重发等功能。无论是双机通信还是多机通信,通信协议的设计与实现都是整个系统设计中的难点和关键所在。

根据实际需要,工业现场环境下的通信协议,跟为注重通信双方的事件执行事件顺序和数据可靠性,而很少考虑信息的安全性、通信效率等因素。由于通信协议的复杂性,通常需要将整个通信过程使用的协议分为几层,上一层的协议以下一层为基层,并作为下一层的数据部分被传送,而下一层并不关心上一层的格式及其实现功能。一个使用UART端口的通信系统,一般不考虑最底层的电气特性,可以将整个通信功能分为3个层次,从上到下分别是:

a.异步通信协议

该通信协议有一个起始位、5~9个数据位和1~2个停止位组成。该协议以位单位,一帧数据有多位组成。 如图1示。该协议主要在SOPC/Communication/UART(RS-232 serial port) IP核内定制。

b.中间层协议

使用一个字节或多个字节组成一帧,实现数据的通信,并提供分组、握手、错误检测和从发机制,保证数据的传输可靠。该层使用的协议是以字节为单位的。帧中的每个字节数据都使用底层的异步串行通信协议发送。

c.应用层

该部分负责将通信中得到的数据进行处理或者根据程序的需要向通信系统中的其它节点发出信息。这里信息收发的执行过程由中间层协议实现,应用程序对此并不关心。 图22为通信功能的层次划分示意图

应 用 程 序 自 定 义 协 议 异步串行通信协议 电气接口 与底层通讯链路

图22 通讯功能层次划分

由上述分析可知,通信系统协议设计主要指的就是中间部分的协议设计,它应该根据系统的实际需要为通信的传输提供必要的功能和可靠的保证,并为上一层应用程序的使用提供简洁良好的接口。

根据系统所测现场信号范围:

电流:4~20mA (精度 ?0.001mA ) 电压:0~10V (精度 ?5mV) 温度:0~150?C (精度 ?0.3?C )

频率:几十kHz (精度 ?50Hz )

利用取整、取余、求模的方法均可以把实际测量数据分离为 3个字节,再加上适当的控制命令进行路数识别和差错控制管理, 故在设计中以固定的数据帧格式传送数据,帧长为5 字节(共50 bits),由 1字节地址,3 字节数据、1 字节校验字节组成,如表5 所示。数据帧的发送顺序:字节内低位先发,多字节内高字节先发。

14

杯陕西省电子设计专题竞赛

表 5 数据帧格式

地址 数据 校验(异或) 1 字节 3 字节 1 字节

在这里,握手与应答信号不仅作为建立连接和断开连接的命令出现在通信的开始和结束,同时这种机制也存在于通讯的整个过程中。此时,它们提供的服务可以是报告当前的通信双方的状态,如“设备忙”(暂时无法接受)或“设备准备好”(可以接受)等,以保证通信的正常进行;也可以是对数据的传输结果的回应,如“传送成功”或“数据帧错误”等。 设计中使用到的握手与应答信号命令字如表 6 所示。

表 6 通信协议使用的握手信号命令字 执行机构 命令 字 命令字 解 码 0xFF 0xFE 0xFD 0xFC 上 位 机 发送命令 (接受数据) 请求发送数据 停止接受数据 数据传输错误 数据传输正确 NIOS II系统 接收(查询)命令 (发送数据) 开始发送数据 停止发送数据 重新发送错误数据 发送下一路数据 (3) 上位机通信编程

在Windows环境下,应用程序要使用串口进行通信之前,必须向系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。在Windows的系统函数中,均包含了支持通信中断的功能。对串口通信而言,Windows为相应的串口设备开放了用户自定义的输入、输出缓冲区,应用程序只能对输入、输出缓冲区进行操作,数据进出串口的操作均由系统后台完成。以接受为例,系统没接受到一个字符就产生一个低级的硬件中断,系统的串口驱动程序将接收到的字符送到输入缓冲区,此时应用程序就可以通过访问输入缓冲去得到接收到的字符信息。

数据采集系统的串口通信编程以Windows Visual Basic6.0 为开发工具,程序中使用MSComm控件实现串口通信底层技术。使用该控件不必花时间去了解较为复杂的API函数。通过简单的修改控件属性和使用方法和使用控件提供的方法,就可以实现对串口的配置。完成串口接收和发送数据。程序支持在线调整各种通信速率、奇偶校验、通信口等参数而无需重新启动程序并自动保存设计参数,可以实时显示接收到得16通道的数据。当数据采满了自定义接收缓冲区时,系统会自动保存数据到默认路径文件夹里的Excel表中,用户也可以手动保存数据,以便日后需要时可以查看或者作为绘图之用。

四、控制部分

1、控制算法

由A/D芯片资料给出输出,频率的最大值为输入频率的1/2,即Fout最大值为2MHz。 而选择的为16位计数器。则可求得最大门控时间TGATE216?S?32.7ms。考虑到不62?10 15

基于SOPC的工业现场高精度多路数据采集系统

容许有计数器的溢出和系统计算的方便,选取TGATE?25ms。此时系统能分辨的最低频率为FINmin1?103?40Hz。 25考虑到是工业现场的信号,选取测量输入电压的范围为0—5V;由于A/D芯片自身参数的影响,输入电压和输出频率不可能在0—5V上完全线性,把输入电压进行分段处理并把低端的电压适当的放大到A/D的线性区,再进行测量,从而提高测量的精度。

假设取v1,v2,v3,v4作为测量时的基准点。程序初始化时计算出基准电压对应的频率为f1、f2、f3、f4,四个基准电压对应的三段的放大倍数为k1、k2、k3。先比较出测得的电压属于哪段,当输入电压Vin在v1—v2段内时,将Vin放大k1倍后测的频率为fin,将v1、v2放大k1倍后测得频率为f5、f6,则可求得输入信号的电压值为

V?v2?k1?v1?k1?fin?k1

f6?f5同样的原理,当输入电压在v2—v3间时或v3—v4间时,将Vin放大k2倍或k3后再测量和计算。通过这种处理计算的方法,如果当测量得频率有误差,经过这种方法计算后,误差也会减小到1/k1。

另外,由于在实际的工业现场,采集系统一般都是长时间的工作,A/D肯定会存在温漂,因此在设计程序的时候,让系统每隔一段时间就要进行一次自校准, 重新核对基准源对应的频率。让系统在长时间的工作时候仍能保证测得很精确的输入值。

2、程序代码设计

a)、显示模块设计流程图下图25所示:

开 始 LCD初始化,按键中断注册 按SW17下? Y N 开机画面 显示 按SW16下? N Y 核对基准电压 按KEY2下? Y N 循环显示各路信号 按KEY3下? Y N 显示路数加一,并固定显示该路

图23 显示流程图

16

杯陕西省电子设计专题竞赛

b)、定时器模块设计流程图

开 始 定时器中断服务 程序入口 定时器设初值, 定 时 25ms 清中断标志, 读取计数器值 清零计数器 定时时间到? N 处理按键响应中断 调用数据处理子程序 Y 定时器中断服 务 程序 调用UART服务子程序 刷新记数值加一,校准记 数值加一,循环定时记数加一 调用自校准子程序 Y 校准记数到? N 刷新显示每路数据,循环记数到,则显示下路数据 Y 刷新记数到? 循环记数到? N 返 回

图24 定时器模块设计流程图

根据流程图,定时器中断服务程序代码如下: void timer_interrupts()

{ if(checktime==0&&check_enable==1) v_check(); else

{IOWR_ALTERA_AVALON_TIMER_STATUS(HIGH_RES_TIMER_BASE,0); IOWR_ALTERA_AVALON_PIO_DATA(GATE_BASE,1);

counters=IORD_ALTERA_AVALON_PIO_DATA(AD_DATA_BASE); printf(\,road,counters); send_road=road; send_n=n;

compute(counters);

17

基于SOPC的工业现场高精度多路数据采集系统

Receive_ISR();

IOWR_ALTERA_AVALON_PIO_DATA(MULT_V_SELECT_BASE,mul_v); switch(road) {case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12:

case 13:addr=road;break; case 14:addr=0x1e;break; case 15:addr=0x2f;break; default:addr=0;break; }

IOWR_ALTERA_AVALON_PIO_DATA(F_ADDR_SELECT_BASE,addr); if(checktime>=300)

checktime=0,check_enable=1; else

checktime++;

if(xunhuan_enable==1) if(xunhuantime>=100) {xunhuantime=0;

shuaxin_enable=1; if(xunhuan_road>=15) xunhuan_road=0; else

xunhuan_road++;

LCD_SHOW_CHANEL(xunhuan_road); shuaxintime=0; }

else xunhuantime++; else xunhuantime=0;

if(shuaxintime>=25&&shuaxin_enable==1) {shuaxintime=0;shuaxin(xunhuan_road);} else shuaxintime++;

18

杯陕西省电子设计专题竞赛

IOWR_ALTERA_AVALON_PIO_DATA(GATE_BASE,0);

IOWR_ALTERA_AVALON_TIMER_CONTROL(HIGH_RES_TIMER_BASE,0x5); } }

c)、控制算法设计流程图

开 始 Road=14或者15? N 转入频率信号计Y算,结果储存到RAM中,road++。 转入各段对应的算法程序,road++ M=1? N 判断duanshu=?road=? Y c=check_v[0]&&c=check_v[1]&&c=check_v[2]&&c

图25 控制算法设计流程图

五、算法实现

1.通过算法流程图,在对A/D分段线性处理并放大后,采集的数据可以达到一个很好

精度。为了减小干扰信号对数据采集带来的影响,除了在硬件电路上采用一定方法外,软件上加入数字滤波对采样数据进行处理,以提高采集数据的精度。

对于工业现场经常遇到的尖脉冲干扰信号,可采用去极值平均滤波,对m个数据比较,去掉最大值和最小值,再对m-2个数据取算术平均值。 将采集处理后的数据放在RAM中,原本想要使用DMA在RAM与UART之间进行数据传输,但是考虑到数据采集系统数据传输量不大,而且采集速度也较慢,最终放弃使用DMA,而直接使用NIOSII I/O读写程序来传输数据。

2.串行通讯

下面时系统串行通信工作流程图。图 26为上位机接收数据程序流程图,图28为 NIOS II系统查询发送程序流程图。

19

基于SOPC的工业现场高精度多路数据采集系统

开 始 串行口初始化 将接受的1地址 字节与3数据字节异或 向DE2发送 请求数据信号0xFFH N等待DE2回答 校验相等 Y N设备准备好 向DE2板发送 请求重发信号0xFC Y接收1字节地址 并保存到缓冲区 返 回 N接收3字节数据 并保存到缓冲区 数据接受完毕 Y接收1校验字节

图26 上位机接收数据程序流程图

20

杯陕西省电子设计专题竞赛

开 始 定时器、串行口初始化 记录要发送路数和次数 send_road=road; send_n=n; 查 询 接 收 寄 存 器 是0xFFH N Y是0xFCH YN保存当前发送路数和次数 resend_road=send_road; resend_n=send_n; resend_timers < 3 N发送1字节地址 Y 重发上次发送数据send_road=resend_road; send_n=resend_n; 发送3字节数据 发送1校验字节 rensend_timer =0 返 回

图27 NIOS II系统查询发送程序流程图

六、测试方案及设备

测试目的:验证输入电压、电流、频率和PT10的温度信号精度是否达标。 测试现场温度:28℃。 测试使用仪器及型号:

161/2高精度数字万用表:Agilent 34401A;马来西亚Agilent; ○

21

基于SOPC的工业现场高精度多路数据采集系统

2十进位电阻箱:型号:ZX38/10型;上海交流仪器厂;0.1级 ○

3多路直流稳压稳流电源源:型号:MPS-3000L-3;深圳市麦创电子科技有限公司 ○

4信号发生器:型号:MFG-8216B;深圳市麦创电子科技有限公司 ○

(1)输入电压的测试方案如图28,

测试步骤:

1将可调稳压源的电压输出端接入系统的电压信号输入端VIN1; ○

2调节可调稳压源的电压输出使电压由0~5V,并记录数据; ○

○3再反向调节可调稳压源的电压输出使电压由0~5V,并记录数据;

表8 电压测量实验数据记录 给定电压值(V) LCD显示(V) 绝对误差(mV) 给定电压值(V) LCD显示(V) 绝对误差(mV)

0.15 0.147 3 1 1.001 1 0.25 0.251 1 1.5 1.502 2 0.5 0.498 2 2 2.001 1 0.6 0.602 2 3 3.001 1 0.7 0.702 2 4 4.002 2 0.8 0.803 3 4.5 4.502 2 0.9 0.904 4 5 5.002 2 系统 + V —— 图28 输入电压的测试原理

可调稳压源 (2 )输入电流的测试方案 如图29所示。

系 统 A 精密电阻 I可调电流源 I— 图29 输入电流的测试原理 22

杯陕西省电子设计专题竞赛

测试步骤:

1将可调电流源的电压输出端接入系统的电流信号输入端IInput1; ○

2调节可调电流源的电压输出使电流由4~20mA,并记录数据; ○

3再反向调节可调电流源的电压输出电流由20mA~0mA,并记录数据; ○

表9 电流测量实验数据记录 给定电流值(mA) LCD显示值(mA) 绝对误差值(mA) 给定电流值(mA) LCD显示值(mA) 绝对误差值(mA) 4 4.21 0.21 10 10.21 0.21 4.5 4.33 0.17 12 11.84 0.16 5 5.19 0.19 14 13.85 0.15 5.5 5.73 0.23 15 15.25 0.25 6 6.22 0.22 16 16.31 0.31 6.5 6.72 0.22 18 18.2 0.2 7 6.83 0.17 20 19.78 0.22 ( 3 ) 温度的测试方案如图30所示。 I

高 VIN+ 精

系 度 V

统 VIN电

恒流源I— 阻

箱 图 30 PT100的测试原理

由于实验条件的关系,对温度的测量,只能用0.1级电阻箱来模拟Pt100随温度变化时阻值的变化。再将电阻箱的阻值,用查分度表或公式计算的方法转换为相应的温度值,并认为该值为测量的实际值,将其与系统的LCD显示值对照。 测试步骤:

1将十进位电阻箱输出端接入系统的PT100信号输入端PTinput1; ○

○2调节十进位电阻箱输出使对应温度由-200℃~850℃,并记录数据;

3再反向调节十进位电阻箱输出使温度由850℃~-200℃,并记录数据; ○

23

基于SOPC的工业现场高精度多路数据采集系统

表10 温度测量实验数据记录 给定电阻 (欧) 对应温度 (℃) LCD显示(℃) 绝对误差值(℃) 给定电阻 (欧) 对应温度 (℃) LCD显示(℃) 绝对误差值(℃) 18.5 -200 -202 2 212.05 360 361 1 48.00 -130 -129 1 240.18 380 381 1 76.33 -60 -62 2 280.98 500 502 2 103.9 10 11 1 322.76 570 569 1 130.9 80 81 1 350.11 640 639 1 157.33 150 149 1 377.7 710 708 2 183.19 220 219 1 390.48 850 849 1 (4)频率信号的测量原理如图31, 系 示 频 统 波 率 器 计 图31 频率信号的测量原理

测试步骤:

1将信号发生器频率输出端接入系统的频率信号输入端F1; ○

信 号 发 生 器 2调节信号发生器的频率输出使频率由0~1MHZ,并记录数据; ○

3再反向调节信号发生器频率输出使频率由1MHZ~0HZ,并记录数据; ○

24

杯陕西省电子设计专题竞赛

表11 频率测量实验数据记录 给定频率值(HZ) LCD显示(HZ) 绝对误差值(HZ) 给定频率值(HZ) LCD显示(HZ) 绝对误差值(HZ) 100 91 9 2000 199 4 150 152 2 2500 2503 3 200 197 3 3000 2997 3 400 402 2 5000 5003 3 800 798 2 6000 6003 3 1600 1603 3 6500 6596 4 1700 1703 3 9000 9004 4

七、测试数据及结果分析

1.测试数据分析 (1)电压测量

由表8可见 (2)电流测量

由表9可见 (3)频率测量

由表10可见 (4)温度测量 由表11可见

2. 测试结果

本次设计的高精度多路数据采集系统能很好地实现对工业现场多通道高精度数据采集、DE2 板上液晶同步显示以及与上位机实时数据交换。由于系统合理地利用了DE2板载资源,同时采用抗工频干扰能力强的V/F转换,再加上内部基准源自校正电路,保证了系统准确、稳定、可靠的运行。

参考文献

1 潘松,黄继业,曾毓编著.SOPC技术实用教程.清华大学出版社,2005. 2 潘松,黄继业编著.EDA技术实用教程.北京:科学工业出版社,2006.

3 李晶蛟等编著.液晶显示器的C语言程序设计.北京:科学工业出版社,2005. 3 陶时澍主编.电器测量.哈尔滨工业大学,2004.

4 林敏等著.计算机控制技术及工程应用.北京:国防工业出版社,2005.

5 求是科技 编著.单片机通信技术与工程实现.北京:人民邮电出版社,2005.1.

6 求是科技 编著.Visual Basic 串口通信工程开发实例导航.北京:人民邮电出版社,2003.1. 7 张路平 等编著.Visual Basic 6.0 编程案例.北京:电子工业出版社,2005.1. 8 张宏林 等编著.Visual Basic 编程疑难详解.北京:人民邮电出版社,2000-7. 9 ALTERA公司提供的QUARTUS II、NIOS II培训教材

25

基于SOPC的工业现场高精度多路数据采集系统

附录:系统功能概述

外围各通道的信号通过外围电路测量放大之后,再经过A/D转换为频率信号,进入系统中的计数器记数,定时器记时时间到,NIOS CPU产生一个清零信号,并同时读取计数器的记数值。记数值在CPU中转换为频率,之后通过A/D的分段线性关系,求出对应的输入信号的电压值,再转换为对应的温度、电流信号,并且转换好的值暂时储存在SDRAM中,同时送到LCD显示。最后,在把暂存的值通过UART传输到上位机保存,以便以后的查看和分析。 系统中按键功能定义: SW17:系统工作使能键。

SW16:核定基准电压使能键,拨上该键,可以核对外围电路中的基准电压后输入到系统程序中,由于基准电压是通过精密电阻分压所得,因此基准电压一般不会变,可以很长时间校准一次。

KEY3:进入循环显示使能键。当SW16被按下后,该键用来设定基准电压。

KEY2:选择路数键,按下该键后,显示路数加一。当SW16被按下后,该键用来设定基准电压。

KEY1:选择路数键,按下该键后,显示路数减一。当SW16被按下后,该键用来设定基准电压。

KEY0:当SW16被按下后,按下该键,系统读入设定的基准电压值。

26

本文来源:https://www.bwwdw.com/article/vzt7.html

Top