|
LPC1752与CPLD通讯的原理与实现
@一板网
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的通讯正常。
|