本帖最后由 rain_noise 于 2015-4-8 12:29 编辑
1 简介
本篇文章主要介绍LPC1752通过自定义的通讯协议实现与CPLD的通讯原理,并进行了实验测试。其中CPLD采用的是Altera公司的EPM240,其内部共有240个逻辑单元,能满足设计需求。
1.1 硬件连接
LPC1752与CPLD连接共有地址线5根(A0~A4)、8根数据线(D0~D7)、两根控制线(RD、WR)组成。连接方式如图1所示。
图1 LPC1752与CPLD硬件连接图
1.2 通讯方式
通讯采用类似8086的时序,共有读写两种操作。 图2、图3分别是两种操作的时序图。
图2 读时序图
图3 写时序图
2 CPLD程序
CPLD程序采用Verilog HDL语言编写。主要过程是从LPC1752接收控制指令,并根据指令内容完成对RAM的读写。实现过程如图4所示。
图4 CPLD程序
3函数简介
3.1 初始化函数cpld_bus_init
主要完成LPC1752的各个引脚的定义,包含引脚的方向、默认输出的电平等。
图5 cpld_bus_init函数实现代码图
3.2读函数cpld_read
根据读时序完成实现从CPLD的固定地址里读取数据。
图6 cpld_read函数实现代码图
3.3 写函数cpld_write
根据写时序实现向CPLD固定地址写入数据
图7 cpld_ write函数实现代码图
4 测试
测试方法主要是读取固定地址,然后向固定地址写入数据,再进行读取,判定读取的值与写入的值是够一致。具体的测试过程如图8所示。
图8 main函数
测试结果如图9、图10所示
图9 第一次读取结果
图10 第二次读取结果
根据以上两图可以看出,第二次读取的结果与写入的值一致,说明与CPLD的通讯正常。
LPC1752与CPLD通讯的原理与实现.pdf
(624.58 KB, 下载次数: 3, 售价: 3 分芯积分)