通用异步串行通信电路的vhdl设计与实现

通用异步串行通信电路的vhdl设计与实现

ID:20020174

大小:213.00 KB

页数:4页

时间:2018-10-08

通用异步串行通信电路的vhdl设计与实现_第1页
通用异步串行通信电路的vhdl设计与实现_第2页
通用异步串行通信电路的vhdl设计与实现_第3页
通用异步串行通信电路的vhdl设计与实现_第4页
资源描述:

《通用异步串行通信电路的vhdl设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、通用异步串行通信电路的VHDL设计与实现摘 要:本文分析了异步串行通信的帧格式,利用VHDL设计出异步串行通信电路,并通过计算机仿真和实验证明了设计的正确性。    关键词:VHDLEDA串行通信1引言   计算机串行通信技术在实际中应用十分广泛,硬件电路可以通过串口将数据传送到计算机,而后利用计算机强大的运算能力进行处理。对于8051等串行通信可编程芯片,如果不熟悉的话,还要参照手册来学习后才能进行设计,并且设计缺乏灵活性,通常芯片的全部功能还没有被完全利用,造成芯片资源的浪费。随着电子技术的发展,现场可编程门阵列FPGA和复杂可编程逻辑器件CPLD的出现,使得电子系统

2、设计者在实验室里就可以设计出可靠性高的专用集成电路,不但设计灵活,而且设计周期缩短。目前数字系统的设计可以实现电子设计自动化,其中电子设计自动化EDA(即ElectronicDesignAutomation)的关键技术之一就是可以用硬件描述语言(HDL)来描述硬件电路。VHDL(VHSICHardwareDescriptionLanguage)是IEEE标准的硬件描述语言,支持硬件的设计、验证、综合和测试,以及硬件设计数据的交换、维护、修改和硬件的实现,具有描述能力强、生命周期长、支持大规模设计的分散和已有设计的再利用等优点。利用VHDL这些优点和先进的EDA工具,根据具体的

3、实际要求,我们可以自己来设计串口异步通信电路。2串行发送电路的设计   为简化电路设计的复杂性,我们采用的帧格式为:1位开始位+8位数据位+1位停止位,没有校验位,波特率为9600。2.1波特率发生器的设计   要产生9600波特率,要有一个不低于9600Hz的时钟才可以。为产生高精度的时钟,我选了6MHz(6M能整除9600)的晶振来提供外部时钟。当然,你也可以选其它频率的时钟来产生9600Hz的时钟。对于6MHz时钟,需要设计一个625进制的分频器来产生9600波特率的时钟信号。用VHDL设计分频器较简单,在这里就不再给出源程序了。2.2发送电路的设计   根据采

4、用的帧格式,需要发送的数据为10位(1位开始、8位数据位、1位停止位),在发送完这10位后,应使发送端电平处于逻辑1,然后等候下次的发送。我们采用并入串出来设计发送电路,下面是VHDL源程序中实现上述功能的主要进程:   其中Senddata(0to9)为并行输入,表示需要发送的数据帧,发送时开始位Senddata(0)必须为逻辑0,停止位Senddata(9)必须为逻辑1,否则与硬件电路连接的设备接收到的数据会出现错误;serial为串行输出。在发送每一帧之前,首先给输入端en一个低电平脉冲,让电路复位(count置0),然后开始发送。就量count在进程中用来记录发送的

5、数据数目,当数据帧发送完后,发送端就一直发送停止位(逻辑1)。2.3时序仿真   选EDA工具,对VHDL源程序编译。我们用的是Altera公司的MAX+plusⅡ93Baseline,这个工具支持VHDL的编译、仿真。图1是编译后的仿真结果,其中,Clk为频率9600Hz的时钟,Senddata0为开始位,Senddata[8..0]为数据位,Senddata9为停止位。结果显示,输出完全是按数据帧格式发送的。3串行接收电路的设计   接收电路比发送电路要复杂的多,接收电路要时实检测起始位的到来,一旦检测到起始位到,就要将这一帧数据接收下来。为提高接收的准确性,减少误

6、码率,每一位数据都用3倍频的波特率对数据进行采样(如图2所示),然后对3次采样结果进行判决:如果3次采样中至少有2次为高电平,则接收这一位数据被判决为高电平,否则,为低电平。3.1波特率发生器和采样时钟的设计  为完成3次采样,除了频率为9600Hz的接收时钟外,还要有一个3倍频的采样时钟。其中clk(输入端)为6MHz的时钟,在VHDL程序里,用变量count来记数,用if(count=100orcount=300orcount=500)thenClock3<='1';elseClock3<='0';endif;来产生Clock3的3倍频的采样时钟。3.2接收电路的设计 

7、  串行接收电路首先要能判断接收数据的到来,即每一帧的开始,然后对数据进行3次采样,最后判决输出。为简化设计,帧格式仍然采用:1位开始位+8位数据位+1位停止位。接收电路为串入并出,VHDL源程序主要由3个进程和一个并行语句组成,程序代码如下所示:进程A用来判决输出,进程B完成3次采样,进程C是用来时实检测每一帧的起始位(即下降沿)。=com用来对波形采样,Q(Num)<=(N(0)andN(1))or(N(1)andN(2)or(N(0)andN(2))是对其中1位数据的3次采样结果判决,Num用来

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。