首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» 基于FPGA的RS232异步串行口IP核设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于FPGA的RS232异步串行口IP核设计
发短消息
加为好友
yuchengze
当前离线
UID
1062083
帖子
5837
精华
0
积分
2921
阅读权限
70
在线时间
222 小时
注册时间
2016-6-30
最后登录
2018-9-9
金牌会员
UID
1062083
性别
男
1
#
打印
字体大小:
t
T
yuchengze
发表于 2016-8-23 08:37
|
只看该作者
基于FPGA的RS232异步串行口IP核设计
数据采集
,
电路板
,
可靠性
,
嵌入式
,
技术
1 引言 数据采集系统常需要进行异步串行数据传输。目前广泛使用的RS232异步串行接口,如8250、 NS16450等专用集成器件,虽然使用简单,却占用电路板面积、布线复杂等缺点。片上系统SoC(System on Chip)是以嵌入式系统为核心,以IP复用技术为基础,集软、硬件于一体的设计方法。使用IP复用技术,将UART集成到FPGA器件上,可增加系统的可靠性,缩小PCB板面积;其次由于IP核的特点,使用IP核可使整个系统更加灵活,还可根据需要实现功能升级、扩充和裁减。这里采用VHDL语言编写 UART模块,将其集成到FPGA上,与器件其他功能模块构成片上系统SoC。
2 异步串行口模块设计与实现
2.1 UART结构
图1为完整的UART接口,包括由发送锁存器、发送移位寄存器和逻辑控制组成的发送模块(txmit),以及由接收锁存器、接收移位寄存器和逻辑控制组成的接收模块(rxcver)。发送模块和接收模块除共用复位信号、时钟信号和并行数据线外,各自分别有输入输出和逻辑控制单元。
2.2 UART的帧格式
图2为UART的帧格式。该帧格式包括线路空闲状态(idie,高电平)、起始位 (start bit,低电平)、5~8位数据位(databit)、校验位(parity bit,可选)和停止位(stop bit,位数可为1、1.5、2位)。该格式是由起始位和停止位实现字符同步。UART内部一般有配置寄存器,可配置数据位数(5~8位)、是否有校验位和校验的类型、停止位的位数等设置。
2.3 波特率时钟的控制
由于数字量接口、工作模式选择、实时监测接口的波特率都不同,UART核包含一个可编程的波特率发生器,可灵活配置波特率。波特率发生器给发送模块和接收模块提供发送数据和接收数据的基准时钟,波特率发生器产生的时钟mclkx16是串行数据波特率的16倍。它对系统时钟n分频,n=系统时钟/波特率×16,针对不同波特率设定相应数值可得到所期望的波特率时钟。
2.4 发送模块设计
发送模块分为空闲、载入数据、移位等3种模式。如图3所示。当并行8位数据从总线写入发送模块后,发送模块将并行数据装入锁存器thr中,然后在移位寄存器tsr中将数据移位,产生完整的发送序列(包括起始位,数据位,奇偶校验位和停止位),以相应波特率从tx发送。发送模块的输入时钟mclkx16是串行数据波特率的16倍,模块内部将其16分频后得到波特率时钟txclk。
发送模块部分VHDL程序如下:
收藏
分享
评分
回复
引用
订阅
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
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议