首页|嵌入式系统|显示技术|模拟IC/电源|元件与制造|其他IC/制程|消费类电子|无线/通信|汽车电子|工业控制|医疗电子|测试测量
首页 > 分享下载 > 嵌入式系统 > 用VHDL语言在CPLD上实现串行通信

用VHDL语言在CPLD上实现串行通信

资料介绍
用VHDL语言在CPLD上实现串行通信

用VHDL语言在CPLD上实现串行通信
 
摘 要:
串行通信是实现远程测控的重要手段。采用VHDL语言在CPLD上实现了串行通信,完全可
以脱离单片机使用。

关键词: CPLD;VHDL;串行通信
引言
随着EDA技术得发展,CPLD已经在许多方面得到了广泛应用,而串行通信是实现远程测控
的重要手段。本文利用VHDL语言在CPLD上实现了串行通信,完全可以脱离单片机使用,
克服了单片机的许多缺点。
 
串口结构及内容

本设计所采用的是异步通信方式,可以规定传输的一个数据是10位,其中最低位为启动
位(逻辑0低电平),最高位为停止位(逻辑1高电平),中间8位是数据
位。为了方便对数据进行正确控制,选取发送(接受)每位数据用4个时钟周期。为了能够
达到串行通信的波特率,例如4800B/s,则需把时钟频率设为
19.2kHz。系统结构如图1所示:

[pic]
图1
系统原理

首先介绍串行通信发送器的工作原理。6位计数器用于判断发送的数据是否发送完毕及在
发送完毕后装入新的数据,其VHDL语言程序如下:

process(carry)
begin
if carry'event and carry='1'then
if counter40="100111"then
load<='1';
counter40<="000000";
else counter40<=counter40+1;
load<='0';
end if;
end if;
end process;

由于本设计中选取一位数据4个时钟周期,因此当计数到“100111”时,表示10位数据发送
完毕;此时将加载信号“load”置1,则向移位寄存器加载10位数据。此计数器
用VHDL语言在CPLD上实现串行通信
本地下载

评论