用VHDL语言在CPLD上实现串行通信(图)》及本站其它信息均来自网络!
行业新闻技术文章解决方案电路图产品库厂商库供应信息求购信息外刊文摘
 技术文章 -> PCB电源单片机DSP设备与仪器EDA放大/转换存储器嵌入式接口与连接通讯与网络模拟技术其它技术文章
 解决方案 -> 汽车电子光电与显示测试测量计算机与外设仪器仪表通讯与网络视像设备消费电子工业控制其它解决方案
 产 品 库 -> 存储器嵌入式单片机电源通讯网络接口电路DSP视频音频EDA/PLD显示光电电测仪表传感与控制其它产品
 首页 -> 技术文章 -> 通信与网络 -> 正文

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

前言
????随着eda技术得发展,cpld已经在许多方面得到了广泛应用,而串行通信是实现远程测控的重要手段。本文利用vhdl语言在cpld上实现了串行通信,完全可以脱离单片机使用,克服了单片机的许多缺点。

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


?

系统原理
????首先介绍串行通信发送器的工作原理。6位计数器用于判断发送的数据是否发送完毕及在发送完毕后装入新的数据,其vhdl语言程序如下。
process(carry)
begin
if carryevent and carry=1then
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位数据。此计数器的时钟信号由3位计数器的进位信号提供,3位计数器程序为如下。
process(clk)
begin
if clkevent and clk=1then
if counter4="0011"then
counter4<="0000";
carry<=1;
else counter4<=counter4+1;
carry<=0;
end if;
end if;
end process;
????当计数脉冲为3时,计数器清零并发出进位信号“carry”,“carry”既是6位计数器的时钟信号,又是移位寄存器的移位脉冲,移位寄存器实际上在发送器中是一个并串转换器,其程序为如下。
process(load,carry)
begin
if load=1then
reg10(9 downto 0)<=regin(9 downto 0);
else
if carryevent and carry=1 then
din<=reg10(0);
reg10(8 downto 0)<=reg10(9 downto 1);
end if;
end if;
end process;
????当加载信号高有效时,10位数据从外部寄存器中并行载入reg10,载入后在“carry”有效时,即每4个clk周期右移一位进入锁存器,进而从txd发出。发送器的仿真波形如图2所示。

????接收器的结构与模块的功能与发送器相似。通过判断接收锁存器中的起始位是否为零,来确定接收与否。若有效时,3位计数器开始计数,将锁存器中的数据逐位右移到移位寄存器中,6位计数器同样计数到“100111”,此时表示已接收10位数据,发出信号把移位寄存器中的数据并行读出。接收器中的移位寄存器其实是一个串并转换器。

结论
????以上就是串行通信的基本结构和原理,在工程中可能对波特率的要求不同。可以利用cpld的在线可编程功能,通过修改发送(接收)每一位的时间来控制波特率,比如把一位数据每4个clk改为2个clk,则在时钟频率19.2khz时,波特率为9600bps。除此之外,还可以通过增加时钟频率来增大波特率。
参考文献
????1 胡汉才. 单片机原理及其接口技术.清华大学出版社
????2 赵俊超等. 集成电路设计vhdl教程. 希望电子出版社

()
Google
 >> 最近更新
 • USB接口芯片SL811HS在51单片机系统中的应用
 • 单片机系统与标准PC键盘的接口模块设计
 • 在嵌入式系统中实现对U盘的操作设计
 • 模拟信号仍在驱动数字显示器
 • 串行接口LED数码管及键盘管理器件ZLG7289A的原理
 • USB接口技术在外置式采样系统中的应用
 • AIT2139的视频转换器设计方案
 • 系统不认硬盘的常规处理方法
 • 硬盘维修的误区
 • 移动硬盘制作成启动盘
 • 误拔移动硬盘导致系统无法启动故障分析解决
 • 双硬盘盘符交错的处理
 • 硬盘跳线 图解
 • 移动硬盘故障的几种原因分析
 • 硬盘故障处理技巧4则(4)四、硬盘常见“坏道”的
 • 硬盘故障处理技巧4则(3)
 • 硬盘故障处理技巧4则
 • 硬盘故障处理技巧4则
 • sata硬盘安装系统
 • 硬盘引导型故障分析及排除
Copyright © 2005-2008 555DZ.com 联系站长:55dz@163.com