ImageVerifierCode 换一换
格式:DOC , 页数:4 ,大小:105KB ,
资源ID:970611      下载积分:5 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-970611.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(用VHDL语言在CPLD上实现串行通信.DOC)为本站会员(天***)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

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

1、用 VHDL 语言在 CPLD 上实现串行通信 摘 要: 串行通信是实现远程测控的重要手段。采用 VHDL 语言在 CPLD 上实现了串行通信,完全可以脱离单片机使用。关键词: CPLD;VHDL;串行通信引言 随着 EDA 技术得发展,CPLD 已经在许多方面得到了广泛应用,而串行通信是实现远程测控的重要手段。本文利用 VHDL 语言在 CPLD 上实现了串行通信,完全可以脱离单片机使用,克服了单片机的许多缺点。 串口结构及内容 本设计所采用的是异步通信方式,可以规定传输的一个数据是 10 位,其中最低位为启动位(逻辑 0 低电平),最高位为停止位(逻辑 1 高电平),中间 8 位是数据 位

2、。为了方便对数据进行正确控制,选取发送(接受)每位数据用 4 个时钟周期。为了能够达到串行通信的波特率,例如 4800B/s,则需把时钟频率设为 19.2kHz。系统结构如图 1 所示: 图 1系统原理 首先介绍串行通信发送器的工作原理。6 位计数器用于判断发送的数据是否发送完毕及在发送完毕后装入新的数据,其 VHDL 语言程序如下:process(carry) begin if carryevent and carry=1then if counter40=“100111“then load=1; counter40=“000000“; else counter40=counter40+1;

3、 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

4、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 proce

5、ss; 当加载信号高有效时,10 位数据从外部寄存器中并行载入 REG10,载入后在“carry”有效时,即每 4 个 CLK 周期右移一位进入锁存器,进而从 TXD 发出。发送器的仿真波形如图 2 所示。图 2接收器的结构与模块的功能与发送器相似。通过判断接收锁存器中的起始位是否为零,来确定接收与否。若有效时,3 位计数器开始计数,将锁存器中的数据逐位右 移到移位寄存器中,6 位计数器同样计数到“100111”,此时表示已接收 10 位数据,发出信号把移位寄存器中的数据并行读出。接收器中的移位寄存器其实 是一个串并转换器。 结论 以上就是串行通信的基本结构和原理,在工程中可能对波特率的要求不同。可以利用 CPLD 的在线可编程功能,通过修改发送(接收)每一位的时间来控制波特 率,比如把一位数据每 4 个 CLK 改为 2 个 CLK,则在时钟频率 19.2kHz 时,波特率为 9600bps。除此之外,还可以通过增加时钟频率来增大波特 率。参考文献 1 胡汉才. 单片机原理及其接口技术.清华大学出版社 2 赵俊超等. 集成电路设计 VHDL 教程. 希望电子出版社

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。