当前位置:文档之家› 24位+16位工业数据采集系统原理

24位+16位工业数据采集系统原理

24位+16位工业数据采集系统原理
24位+16位工业数据采集系统原理

YG-EB1209

工业嵌入式数据采集控制系统板

V

非常感谢您购买“Yoga ”产品

在打开包装后请首先依据物件清单检查配件,若发现物件有所损坏或是有任何配件短缺的情况,请尽快与您购买的人联络。

长沙业嘉电子科技有限公司,版权所有。

Copyright 2012.08.14

长沙业嘉电子科技有限公司

1. 产品概述

YG-EB1209 嵌入式单板集成了工业级单板和 2 个独立超高精度模拟数据采集卡(16 位/24 位)于一体,是一款结构紧凑,功能强大的复合型功能单板,和以往的 X86 架构单板相比,能耗、体积的优势非常突出,整板功耗低于 5W,同时稳定性经过实际验证,稳定可靠。

集成 16 位高精度模拟数据采集卡使用简单,功能齐全。其 A/D 转换启动方式可以选用程控频率触发、程控单步触发、外部 TTL 信号触发以及外部时钟同步触发等多种方式。A/D 转换后的数据结果通过先进先出存储器(FIFO)缓存后送入嵌入式 ARM 主控部分,可经过众多外围接口送入控制层。

集成 24 位超高精度模拟数据采集卡,功能齐全,操作采用几个寄存器配置的方式就可以轻松实现多通道数据采集,适合对精度和波动要求高,电压不高微传感器信号采集的场合。

为方便用户,本主板还提供了符合 TTL 电平的 8 路数字量输入和 24 路数字量输出信号通道。此数字

输入输出通道并能根据用户定制而灵活配置。

主要特点和技术参数如下:

嵌入式单板部分:

?工业级 ARM9 处理器,400MHZ 频率

?提供 128MB,64MB 可选内存配置,256MB nandflash,2MB norflash

?标准 VGA 接口,支持 800X600 分辨率

?一个 TYPE I/II 型 CompactFlash 接口

?标准 10M/100M 以太网网卡

?提供两个 USB HOST 接口,可接键盘鼠标等 USB 设备

?提供三个串口,其中两个为 RS232 接口,其中串口 1 支持流控,串口 3 为 RS485 接口,支持硬件自动转向和程序控制转向两种方式

?提供 CPLD 寄存器管理接口

?实时时钟 RTC 接口,配置 RTC 电池

16 位模拟数据采集卡部分:

?输入通道数:单端 16 路* / 双端 8 路

?输入信号范围:0~10V*;0~5V;±5V;±10V

?输入阻抗:≥10MΩ

?输入通道选择方式:单通道程序指定/多通道自动扫描

? A/D 转换分辩率:16 位

? A/D 最高转换速率:200KHz

? A/D 采样程控频率:1KHz/5KHz/10KHz/50KHz/100KHz/200KHZ/外部时钟

? A/D 启动方式:程控频率触发/程控单步触发/外部 TTL 信号触发

? A/D 转换输出码制:单极性原码*/双极性偏移码

? FIFO 存储器容量:8K×16bit(全满)/4K×16bit(半满)

?数据读取识别方式:FIFO 半满查询/FIFO 非空查询/FIFO 半满中断

?32 通道数字量输出 IO,16 通道数字量输入 IO

24 位模拟数据采集卡部分:

?输入通道数:单端 8 路* / 双端 4 路

?输入信号范围:0~3V(BUFFER ON MODE);0~5V(BUFFER ON OFF);±3V(BUFFER ON MODE);± 5V(BUFFER OFF MODE)

?输入阻抗:≥10MΩ

?输入通道选择方式:单通道程序指定

长沙业嘉电子科技有限公司? A/D 转换分辩率:24 位

? A/D 最高转换速率:30KSPS

? A/D 采样程控频率:2.5SPS~30KSPS

? A/D 启动方式:程控单步触发

? A/D 转换输出码制:单极性原码*/双极性偏移码

电源功耗:

输入电压:数字部分 5V 输入供电,模拟部分 12V 输入供电功

耗:整板功耗 < 5W

环境要求:

温度:-5℃~70℃

湿度: 5%~90%(非凝结)

外型尺寸:

长×高=162mm×120mm

2. 安装及接口说明

2.1单板尺寸和接口:

图 1 单板器件布局和尺寸示意图

图 2 单板外出接口示意图

2.2接口定义:

2.2.1 串口(J1,J2)

三个标准通讯串口, COM1/COM2/COM3 均为 RS232 接口;

2.2.2 VGA(J18)

预留接口

2.2.3 复位跳线(J19)

1,2 短接即产生系统复位信号

2.2.6 USB HOST 接口(J15)

管脚定义如下:

插座引脚号信号定义插座引脚号信号定义

1 VBUS

2 USB_DN0

3 USB_DP0

4 GND

5 VBUS

6 USB_DN1

7 USB_DP1 8 GND

- 5 -

长沙业嘉电子科技有限公司2.2.7 电源接口(J14)

2.2.8 CF 接口(J16)

CompactFlash 插座的管脚定义如下:

2.2.9 以太网接口(J17)

2.2.10 模入接口(J13)

J13 为模拟信号输入插座,其信号定义见表 1。用户可根据需要选择连接信号线(单端)或信号线组(双端)。为减少信号杂波串扰和保护通道开关,凡不使用的信号端应就近与模拟地短接, 这一点在小信号采样时尤其重要。

2.2.9 数字 IO 开关量部分(J4)

J4 为开关量输入输出插座,其信号定义见表 2 。

33 DO21 34 DO22

35 DO23 36 DO24

37 EC/T 38 NC

39 GND 40 GND

注:EC/T 为外触发启动信号/外同步时钟信号共用输入端(输入电平 3.3V 限幅)。

2.3 跨接器的使用

2.3.1 单端/双端方式选择

J20、J9 为单端/双端输入方式选择插座,其使用方法见图 3。

a. 单端输入方式

b. 双端输入方式

图 3 单/双端输入方式选择

2.3.2 A/D 量程选择

J7 为 A/D 量程选择插座,其使用方法见图 4。1 为靠近板边的位置。

a.0~10V 输入

b. 0~5V 输入

c. ±5V 输入

d. ±10V 输入

图 4 A/D 量程选择

3 寄存器描述

3.1 各控制寄存器的地址与功能见表 3

表 3 寄存器地址和功能表(16 位操作)

端口地址读写功能

0x0 R CPLD 版本寄存器

0x1 R/W CPLD 功能测试取反寄存器

低 4bit 复位 16 位采集卡,高 4bit 复位

0x2 R/W 24 位采集卡

0:复位

3.2 寄存器功能详细说明

3.2.1 除 I/O 端口外采集卡复位,清空 FIFO(偏移地址 0x2)

本操作用于清空 FIFO 并使除 I/O 以外的各种已进行过的操作恢复到初始状态,同时将 FIFO 的状态标志置为“空”。本操作应在每次 A/D 采集之前进行。

3.2.2 工作模式设置寄存器格式和定义(偏移地址 0x3)

工作模式设置寄存器用来确定本卡的各种工作方式,每次采样前应根据需要加以确定,其格式及定义见

表 4。

A3 A2 A1 A0 为通道代码。当本卡工作在单通道程序指定方式时,这些通道代码即为程序指定的某一通道。

当本卡工作在多通道自动扫描方式时,这里的通道代码为指定的末通道(一定大于 0),本卡将自动从 0 通道开

始,逐次加一选择通道,直到指定的末通道为止,且周而复始。

B 为触发启动方式选择。B=0 时为程控触发启动方式,B=1 时为外部 TTL 信号触发启动方式。

C 为单通道程序指定/多通道自动扫描选择。C=0 时为单通道程序指定方式。C=1 时为多通道自动扫描

方式。

D2 D1 D0 为 A/D 采样程控频率选择。其定义如下:

3.2.3 工作使能寄存器(偏移地址 0x4)

当工作模式设置寄存器填写完毕后,本卡还不能开始工作。只有在工作使能寄存器(偏移地址 0x4)写 1 才

能允许工作。此时,如果状态控制字选择的是程控触发启动方式,则本卡将按照选定的程控频率开始工作。如果状态控制字选择的是外部 TTL 信号触发启动方式,则本卡将等待外部 TTL 信号的上升沿(从低电平到高电平),然后按照选定的程控频率开始工作。

采样过程中,在工作使能寄存器(偏移地址 0x4)写 0 将停止本卡的 A/D 转换工作,直到重新写 1 允许。

3.2.4 FIFO 标志寄存器(偏移地址 0x5)

FIFO 状态在工作过程中可以随时查询,以判断 FIFO 存储器中 A/D 转换结果的存储情况。其状态标志定义

如下:

一般情况下,如果本卡工作在低速或单步方式时,可以用过查询判断 FIFO 是否为“空”进行数据的读

取。而在高速工作方式时,应该通过查询判断 FIFO 是否为“半满”进行数据的批量读取。“全满”状态一

般不要使用,因为出现了“全满”就意味着可能有数据溢出丢失。

3.2.5 单步采集使能寄存器(偏移地址 0x6)

在状态控制字设为单步方式,且置为工作允许后,再对单步采集使能寄存器(偏移地址0x6)进行一次

写操作(写出数据无关),本卡就进行一次采样。如果本卡同时还置为多通道自动扫描方式,则同时切换

到下一个通道等待继续操作。

由于单步采样是一个程序可控的进程,所以只要执行完一次单步采样并且判断 FIFO 中“不空”,即可从FIFO 中读出 A/D 转换的结果。

3.2.6 读 FIFO 数据地址寄存器(偏移地址 0x7)

执行此操作可以从 FIFO 中读出经过缓存的 A/D 转换结果,此结果由 16 位数据组成,具体格式及定义参见4.2。

3.2.7 读 16 位 DI/写 32 位 DO 开关量数据(偏移地址 0x8,0x9,0xa)

执行上述读/写操作可以读入或写出数字开关量。注意此类操作均为 16 位操作。其中每一位对应一路数字开关量,且数字开关量均为 5V TTL 电平标准。

4 相关说明及注意事项

4.1 模入通道代码数据格式见表 5

4.2 A/D 转换结果的数据格式见表 6

注:双极性时 DB15 为符号位。

4.3 开关量输入输出信号的数据格式见表 7

4.4 模入码制以及数据与模拟量的对应关系

4.4.1 本接口卡在单极性方式工作,用 16 位 AD 时且输入的模拟量为 0~10V 时,转换后的 16 位数码为二进制原码。

此 16 位数码表示一个正数码,其数码与模拟电压值的对应关系为:

模拟电压值=数码(16 位)×10(V)/65536 (V)

即: 1LSB=0.1526mV

4.4.2 本接口卡在单极性方式工作,且输入的模拟量为0~5V 时,转换后的16 位数码为二进制原码。

此 16 位数码表示一个正数码,其数码与模拟电压值的对应关系为:

模拟电压值=数码(16 位)×5(V)/65536 (V)

即: 1LSB=0.0763mV

4.4.3 本接口卡在双极性方式工作,且输入的模拟量为±5V 时,转换后的 16 位数码为二进制偏移码。

此 16 位数码的最高位(DB15)为符号位,“0”表示负,1”表示正。偏移码与补码仅在符号位上定义不同,此时数码与模拟电压值的对应关系为:

模拟电压值=数码(16 位)×10(V)/65536-5 (V)

即:1LSB=0.1526mV

4.4.4 本接口卡在双极性方式工作,且输入的模拟量为±10V 时,转换后的 16 位数码为二进制偏移码。

此 16 位数码的最高位(DB15)为符号位,“0”表示负,1”表示正。偏移码与补码仅在符号位上定义

不同,此时数码与模拟电压值的对应关系为:

模拟电压值=数码(16 位)×20(V)/65536-10 (V)

即:1LSB=0.3052Mv

24 位 AD 此计算一次类推。

4.5 外触发启动信号的使用说明-限用于 16 位采集卡

本卡的 A/D 采样可以在外触发方式下启动工作。在本卡设置好状态控制字(外部 TTL 信号触发启动方式,程控频率为除单步方式以外的任一频率方式),清空 FIFO 并允许工作后,当外触发启动信号有一个上升沿(从低电平到高电平的变化),本卡即开始正常采样。此时只要检测 FIFO 的状态标志即可知道是否开始采样并按需要读出 A/D 转换结果。使用中需注意外启动信号应符合 TTL 电平标准。

4.6 外同步时钟信号的使用说明-限用于 16 位采集卡

外同步时钟信号的使用要求与外触发启动信号类似,应符合 TTL 电平标准。其时钟频率应不超过200KHz。

4.7 外同步时钟信号与外触发启动信号同时使用的说明-限用于 16 位采集卡

本卡的 A/D 采样还可以采用外同步时钟信号与外触发启动信号同时使用的方式。在本卡设置好状态控制字(外部 TTL 信号触发启动方式,程控频率为外同步时钟方式),清空 FIFO 并允许工作后,当外同步时钟信号有一个上升沿(从低电平到高电平的变化),本卡即开始按照外同步时钟频率正常采样。

4.8 调整与校准

本卡出厂时已进行了调整与校准,如无必要,请不要进行此项工作。如果长期使用后发现零点或满度偏移,请按下述方法进行调校。

4.8.1 零点校准

将任一通道对模拟地短接(单端单极性方式时)同时对该通道进行 A/D 转换,调整 RP1 电位器,使其转换结果为“0”或接近“0”。

- 12 -

5.软件编程举例(linux环境):

首先需要搭建嵌入式 LINUX开发环境,建议在电脑 WINXP系统下面用 vmware station建立一个 Linux 虚拟机,在虚拟机里面装好 arm gcc的编译器后,就可以写软件程序了,写完的程序经过 make后得到执行文件经过FTP下载到板子上面执行即可。

5.1 对 16 位采集卡进行输入信号为 0~10V,对通道 1 连续采样 100 次,程序单步启动和查询 FIFO“非空”后读出A/D 采样数据。本程序可用于A/D 部分调校。请将te21adac.so 动态链接库文件放入程序当前目录下。

#include /* 包含标准输入输出文件 */

#include

#include

#include

int main(int argc, char *argv[])

{

unsigned int a,b,c,d;

unsigned int i=0;

float j;

unsigned short temp;

adac_open(); //打开数据采集卡接口

outport(0x2,0x0);

outport(0x2,0x1); //手动清空 FIFO,除 I/O 外各功能复位

outport(0x3,0x0700); //写状态控制字:非中断方式;100KHz 采样频率;

temp=inport(0x3);

if(0x0700 == temp) printf("set workmode sucess\n");

outport(0x4,0x1); //置工作允许

for(i=0;i<100;i++) //采样次数=100 次

{

b = inport(0x5);

printf("%x \n",b);

outport(0x6,0x1); //启动 A/D 转换一次

sleep(1);

b = inport(0x5);

printf("%x \n",b);

do{

; //判断 FIFO 中是否为“空”,为“空”等待

}while(inport(0x5) < 1);

b = inport(0x7); // FIFO 中“非空”,读取 A/D 转换结果

printf("%x \n",b);

j=(float)(b*10.0/65536.0);

printf("%f ", j);

printf("\n");

for(c=0;c<4000;c++)

{

for(d=0;d<4000;d++);

长沙业嘉电子科技有限公司

}

}

outport(0x4,0x0);

adac_close();

return 0;

}

注:如果输入信号为 0~5V,则该语句为:

j=(float)(i*5.0/65536.0);

如果输入信号为±5V,则该语句为:

j=(float)(i*10.0/65536.0-5.0);

如果输入信号为±10V,则该语句为:

j=(float)(i*20.0/65536.0-10.0);

5.2 对 16位采集卡进行 16个通道连续循环采样至“半满”(共 4096个数据),100KHz采样频率,查询 FIFO “半满”后读出 A/D采样数据。请将 te21adac.so 动态链接库文件放入程序当前目录下。

#include /* 包含标准输入输出文件 */

#include

#include

#include

int main(int argc, char *argv[])

{

unsigned int a,b,c,d;

unsigned int i=0;

float j;

unsigned short temp;

adac_open(); //打开数据采集卡接口

outport(0x2,0x0);

outport(0x2,0x1); //手动清空 FIFO,除 I/O 外各功能复位

outport(0x3,0x0483); //写状态控制字:非中断方式;100KHz 采样频率

// 多通道自动扫描模式;末通道代码=F(16 通道)

temp=inport(0x3);

if(0x0083 == temp) printf("set workmode sucess\n");

outport(0x4,0x1); //置工作允许

do{

;

}while(inport(0x5)<3);

outport(0x4,0x0); // FIFO 中“半满”,置工作停止

do{

b = inport(0x7); //FIFO 中“非空”,读取 A/D 转换结果

//printf("%x \n",b);

j = (float)(b*10.0/65536.0);

printf("%f ",j);

printf("\n");

for(c=0;c<4000;c++)

{

for(d=0;d<4000;d++);

}

}while(inport(0x5)>0);

adac_close();

return 0;

}

5.3 24 位 AD,0-7 通道轮询采集,采集速率 10SPS。

#include /* 包含标准输入输出文件 */

#include

#include

void ads1256_init(void)

{

unsigned short flag;

outport(0x10,0x00fe); //reset 24bit AD

printf("ads1256 reset\n");

usleep(100);

while(1 == inport(0x11)) ;

outport(0x10,0xf750); //write ads1256 0x00 status register printf("ads1256 0x00 reg set\n");

usleep(100);

while(1 == inport(0x11)) ;

outport(0x10,0x0851); //write ads1256 0x01 mux register printf("ads1256 0x01 reg set\n");

usleep(100);

//pga set

while(1 == inport(0x11)) ;

outport(0x10,0x0152); //write ads1256 0x02 adcon register printf("ads1256 0x02 reg set\n");

usleep(100);

while(1 == inport(0x11)) ;

outport(0x10,0x2353); //write ads1256 0x3 drate register printf("ads1256 0x03 reg set\n");

usleep(100);

while(1 == inport(0x11)) ;

outport(0x10,0x0f54); //write ads1256 0x4 giio register printf("ads1256 0x04 reg set\n");

usleep(100);

}

float sample(unsigned char count) //读 A/D 数据。{

unsigned long int rdva1,rdva2,rdva,sum;

unsigned char i=0;

float result = 0;

sum = 0 ;

outport(0x10,0x00fc); usleep(1000); outport(0x10,0x00ff); usleep(100);

for(i=0;i

//wakeup 唤醒,并启动 AD 转换

while(1 == (inport(0x11))) ; //DRDY 信号低时才能写寄存器,等待转换完毕

usleep(10);

outport(0x10,0x0001); //send 01 RDATA cmd

usleep(1000);

rdva1=inport(0x13); //read low 16bit

rdva2=inport(0x14); //read high 8bit

rdva= ((rdva2<<16) + rdva1) ;

sum=sum+rdva;

}

result = sum / count;

result = (float)(5000.0 * result / 16777216.0);

return result;

}

int main(int argc, char *argv[])

{

unsigned int drdy_status=0;

unsigned long int value=0;

unsigned char count ;

float j;

//unsigned short temp;

//unsigned int val[5];

if( (argc<2) || (argc>3) )

{

printf("param error,please input like\n" );

//(5000 * Adc_result.rlong / 16777216);

printf("ads1256 1--1 mean sample count once ch\n");

return 1;

}

if(argc==2)

{

count=strtoul(argv[1],NULL,16);

}

adac_open(); //打开数据采集卡接口

printf("opened adac interface\n");

usleep(10);

outport(0x2,0x01);

outport(0x2,0x11); //手动复位 ADS1256 寄存器内部状态printf("reset ad2\n");

ads1256_init();

while(1)

{

//采集 0 通道

while(1 == inport(0x11)) ;

outport(0x10,0x0851); //write ads1256 0x01 mux register usleep(100);

//outport(0x10,0x00f0); //send autocal cmd

//usleep(100);

j=sample(count); //0 ch sample 10 次然后求平均值

printf("ch0 valu:%f mv\n", j);

//采集 1 通道

while(1 == inport(0x11)) ;

outport(0x10,0x1851); //write ads1256 0x01 mux register usleep(100);

//outport(0x10,0x00f0); //send autocal cmd

//usleep(100);

j=sample(count); //0 ch sample 10 次然后求平均值

printf("ch1 valu:%f mv\n", j);

//采集 2 通道

while(1 == inport(0x11)) ;

outport(0x10,0x2851); //write ads1256 0x01 mux register usleep(100);

//outport(0x10,0x00f0); //send autocal cmd

//usleep(100);

j=sample(count); //0 ch sample 10 次然后求平均值

printf("ch2 valu:%f mv\n", j);

//采集 3 通道

while(1 == inport(0x11)) ;

outport(0x10,0x3851); //write ads1256 0x01 mux register usleep(100);

//outport(0x10,0x00f0); //send autocal cmd

//usleep(100);

j=sample(count); //0 ch sample 10 次然后求平均值

printf("ch3 valu:%f mv\n", j);

//采集 4 通道

while(1 == inport(0x11)) ;

outport(0x10,0x4851); //write ads1256 0x01 mux register usleep(100);

//outport(0x10,0x00f0); //send autocal cmd

//usleep(100);

j=sample(count); //0 ch sample 10 次然后求平均值

printf("ch4 valu:%f mv\n", j);

//采集 5 通道

while(1 == inport(0x11)) ;

outport(0x10,0x5851); //write ads1256 0x01 mux register usleep(100);

//outport(0x10,0x00f0); //send autocal cmd

//usleep(100);

j=sample(count); //0 ch sample 10 次然后求平均值

printf("ch5 valu:%f mv\n", j);

//采集 6 通道

while(1 == inport(0x11)) ;

outport(0x10,0x6851); //write ads1256 0x01 mux register usleep(100);

//outport(0x10,0x00f0); //send autocal cmd

//usleep(100);

j=sample(count); //0 ch sample 10 次然后求平均值

printf("ch6 valu:%f mv\n", j);

//采集 7 通道

while(1 == inport(0x11)) ;

outport(0x10,0x7851); //write ads1256 0x01 mux register usleep(100);

//outport(0x10,0x00f0); //send autocal cmd

//usleep(100);

j=sample(count); //0 ch sample 10 次然后求平均值

printf("ch7 valu:%f mv\n", j);

printf("\nnow begin again test from 0 ch\n");

sleep(1);

}

adac_close();

return 0;

}

个数字输出 IO(需分两次写入)。

5.4 I/O 操作。注意读/写均为 16 位操作,16 个数字输入 IO,32

#include /* 包含标准输入输出文件 */

#include

#include

#include

int main()

{

unsigned int di,do1,do2;

adac_open(); //打开数据采集卡接口

do1=0x5a5a;

do2=0x00a5;

outport(0x9,do1); //低 16bit do

outport(0xa,do2); //高 8bit do

di=inport(0x8);

printf("%x \n", do1);

printf("%x \n", do2);

printf("%x \n", di);

adac_close();

return 0;

}

附 A. 名词注释

1.单端输入方式:各路输入信号共用一个参考电位,即各路输入信号共地,这是最常用的接线方式。使用单端输入方式时,地线比较稳定,抗干扰能力较强,建议用户尽可能使用此种方式。

2.双端输入方式:各路输入信号各自使用自己的参考电位,即各路输入信号不共地。如果输入信号来自不同的信号源,而这些信号源的参考电位(地线)略有差异,可考虑使用这种接线方式。使用双端输入方式时,输入信号易受干扰,所以,应加强信号线的抗干扰处理,同时还应确保模拟地以及外接仪器机壳接地良好。而且特别注意的是,所有接入的信号,不论是高电位还是低电位,其电平相对于模拟地电位应不超过±15V , 以避免电压过高造成器件损坏。

3.单极性信号:输入信号相对于模拟地电位来讲,只偏向一侧,如输入电压为 0 ~ 10V。

4.双极性信号:输入信号相对于模拟地电位来讲,可高可低,如输入电压为 -5v ~ +5V。

5.码制:模拟量信号转换为数字量后,形成一组由 0 开始的连续数字,每一个数字对应着一个特定的模拟量值, 这种对应关系称为编码方法或码制。依据输入信号的不同分为单极性原码与双极性偏移码。单极性输入信号对应着单极性原码,双极性信号对应着双极性偏移码.

6.单极性原码:以 12 位 A/D 为例, 输入单极性信号 0~10V。转换后得到 0 ~ 4095 的数字量,数

字量 0 对应的模拟量为 0V,数字量 4095 对应的模拟量为 10V,这种编码方法称为单极性原码,其数字量值与模拟电压值的对应关系可描述为:

模拟电压值=数码(12 位)×10(V)/4096 ( V )

即:1LSB(1 个数码位)=2.44mV

7.双极性偏移码:以 12 位 A/D 为例, 输入双极性信号 -5~+5V。转换后得到 0 ~ 4095 的数字量,数字量 0 对应的模拟量为 -5V,数字量 4095 对应的模拟量为 +5V,这种编码方法称为双极性偏移码,其数字量值与模拟电压值的对应关系可描述为:

模拟电压值=数码(12 位)×10(V)/4096-5 ( V )

即:1LSB(1 个数码位)=2.44mV

此时 12 位数码的最高位(DB11)为符号位,此位为 0 表示负,1 表示正。偏移码与补码仅在符号位上定义不同,如果反向运算,可以先求出补码再将符号位取反就可得到偏移码。

8.A/D 转换速率:表明A/D 转换芯片的工作速度。如对ADS7805 来讲,完成一次转换所需要的时间是10 微秒,则它的转换速率为 100 KHz。

9.通过率:指 A/D 采集卡对某一路信号连续采集时的最高采集速率。

10.初始地址:使用板卡时,需要对卡上的一组寄存器进行操作,这组寄存器占用数个连续的地址,一般将其中最低的地址值定为此卡的基地址,这个基地址值是在板卡安装后由系统自动分配的。

附 B. 产品清单及保修

产品清单:

1. YG-EB1209高精度模入接口卡壹块。

2. YG-EB1209高精度模入接口卡技术说明书壹份。

本产品自售出之日起两年内,凡用户遵守贮存、运输及使用要求,而产品质量低于技术指标的,凭保修单免费维修。因违反操作规定和要求而造成损坏的,需交纳器件和维修费。

数据采集系统微机原理课设

微型计算机原理及接口技 术课程设计 学院:专业:班级:学号:姓名:指导教师: 第一部分 课程设计任务书 、设计内容(论文阐述的问题) 设计一个数据采集系统 基本要求:要求具有 8 路模拟输入 输入信号为 0 —— 500mV 采用数码管 8 位,显示十进制结果 输入量与显示误差 <1%

发挥部分: 1、速度上实现高精度采集 2、提高系统精度 3、设计抗干扰性 二、设计完成后提交的文件和图表 1. 计算说明书部分: 数据采集是指将压力、流量、温度、位移等模拟量转换成数字量后,再由计算机进行存储、处理、显示、或打印的过程,相应的系统就称为数据采集系统。 数据采集的任务,就是采集传感器输出的模拟信号并转换成计算机能识别的数字信号,然后送入计算机进行相应的计算和处理,取得所需的数据。同时,将计算机得到的数据进行显示或打印,以便实现对某些物理量的监控。 数据采集性能的好坏,主要取决于他的精度和速度。在保证精度的条件下,应有尽可能高的采样速度。 数据采集系统应具有功能: 1)数据采集 计算机按照选定的采样周期,对输入到系统的模拟信号进行采样,称为数据采集。 (2)模拟信号处理模拟信号是指随时间连续变化的信号,模拟信号处理是指模拟信号经过采样和 A/D 转换输入计算机后,要进行数据的正确性判断、标度变换、线性化等处理。 (3)数字信号处理数字信号处理是指数字信号输入计算机后,需要进行码制的转换处理,如 BCD 码转 换成 ASCII 码,以便显示数字信号。 (4)屏幕显示 就是用各种显示装置如 CRT、 LED 把各种数据以方便于操作者观察的方式显示出来。

(5)数据存储 数据存储是就是将某些重要数据存储在外部存储器上。 在本次设计中,我们采用 8259 作为中断控制器, 8255 作为并行接口, ADC0809 作为模数转换器。 2、图纸部分: 含有总体设计的功能框图、所用各种器件的引脚图、内部逻辑结构框图以及相应器件的真值表,还包括总设计的硬件连接图及软件设计流程图等。 第二部分 一、设计指标设计一个数据采集系统基本要求 :微型计算机最小系统 具有 8 路模拟输入 输入信号为 0 —— 500mV 采用数码管8位,显示十进制结果 输入量与显示误差<1% 中断方式 二、设计方案论证 考虑本数据采集系统要求,该系统的功能框图如下: LEDfi 示 1--- TT----- 模拟量籀人‘;放大器 =A/D转换器二;中断控制器一「8088CPU | 图1系统功能框图

编译原理期末考试习题及答案

一、填空题|(每题4分,共20分) 1. 乔母斯基定义的3型文法(线性文法)产生式形式 A→Ba|a,或A→aB|a,A,B∈Vn, a,b∈Vt 。 2.语法分析程序的输入是单词符号,其输出是语法单位。 3 型为 B → .aB 的LR(0)项目被称为移进项目,型为 B → a.B 的LR(0) 项目被称为待约项目, 4.在属性文法中文法符号的两种属性分别为继承属性和综合属性。 5、运行时存贮管理方案有静态存储分配、动态存储分配和堆式存储分配和方案。 二.已知文法 G(S) (1) E → T | E+T (2) T → F | F*F (3) F →(E)| i (1)写出句型(T*F+i)的最右推到并画出语法树。(4分) (2)写出上述句型的短语,直接短语和句柄。(4分) 答:(1)最右推到(2分) E ==> T ==> F ==> (E) ==> (E+T) ==> (E+F) ==> (E+i) ==> (T+i) ==> (T*F+i) (2) 语法树(2分) (3)(4分) 短语:(T*F+i),T*F+i ,T*F , i 直接短语:T*F , i 句柄:T*F 三. 证明文法G(S) :S → SaS |ε是二义的。(6分) 答:句子aaa对应的两颗语法树为:

因此,文法是二义文法 四.给定正规文法G(S): (1) S → Sa | Ab |b (2) A → Sa 请构造与之等价的DFA。(6分) 答:对应的NFA为:(6分) 状态转换表: a b {F} Φ{S} {S} {S,A} Φ {S,A} {S,A} {S} 五. 构造识别正规语言b*a(bb*a)*b* 最小的DFA(要求写出求解过程)。(15分)答:(1)对应的NFA(5分) a b {0} {1,3} {0} {1,3} Φ{2,3} {2,3} {1,3} {2,3} (5分) 六. 已知文法G(S) : (1) S → ^ | a | (T) (2) T → T,S | S 试:(1)消除文法的左递归;(4分) (2)构造相应的first 和 follow 集合。(6分) 答:(1)消除文法的左递归后文法 G’(S)为: (1) S → ^ | a | (T)

编译原理56章作业答案

第五章 练习5.1.1: 对于图5-1中的SDD,给出下列表达式对应的注释语法分析树: 1)(3+4)*(5+6)n 练习5.2.4: 这个文法生成了含“小数点”的二进制数: S->L.L|L L->LB|B B->0|1 设计一个L属性的SDD来计算S.val,即输入串的十进制数值。比如,串101.101应该被翻译为十进制的5.625。提示:使用一个继承属性L.side来指明一个二进制位在小数点的哪一边。 答: 元文法消除左递归后可得到文法: S->L.L|L L->BL’ L’->BL’|ε B->0|1 使用继承属性L.side指明一个二进制位数在小数点的哪一边,2表示左边,1表示右边 使用继承属性m记录B的幂次 非终结符号L和L’具有继承属性inh、side、m和综合属性syn

练习5.3.1:下面是涉及运算符+和整数或浮点运算分量的表达式文法。区分浮点数的方法是看它有无小数点。 E-〉E+T|T T-〉num.num|num 1)给出一个SDD来确定每个项T和表达式E的类型 2)扩展(1)中得到的SDD,使得它可以把表达式转换成为后缀表达式。使用一个单目运算符intToFloat把一个整数转换为相等的浮点数 答: 练习5.4.4:为下面的产生式写出一个和例5.10类似的L属性SDD。这里的每个产生式表

示一个常见的C语言中的那样的控制流结构。你可能需要生成一个三地址语句来跳转到某个标号L,此时你可以生成语句goto L 1)S->if (C) S1 else S2 2)S->do S1 while (C) 3)S->’{’ L ‘}’; L -> LS|ε 请注意,列表中的任何语句都可以包含一条从它的内部跳转到下一个语句的跳转指令,因此简单地为各个语句按序生成代码是不够的。 第六章 练习6.1.1:为下面的表达式构造DAG ((x+y)-((x+y)*(x-y)))+((x+y)*(x-y)) 答:DAG如下

编译原理第4章作业答案

编译原理第4章作业 答案 本页仅作为文档封面,使用时可以删除 This document is for reference only-rar21year.March

第四章 习题4.2.1:考虑上下文无关文法: S->S S +|S S *|a 以及串aa + a* (1)给出这个串的一个最左推导 S -> S S * -> S S + S * -> a S + S * -> a a + S * -> aa + a* (3)给出这个串的一棵语法分析树 习题4.3.1:下面是一个只包含符号a和b的正则表达式的文法。它使用+替代表示并运算的符号|,以避免和文法中作为元符号使用的竖线相混淆: rexpr→ rexpr + rterm | rterm rterm→rterm rfactor | rfactor rfactor→ rfactor * | rprimary rprimary→a | b 1)对这个文法提取公因子 2)提取公因子的变换使这个文法适用于自顶向下的语法分析技术吗? 3)提取公因子之后,原文法中消除左递归 4)得到的文法适用于自顶向下的语法分析吗? 解

1)提取左公因子之后的文法变为 rexpr→ rexpr + rterm | rterm rterm→rterm rfactor | rfactor rfactor→ rfactor * | rprimary rprimary→a | b 2)不可以,文法中存在左递归,而自顶向下技术不适合左递归文法 3)消除左递归后的文法

rexpr -> rterm rexpr’ rexpr’-> + rterm rexpr’|ε rterm-> rfactor rterm’ rterm’-> rfactor rterm’|ε rfactor-> rprimay rfactor’ rfactor’-> *rfactor’|ε rprimary-> a | b 4)该文法无左递归,适合于自顶向下的语法分析 习题4.4.1:为下面的每一个文法设计一个预测分析器,并给出预测分析表。可能要先对文法进行提取左公因子或消除左递归 (3)S->S(S)S|ε (5)S->(L)|a L->L,S|S 解 (3) ①消除该文法的左递归后得到文法 S->S’ S’->(S)SS’|ε ②计算FIRST和FOLLOW集合 FIRST(S)={(,ε} FOLLOW(S)={),$} FIRST(S’)={(,ε} FOLLOW(S’)={),$} ③构建预测分析表

基于爬虫技术的数据采集系统实现

基于爬虫技术的数据采集系统实现 摘要:顾名思义像一个蜘蛛一样,在互联“网”上那么你需要把所有的网页都看一遍,那么我们怎么办你得从某个角落开始慢慢的爬取。随着互联网的兴起,它成为了一个拥有成千上万信息的载体。如何高效的获取这成千上万的信息,最先出现的是搜索引擎,它作为一个人们日常查找互联网信息的工具的指南针和快速入口。随着信息的高速发展,它的出现也还是有一定的局限性,比如返回了很多虚假和用户不相关的信息出来了。为了解决这个问题,定向的获取网页信息技术,即爬虫技术就产生了,他主要解决了3个大问题,对抓取的事物进行了定义和描述,对信息网页等进行了过滤,还有就是对地址的搜索策略,随着发展人们又发明了分布式爬虫技术,更加高效的获取数据。 关键词:爬虫;分布式爬虫;搜索引擎 Abstract:As the name suggests, like a spider, you need to see all the web pages on the Internet. So what do you have to start slowly from a corner, with the rise of the Internet, it has become a carrier of thousands of information, how to efficiently get the thousands of information, the first is the search engine, as a tool for people to find the Internet information tools and fast. Speed entrance, with the rapid development of information, it still has some limitations, such as the return of a lot of false and unrelated information out of the user. In order to solve this problem, the directional access to web information technology, that is, the crawler technology is produced, he mainly solved 3 major problems, to grab things. A definition and description, filtering of information pages, and a search strategy for the address, with the development of a distributed crawler technology, and more efficient access to data Key words:Crawler; Distributed crawler; Search engine.

51单片机数据采集系统[1]

课程设计报告书 设计任务书 一、设计任务 1一秒钟采集一次。 2把INO口采集的电压值放入30H单元中。 3做出原理图。 4画出流程图并写出所要运行的程序。 二、设计方案及工作原理 方案: 1. 采用8051和ADC0809构成一个8通道数据采集系统。 2. 能够顺序采集各个通道的信号。

3. 采集信号的动态范围:0~5V。 4. 每个通道的采样速率:100 SPS。 5.在面包板上完成电路,将采样数据送入单片机20h~27h存储单元。 6.编写相应的单片机采集程序,到达规定的性能。 工作原理: 通过一个A/D转换器循环采样模拟电压,每隔一定时间去采样一次,一次按顺序采样信号。A/D转换器芯片AD0809将采样到的模拟信号转换为数字信号,转换完成后,CPU读取数据转换结果,并将结果送入外设即CRT/LED显示,显示电压路数和数据值。 目录 第一章系统设计要求和解决方案 第二章硬件系统 第三章软件系统 第四章实现的功能 第五章缺点及可能的解决方法 第六章心得体会

附录一参考文献 附录二硬件原理图 附录三程序流程图 第一章系统设计要求和解决方案 根据系统基本要求,将本系统划分为如下几个部分: 信号调理电路 8路模拟信号的产生与A/D转换器 发送端的数据采集与传输控制器 人机通道的接口电路 数据传输接口电路 数据采集与传输系统一般由信号调理电路,多路开关,采样保持电路,A/D,单片机,电平转换接口,接收端(单片机、PC或其它设备)组成。系统框图如图1-1所示

信号采集分析 被测电压为0~5V 直流电压,可通过电位器调节产生。 信号采集 多路数据采集系统多采用共享数据采集通道的结构形式。 数据采集方式选择程序控制数据采集。 程序控制数据采集,由硬件和软件两部分组成。,据不同的采集需要,在程序存储器中,存放若干种信号采集程序,选择相应的采集程序进行采集工作,还可通过编新的程序,以满足不同采样任务的要求。如图1-3所示。 程序控制数据采集的采样通道地址可随意选择,控制多路传输门开启的通道地址码由存储器中读出的指令确定。即改变存储器中的指令内容便可改变通道地址。 由于顺序控制数据采集方式 缺乏通用性和灵活性,所以本设计中选用程序控制数据采集方式。 采集多路模拟信号时,一般用多路模拟开关巡回检测的方式,即一种数据采集的方式。利用多路开关(MUX )让多个被测对象共用同一个采集通道,这就是 图1-3 程序控制数据采集原理 图1-1 一般系统框图

编译原理期末考试题目及答案

一、填空题(每空2分,共20分) 1.编译程序首先要识别出源程序中每个单词,然后再分析每个句子并翻译其意义。 2.编译器常用的语法分析方法有自底向上和自顶向下两种。 3.通常把编译过程分为分析前端与综合后端两大阶段。词法、语法和语义分析是对源程序的分析,中间代码生成、代码优化与目标代码的生成则是对源程序的综合。 4.程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为两大类,即静态存储分配方案和动态存储分配方案。 5.对编译程序而言,输入数据是源程序,输出结果是目标程序。 1.计算机执行用高级语言编写的程序主要有两种途径:解释和编译。 2.扫描器是词法分析器,它接受输入的源程序,对源程序进行词法分析并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。 3.自下而上分析法采用移进、归约、错误处理、接受等四种操作。 4.一个LL(1)分析程序需要用到一张分析表和符号栈。 5.后缀式abc-/所代表的表达式是a/(b-c)。 二、单项选择题(每小题2分,共20分) 1.词法分析器的输出结果是__C。 A.单词的种别编码B.单词在符号表中的位置 C.单词的种别编码和自身值D.单词自身值 2.正规式M 1 和M 2 等价是指__C_。 A.M1和M2的状态数相等 B.M1和M2的有向边条数相等 C.M1和M2所识别的语言集相等D.M1和M2状态数和有向边条数相等 3.文法G:S→xSx|y所识别的语言是_C____。 A.xyx B.(xyx)* C.xnyxn(n≥0) D.x*yx* 4.如果文法G是无二义的,则它的任何句子α_A____。 A.最左推导和最右推导对应的语法树必定相同B.最左推导和最右推导对应的语法树可能不同 C.最左推导和最右推导必定相同D.可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握____D__。 A.源程序B.目标语言C.编译方法D.以上三项都是 6.四元式之间的联系是通过__B___实现的。 A.指示器B.临时变量C.符号表D.程序变量 7.表达式(┐A∨B)∧(C∨D)的逆波兰表示为__B___。 A.┐AB∨∧CD∨B.A┐B∨CD∨∧ C.AB∨┐CD∨∧D.A┐B∨∧CD∨ 8. 优化可生成__D___的目标代码。 A.运行时间较短 B.占用存储空间较小 C.运行时间短但占用内存空间大D.运行时间短且占用存储空间小 9.下列___C___优化方法不是针对循环优化进行的。 A. 强度削弱B.删除归纳变量C.删除多余运算D.代码外提 10.编译程序使用_B_区别标识符的作用域。 A. 说明标识符的过程或函数名B.说明标识符的过程或函数的静态层次 C.说明标识符的过程或函数的动态层次 D. 标识符的行号 三、判断题(对的打√,错的打×,每小题1分,共10分) 2.一个有限状态自动机中,有且仅有一个唯一的终态。x

数据采集系统

湖南工业大学科技学院 毕业设计(论文)开题报告 (2012届) 教学部:机电信息工程教学部 专业:电子信息工程 学生姓名:肖红杰 班级: 0801 学号 0812140106 指导教师姓名:杨韬仪职称讲师 2011年12 月10 日

题目:基于单片机的数据采集系统的控制器设计 1.结合课题任务情况,查阅文献资料,撰写1500~2000字左右的文献综述。 近年来,数据采集及其应用技术受到人们越来越广泛的关注,数据采集系统在各行各业也迅速的得到应用。如在冶金、化工、医学、和电器性能测试等许多场合需要同时对多通道的模拟信号进行采集、预处理、暂存和向上位机传送、再由上位机进行数据分析和处理,信号波形显示、自动报表生成等处理,这些都需要数据采集系统来完成。但很多数据采集系统存在功能单一、采集通道少、采集速率低、操作复杂、并且对操作环境要求高等问题。人们需要一种应用范围广、性价比高的数据采集系统,基于单片机的数据采集系统具有实现处理功能强大、处理速度快、显示直观,性价比高、应用广泛等特点,可广泛应用于工业控制、仪器、仪表、机电一体化,智能家居等诸多领域。总之,无论在那个应用领域中,数据采集与处理越及时,工作效率就超高,取得的经济效益就越大。 数据采集系统的任务,就是采集传感器输出的模拟信号转换成计算机能识别的信号,并送入计算机,然后将计算得到的数据进行显示或打印,以便实现对某些物理量的监测,其中一些数据还将被生产过程中的计算机控制系统用来控制某些物理量。 数据采集系统的市场需求量大,特别是随着技术的发展,可用数据器为核心构成一个小系统,而目前国内生产的主要是数据采集卡,存在无显示功能、无记忆存储功能等问题,其应用有很大的局限性,所以开发高性能的,具有存储功能的数据采集产品具有很大的市场前景。 随着电子技术的迅速发展,,一些高性能的电子芯片不断推出,为我们进行电子系统设计提供的更多的选择和更多的方便,单片机具有体积小、低功耗、使用方便、处理精度高、性价比高等优点,这些都使得越来越广泛的选用单片机作为数据采集系统的核心处理器。一些高性能的A/D转换芯片的出现也为数据采集系统的设计提供了更多的方便,无论是采集精度还是采样速度都比以前有了较大的提高。其中一些知名的大公司如MAXIM公司、TI公司、ADI公司都有推出性能比效突出的 A/D转换芯片,这些芯片普通具有低功耗、小尺寸的特点,有些芯片还具有多通道的同步转换功能。这些芯片的出现,不仅因为芯片价格便宜,能够降低系统设计的成本,而且可以取代以前繁琐的设计方法,提高系统的集成度。 数据采集器是目前工业控制中应用较多的一类产品,数据采集器的研制已经相当成熟,而且数据采集器的各类不断增多,性能越来越好,功能也越来越强大。 在国外,数据采集器已发展的相当成熟,无论是在工业领域,还是在生活中的应用,比如美国FLUKE公司的262XA系列数据采集器是一种小型、便携、操作简单、使用灵活的数据采集器,它既可单独使用又可和计算机连接使用,它具有多种测量

编译原理试题及答案3

编译原理复习题 一、填空题: 1、编译方式与解释方式的根本区别在于(是否生成目标代码)。 2、对编译程序而言,输入数据是(源程序),输出结果是(目标程序)。 3、如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两大阶段:(编译阶段)和(运行阶段)。 4、如果编译程序生成的目标程序是汇编语言程序,则源程序的执行分成三个阶段:(编译阶段)、(汇编阶段)和(运行阶段)。 5、自顶向下语法分析方法会遇到的主要问题有(回溯)和((左递归带来的)无限循环)。 6、LL(k)分析法中,第一个L的含义是(从左到右进行分析),第二个L的含义是(每次进行最左推导),“k”的含义是(向输入串中查看K个输入符号)。 7、LL(1)分析法中,第一个L的含义是(从左到右进行分析),第二个L的含义是(每次进行最左推导),“1”的含义是(向输入串中查看1个输入符号)。 8、自顶向下语法分析方法的基本思想是:从(识别符号)出发,不断建立(直接推导),试图构造一个推导序列,最终由它推导出与输入符号相同的(符号串)。 9、自底向上语法分析方法的基本思想是:从待输入的符号串开始,利用文法的规则步步向上进行(直接归约),试图(归约)到文法的(识别符号|开始符号)。 10、LR(0)分析法的名字中,“L”的含义是(从左到右进行分析),“R”的含义是(采用最右推导的逆过程---最左归约),“0”的含义是(向貌似句柄的符号串后查看0个输入符号)。 11、LR(1)分析法的名字中,“L”的含义是(从左到右进行分析),“R”的含义是(采用最右推导的逆过程---最左归约),“1”的含义是(向貌似句柄的符号串后查看1个输入符号)。 12、SLR(1)分析法的名字中,“S”的含义是(简单的),“L”的含义是(从左到右进行分析),“R”的含义是(采用最右推导的逆过程---最左归约),“1”的含义是(向貌似句柄的符号串后查看1个输入符号)。 13、在编译过程中,常见的中间语言形式有(逆波兰表示)、(三元式)、(四元式)和(树形表示)。 14、在编译程序中安排中间代码生成的目的是(便于代码优化)和(便于目标程序的移植)。 15、表达式-a+b*(-c+d)的逆波兰表示为(a-bc-d+*+ )。 16、表达式a+b*(c+d/e)的逆波兰表示为(abcde/+*+ )。 17、表达式a:=a+b*c↑(d/e)/f的逆波兰表示为(aabcde/↑*f/+:= )。 18、文法符号的属性有(继承属性)和(综合属性)两种。 19、一个文法符号的继承属性是通过语法树中它的(兄弟结点与父)结点的相应文法符号的属性来计算的。 20、一个文法符号的综合属性是通过语法树中它的(子)结点的属性来计算的。

数据采集系统的历史与发展

数据采集系统的历史与发展 数据采集系统起始于20设计50年代,1956年美国首先研究了用在军事上的测试系统,目标是测试中不依靠相关的测试文件,由非熟练人员进行操作,并且测试任务是由测试设备高速自动控制完成的。由于该种数据采集测试系统具有高速性和一定的 灵活性可以满足众多传统方法不能完成的数据采集和测试任务,因而得到了初步的认可。大约在60年代后期,国外就有成套的数据采集设备产品进入市场,此阶段的数据采集设备和系统多属于专业的系统。 20世纪70年代中后期,随着微型的发展,诞生了采集器,仪表同计算机溶于一 体的数据采集系统。由于这种数据采集系统的性能优良,超过了传统的自是这一类的 典型代表。这种接口系统采用积木式结构,把相应的接口卡装在专用的机箱内,然后 由一台计算机控制。第二类系统在工业现场应用较多。这两种系统中,如果采集测试 任务改变,只需将新的仪用电缆接入系统,或将新卡在添加的专业的机箱里即可完成 硬件平台中建,如果采集测试任务改变,只需将新的仪用电缆接入系统,或将新卡再 添加到专用的机箱即可完成硬件平台重建,显然,这种系统比专用系统灵活得多。20 世纪80年代后期,数据采集系统发生了极大的变化,工业计算机,单片机和大规模集成电路的组合,用软件管理,使系统的成本降低,体积减小,功能成倍增加,数据处 理能力大大加强。 20世纪90年代至今,在国际上技术先进的国家,数据采集技术已经在军事,航 空电子设备及宇航技术,工业等领域被广泛应用。由于集成电路制造技术的不断提高,出现了高性能,高可靠性的单片数据采集系统(DAS)。目前有的DAS产品精度已达16位,采集速度每秒达到几十万次以上。数据采集技术已经成为一种专门的技术,在工业领域得到了广泛的应用。该阶段数据采集系统采用更先进的模块式结构,根据不 同的应用要求,通过简单的增加和更改模块,并结合系统编程,就可扩展或修改系统,迅速地组成一个新的系统。该阶段并行总线数据采集系统高速,模块化和即插即用方 向发展,典型系统有VXI总线系统,PCI,PXI总线系统等,数据位以达到32位总线宽度,采用频率可以达到100MSps。由于采用了高密度,屏蔽型,针孔式的连接器和卡 式模块,可以充分保证其隐定性急可靠性,但其昂贵的价格是阻碍它在自动化领域取 得了成功的应用。 串行总线数据采集系统向分布式系统结构和智能化方向发展,可靠性不断提高。 数据采集系统物理层通信,由于采用RS485双绞线,电力载波,无线和光纤,所以其技术得到了不断发展和完善。其在工业现场数据采集和控制等众多领域得到了广泛的 应用。由于目前局域网技术的发展,一个工厂管理层局域网,车间层的局域网和底层 的设备网已经可以有效地连接在一起,可以有效地把多台数据采集设备联在一起,以 实现生产环节的在线实时数据采集与监控。

数据采集系统的设计与实现

长江大学工程技术学院 课程设计报告
课设题目
课程名称




学生姓名




指导教师


数据采集系统的设计与实现 汇编语言+微型计算机技术
信息系
2012 年 8 月 28 日~2012 年 9 月 9 日

目录
目录 长江大学工程技术学院 ..................... 错误!未定义书签。 一、设计目的 ............................. 错误!未定义书签。 二、设计内容 ............................. 错误!未定义书签。 三、硬件设计及分析 ....................... 错误!未定义书签。
1.总体结构图......................... 错误!未定义书签。 2.各部件端口地址设计及分析 ............ 错误!未定义书签。 3.各部件的组成及工作原理 .............. 错误!未定义书签。 四、软件设计及分析 ....................... 错误!未定义书签。 1.总体流程图......................... 错误!未定义书签。 2.主要程序编写及分析.................. 错误!未定义书签。 五、系统调试 ............................. 错误!未定义书签。 1.调试环境介绍........................ 错误!未定义书签。 2. 各部件的调试....................... 错误!未定义书签。 3.调试方法及结果...................... 错误!未定义书签。 六、总结与体会 ........................... 错误!未定义书签。 七、附录 ................................. 错误!未定义书签。

编译原理 作业标准答案

《编译原理》第一次作业参考答案 一、下列正则表达式定义了什么语言(用尽可能简短的自然语言描述)? 1.b*(ab*ab*)* 所有含有偶数个a的由a和b组成的字符串. 2.c*a(a|c)*b(a|b|c)* | c*b(b|c)*a(a|b|c)* 答案一:所有至少含有1个a和1个b的由a,b和c组成的字符串. 答案二:所有含有子序列ab或子序列ba的由a,b和c组成的字符串. 说明:答案一要比答案二更好,因为用自然语言描述是为了便于和非专业的人员交流,而非专业人员很可能不知道什么是“子序列”,所以相比较而言,答案一要更“自然”. 二、设字母表∑={a,b},用正则表达式(只使用a,b, ,|,*,+,?)描述下列语言: 1.不包含子串ab的所有字符串. b*a* 2.不包含子串abb的所有字符串. b*(ab?)* 3.不包含子序列abb的所有字符串. b*a*b?a* 注意:关于子串(substring)和子序列(subsequence)的区别可以参考课本第119页方框中的内容. ~\(≧▽≦)/~ ~\(≧▽≦)/~ ~\(≧▽≦)/~ ~\(≧▽≦)/~ ~\(≧▽≦)/~ ~\(≧▽≦)/~ ~\(≧▽≦)/~ ~\(≧▽≦)/~ 《编译原理》第二次作业参考答案 一、考虑以下NFA: 1.这一NFA接受什么语言(用自然语言描述)? 所有只含有字母a和b,并且a出现偶数次或b出现偶数次的字符串. 2.构造接受同一语言的DFA. 答案一(直接构造通常得到这一答案):

答案二(由NFA构造DFA得到这一答案): 二、正则语言补运算 3.画出一个DFA,该DFA恰好识别所有不含011子串的所有二进制串. 1.画出一个DFA,该DFA恰好识别所有不含011子串的所有二进制串.

编译原理试题及答案

参考答案 一、单项选择题(共10小题,每小题2分,共20分) 1.语言是 A .句子的集合 B .产生式的集合 C .符号串的集合 D .句型的集合 2.编译程序前三个阶段完成的工作是 A .词法分析、语法分析和代码优化 B .代码生成、代码优化和词法分析 C .词法分析、语法分析、语义分析和中间代码生成 D .词法分析、语法分析和代码优化 3.一个句型中称为句柄的是该句型的最左 A .非终结符号 B .短语 C .句子 D .直接短语 4.下推自动机识别的语言是 A .0型语言 B .1型语言 C .2型语言 D .3型语言 5.扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即 A . 字符 B .单词 C .句子 D .句型 6.对应Chomsky 四种文法的四种语言之间的关系是 A .L 0?L 1?L 2?L 3 B .L 3?L 2?L 1?L 0 C .L 3=L 2?L 1?L 0 D .L 0?L 1?L 2=L 3 7.词法分析的任务是 A .识别单词 B .分析句子的含义 C .识别句子 D .生成目标代码 8.常用的中间代码形式不含 A .三元式 B .四元式 C .逆波兰式 D .语法树 9. 代码优化的目的是 A .节省时间 B .节省空间 C .节省时间和空间 D .把编译程序进行等价交换 10.代码生成阶段的主要任务是 A .把高级语言翻译成汇编语言 B .把高级语言翻译成机器语言 C .把中间代码变换成依赖具体机器的目标代码 装 订 线

D.把汇编语言翻译成机器语言 二、填空题(本大题共5小题,每小题2分,共10分) 1.编译程序首先要识别出源程序中每个(单词),然后再分析每个(句子)并翻译其意义。2.编译器常用的语法分析方法有(自底向上)和(自顶向下)两种。 3.通常把编译过程分为分析前端与综合后端两大阶段。词法、语法和语义分析是对源程序的(分析),中间代码生成、代码优化与目标代码的生成则是对源程序的(综合)。 4.程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为两大类,即(静态存储分配)方案和(动态存储分配)方案。 5.对编译程序而言,输入数据是(源程序),输出结果是(目标程序)。 三、名词解释题(共5小题,每小题4分,共20分) 1.词法分析 词法分析的主要任务是从左向右扫描每行源程序的符号,按照词法规则 从构成源程序的字符串中识别出一个个具有独立意义的最小语法单位, 并转换成统一的内部表示(token),送给语法分析程序。 2.LL(1)文法 若文法的任何两个产生式A →α | β都满足下面两个条件: (1)FIRST(α) ? FIRST(β ) = φ; (2)若β?* ε,那么FIRST(α) ? FOLLOW( A ) = φ。 我们把满足这两个条件的文法叫做LL(1)文法,其中的第一个L代表从左 向右扫描输入,第二个L表示产生最左推导,1代表在决定分析器的每步 动作时向前看一个输入符号。除了没有公共左因子外,LL(1)文法还有一 些明显的性质,它不是二义的,也不含左递归。 3.语法树 句子的树结构表示法称为语法树(语法分析树或语法推导树)。 给定文法G=(V N,V T,P,S),对于G的任何句型都能构造与之关联的 语法树。这棵树具有下列特征: (1)根节点的标记是开始符号S。 (2)每个节点的标记都是V中的一个符号。 (3)若一棵子树的根节点为A,且其所有直接子孙的标记从左向右的排列 次序为A1A2…A R,那么A→A1A2…A R一定是P中的一条产生式。

编译原理作业参考答案

第1章引言 1、解释下列各词 源语言:编写源程序的语言(基本符号,关键字),各种程序设计语言都可以作为源语言。 源程序: 用接近自然语言(数学语言)的源语言(基本符号,关键字)编写的程序,它是翻译程序处理的对象。 目标程序: 目标程序是源程序经过翻译程序加工最后得到的程序。目标程序 (结果程序)一般可由计算机直接执行。 低级语言:机器语言和汇编语言。 高级语言:是人们根据描述实际问题的需要而设计的一个记号系统。如同自然语言(接近数学语言和工程语言)一样,语言的基本单位是语句,由符号组和一组用来组织它们成为有确定意义的组合规则。 翻译程序: 能够把某一种语言程序(源语言程序)改变成另一种语言程序(目 标语言程序),后者与前者在逻辑上是等价的。其中包括:编译程序,解释程序,汇编程序。 编译程序: 把输入的源程序翻译成等价的目标程序(汇编语言或机器语言), 然后再执行目标程序(先编译后执行),执行翻译工作的程序称为编译程序。 解释程序: 以该语言写的源程序作为输入,但不产生目标程序。按源程序中语句动态顺序逐句的边解释边执行的过程,完成翻译工作的程序称为解释程序。 2、什么叫“遍” 指对源程序或源程序的中间形式(如单词,中间代码)从头到尾扫描一次,并作相应的加工处理,称为一遍。

3、简述编译程序的基本过程的任务。 编译程序的工作是指从输入源程序开始到输出目标程序为止的整个过程,整个过程可以划分5个阶段。 词法分析:输入源程序,进行词法分析,输出单词符号。 语法分析:在词法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单位,并判断输入串是否构成语法正确的“程序”。 中间代码生成:按照语义规则把语法分析器归约(或推导)出的语法单位翻译成一定形式的中间代码。 优化:对中间代码进行优化处理。 目标代码生成:把中间代码翻译成目标语言程序。 4、编译程序与解释程序的区别 编译程序生成目标程序后,再执行目标程序;然而解释程序不生成目标程序,边解释边执行。 5、有人认为编译程序的五个组成部分缺一不可,这种看法正确吗 编译程序的5个阶段中,词法分析,语法分析,语义分析和代码生成生成是必须完成的。而中间代码生成和代码优化并不是必不可少的。优化的目的是为了提高目标程序的质量,没有这一部分工作,仍然能够得到目标代码。 6、编译程序的分类 目前基本分为:诊断编译程序,优化编译程序,交叉编译程序,可变目标编译程序。

远程数据采集系统的设计与实现

华中科技大学 硕士学位论文 远程数据采集系统的设计与实现 姓名:吴雪峰 申请学位级别:硕士 专业:计算机系统结构 指导教师:谢长生 20070604

摘要 在进行数据采集时,由于许多被测对象距离较远或现场危险,只能在远距离的地方进行测量,然后传输出去,这便产生了远程数据采集系统。远程数据采集系统有着自身的特点:首先,为了精确和全方位获取环境信息,系统一般要提供多个采集通道进行高速采样;其次,为方便用户随时了解系统的运行状况,系统在高速采样的同时,必须能以异步接收和处理控制站的命令、传输用户所需数据;另外,远程数据采集系统一般仅靠电池供电,于是低功耗成为衡量系统性能的重要指标。 从实时性、远程可控性、低功耗的目标出发,提出由FPGA(现场可编程门陈列)作为数据采集控制部分、由嵌入式微处理器系统和单片机作为数据存储和传输部分的数据采集系统。外部信号通过前置放大、滤波后,在FPGA的控制下进行高速数模转换和缓存;采集到的数据由嵌入式微处理器系统进行读取、处理和存储;数据通过RJ-45网络接口或无线数传模块传输至远程上位机。 单片机在系统中有三个作用:一是提供用户操作输入接口及系统状态指示灯等信息;二是当嵌入式微处理器系统在高速采集和存储时,可以异步的接收来自控制站的无线命令,并对命令进行分析和处理;三是对嵌入式微处理器系统进行电源控制,在不需要采样时可以将嵌入式板的电源断开。 与通常的仅仅采用单片机或嵌入式微处理器系统的采集系统相比,同时采用两者可以将用户接口和采集任务分开,使采集系统在保证吞吐率和实时性的同时能处理用户输入或来自控制站的无线传输命令。另外,单片机对嵌入式微处理器系统的电源控制功能可以达到降低系统功耗的目的。 关键字:数据采集,嵌入式系统,无线数据传输

编译原理考试试题与答案(汇总)

《编译原理》考试试题及答案(汇总) 一、是非题(请在括号,正确的划√,错误的划×)(每个2分,共20分) 1.编译程序是对高级语言程序的解释执行。(× ) 2.一个有限状态自动机中,有且仅有一个唯一的终态。(×) 3.一个算符优先文法可能不存在算符优先函数与之对应。(√ ) 4.语法分析时必须先消除文法中的左递归。(×) 5.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。(√) 6.逆波兰表示法表示表达式时无须使用括号。(√ ) 7.静态数组的存储空间可以在编译时确定。(×) 8.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。(×) 9.两个正规集相等的必要条件是他们对应的正规式等价。(× ) 10.一个语义子程序描述了一个文法所对应的翻译工作。(×) 二、选择题(请在前括号选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分) 1.词法分析器的输出结果是_____。 A.( ) 单词的种别编码B.( ) 单词在符号表中的位置 C.( ) 单词的种别编码和自身值D.( ) 单词自身值 2.正规式 M 1 和 M 2 等价是指_____。 A.( ) M1和M2的状态数相等 B.( ) M1和M2的有向边条数相等C.( ) M1和M2所识别的语言集相等D.( ) M1和M2状态数和有向边条数相等

3.文法G:S→xSx|y所识别的语言是_____。 A.( ) xyx B.( ) (xyx)* C.( ) xnyxn(n≥0) D.( ) x*yx* 4.如果文法G是无二义的,则它的任何句子α_____。 A.( )最左推导和最右推导对应的语法树必定相同 B.( ) 最左推导和最右推导对应的语法树可能不同 C.( ) 最左推导和最右推导必定相同 D.( )可能存在两个不同的最左推导,但它们对应的语法树相同 5.构造编译程序应掌握______。 A.( )源程序B.( ) 目标语言 C.( ) 编译方法 D.( ) 以上三项都是 6.四元式之间的联系是通过_____实现的。 A.( ) 指示器B.( ) 临时变量 C.( ) 符号表 D.( ) 程序变量 7.表达式(┐A∨B)∧(C∨D)的逆波兰表示为_____。 A. ( ) ┐AB∨∧CD∨B.( ) A┐B∨CD∨∧ C.( ) AB∨┐CD∨∧ D.( ) A┐B∨∧CD∨ 8. 优化可生成_____的目标代码。 A.( ) 运行时间较短B.( ) 占用存储空间较小C.( ) 运行时间短但占用存空间大D.( ) 运行时间短且占用存储空间小 9.下列______优化方法不是针对循环优化进行的。 A. ( ) 强度削弱 B.( ) 删除归纳变量 C.( ) 删除多余运算 D.( ) 代码外提

数据采集器原理

数据采集器原理 为商品流通环节而设计的数据采集器(Bar一code Hand Terminal)或称掌上电脑,其具有一体性、机动性、体积小、重量轻、高性能,并适于手持等特点。它是将条码扫描装置与数据终端一体化,带有电池可离线操作的终端电脑设备。 它具有中央处理器(CPU),只读存储器(ROM)、可读写存储器(RAM)、键盘、屏幕显示器、与计算机接口。条码扫描器,电源等配置,手持终端可通过通讯座与计算机相连用于接收或上传数据,手持终端的运行程序是由计算机编制后下载到手持终端中,可按使用要求完成相应的功能。 数据采集器可用于补充订货、接收订货、销售、入出库、盘点和库存管理以及物流管理等方面。 目前,国内常用的数据采集器有美国Symbol公司的PDT3100、国内公司的LK-PT921等,价格一万多元到两万元。数据采集器有效地解决了商品在流转过程中数据的标识和数量确认的问题,是保证系统的信息快速、准确进行处理的有效手段,由于设备的价格相对较高,商品还没有达到全部通用条码化,数据采集器的普及率还较低,还有待于不断推广。 二、数据采集器的程序功能 数据采集器的操作程序是根据实际的需要进行编制的,必须充分考虑操作使用过程的方便、灵活和通用性。 数据采集器的一般功能 数据采集器应具有数据采集、数据传送、数据删除和系统管理等功能。 数据采集 是将商品的条码通过扫描装置读入,对商品的数量直接进行确认或通过键盘录入的过程,在数据采集器的存储器中以文本数据格式存储,格式为条码(C20)、数量(N4)。 数据传送 数据传送功能有数据的下载和上传。 数据下载是将需要数据采集器进行确认的商品信息从计算机中传送到数据采集器中,通过数据采集器与计算机之间的通讯接口,在计算机管理系统的相应功能中运行设备厂商所提供的数据传送程序,传送内容可以包括:商品条码、名称和数量。数据的下载可以方便地在数据采集时,显示当前读入条码的商品名称和需确认的数量。 数据上传是将采集到的商品数据通过通讯接口,将数据传送到计算机中去,再通过计算机系统的处理,将数据转换到相应的数据库中。 数据删除 数据采集器中的数据在完成了向计算机系统的传送后,需要将数据删除,否则会导致再次数据读入的迭加,造成数据错误。有些情况下,数据可能会向计算机传送多次,待数据确认无效后,方可实行删除。 系统管理 系统管理功能有检查磁盘空间和系统日期时间的调较。 需考虑的一些细节

相关主题
文本预览
相关文档 最新文档