cpld和单片机接口_第1页
cpld和单片机接口_第2页
cpld和单片机接口_第3页
cpld和单片机接口_第4页
cpld和单片机接口_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CPLD/FPGA和单片机接口,制作:李桂林 2009-8-3,主要内容:,一、CPLD/FPGA和单片机各自的优缺点,三、CPLD/FPGA和单片机的接口方式,四、设计举例,二、CPLD/FPGA和单片机优势互补,一、CPLD/FPGA和单片机各自的优缺点,单片机,CPLD/FPGA,优点:,缺点:,强大的信息(数据)处理、逻辑分析、决策判断等能力; 体积小、性价比高、功能灵活、可靠性高、易于人机对话。,低速; 复位工作方式; 程序跑飞。,优点:,一般只能实现数字逻辑; 信息处理、逻辑分析、决策判断等“智能”方面相对单片机较弱。,缺点:,用户可自定制逻辑,在线可编程,开发便捷。 信号传输效率

2、高,适合高速采样场合; 可以加密,抗干扰能力强,功耗低,可靠性高;,将单片机和CPLD/FPGA相结合,可以优势互补,开发出功能强大,线路简洁、性能优越的系统。,二、CPLD/FPGA和单片机优势互补,单片机与CPLD/FPGA相结合,可由单片机处理复杂指令数据;CPLD/FPGA负责传送高速实时信号。 CPLD/FPGA的I/O资源丰富,可以扩展单片机的接口; CPLD/FPGA可作为单片机的外设,完成单片机所要求的功能,例如,实现常用的地址译码,锁存器,8255等功能;也可实现加密、解密等单片机所要求的特殊功能。,三、CPLD/FPGA和单片机的接口方式,两种接口方式:,1、总线方式,2、

3、独立方式,接口要解决的两大问题:,1、如何进行数据传输 2、如何进行控制信息通信,基本原理框图:,1、总线方式,利用片外三总线结构(即数据总线、地址总线、控制总线)很容易实现单片机与FPGA/CPLD的总线接口。,双向数据总线完成数据传输,单向控制总线和地址总线通过CPLD对外围对象控制。,图1 总线方式原理框图,总线接口设计的要点:,1、要详细了解单片机的总线读写时序,根据时序图来设计逻辑结构,其通信的时序必须遵循单片机内固定的总线方式读/写时序;,2、FPGA/CPLD的逻辑设计较复杂,在程序设计上必须与接口的单片机程序相结合,严格安排单片机能访问的I/O空间。,总线接口方式的优点:,1、

4、速度快;,2、节省PLD芯片的I/O口线;,3、相对于非总线方式,单片机编程简捷,控制可靠;,2、独立方式,基本原理框图:,直接将单片机的I/0端口线与FPGA/CPLD的I/O相连。,图2 独立方式原理框图,独立接口方式的优点:,1、与总线接口方式不同,几乎所有的单片机都能以独立接口方式与FPGA/CPLD进行通信,其通信可由所设计的软件自由决定,形式灵活多样;,2、FPGA/CPLD中的接口逻辑无需遵循单片机内固定总线方式的读/写时序,FPGA/CPLD的逻辑设计与接口的单片机程序设计可以分先后相对独立地完成。,四、设 计 举 例,工程实例1:,“山东省防工业计量站于2003年研制了“导爆

5、索、雷管爆速校准仪”,并于2004年1月通过专家评审。该项目的研制,解决了导爆索、雷管爆速仪在1 (1S-10s)范围内各种信号端口模式下的校准问题。 在研制过程中,由于单片机系统存在处理高速实时信号能力不强和抗干扰能力较差的缺点,引入可编程逻辑器件(CPLD/FPGA)弥补单片机系统的不足,用以处理高速实时信号,提高整机抗干扰能力。”,单片机做主控芯片,实现集中管理外围设备(包括CPLD/FPGA)、处理复杂指令数据; CPLD作为单片机的被控设备,主要处理关键的高速实时信号;,设计思路:,为了进一步提高。为了进一步提高处理高速实时信号的可靠性,两部分之间功能应设计为相对独立,即单片机部分的

6、故障应尽可能不影响CPLD部分的工作。,设计原则:,为了使硬件的设计应使软件设计尽可能简单除串行设备外的其他所有部件应采用总线结构。,硬件接口设计:,图3 单片机与CPLD通用接口连接方式,逻辑接口设计:,要点:,单片机下达一个任务给CPLD,CPLD完成任务后给单片机一个反馈信号,任务运行期间CPLD不响应单片机发来的除复位信号以外的其他信号。,可根据实际需要,通过程序调整各个任务执行的优先级,一般设置处理高速信号的CPLD为最高优先级。,单片机和CPLD通讯采取存储器控制和地址命令控制,即单片机发给CPLD的控制信息尽可能发送到CPLD中的一片存储区,CPLD根据此存储区的数据决定自身的动

7、作;另一方面,对于单片机下达的实时命令信号可以采用地址组合的方式实现。,程序实现:,#define CPLD ADDRESS 0 x0000 #include main() unsigned charA DDRESSIndex; /CPLD某个功能部件的地址 unsigned char DATA_READ,DATA_WRITE; XBYTE CPLD_ADDRESS+ADDRESSIndex=DATA_WRITE;/单片机向CPLD写数据 DATA_READ=XBYTECPLD_ADDRESS+ADDRESSIndex; / 单片机从CPLD读数据 ,1)单片机部分,2 )CPLD部分 mod

8、ule BusInterface (rst,CSn,ADDRESS,DAWRn,RDn); input rst,CSn,WRn,RDn; input7:0ADDRESS; inout 7:0DATA; wire 4:0ADDRESS RAM; wire 7:5ADDRESS_CONTROL; assign ADDRESS_RAM=ADDRESS4:0; assign ADDRESS_CONTROL=ADDRESS7:5; reg 7:0InterfaceRAM31:0; reg 4:0ADDRESSValue; always (ADDRESS_RAM) ADDRESSValue=ADDRESS

9、_RAM ; wire 7:0DATA_IN; reg 7:0DATA_OUT; ,assign DATA_IN=DATA; assign DATA=(CSnRDn)?8bz:DATA_OUT; always (ADDRESS_RAM or DATA or rst or CSn or WRn) begin /write bus if( rst )begin InterfaceRM0=8b0; InterfaceRM1=8b0; InterfaceRM2=8b0; InterfaceRM3=8b0; InterfaceRM4=8b0; InterfaceRM5=8b0; InterfaceRM6

10、=8b0; InterfaceRM7=8b0; / ot he rsa sf ollows end else begin if( CSn = = 1b0 end end ,always(CSn or ADDRESS or RDn) begin /read bus if(CSn =1b0 end end end endmodule,工程实例2:,远距离数据采集监测系统,随着现代工业的发展,远距离数据采集监测已成为日益重要的检测技术,广泛应用于工农业等需要同时监控温度、湿度和压力等场合。,设计思路:,为了提高系统的智能性、可靠性和实用性,可采用双CPU的方法,即在数据采集的远端和本地都采用单片机控

11、制,远端完成数据的采集、抽样和发送,本地完成数据的接收、处理,同时采用一片CPLD作为键盘、显示器及打印机的接口扩展。,系统硬件构成框图:,图4 系统组成框图,CPLD与单片机及键盘、显示器的接口:,打印机与CPLD及单片机的接口:,图6 打印机与CPLD及单片机的接口,图5 键盘、显示器与CPLD及单片机的接口,程序设计:,下位机负责数据的采集、抽样和发送。为了保证数据采集的实时性,下位机在未收到上位机指令时,内部轮流对8路模拟信号进行采集和变换,并存入缓冲存储器中。 上位机负责数据的接收、处理和打印。上 位机 发 送完指令后,立即转人接收状态,等待从远端下位机回送两个字节的数据,如果在规定

12、的时间内未收到数据,或者是收到的数据中两个字节不一致,则说明通讯线路有错误,不能接收该数据,故重新发送一次指令,如果重发3次都未成功,则发出出错报替信号,提醒用户检查线路或设备。否则,上位机对收到的有效数据进行处理,将数值大小为0255之间的数据转换为0-5 V的电压值,并进行显示。同时还要扫描键盘,处理各种功能键,完成用户的功能要求。 CPLD主要完成接收单片机发送来的数据并控制4个LED数码管显示相应的数码,同时控制打印机将上位机处理的结果打印输出。,工程实例3:,信号源设计,DDS工作原理:,图7 DDS信号源框图,输出频率计算公式:,假设给定:,则,,设计方案:,图8 DDS实验系统框

13、图,工作过程分析:,系统上电后,开始等待输入选择。当用户选择一种波形后,计算相位、幅度值,对RAM初始化。初始化完成后,即可输入一个有效的频率值,按回车键后,输出相应频率的波形,并且在数码管上显示出波形的类型和频率。,设计分组:,单片机系统的软硬件设计、CPLD的Verilog 程序设计;数模转换以及滤波器的设计。,附:总线接口模块设计Verilog 参考程序:,接口定义:,module interface(mcu_p0,mcu_p2_7,mcu_ale,mcu_wr,mcu_rd,creg1,creg2); inout7:0 mcu_p0;/8位数据总线 input mcu_p2_7;/地址总线 input mcu_ale,mcu_rd,mcu_wr;/控制总线 input creg1;/连接内部控制寄存器,用于单片机从CPLD读取信号 output creg2; /连接内部控制寄存器,用于单片机将信号写入CPLD reg dph;/内部变量,用于锁存高位地址 reg7:0 dpl;/内部变量,用于锁存低位地址 ,锁存地址信号, always (negedge mcu_ale) begin dpl=mcu_p0; dph=m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论