伪随机序列 (Pseudo-Random Sequence,PRS)广泛应用于密码学、扩频通信、雷达、导航等领域,其设计和分析一直是国际上的研究热点。混沌序列作为一种性能优良的伪随机序列,近年来受到越来越多的关注。寻找一种性能更为良好的混沌伪随机序列(ChaosPseudo Random Sequence,CPRS)并且完成其硬件实现,在理论研究与工程应用上都是十分有价值的。基于切延迟椭圆反射腔映射混沌系统(Tangent-Delay Ellipse Reflecting Cavity map System,TD-ERCS)已被理论分析和测试证明具有良好的密码学性质。本文介绍了一种基于TD-ERCS构造伪随机序列发生器 (Pseudo Random SequenceGenerator,PRSG)的新方法;并基于这种方法,提出了以现场可编程门阵列 (Field Programmable Gate Array,FPGA)为平台的硬件设计实现方案,采用硬件描述语言 (VHSIC Hardware DescriptionLanguage,VHDL )完成了整个系统的设计,通过了仿真与适配,完成了硬件调试;详细地论述了系统总体框架及内部模块设计,重点介绍了TD-ERCS算法实现单元的设计,并在系统中设计加入了异步串行接口,完善了整个系统的模块化,可使系统嵌入到现有的各类密码系统与设备中;基于FDELPHI编程环境,完成了计算机应用软件的设计,为使用基于TD-ERCS开发的PRSG硬件产品提供了人机交互界面,也为分析与测试硬件系统产生的CPRS提供了方便;同时依据美国国家标准与技术研究院 (National Institute of Standards andTechnology,NIST)提出的伪随机序列性能指标,对软件与硬件系统产生的CPRS进行了标准测试,软件方法所得序列各项性能指标完全合格,硬件FPGA所得序列仅三项测试未能通过,其原因有待进一步研究。
上传时间: 2013-06-20
上传用户:heart520beat
当今的船用导航雷达具有数字化、多功能、高性能、多接口、网络化。同时要求具有高可靠性、高集成度、低成本,信号处理单元的小型化,产品更新周期短。要同时满足上述需求,高集成度的器件应用是必须的。同时开发周期要短,需求软件的可移植性要强,并且是模块化设计,现场可编程门阵列器件(FPGA)已经成为设计首选。 现场可编程门阵列是基于通过可编程互联连接的可配置逻辑块(CLB)矩阵的可编程半导体器件。与为特殊设计而定制的专用集成电路(ASIC)相对,FPGA可以针对所需的应用或功能要求进行编程。虽然具有一次性可编程(OTP)FPGA,但是主要是基于SRAM的,其可随着设计的演化进行重编程。CLB是FPGA内的基本逻辑单元。实际数量和特性会依器件的不同而不同,但是每个CLB都包含一个由4或6个输入、一些选型电路(多路复用器等)和触发器组成的可配置开关矩阵。开关矩阵是高度灵活的,可以进行配置以便处理组合逻辑、移位寄存器或RAM。当今的FPGA已经远远超出了先前版本的基本性能,并且整合了常用功能(如RAM、时钟管理和:DSP)的硬(ASIC型)块。由于具有可编程特性,所以FPGA是众多市场的理想之选。它高集成度,以及用于设计的强大软件平台、IP核、在线升级可满足需求。 本文介绍了基于FPGA实现船用导航雷达数字信号处理的设计,这是一个具体的、已经完成并进行小批量生产的产品,对指导实践具有一定意义。
上传时间: 2013-04-24
上传用户:稀世之宝039
PCI(Peripheral Component Interconnect)局部总线是微型计算机中处理器、存储器与外围控制部件、扩展卡之间的互连接口,由于其速度快、可靠性高、成本低、兼容性好等特点,在各种计算机总线标准占有重要地位,基于PCI标准的接口设计已经成为相关项目开发中的一个重要的选择。 目前,现场可编程门阵列FPGA(Field Programmable Gates)得到了广泛应用。由于其具有规模大,开发过程投资小,可反复编程,且支持软硬件协同设计等特点,因此已逐步成为复杂数字硬件电路设计的首选。 PCI接口的开发有多种方法,主要有两种:一是使用专用接口芯片,二是使用可编程逻辑器件,如FPGA。本论文基于成本和实际需要的考虑,采用第二种方法进行设计。 本论文采用自上而下(Top-To-Down)和模块化的设计方法,使用FPGA和硬件描述语言(VHDL和Verilog HDL)设计了一个PCI接口核,并通过自行设计的试验板对其进行验证。为使设计准确可靠,在具体模块的设计中广泛采用流水线技术和状态机的方法。 论文最终设计完成了一个33M32位的PCI主从接口,并把它作为以NIOSⅡ为核心的SOPC片内外设,与通用计算机成功进行了通讯。 论文对PCI接口进行了功能仿真,仿真结果和PCI协议的要求一致,表明本论文设计正确。把设计下载进FPGA芯片EP2C8Q208C7之后,论文给出了使用SIGNALTAPⅡ观察到的信号实际波形,波形显示PCI接口能够满足本设计中系统的需要。本文最后还给出试验板的具体设计步骤及驱动程序的安装。
上传时间: 2013-07-28
上传用户:372825274
随着经济的发展,科学技术的进步,永磁电机的研发和控制技术都有了快速的发展。永磁电机的发展也带来了永磁电机控制器的发展,电机控制器已经由传统的模拟元件控制器,逐渐转向数模混合控制器、全数字控制器。基于现场可编程门阵列(FPGA——Field Programmable Gate Array)的新一代数字电机控制技术得到越来越多的关注。现在的FPGA不仅实现了软件需求和硬件设计的完美集合,还实现了高速与灵活性的完美结合,使其已超越了ASIC器件的性能和规模。在工业控制领域,FPGA虽然起步较晚,但是发展势头迅猛。 本文在介绍了传统无刷直流电机控制技术的基础上,分析了采用FPGA实现电机控制的优点。详细介绍了使用硬件编程语言,在FPGA中编程实现永磁无刷直流电机速度闭环控制的各个关键环节,如:PI调节器、数字PWM等等。在实现永磁无刷直流电机速度闭环控制的同时,将速度检测环节采用FPGA实现,减小了系统硬件开销。在实现单台永磁无刷直流电机速度闭环控制的基础上,本文在一片FPGA芯片上实现了多台永磁无刷直流电机的速度闭环独立控制系统。介绍了采用FPGA进行多台电机控制具有独特的优势,这些优势使得FPGA在实现多台电机控制时非常方便,具有单片机(MCU)和数字信号处理器(DSP)无法比拟的优点。文中对基于FPGA的单台和多台永磁无刷直流电机控制系统分别进行了实验验证。 FPGA编程灵活,设计方便,本文在FPGA中实现了各种不同的PWM调制方式。从电路方面详细分析了采用不同的PWM调制,换相时无刷直流电机母线的反向电流问题。借助FPGA平台,对各种PWM调制方式进行了实验,对理论分析进行了验证。 另外,本文介绍了目前非常流行的一种FPGA图形化设计方法,即基于XSG(Xilinx System Generator)的FPGA设计。这种设计方法具有图形化、模块化的优点,大大方便了用户的FPGA开发设计。在XSG中建立的仿真系统,区别于传统的Simulink仿真,可以直接生成相应的硬件编程语言代码下载到FPGA中运行。本文借助XSG软件设计在XSG/Simulink中实现了永磁同步电机矢量控制系统的混合建模算法,并进行了仿真。
上传时间: 2013-04-24
上传用户:wangyi39
摘要: 本文介绍了基于FPGA 的出租车计价器系统的功能、设计思想和实现, 该设计采用模块化自上而下的层次化设计,顶\r\n层设计有5 个模块,各模块中子模块采用VHDL 或图形法设计。在Max+plusⅡ下实现编译、仿真等,最后成功下载到FPGA 芯\r\n片中。完成了可预置自动计费、自动计程、计时、空车显示等多功能计价器。由于FPGA 具有高密度、可编程及有强大的软件\r\n支持等特点,所以该设计具有功能强、灵活和可靠性高等特点,具有一定的实用价值。
上传时间: 2013-08-09
上传用户:Zxcvbnm
上一节,仔细的把怎么建立一个好的工程模板说了一下,可以说是一个好的
上传时间: 2013-11-25
上传用户:shawvi
IC卡智能水表以AT89C51为控制核心,实现IC卡的读写,液晶显示的控制,电磁阀的控制,脉冲的提取,同时具有安全保护电路、记忆单元电路、通信接口电路,完成整个水表信号的读、写处理,监控水表工作的功能。在设计中编程语言使用了C51,并采用模块化设计方法,不仅易于编程和调试,也可减小软件故障率和提高软件的可靠性。本系统具有性能优良、稳定可靠的优点。
上传时间: 2013-12-02
上传用户:kao21
传统教学用实验箱缺少培养学生独立设计硬件的环节,偏重软件设计,学生动手能力和创新性不足。为此,引入了模块化思想,将系统按功能分成6个模块,设计了创新实验板系统,采用串口通信原理,实现宿主计算机和单片机之间的通信问题。该系统要求学生根据需求,自主选材、独立设计并焊接实验板,编程之前需要自己设计实验方案并进行连线。该系统使学生参与从硬件设计到软件实现的单片机应用系统开发的全部过程,有效地弥补传统实验箱在硬件教学上的不足,全程培养学生动手能力和解决问题的能力。结果表明,本系统具有很好的稳定性和灵活性。
上传时间: 2013-11-14
上传用户:franktu
xlisp单片机驱动程序是是深圳市学林电子有限公司综合多年经验开发出的多功能8051单片机平台(兼容AVR/PIC单片机的部份烧写实验功能)。 集成常用的单片机外围硬件,ISP下载线,单片机仿真器, 单片机试验板,编程器功能于一身。配合本公司的近百个详细的汇编/c语言例子程序,可以让您在最短的时间内,全面的了解掌握单片机编程技术。特别适合于单片机初学者, 大中专院校, 单片机工程师, 实验室选用。 系统的特点: 1 全开放的模块化设计:所有硬件资源对用户开放,搭配随心所欲,不会出现硬件束缚软件的情况。既可学习软件, 更可深入的了解硬件。 2 高品质的工艺: 本机采用高档透明雅克力面板, 铝合金外箱, 全贴片机器生产, 工艺精美绝伦! 3 超强的电路资源配备:集成了基本上所有单片机应用中可能遇到的功能模块部份,你再也不必要去找其他零件,即可轻松完成您所需要的开发任务。 4 完美的例子程序: 集合本公司多年的经验,每个模块都有完整的带中文注释例子程序, 原理图, 接线方法, 很多都可以直接拿来应用。快速提高您的硬件,软件编程水平。 5 所有端口全部采用防插反设计,均配有连接照片和中文注解,即便您是初学者,也能轻松掌握。 6 配有ISP下载头。可选232/USB通信,CPU控制编程,不受电脑配置及操作系统影响,稳定性一流。 可以作为一台独立的ISP下载线使用,支持芯片包括51/AVR/PIC各系列!同时在板上可以直接对89S51/52等等芯片编程,当作独立编程器使用。 7 配有40P外接仿真头,可以作为一台独立的51单片机硬件仿真器使用,通过KEIL SOFT软件配合, 即可对外部硬件以及板上资源实现单步调试, 断点, 全速等等全部功能。 8 全中文软件操作导航, 独有智能一键通设计,擦除, 写入, 校验,运行自动完成,软件中英文自动选择, 适合港台地区用户使用。 特别设计的烧写实验仿真3IN1的公用卡座, CPU插上后即不需要插拔,烧写仿真等公用串口,使用极其方便简洁。 9 价格低廉,轻松拥有! 目前市面上同类产品价格均在2000-3000左右, 本套件是第一款600元以下的高档单片机实验仪!
上传时间: 2014-12-25
上传用户:范缜东苑
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