首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» 基于FPGA的通用异步收发器设计(2)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于FPGA的通用异步收发器设计(2)
发短消息
加为好友
yuyang911220
当前离线
UID
1029342
帖子
9914
精华
0
积分
4959
阅读权限
90
在线时间
286 小时
注册时间
2014-5-22
最后登录
2017-7-24
论坛元老
UID
1029342
性别
男
1
#
打印
字体大小:
t
T
yuyang911220
发表于 2015-12-25 10:41
|
显示全部帖子
基于FPGA的通用异步收发器设计(2)
收发器
,
接收器
,
通用
,
检测
2.3 接收模块
2.3.1 接收模块及其功能
接收模块的作用是把收到的串行数据转换成并行数据进行输出,并判断收到的数据是否有错。接收模块的引脚如图4所示,各引脚功能见表2。
接收器进入准备接收数据状态,不断监视串行输入线RXD端,如果出现低电平,立刻启动起始位检测电路进行确认,一旦确认为接收到正确的起始位,则以波特率作为采样时钟,对每个数据位的中间位置采样一次,并把采样到的信息以移位方式送人接收移位寄存器RSR。接收到一帧数据位后,把串行数据转化成并行数据,并进行奇偶校验、停止位、中止态的检查。接收完毕后,DAT_READ置1。
2.3.2 接收模块功能仿真
接收模块功能仿真结果如图5所示。二进制数11101010从引脚RXD串行输入,接收器先要捕捉起始位,在RDN信号为0条件下,启动接收程序,计数器开始计数,数据从RXD[7..0]串行输入,由接收移位寄存器RSR[7..0]逐位移位接收,并在接收完成时传送给接收缓冲寄存器RBR[7..0],最后接收缓冲寄存器RBR[7..0]将接收的数据传送至DOUT[7..0],由它并行输出,同时输出一个接收数据准备好信号DATA _RE标志数据接收完毕。
2.4 波特率发生器模块
2.4.1 波特率发生器模块及其功能
波特率发生器模块主要用于产生接收模块和发送模块的时钟频率,其实质就是一个分频器,可以根据给定的系统时钟频率和要求的波特率算出波特率分频因子,作为分频器的分频数。波特率发生器产生的时钟频率CLK16X不是波特率时钟频率CLK,而是波特率时钟频率CLK的16倍。波特率发生器模块的引脚如图6所示,其功能如表3所示。
2.4.2 波特率发生器功能仿真
UART在发送或接收数据时,使用的时钟信号频率f是波特率(b=9 600 b/s)的16倍,由外部系统时钟进行16分频得到。UART每16个波特时钟发送或接收一个二进制位,设计中采用的晶振频率c=25 MHz,那么波特率发生器输出的时钟信号周期为:
波特率发生器的功能仿真如图7所示。
本设计用晶振为25 MHz,由公式可得出输出波形的半个周期应为k/2,即81倍的输入时钟周期,仿真结果验证了波特率发生器模块的正确性。
3 结语
UlART是广泛使用的串行数据通信电路,因其要求的传输线少,可靠性高,传输距离远,所以系统间互联常采用异步串行通信接口方式。本文用Verilog HDL语言,结合有限状态机的设计方法实现了UART的功能,将其核心功能集成到FPGA上,使整体设计紧凑、小巧,实现的UART功能稳定、可靠;同时,利用有限状态机的方法具有结构模式直观简单,设计流程短,程序层次分明,易综合,可靠性高等优点,必将在EDA技术中发挥重要作用。
收藏
分享
评分
继承事业,薪火相传
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议