CPLD的串口电路设计

EDA/PCB 时间:2012-08-21来源:网络

一、硬件电路设计

本文选用CPLD 是ALTERA 公司的EPM240T100,结合MAX232 接口芯片进行串口通信设计,框图如下图1 所示。

CPLD串口通信模块硬件设计
图1 CPLD串口通信模块硬件设计

二、VHDL程序模块设计及描述

使用VHDL 对CPLD 进行编程,设计3 个模块,波特率发生模块,接收器,发送器。

1. 波特率发生模块

波特率发生器实际是一个分频器,如前所述,本文设计的波特率为19.2kb/ 秒,设计使用的时钟频率为10MHz,所以计数器进行计数时计数到260进行翻转。

程序如下(关键部分保留,非必要部分用……代替):

……

ENTITY uart IS

GENERIC(d_len:INteGER:=8);

PORT (

f10MHz:IN STD_LOGIC;-- 系统时钟

reset:IN STD_LOGIC;-- 复位信号

rxd:IN STD_LOGIC; -- 串行接收

txd:OUT STD_LOGIC;-- 串行发送

);

END uart;

ARCHITECTURE behav of uart IS

……

BEGIN

rxds=rxd;

PROCESS(f10MHz,reset)

-- 设置波特率发生器 19200kb/s

VARIABLE clk19200hz: STD_LOGIC;

VARIABLE count:INTEGER RANGE 0 TO 260;

BEGIN

IF reset='0' THEN

count:=0;

clk19200hz:='0';

ELSIF f10MHz'EVENT AND f10MHz='1' THEN

IF count=260 THEN

count:=0;clk19200hz:= NOT clk19200hz;

ELSE

count:=count+1;

END IF;

END IF;

baud_rate=clk19200hz;

END PROCESS;

1 2

关键词: CPLD 串口 电路设计

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版