admin
发表于: 2015-4-22 17:18:55 | 显示全部楼层

LPC1752与CPLD通讯的原理与实现

@一板网

1 简介

本篇文章主要介绍LPC1752通过自定义的通讯协议实现与CPLD的通讯原理,并进行了实验测试。其中CPLD采用的是Altera公司的EPM240,其内部共有240个逻辑单元,能满足设计需求。

1.1 硬件连接

LPC1752与CPLD连接共有地址线5根(A0~A4)、8根数据线(D0~D7)、两根控制线(RD、WR)组成。连接方式如图1所示。

cpld_mcu.jpg

图1  LPC1752与CPLD硬件连接图

1.2 通讯方式

通讯采用类似8086的时序,共有读写两种操作。 图2、图3分别是两种操作的时序图。

read.JPG

图2 读时序图

write.JPG

图3 写时序图


2  CPLD程序

CPLD程序采用Verilog HDL语言编写。主要过程是从LPC1752接收控制指令,并根据指令内容完成对RAM的读写。实现过程如图4所示。

cpld.jpg

图4 CPLD程序


3 函数简介

3.1  初始化函数cpld_bus_init

主要完成LPC1752的各个引脚的定义,包含引脚的方向、默认输出的电平等。

001.jpg

图5  cpld_bus_init函数实现代码图

3.2读函数cpld_read

根据读时序完成实现从CPLD的固定地址里读取数据。

002.jpg

图6  cpld_read函数实现代码图

3.3 写函数cpld_write

根据写时序实现向CPLD固定地址写入数据

003.jpg

图7  cpld_ write函数实现代码图


4 测试

测试方法主要是读取固定地址,然后向固定地址写入数据,再进行读取,判定读取的值与写入的值是够一致。具体的测试过程如图8所示。

004.jpg

图8 main函数

测试结果如图9、图10所示

006.jpg

图9 第一次读取结果

005.jpg

图10 第二次读取结果

根据以上两图可以看出,第二次读取的结果与写入的值一致,说明与CPLD的通讯正常。





跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 53 | 回复: 76



手机版|

GMT+8, 2024-11-21 18:55 , Processed in 0.060423 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表