计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

I2C器件接口IP核的CPLD设计

2016-07-29 01:12
导读:理工论文论文,I2C器件接口IP核的CPLD设计样式参考,免费教你怎么写,格式要求,科教论文网提供的这篇文章不错: 摘要:根据单片机I2C串行扩展的特点,在EDA软件MaxplusII的环境下
摘要:根据单片机I2C串行扩展的特点,在EDA软件MaxplusII的环境下,利用AHDL语言,建立IP核。此设计利用状态机实现,在给出设计的同时详细说明IP核的建立过程,并下载到芯片通过硬件试验验证。

由于CPLD数字设计结构化的趋势,将出现针对CPLD不同层次的IP(Intellectual Property)核。各个IP核可重复利用,可大大提高设计能力和效率。国外各大公司都推出了专门的IP核,我国也迫切需要发展自己的IP核。本文针对I2C的主方式串行扩展通信的特点,详细给出设计过程和结果。

1 IP核简介

  IP核是指:将一些在数字电路中常用但比较复杂的功能块,如FIR滤波器、SDRAM控制器、PCI接口等等设计成可修改参数的模块,让其它用户可以直接调用这些模块,以避免重复劳动。随着CPLD/FPGA的规模越来越大,设计越来越复杂,使用IP核是一个发展趋势。许多公司推荐使用现成的或经过测试的宏功能模块、IP核,用来增强已有的HDL的设计方法。当在进行复杂系统设计的时侯,这些宏功能模块、IP核无疑将大大地减少设计风险及缩短开发周期。使用这些宏功能模块、IP核,就会将更多的时间和精力放在改善及提高系统级的产品方面,而不需要重新开发现成的宏功能模块、IP核。我国IP核库的建设已相当迫切,它是集成电路产业发展的一个重要目标。

图1 I2C传输原理图

2 I2C串行通信特点简介

  Philips公司推出的I2C软、硬件协议十分巧妙,在单主方式的I2C总线系统中,总线上只有一个单片机,其余都是带I2C总线的外围器件。由于总线上只有一个单片机成为主节点,单片系统永远占据了总线,不会出现竞争,主节点不必有自己的节点地址。只要每个外围器件有自己的器件地址,两根I/O口线SCL(时钟线)和SDA(数据线)就可以虚拟I2C总线接口。I2C总线上的数据传送如图 1所示。总线上传送的每一帧数据均为1个字节。启动总线后,要求每传送1个字节后,对方回应一个应答位。在发送时,首先发送最高位。每次传送开始有起始信号,结束时有停止信号。在总线传送完1个字节后,可以通过对时钟线的控制,使传送暂停,这时可在应答信号后使SCL变低电平,控制总线暂停。 当主节点要求总线暂停时亦可采用同样的方法。图1是CPLD向外围I2C器件发送01010011 和01001001这两个数据的情况。

3 在MaxplusII环境下I2C串行扩展IP核的建立

  MaxplusII是美国Altera公司用于CPLD的EDA软件,内部有许多常用的宏单元,如计数器、四则运算、各类逻辑门乃至ROM、RAM等。这些宏单元内具体的参数都可以由用户来自行设定,这就是上面提到的IP核形式。它避免了重复劳动,提高了效率。以下将要设计的是下位机的IP核。

  MaxplusII的AHDL(Altera Hard ware Description Language)是Altera公司开发的完全集成于MaxplusII中的一种模块化高级语言,特别适合于描述复杂的组合逻辑、组运算、状态机和真值表。本文利用AHDL,直接生成IP核。

  设计的最终目标是生成如图 2所示的Symbol。通过输入数据来达到控制SDA和SCL的目的,将信号按要求的时序传送给I2C器件。

  设计思路是利用状态机实现时序。主要包括输入数据锁存、起始、数据传输、停止等状态机。通过状态机,在每一状态下确定下一状态SDA和SCL是高电平或者低电平,通过这种方式实现了I2C所需要的每一种时序。由于使用的是AHDL,这种状态机实现起来非常方便,程序简洁明了。由于篇幅限制,仅介绍数据传输的状态机。状态图如图3所示。

  以下程序中,Cmd_reg2为发送允许暂存位;Sh_reg[]为数据锁存,通过左移,最高位数据Sh_reg7为当前将发送数据,存入SDA_tmp 。通过图 3对照程序,可以看到发送一个利用状态机数据位的详细过程。程序清单如下:

上一篇:带以太网口的中西文VFD字符显示器 下一篇:没有了