- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
CPLD/FPGA和单片机接口制作:李桂林2009-8-3主要内容:一、CPLD/FPGA和单片机各自的优缺点三、CPLD/FPGA和单片机的接口方式四、设计举例二、CPLD/FPGA和单片机优势互补一、CPLD/FPGA和单片机各自的优缺点单片机CPLD/FPGA优点:缺点:强大的信息(数据)处理、逻辑分析、决策判断等能力;体积小、性价比高、功能灵活、可靠性高、易于人机对话。低速;复位工作方式;程序跑飞。优点:一般只能实现数字逻辑;信息处理、逻辑分析、决策判断等“智能”方面相对单片机较弱。缺点:用户可自定制逻辑,在线可编程,开发便捷。信号传输效率高,适合高速采样场合;可以加密,抗干扰能力强,功耗低,可靠性高;将单片机和CPLD/FPGA相结合,可以优势互补,开发出功能强大,线路简洁、性能优越的系统。二、CPLD/FPGA和单片机优势互补单片机与CPLD/FPGA相结合,可由单片机处理复杂指令数据;CPLD/FPGA负责传送高速实时信号。CPLD/FPGA的I/O资源丰富,可以扩展单片机的接口;CPLD/FPGA可作为单片机的外设,完成单片机所要求的功能,例如,实现常用的地址译码,锁存器,8255等功能;也可实现加密、解密等单片机所要求的特殊功能。三、CPLD/FPGA和单片机的接口方式两种接口方式:1、总线方式2、独立方式接口要解决的两大问题:1、如何进行数据传输2、如何进行控制信息通信基本原理框图:1、总线方式利用片外三总线结构(即数据总线、地址总线、控制总线)很容易实现单片机与FPGA/CPLD的总线接口。双向数据总线完成数据传输,单向控制总线和地址总线通过CPLD对外围对象控制。图1总线方式原理框图总线接口设计的要点:1、要详细了解单片机的总线读写时序,根据时序图来设计逻辑结构,其通信的时序必须遵循单片机内固定的总线方式读/写时序;2、FPGA/CPLD的逻辑设计较复杂,在程序设计上必须与接口的单片机程序相结合,严格安排单片机能访问的I/O空间。总线接口方式的优点:1、速度快;2、节省PLD芯片的I/O口线;3、相对于非总线方式,单片机编程简捷,控制可靠;2、独立方式基本原理框图:直接将单片机的I/0端口线与FPGA/CPLD的I/O相连。图2独立方式原理框图独立接口方式的优点:1、与总线接口方式不同,几乎所有的单片机都能以独立接口方式与FPGA/CPLD进行通信,其通信可由所设计的软件自由决定,形式灵活多样;2、FPGA/CPLD中的接口逻辑无需遵循单片机内固定总线方式的读/写时序,FPGA/CPLD的逻辑设计与接口的单片机程序设计可以分先后相对独立地完成。四、设计举例工程实例1:“山东省防工业计量站于2003年研制了“导爆索、雷管爆速校准仪”,并于2004年1月通过专家评审。该项目的研制,解决了导爆索、雷管爆速仪在1(1S^-10s)范围内各种信号端口模式下的校准问题。在研制过程中,由于单片机系统存在处理高速实时信号能力不强和抗干扰能力较差的缺点,引入可编程逻辑器件(CPLD/FPGA)弥补单片机系统的不足,用以处理高速实时信号,提高整机抗干扰能力。”单片机做主控芯片,实现集中管理外围设备(包括CPLD/FPGA)、处理复杂指令数据;CPLD作为单片机的被控设备,主要处理关键的高速实时信号;设计思路:为了进一步提高。为了进一步提高处理高速实时信号的可靠性,两部分之间功能应设计为相对独立,即单片机部分的故障应尽可能不影响CPLD部分的工作。设计原则:为了使硬件的设计应使软件设计尽可能简单——除串行设备外的其他所有部件应采用总线结构。硬件接口设计:图3单片机与CPLD通用接口连接方式逻辑接口设计:要点:单片机下达一个任务给CPLD,CPLD完成任务后给单片机一个反馈信号,任务运行期间CPLD不响应单片机发来的除复位信号以外的其他信号。可根据实际需要,通过程序调整各个任务执行的优先级,一般设置处理高速信号的CPLD为最高优先级。单片机和CPLD通讯采取存储器控制和地址命令控制,即单片机发给CPLD的控制信息尽可能发送到CPLD中的一片存储区,CPLD根据此存储区的数据决定自身的动作;另一方面,对于单片机下达的实时命令信号可以采用地址组合的方式实现。程序实现:#defineCPLDADDRESS0x0000#includeabsacc.hmain(){unsignedcharADDRESSIndex;//CPLD某个功能部件的地址unsignedcharDATA_REA
文档评论(0)