电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > EDA/PLD > 详细信息
EDA/PLD:基于FPGA/CPLD设计与实现UART (图)
来源:   时间: 2007-4-16 17:39:03    
摘 要:UART是广泛使用的串行数据通讯电路。本设计包含UART发送器、接收器和波特率发生器。设计应用EDA技术,基于FPGA/CPLD器件设计与实现UART。
关键词:FPGA/CPLD;UART;VHDL

---UART(即Universal Asynchronous Receiver Transmitter 通用异步收发器)是广泛使用的串行数据传输协议。UART允许在串行链路上进行全双工的通信。
---串行外设用到RS232-C异步串行接口,一般采用专用的集成电路即UART实现。如8250、8251、NS16450等芯片都是常见的UART器件,这类芯片已经相当复杂,有的含有许多辅助的模块(如FIFO),有时我们不需要使用完整的UART的功能和这些辅助功能。或者设计上用到了FPGA/CPLD器件,那么我们就可以将所需要的UART功能集成到FPGA内部。使用VHDL将UART的核心功能集成,从而使整个设计更加紧凑、稳定且可靠。本文应用EDA技术,基于FPGA/CPLD器件设计与实现UART。

一 UART简介
1 UART结构
 ---UART主要有由数据总线接口、控制逻辑、波特率发生器、发送部分和接收部分等组成。
---功能包括微处理器接口,发送缓冲器(tbr)、发送移位寄存器(tsr)、帧产生、奇偶校验、并转串、数据接收缓冲器(rbr)、接收移位寄存器(rsr)、帧产生、奇偶校验、串转并。
---图1是UART的典型应用。
2 UART的帧格式
---UART的帧格式如图2所示。


---包括线路空闲状态(idle,高电平)、起始位(start bit,低电平)、5~8位数据位(data bits)、校验位(parity bit,可选)和停止位(stop bit,位数可为1、1.5、2位)。
---这种格式是由起始位和停止位来实现字符的同步。
---UART内部一般有配置寄存器,可以配置数据位数(5~8位)、是否有校验位和校验的类型、停止位的位数(1,1.5,2)等设置。

二 UART的设计与实现
1 UART发送器
---发送器每隔16个CLK16时钟周期输出1位,次序遵循1位起始位、8位数据位(假定数据位为8位)、1位校验位(可选)、1位停止位。
---CPU何时可以往发送缓冲器tbr写入数据,也就是说CPU要写数据到tbr时必须判断当前是否可写,如果不判这个条件,发送的数据会出错。
---数据的发送是由微处理器控制,微处理器给出wen信号,发送器根据此信号将并行数据din[7..0]锁存进发送缓冲器tbr[7..0],并通过发送移位寄存器tsr[7..0]发送串行数据至串行数据输出端dout。在数据发送过程中用输出信号tre作为标志信号,当一帧数据发送完毕时,tre信号为1,通知CPU在下个时钟装入新数据。
---发送器端口信号如图3所示。

---引入发送字符长度和发送次序计数器length_no,实现的部分VHDL程序如下。
---if std_logic_vector(length_no) = “0001” then
---tsr <= tbr ; --发送缓冲器tbr数据进入发送移位寄存器tsr
---tre <= '0' ; --发送移位寄存器空标志置“0”
---elsif std_logic_vector(length_no) = “0010” then
---dout <= '0' ; --发送起始位信号“0”
---elsif std_logic_vector(length_no) >= “0011” and std_logic_vector(length_no) <= “1010” then
---tsr <= '0' & tsr(7 downto 1); --从低位到高位进行移位输出至串行输出端dout
---dout <= tsr(0) ;
---parity <= parity xor tsr(0) ; --奇偶校验
---elsif std_logic_vector(length_no) = “1011” then
---dout <= parity ; 校验位输出
---elsif std_logic_vector(length_no) = “1100” then
---dout <= '1' ; --停止位输出
---tre <= '1' ; --发送完毕标志置“1”
---end if ;
---发送器仿真波形如图4所示。


2 UART接收器
---串行数据帧和接收时钟是异步的,发送来的数据由逻辑1变为逻辑0可以视为一个数据帧的开始。接收器先要捕捉起始位,确定rxd输入由1到0,逻辑0要8个CLK16时钟周期,才是正常的起始位,然后在每隔16个CLK16时钟周期采样接收数据,移位输入接收移位寄存器rsr,最后输出数据dout。还要输出一个数据接收标志信号标志数据接收完。
---接收器的端口信号如图5所示。
 ---实现的部分VHDL程序如下。
---elsif clk1x'event and clk1x = '1' then
---if std_logic_vector(length_no) >= “0001” and std_logic_vector(length_no) <= “1001” then
-----数据帧数据由接收串行数据端移位入接收移位寄存器
---rsr(0) <= rxda ;
---rsr(7 downto 1) <= rsr(6 downto 0) ;
---parity <= parity xor rsr(7) ;
---elsif std_logic_vector(length_no) = “1010” then
---rbr <= rsr ; --接收移位寄存器数据进入接收缓冲器
---......
---end if ;
---接收器仿真波形如图6所示。

3 波特率发生器
---UART的接收和发送是按照相同的波特率进行收发的。波特率发生器产生的时钟频率不是波特率时钟频率,而是波特率时钟频率的16倍,目的是为在接收时进行精确地采样,以提出异步的串行数据。
---根据给定的晶振时钟和要求的波特率算出波特率分频数。
---波特率发生器仿真波形如图7所示。

三 小结
---通过波特率发生器、发送器和接收器模块的设计与仿真,能较容易地实现通用异步收发器总模块,对于收发的数据帧和发生的波特率时钟频率能较灵活地改变,而且硬件实现不需要很多资源,尤其能较灵活地嵌入到FPGA/CPLD的开发中。在EDA技术平台上进行设计、仿真与实现具有较好的优越性。



相关信息
发表评论
打印本页 关闭本页
赛普拉斯推出高精度激光导航传感器CYONS1001G
    赛普拉斯半导体公司(Cypress)日前推出了一款高精度、高性能的激光导航传感器,作为其OvationONS激光导航传感器系列的一部分。CYONS1001G采用正在专利申请过程中的OptiCheck技术,不但具有无与伦比的速度和精度,而且功耗低。该产品专门面向包括高性能游戏、精确图形设计以及高精度位置检测在内的应用。   这款OvationONS传感器采用简单的卡入式镜头设计,将检测器和激光器集成在...
>>详细内容
IRI 1001在重庆机场检测“非典”中的应用
  一、前言   “SARS”(非典型肺炎)病毒迅速蔓延全球,鉴于医学界还未研制出防治“非典”的有效药物,而发高烧又是患上“非典”的最显著症状。因此,检查体温便成了遏制疫情的第一道防线。传统的体温表往往是测量人的口腔、腋下,并且要采用接触,如果消毒不好,又势必变成了一种传播工具。而且要放置5-10分钟才能测量出来,为了快速、方便的检测旅客的体温而且又没有传染。非接触式的...
>>详细内容
MP3解码芯片VS1001K特点及应用
  引言对于诸如便携式MP3播放器等独立式MP3应用,其核心是一片MP3解码芯片。芬兰VLSI Solution公司于去年十月出品的一款MP3解码芯片--VS1001K,片内含立体声数模转换(DAC)和耳机驱动、支持PCM数据输入,具有体积小、功耗低、接口简单、价廉等特点,是MP3解码芯片中的佼佼者。内部结构及引脚功能在一片VS1001K内部嵌入了MP3解码核心VS_DSP及与外部微处理器接口电路:串行数据接口(SDI)和串行...
>>详细内容
NCP1001PG的技术参数
  产品型号:NCP1001PG最大工作电压(V):10开关可承受电压(V)/电流(A):700 / 1.0控制方式:PWM电压模式开关频率(KHz):100封装/温度(℃):DIP-8/-40~125描述:离线AC-AC开关调节器价格/1片(套):¥6.20
>>详细内容
基于MPC8250的数字硬盘录像机设计
  引 言 短短几年的发展,数字硬盘录像机(DVR)依托其强大的数字化、网络化功能,已逐步取代了传统模拟录像设备的主导地位,成为监控市场的主流。其应用已经从最初的金融领域发展到交通、楼宇、公安、监狱、广场、小区、机房、环境、考场等各种应用场所,只要是想对图像和声音进行监控的场所就会应用到DVR系统。 目前,数字硬盘录像机的产品技术趋势主要有两种:一种是基于PC机Windows平台的...
>>详细内容
基于MPC8250的嵌入式Linux系统开发技术
  引 言   我们开发了某型飞机外场维护系统的一个网络终端通讯平台,其硬件核心采用Motorola公司的嵌入式PowerPC处理器MPC8250,软件方面采用嵌入式linux作为操作系统,实现了飞机外场维护与飞机故障诊断系统的安全、快速通信。这个系统平台具有体积小、功耗低、性能高等特点。 MPC8250构架与系统硬件平台简介   PowerPC是Linux较早开始支持的处理器之一。PowerPC处理器芯片MPC825...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com