DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 740|回复: 0
打印 上一主题 下一主题

[GPS] 基于导航基带芯片的UART的设计和仿真

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-1 06:13:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

《电子技术应用》2013年第39卷第1期
通用异步收发器UART(Universal Asynchronous Receiver/
Transmitter) 是串行通信的重要组成部分, 其基本功能
是实现数据的串行化/反串行化和错误校验, 这也是所
有的UART 设计都能实现的基本功能, 但是其他各种功
能都兼顾的设计非常少。参考文献[1]设计了一个在MCU
中运用非常广泛的UART 接口, 其功能比较全面, 但是
波特率产生器采用整数分频的设计, 导致系统只有在特
定系统时钟、特定波特率的情况下误差才会比较小, 不
能满足高波特率和非标准波特率的要求; 参考文献[2]
设计的UART IP 基本功能良好, 但是不支持红外、自动
波特率检测等功能; 参考文献[3] 的设计只支持中断模
式, 不支持DMA 模式, 不能满足大量数据高速传输的需
求, 且中断总是打断CPU 的操作, 效率较低。本文提出
了一种多功能UART 模块的设计, 并利用Verilog HDL
语言进行实现。本设计能满足多模导航基带芯片中的不
同需求( 如相关器数据的传输等), 同时降低误差, 保证
卫星数据的正确性。
1 UART 电路主要模块设计
本设计采用标准的UART 传输协议, 字符帧由起始
位、数据位、奇偶校验位和停止位四部分组成[4]。UART
电路包括UART 总控模块UART_CTRL、波特率产生器
UART_BFG、数据发送模块TRANSMITTER、数据接收模
块RECEIVER 和FIFO 模块, 其总体结构图如图1 所示。
1.1 接收模块
串行数据帧和接收数据时钟是异步的, 由逻辑1 跳
变为逻辑0 可视为一个数据帧的开始, 所以接收器首先
需要判断起始位, 常用的方法有三倍速采样法和起始位
中断捕捉定时采样法。据经验可知, 数据的中间采样值
可靠性较高, 可以采用中间时刻采样法[2], 并且, 接收和
发送单元的数据采样率为波特率的16 倍, 可降低由于
时钟不匹配引起的误采样。接收器采用状态机[2] 实现,
状态机的描述如下:
基于导航基带芯片的UART 的设计和仿真
胡月1,冯华星2,李晓江2,叶甜春1
(1.中国科学院微电子研究所,北京100029;
2.杭州中科微电子有限公司,浙江杭州310053)
摘要: 设计了一款带自动波特率检测且误差较小的UART 模块, 旨在获得良好的通信功能。该
模块支持全双工的串行数据传输和红外通信功能,且支持DMA 模式以减少CPU 的占用时间。UART
的发送和接收通道各有一个FIFO 模块。最后,利用Verilog 语言的硬件实现方法在FPGA 平台上进行
了验证。
关键词: Verilog;FPGA;波特率产生器;状态机
中图分类号: TN47 文献标识码: A 文章编号: 0258-7998(2013)01-0037-03
Design and simulation of
UART module based on baseband CMOS chip of navigation
Hu Yue1,Feng Huaxing2,Li Xiaojiang2,Ye Tianchun1
(1.Institute of Microelectronics of Chinese Academy of Sciences, Beijing 100029 ,China ;
2.Hangzhou Zhongke Microelectronics Co. ,Ltd. ,Hangzhou 310053 ,China)
Abstract : This paper focuses on the design of UART with auto baud rate deceting function and minimal lost signal to get a
good transmission. It supports full duplex communication in serial link and ifra -red communcation.In addition,DMA mode can be
used to reduce elapsed time of CPU.Each UART channel contains two FIFOs for receiving and transmiting. At last ,this paper presents
the hardware implementation using verilog HDL,and verification on FPGA platform.
Key words : Verilog ;FPGA;baud-rate generator ;finite state machine
集成电路应用Application of Integrated Circuits
37
欢迎网上投稿[img]www.chinaaet.com]www.chinaaet.com 《电子技术应用》2013年第39卷第1期
表1 设置波特率的误差计算
序号 波特率/(Kb/s)
小数分频( 时钟为
19.2 MHz)
整数分频( 时钟为
19.2 MHz)
实际误差/%
1
2
3
4
5
6
7
2.4
9.6
19.2
57.6
115.2
128
256
2.4
9.6
19.2
57.609
114.970
128
256
0
0
0
0.15
0.19
0
0
2.4
9.6
19.2
60.0
120.0
133.333
240.0
0
0
0
4.17
4.17
4.16
6.2
实际
(1)RX_IDLE: 当UART 接收器复位时,FSM 处于这一
状态。在该状态中, 状态机一直等待RXD 电平跳变, 即
出现下降沿。检测到起始位后, 进入RX_START 状态。
(2)RX_START: 在该状态下, 在采样时钟的上升沿对
URXD 低电平进行计数。当计数为8(即确保在起始位的
中间点) 时, 转到RX_DATA 状态; 如果逻辑零的个数少
于8, 则认为是毛刺, 跳回RX_IDLE 状态。
(3)RX_DATA: 在该状态下, 每隔16 个采样时钟采样
1 bit 串行数据, 接收8 bit 异步数据并进行串/并转换。
同样是对采样时钟的上升沿进行计数, 当计数值为16
时进行数据采样。如果起始位为16 位, 则可以保证数据
位都是在中点处被采样, 同时进行串/并转换。当探测已
经接收到相应位的数据后, 进入奇偶校验状态。
(4)RX_PARITY: 该状态的主要功能是奇偶校验, 通
过对实际接收到的数据的奇偶性与发送过来的奇偶校
验位进行比较, 判断奇偶校验错误状态。
(5)RX_STOP : 对停止位进行采样, 并且判断停止位
是否为1。若停止位不正确, 则帧错状态位置1。
将接收到的数据和错误状态数据一起写入到接收
FIFO 中。接收到错误的数据后不马上产生错误中断, 一
旦数据被读出, 此时错误状态也一起被读出, 立即产生
错误中断。
1.2 发送模块
发送器实现的功能是将输入的8 bit 并行数据变成
串行数据, 同时在数据位头部加入起始位, 在数据位尾
部加奇偶校验位和停止位。发送模块的设计比较简单,
其状态机与接收模块相对应, 在此不再赘述。
1.3 波特率产生模块
波特率发生器一般采用分频器实现, 传统的采用整
数分频器实现的误差在某些系统时钟下超出了可控范
围, 如在参考时钟为16.37 MHz 、波特率为460 Kb/s 的情
况下, 误差达到了11.2%, 会导致数据传输的错误。因
此, 本设计采用小数分频器实现相对准确的波特率。另
外, 在收发的过程中, 可以改变波特率寄存器的值, 但实
际波特率的改变发生在当前帧传输完成之后。波特率产
生模块的电路结构图如图2 所示。
小数分频的实现方法有很多, 但其基本原理是一样
的, 即在若干个分频周期中采取某种方法使某几个周期
多计或少计一个数, 从而在整个分频周期内总体平均分
频数为小数分频[ 5]。
通过采用小数分频, 大大降低了实际波特率与要求
波特率之间的误差。在正常情况下, 误差不应超过2%,
如果超过了, 则需要相应地提高系统时钟来降低误差。
表1 列出了19.2 MHz 情况下的整数分频和小数分频波
特率误差对应表, 可以看到采用小数分频的波特率误差
明显较小。
在本设计中, 发送器、接收器和波特率产生模块是
主要模块。FIFO ( 先进先出) 模块是数字电路设计中比较
常用的模块, 本文复用了通用的FIFO 模块, 在文中就不
再赘述。UART 的控制模块主要负责对寄存器的相关操
作, 通过APB 总线实现, 其电路设计比较简单, 也不再
赘述。
2 UART 模块的其他功能
2.1 自动波特率检测
UART 接收通道在接收数据之前, 如果发送端的波
特率不清楚, 可进行自动波特率检测。实现方法是: 发送
误差/%
集成电路应用Application of Integrated Circuits
38
《电子技术应用》2013年第39卷第1期
端间隔发送检测字, 间隔时间为传输一帧所需的时间。
接收方UART 根据start 位来确定是否有数据在传输, 当
其检测到下降沿时就进入RX_START 的状态中, 在波特
率不明确的情况下, 并不产生采样时钟, 用PCLK 进行
采样计数。由于start 位为1 bit , 根据计数值可知这1 bit
所占用的时间。如果接收数据完成后, 接收到的数据是
约定值, 则证明波特率检测成功, 可以将检测到的值存
储于寄存器中。自动波特率检测原理公式如下:
1/baudrate=count×(1/PCLK) (1)
根据式(1) 可得发送端的波特率。实现自动波特率检
测无需专门的模块设计, 在接收器模块内就可以实现。
2.2 自检测模式
Loopback ( 自检测) 模式是UART 内部的一种自测功
能。当UART 出现问题时可以先自测, 将控制寄存器中
Loopback 位使能,UART 可以将内部的发送(TXD) 和接
收(RXD) 连接在一起, 确定内部的数据通路没有问题。
2.3 红外传输功能
本设计的UART 支持IrDA 1.0 协议, 所以使用红外
时最高波特率为115.2 Kb/s 。通过寄存器的红外控制位
选择红外使能,可以实现红外脉冲。IrDA 数据通路如图3
所示[ 1]。
2.4 DMA 模式
本设计UART 不仅支持查询、中断模式, 还支持
DMA 模式以提高连续传输的能力, 能够高效地传输基
带芯片相关器中的大量数据。CPU 除了在开始和结束时
处理中断外, 在传输过程中也可以进行其他工作。
3 仿真验证和综合结果
3.1 仿真验证
本文采用Altera 公司EP3SL150F1152 的FPGA 芯片
进行实测, 使用VCS 仿真工具, 并利用VERA 语言和
Verification IP 进行验证。仿真结果如图4 、图5 所示。
图4 是波特率自动检测的仿真波形。002 号波形是
未知波特率的接收端波特率产生器的分频值, 在未知的
情况下为0 ;005 号波形是发送端波特率产生器的分频
值, 为567H。从002 号波形的变化可以看到, 发送端发
送检测字41H, 接收端在接收完一个检测字41H 后, 可
计算出波特率分频值为567H。001 号波形是接收端的接
收移位寄存器, 将串行数据转化为并行数据, 接收完成
后得到41H, 也证明了数据的正确传输。这种波特率检
测的方法迅速准确, 一般情况下发一次检测字就能检测
出发送端的波特率。
图5 是数据红外传输的仿真波形。编码模块将待发
送的001 号波形编码成符合红外协议的002 号波形发
送出去, 接收端接收到005 号波形要经过译码模块译码
成006 号波形输出给接收器。由图中可以看到, 发送寄
存器发送了3 个值2cH、78H、65H, 在经过编码、译码模
块后, 接收器能够接收到正确的值。008 号波形中高电
平脉冲表示一个数据接收成功;007 号波形接收移位寄
存器中的数据正是发送端发送的3 个值, 证明数据能够
正确传输。本设计支持协议中5 bit 、6 bit 、7 bit 、8 bit 数
据的传输, 图5 中采用的是6 bit 数据位。
3.2 综合结果
UART 接口包括UART 接口模块( 接收和发送模块)、
两个FIFO 模块( 深度为32 、宽度为8) 、UART 波特率产
生模块和UART 控制模块, 在0.18 μm CMOS 的工艺下
用Synopsys 的Design Compiler 对模块进行综合, 将
UART 接口的输入时钟PCLK 设置为100 MHz , 模块总面
积为19 620.7 μm2, 约合1962 逻辑门、7 848 个晶体管。
本文提出了一个功能全面的UART IP 核的设计, 并
采用Verilog HDL 语言实现[6]。在与PC 机的长时间串口通
信实验中能够正确进行传输, 在不同的波特率设置下都
能正确工作。同时, 用示波器观测传输波形可知, 波特率
误差小于1%。设计完成后, 在VERA 平台上进行了仿真
验证,最后下载到FPGA 平台上实现,与PC 的串口相连,
采用串口大师软件进行实测, 其在全双工模式下也能正
常工作, 实测的结果显示其性能和功能都能满足要求。
参考文献
[1] Samsung.S3C2410A:user manual revision 1.0[Z].2004.
[2] 赵海登,刘晓文,胡景军,等.基于FPGA 的UART IP 核的
设计实现[J]. 通信技术,2009 ,5(42) :177-178.
[3] 张松, 董玲, 于宗光, 等. 一种适合于SoC 集成的UART 核
(下转第46 页)
集成电路应用Application of Integrated Circuits
39
欢迎网上投稿[img]www.chinaaet.com]www.chinaaet.com 《电子技术应用》2013年第39卷第1期
( 上接第39 页)
的设计实现[J].微电子学与计算机,2005 ,22(9) :12.
[4] Wang Yongcheng ,Song Kefei.A new approach to relize
UART[C].International Conference on Electronic & Mechanical
Engineering and Information Technology ,2011 :2751.
[5] 周殿凤, 周素成, 王俊华. 基于FPGA 的任意输注分频器
的设计[J]. 信息化研究,2010 ,36(2) :59-60.
[6] 王金明.数字系统设计与Verilog HDL 第二版[M]. 北京:
电子工业出版社,2005.
( 收稿日期:2012-09-26)
作者简介:
胡月, 女,1988 年生, 硕士研究生, 主要研究方向: 数字
集成电路。
冯华星, 男,1981 年生, 硕士研究生, 主要研究方向: 数
字集成电路设计及验证。
李晓江, 男,1972 年生, 硕士生导师, 主要研究方向: 专
用集成电路设计和应用。
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
( 上接第42 页)
and Systems ,2006 ,53(3) :578-593.
[4] Deng Lei ,Xie Xiaodong ,Gao Wen.A real-time full architecture
for AVS motion estimation[J].IEEE Transactions on
Consumer Electronics ,2007 ,53(4) :1744-1751.
[5] Cao Wei ,Hou Hui ,Tong Jiarong ,et al.A high-performance
reconfigurable VLSI architecture for VBSME in H.264[J].
IEEE Transactions on Consumer Electronics ,2008 ,53(4) :
1338-1345.
( 收稿日期:2012-08-28)
作者简介:
吴燕秀, 女,1987 年生, 硕士研究生, 主要研究方向: 视
频图像处理和数字集成电路设计。
王法翔, 男,1978 年生, 硕士, 主要研究方向: 大规模/ 超
大规模数字集成电路设计、数字图像处理和SoC 系统设计。
参考文献
[1] 张美仙,王红亮,于海飞.基于DDS 芯片的信号源设计[J].
仪器仪表与传感器,2010(9) :54-56.
[2] 游丽萍, 黄建国, 李力. 基于FPGA 和AD9951 的可编程
信号源[J].仪表技术与传感器,2008(4) :62-64.
[3] 王艳林, 李东, 刘桂礼.相位差可调的双通道信号发生器
的设计[J]. 电子技术应用,2004 ,30(8) :40-42.
[4] 刘抒珍, 童子权, 任丽军, 等.DDS 波形合成技术中低通
椭圆滤波器的设计[J].哈尔滨理工大学学报,2004,9(5):
22-24.
( 收稿日期:2012-05-25)
作者简介:
刘春梅, 女,1977 年生, 硕士, 讲师, 主要研究方向: 测
控技术。
邹传云, 男,1960 年生, 博士, 教授, 主要研究方向: 无
线通信。
曹文, 男,1974 年生, 副教授, 主要研究方向: 电子电路
设计。
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
集成电路应用Application of Integrated Circuits
""""""""""""""""""""""""""""""""""""""""""""""#"""""""""""""""""""""""""""#""""""""""""""""""""""""""""""""""""""""""""""#"""""""""""""""""""""""""""#
ADI 推出宽带差分放大器驱动高频ADC
全球领先的高性能信号处理解决方案和RF IC 供应商Analog Devices, Inc.(NYSE: ADI) 最近在北京推出了
一款针对高速12 bit~18 bit 模/ 数转换器的双通道差分放大器ADL5566。这款放大器的3 dB 带宽为4.5 GHz , 针
对宽带宽、低失真和噪声性能进行了优化, 实现了前所未有的1 000 MHz 时极低失真、噪声和IP3/IP2 性能。此新
款放大器非常适合对高线性度和低噪声要求至关重要的应用,包括无线基础设施设备中的中频采样接收机、工
业仪器仪表和防务电子设备。
ADL5566 差分放大器支持以下频率的详细技术要求:70 MHz、100 MHz、140 MHz、250 MHz、500 MHz 及1 000 MHz。
因此, 该器件可以简化设计过程, 提供高度灵活的解决方案, 从而缩短产品上市时间, 降低材料成本, 减少电
路板空间。该放大器具有同类最佳的高频失真和噪声性能, 使得系统设计师能够不断扩增高性能接收机设计
的带宽和动态范围。此外,ADL5566 差分放大器能够驱动同类最佳的高速转换器, 包括ADI 公司的新款16 位
250 MS/s AD9467 模/ 数转换器, 且对整体系统性能影响甚微或毫无影响。
ADL5566 差分放大器的主要特性:
· 业界最佳HD2 和HD3 性能;
· 高截点功率线性度:200 MHz 时OIP3/OIP2 分别为46 dBm/82.6 dBm( 增益为16 dB) ;
· 二阶/ 三阶失真(2 Vp-p 驱动200 Ω 负载) :200 MHz 时分别为-94.5 dBc/-87.2 dBc ( 增益为16 dB) ;
· RTI 噪声:1.3 nV/√HZ( 增益为16 dB) ;
· 支持单端和差分输入应用;
· 功耗:3.3 V 时每通道70 mA,5 V 时每通道80 mA;
· 电源电压范围:2.8 V~5.2 V( 具有通道独立使能功能) 。(ADI 公司供稿)
基于导航基带芯片的UART的设计和仿真.pdf (717.78 KB, 下载次数: 0)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-5-11 17:46 , 耗时 0.090983 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表