随着计算机和自动化测量技术的日益发展,测量仪器和计算机的关系日益密切。计算机的很多成果很快就应用到测量和仪器领域,与计算机相结合已经成为测量仪器和自动测试系统发展的必然趋势。高度集成的现场可编程门阵列(FPGA)是超大规模集成电路和计算机辅助设计技术发展的结果,由于FPGA器件具备集成度高、体积小、可以利用基于计算机的开发平台,用编写软件的方法来实现专门硬件的功能等优点,大大推动了数字系统设计的单片化、自动化,缩短了单片数字系统的设计周期、提高了设计的灵活性和可靠性。 本文研究基于网络的高速数据采集系统的设计与实现问题。论文完成了以FPGA结构为系统硬件平台,uClinux为核心的系统的软件平台设计,进行信号的采集和远程网络监测的功能。 论文从软硬件两方面入手,阐述了基于FPGA器件进行数据采集的硬件系统设计方法,以及基于uClinux操作系统的设备驱动程序设计和应用程序设计。 硬件方面,FPGA采用Xilinx公司Spartan系列的XC3S500芯片,用verilog HDL硬件描述语言在Xilinx公司提供的ISE辅助设计软件中实现FPGA编程。将微处理器MicroBlaze、数据存储器、程序存储器、以太网控制器、数模转换控制器等数字逻辑电路通过CoreConnect技术用OPB总线集成在同一个FPGA内部,形成一个可编程的片上系统(SOPC)。采用基于FPGA的SOPC设计的突出优点是不必更换芯片就可以实现设计的改进和升级,同时也可以降低成本和提高可靠性。 软件方面,为了更好更有效地管理和拓展系统功能,移植了uClinux到MicroBlaze软处理器上,设计实现了平台上的ADC设备驱动程序和数据采集应用程序。并通过修订内核,实现了利用以太网TCP/IP协议来访问数据采集程序获得的数据。
上传时间: 2013-05-23
上传用户:晴天666
本课题完成了基于FPGA的数据采集器以及IIC总线的模数转换器部分、通讯部分的电路设计。其中FPGA采用Xilinx公司Spartan-Ⅱ系列的XC2S100芯片,在芯片中嵌入32位软处理器MicroBlaze;ⅡC总线的模数转换采用Microchip公司的MCP3221芯片,通讯部分则在FPGA片内用VHDL语言实现。通过上述设计实现了“准单片化”的模拟量和数字量的数据采集和处理。 所设计的数据采集器可以和结构类似的上位机通讯,本课题完成了在上位机中用VHDL语言实现的通信电路模块。通过上述两部分工作,将微处理器、数据存储器、程序存储器等数字逻辑电路均集成在同一个FPGA内部,形成一个可编程的片上系统。FPGA片外仅为模拟器件和开关量驱动芯片。FPGA内部的硬件电路采用VHDL语言编写;MCU软核工作所需要的程序采用C语言编写。多台数据采集器与服务器构成数据采集系统。服务器端软件用VB开发,既可以将实时采集的数据以数字方式显示,也可以用更加直观的曲线方式显示。 由于数据采集器是所有自控类系统所必需的电路模块,所以一个通用的片上系统设计可以解决各类系统的应用问题,达到“设计复用”(DesignReuse)的目的。采用基于FPGA的SOPC设计的更加突出的优点是不必更换芯片就可以实现设计的改进和升级,同时也可以降低成本和提高可靠性。
上传时间: 2013-07-12
上传用户:a155166
随着电子技术的发展,当前数字系统的设计正朝着速度快、容量大、体积小、重量轻的方向发展.FPGA以其功能强大,开发过程投资少、周期短,可反复修改,保密性能好,开发工具智能化等特点成为当今硬件设计的首选方式之一.由于Intel公司的MCS-51系列单片机被公认为8位机的工业标准,因此,使用FPGA模拟实现8051单片机及其外设的功能便成为大规模复杂数字系统设计中的重要课题.该文首先介绍了FPGA及Xilinx公司关于硬件设计开发的工具ISE系统,继而用VHDL语言编写了8051单片机功能实现的源代码,然后为其设计了与部分外设连接的接口模块,包括8255并行接口、SCI串行接口和KBC键盘接口模块.并将它们封装到一块FPGA之中,最终实现了8051单片机的大部分功能.
上传时间: 2013-07-28
上传用户:erkuizhang
FPGA技巧Xilinx
上传时间: 2013-11-09
上传用户:hxy200501
特点: 精确度0.1%满刻度 可作各式數學演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A|/ 16 BIT类比输出功能 输入与输出绝缘耐压2仟伏特/1分钟(input/output/power) 宽范围交直流兩用電源設計 尺寸小,穩定性高
上传时间: 2014-12-23
上传用户:ydd3625
特点(FEATURES) 精确度0.1%满刻度 (Accuracy 0.1%F.S.) 可作各式数学演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A| (Math functioA+B/A-B/AxB/A/B/A&B(Hi&Lo)/|A|/etc.....) 16 BIT 类比输出功能(16 bit DAC isolating analog output function) 输入/输出1/输出2绝缘耐压2仟伏特/1分钟(Dielectric strength 2KVac/1min. (input/output1/output2/power)) 宽范围交直流两用电源设计(Wide input range for auxiliary power) 尺寸小,稳定性高(Dimension small and High stability)
上传时间: 2013-11-24
上传用户:541657925
/*--------- 8051内核特殊功能寄存器 -------------*/ sfr ACC = 0xE0; //累加器 sfr B = 0xF0; //B 寄存器 sfr PSW = 0xD0; //程序状态字寄存器 sbit CY = PSW^7; //进位标志位 sbit AC = PSW^6; //辅助进位标志位 sbit F0 = PSW^5; //用户标志位0 sbit RS1 = PSW^4; //工作寄存器组选择控制位 sbit RS0 = PSW^3; //工作寄存器组选择控制位 sbit OV = PSW^2; //溢出标志位 sbit F1 = PSW^1; //用户标志位1 sbit P = PSW^0; //奇偶标志位 sfr SP = 0x81; //堆栈指针寄存器 sfr DPL = 0x82; //数据指针0低字节 sfr DPH = 0x83; //数据指针0高字节 /*------------ 系统管理特殊功能寄存器 -------------*/ sfr PCON = 0x87; //电源控制寄存器 sfr AUXR = 0x8E; //辅助寄存器 sfr AUXR1 = 0xA2; //辅助寄存器1 sfr WAKE_CLKO = 0x8F; //时钟输出和唤醒控制寄存器 sfr CLK_DIV = 0x97; //时钟分频控制寄存器 sfr BUS_SPEED = 0xA1; //总线速度控制寄存器 /*----------- 中断控制特殊功能寄存器 --------------*/ sfr IE = 0xA8; //中断允许寄存器 sbit EA = IE^7; //总中断允许位 sbit ELVD = IE^6; //低电压检测中断控制位 8051
上传时间: 2013-10-30
上传用户:yxgi5
TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。 TLC2543的特点 (1)12位分辩率A/D转换器; (2)在工作温度范围内10μs转换时间; (3)11个模拟输入通道; (4)3路内置自测试方式; (5)采样率为66kbps; (6)线性误差±1LSBmax; (7)有转换结束输出EOC; (8)具有单、双极性输出; (9)可编程的MSB或LSB前导; (10)可编程输出数据长度。 TLC2543的引脚排列及说明 TLC2543有两种封装形式:DB、DW或N封装以及FN封装,这两种封装的引脚排列如图1,引脚说明见表1 TLC2543电路图和程序欣赏 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上传时间: 2013-11-19
上传用户:shen1230
#include<iom16v.h> #include<macros.h> #define uint unsigned int #define uchar unsigned char uint a,b,c,d=0; void delay(c) { for for(a=0;a<c;a++) for(b=0;b<12;b++); }; uchar tab[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
上传时间: 2013-10-21
上传用户:13788529953
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
上传时间: 2015-01-08
上传用户:lifangyuan12