好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于FPGA的RS232异步串行口 IP核设计.docx

5页
  • 卖家[上传人]:ss****gk
  • 文档编号:234313494
  • 上传时间:2022-01-04
  • 文档格式:DOCX
  • 文档大小:115.51KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 基于FPGA的RS232异步串行口 IP核设计1引言数据采集系统常需要进行异步川行数据传输目前广泛使用的RS232异步出行接口,如8250、 NS16450等专用集成器件,虽然使用简单,却占用电路板面积、布线复杂等缺点片上系统 SoC(System on Chip)是以嵌入式系统为核心,以IP复用技术为基础,集软、硬件于一体的 设计方法使用IP复用技术,将UART集成到FPGA器件上,可增加系统的可靠性,缩小PCB 板而积;其次山于1P核的特点,使用1P核可使整个系统更加灵活,还可根据需要实现功能 升级、扩充和裁减这里采用VHDL语言编写UART模块,将其集成到FPGA ±,与器件英他 功能模块构成片上系统SoC2异步串行口模块设计与实现2. 1 UART 结构图1为完整的UART接口,包括山发送锁存器、发送移位寄存器和逻辑控制纽成的发送模块 (txmit),以及山接收锁存器、接收移位寄存器和逻辑控制纽成的接收模块(rxcver) o发送 模块和接收模块除共用复位信号、吋钟信号和并行数据线外,各门分别有输入输出和逻辑控 制单元双向数据总线tx图I UART接口结构2. 2 UART的帧格式图2为UART的帧格式。

      该帧格式包括线路空闲状态(idie,高电平)、起始位(start bit, 低电平)、5、8位数据位(databit) >校验位(parity bit,可选)和停止位(stop bit,位数 可为1、1. 5、2位)该格式是由起始位和停止位实现字符同步UART内部一般有配置寄 存器,町配證数据位数(5〜8位)、是否有校验位和校验的类型、停止位的位数等设置数 据 位图2 UART的帧格式「 |o/l |0/1 |0/1|0/1|0/1|0/】| 0/1 |0/1 I I起始位2. 3波特率时钟的控制山于数字量接II、工作模式选择、实时监测接口的波特率都不同,UART核包含一•个可编程 的波特率发生器,可灵活配置波特率波特率发生器给发送模块和接收模块捉供发送数据和 接收数据的基准时钟,波特率发生器产生的时钟mclkxlG是串行数据波特率的16倍它对 系统时钟n分频,n二系统时钟/波特率X 16,针対不同波特率设定柑应数值口J得到所期望的 波特率吋钟2. 4发送模块设计发送模块分为空闲、载入数据、移位等3种模式如图3所示当并行8位数据从总线写入 发送模块后,发送模块将并行数据装入锁存器thr'l',然后在移位寄存器tsr中将数据移位, 产生完整的发送序列(包括起始位,数据位,奇偶校验位和停止位),以柑应波特率从tx发 送。

      发送模块的输入吋钟mclkxl6是串行数据波特率的16倍,模块内部将其16分频后得到 波特率时钟txclko复位空闲模数据載入模式数据写入图3发送状态转换发送模块部分V11DL程序如下:if std_logic_vector (length_no) = "0001" thentsr <= tbr ; —发送缓冲器ibr数据到发送移位奇存器tsrtre<= 404 ;—发送移位寄存器空标志置“0”elsif st(l_logic_vector( length_no) = "0010° thendoul <= © ; 一-发送起始位信号“0"elsifstd_logic_vector( length_.no )>=<40011 "andstdJogic_vector( length_no )<= T 010" thentsr <= '0' & tsr(7 downto 1); 一从低位到高位进 行移位输出至串行输出端(lout(lout <= tsr(O);parity <= parity xor tsr(O);—奇偶校验elsif st(l_)ogic_vector( k»nglh_no) •= **1011 then-clout <= parity ;—校验位输出-elsif aid」ogic^vectorC lengthMno) = "1100" then-clout <= ' 1'; --停止位输出-ire <= * P ;—发送完毕标志置“1“-end if;2. 5接收模块设计接收模块也分为空闲、检测起始位、移位等3种模式。

      如图4所示首先捕捉起始位,在 mclkxlG时钟下不断检测从rx端输入数据的起始位,当检测到起始位后,接收模块山空闲 模式转换为移位模式,并且16分频mclkxlG产生rxclk波特率时钟此时rxclk时钟的上 升沿位于串行数据每一位的中间,这样接下来的数据在每一位的中点采样然后山rxclk 控制在上升沿将数据位写入移位寄存器tgt的rsr[7]位,并且rsr右移1位,依次将8位 数据全部写入rst,并U停止产生rxclk波特率吋钟判断奇偶校验、帧结构和溢出标志止 确后,rst寄存器中的数据写入1、吐数据锁存寄存器中,战后山8位数据总线输出转换完成 的数据复图4接收状态转换 接收模块部分VHDL程序如下:elsif rxclk event and rxclk = e 11 thenif std」ogic_veclor (length_no) >= “OOO1" and std_log・ic_vector(length_no )<= "1001° then—数据帧数据由接收串行數据端移位入接收移位等存器rsr(O) <= rxda ;-rsr(7 downto 1) <= rsr(6 down to 0);-parity <= parity xor rsr(7);-elsif std_logic_vector(length_no) = "1010" then-rbr <= rsr ;—接收移位疥存器数据进入接收缓冲器end if;3硬件电路设计UART IP核设计完成后需耍嵌入FPGA系统中才能运行,该系统选用Xilinx公司Spartan-IIEXC2S50型FPGA和与其配套的EPROM XC18V01组成,如图5所示。

      该系统已实现设计要求的 功能,实现IP核的验证VCC.3Y311:0N66:VC沪V4141516ElmXC1Ou I s K 1 2 4 3 NCNCTDTMTCNCNCNCNC0IKU8VOV7o A K E E F KJE(1 T L c o c w NJ { O-DAC I2匸ToF7VCC.3V3A夕 6 7-8-5-6-7-00^X VA-RI—1•1121/03 1/04 4/05 4/06 4/07 4/010 4/011 1/01239F"68693214?34【/O39CCLKDONEI/O (TNTT)FWTDI TMSTCKTOO图5 FPGA系统连接电路4结果分析程序经仿真验证后,须综合生成IP核并嵌人FPGA中使用Xilinx公司的Xilinx ISE IM 综合 UART 模块,FPGA 选用 X订inx 公司 Spartan-IIE XC2S50,系统时钟 40 MHz经 Xil-inx ISE后,资源使用结果如表1所示表明使用少量FPGA的Slice和LUT单元就可生成UART 核,节省资源UART核可灵活分成接收和发送两部分,町根据需要选择使用节省系统资源; 一些控制标志字也可根据需要门行删减和扩充。

      最后将集成有UART核的FPGA数据采集系统 与测试台进行异步串行通信实验,检测通信数据表明使用UART核传输数据稳定可靠表1资源便用情况参数数如个占用比例Slices108/76812%Slice Flip Flops90/1 5366%input LUTs195/1 53613%bonded lOBs25/10224%GCLKs1/425%5结束语数据采集系统经讯采用UART异步串行通信接口作为系统的短距离小行通信相对于传统的 UART器件來说,把具有UART功能的TP核集成在FPGA中的更有利于提高数据采集系统的可 靠性和稳定性,减小电路板而积该系统设计的UART IP核通过仿真验证,经综合、编译、 嵌入FPGA,成功实现系统通信。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.