基于FPGA的多串口通信电路设计_第1页
基于FPGA的多串口通信电路设计_第2页
基于FPGA的多串口通信电路设计_第3页
基于FPGA的多串口通信电路设计_第4页
基于FPGA的多串口通信电路设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于基于 FPGAFPGA 的多串口通信电路设计的多串口通信电路设计 姓名 姓名 周保朋周保朋 专业 专业 集成电路设计与集成系统集成电路设计与集成系统 指导老师 王祖强指导老师 王祖强 目录目录 摘摘 要要摘 要 随着计算机系统和微机网络的快速发展 串行通信在数据通信及控制系统中得到广泛的应 用 各种新型通用异步串行接收 发送器 UART Universal Asynchronous Receiver Transmitter 它们较好的满足了时下的需求 并且能够实现比较全面的串行通信功能 但是常用 UART 芯片比较复杂且移植性差 而且在实际应用过程中 我们只需要其部分的功 能 因而造成一定的资源浪费 本设计提出一种采用可编程器件 FPGA 实现 UART 的方法 实现了对 UART 的模块化设计方法 最后将 UART 的核心功能集成到 FPGA 上 使整体设计 紧凑 小巧 实现的 UART 功能 本说明书在介绍串行通信 可编程 ASIC 和 VHDL 语言之后 着重讨论了如何使用 FPGA 现多 串口模块 提出了一种专用异步串行通信电路的 FPGA 实现方法 具体描述了发送 接收 波特率发生模块及接口模块的设计 详细阐述了各个模块的流程 结构与设计细节 并且 给出了各个模块及整个系统的仿真结果及分析 该电路根据实际应用中串口复用的要求 扩展四路串口 形成一个多串口模块 这样便充分利用 FPGA 的资源 提高了设计的灵活性 和稳定性 简化了电路 缩小了体积 提高了稳定性 具有更大的灵活性 关键词 可编程专用集成电路 串行通信 通用异步串口 系统级芯片 IP 核 Abstract Following the rapid develop of the computer system and network the serial communication is used widely in the data transmission and the control system Many kind of new type asynchronous transmitter receiver such as PC16550 could satisfy a present need and can carry out a more overall function of serial communication but when it came into the practice But in common the UART chips is very complicated and its transplantation is bad and also we just need the part function of them so this can be seem to be a resource waste his design give a new method that using programmable logic device FPGA to realize UART it carries out the model design for the UART and Integrate the Core function of UART to the FPGA make the whole design very well knit little and the function is so stable and dependable This thesis emphasize to discuss how to use FPGA to emulate several serial port module after the introducing of serial communicating FPGA and the VHDL language And a new realizing method which carry out by FPGA is given out for the special use of asynchronous serial data transmission this thesis has descriptied the details design of transmission module receive module the origination of baud rate module and the interface module such as every model s process structure and the design details and give each mold piece and the whole system imitate result and analysis according to the request of serial ports multiplexing in practice we expand four serial port to get a module of serial ports All those make good use of a FPGA resources raise the vivid and stability of design and simplify electric circuit reduce physical volume and improve a stability and have more flexibility Key words FPGA UART SOC serial communication IP cores 随着微处理器 单片机 DSP 等 的性能价格比不断提高 数据处理能力不 断加强 其应用领域日益增多 当在实时数据采集及数字信号处理等应用中 微处理器往往需要使用串口和多个外设进行数据交换 如何实现其多串口通信 成为系统设计的关键 本设计的主要内容是在对当前应用的多串口通信方法进 行对比和研究 提出多串口通信电路设计方案 关键词 FPGA 串口通信 UART RS232 AbstractAbstract 绪论绪论 1 FPGA FPGA Field Programmable Gate Array 即现场可编程门阵列 它是在 PAL GAL CPLD 等可编程器件的基础上进一步发展的产物 它是作为专用集成电路 ASIC 领域中的一种半定制电路而出现的 既解决了定制电路的不足 又克服了原有可 编程器件门电路数有限的缺点 目前以硬件描述语言 Verilog 或 VHDL 所完成的 电路设计 可以经过简单的综合 与布局 快速的烧录 至 FPGA 上进行测试 是现代 IC 设计验证的技术主 流 这些可 编辑元件可以被用 来实现一些基本的逻辑 门电路 比如 AND OR XOR NOT 或者更复杂一些 的组合功能比如解码器或数学方 程式 在大多数的 FPGA 里面 这些可编辑 的元件里也包含记忆元件例如 触发器 Flip flop 或者其他更加完整的记忆块 系统设计师可以根据需要通过可编辑的连接把FPGA 内部的逻辑块连接起来 就 好像一个电路试验板被放在了一个芯片里 一个出厂后的成品FPGA 的逻辑块和连接 可以按照设计者而改变 所以FPGA 可以完成所需要的逻辑功能 FPGA 一般来说比 ASIC 专用集成芯片 的速度要慢 无法完成复杂的设计 而且 消耗更多的电能 但是他们也有很多的优点比如可以快速成品 可以被修改来改正程序 中的错误和更便宜的造价 厂商也可能会提供便宜的但是编辑能力差的FPGA 因为 这些芯片有比较差的可编辑能力 所以这些设计的开发是在普通的FPGA 上完成的 然后将设计转移到一个类似于ASIC 的芯片上 FPGA 采用了逻辑单元阵列 LCA Logic Cell Array 这样一个概念 内部包括可配置 逻辑模块 CLB Configurable Logic Block 输出输入模块 IOB Input Output Block 和内部连线 Interconnect 三个部分 FPGA 的基本特点主要有 1 采用 FPGA 设计 ASIC 电路 用户不需要投片生产 就能得到合用的芯片 2 FPGA 可做其它全定制或半定制 ASIC 电路的中试样片 3 FPGA 内部有丰富的触发器和 I O 引脚 4 FPGA 是 ASIC 电路中设计周期最短 开发费用最低 风险最小的器件之一 5 FPGA 采用高速 CHMOS 工艺 功耗低 可以与 CMOS TTL 电平兼容 可以说 FPGA 芯片是是小小批批量量系系统统提提高高系系统统集集成成度度 可可靠靠性性的的最最佳佳选选择择之之一一 FPGA 是由存放在片内 RAM 中的程序来设置其工作状态的 因此 工作时需要对片 内的 RAM 进行编程 用户可以根据不同的配置模式 采用不同的编程方式 加电时 FPGA 芯片将 EPROM 中数据读入片内编程 RAM 中 配置完成后 FPGA 进入工作状态 掉电后 FPGA 恢复成白片 内部逻辑关系消失 因此 F FP PG GA A 能能 够够反反复复使使用用 FPGA 的编程无须专用的 FPGA 编程器 只须用通用的 EPROM PROM 编程 器即可 当需要修改 FPGA 功能时 只需换一片 EPROM 即可 这样 同一片 FPGA 不 同的编程数据 可以产生不同的电路功能 因此 FPGA 的使用非常灵活 Altera 的 DE2 教育平台选用的 FPGA 是 CycloneII 系列 FPGA 中的 EP2C35F672C6 2 串口通信原理 串口通信的概念非常简单 串口按位 bit 发送和接收字节 尽管比按字节 byte 的并行通信慢 但是串口可以在使用一根线发送数据的同时用另一根线接收数据 它 很简单并且能够实现远距离通信 比如IEEE488 定义并行通行状态时 规定设备线 总长不得超过 20 米 并且任意两个设备间的长度不得超过2 米 而对于串口而言 长度可达 1200 米 典型地 串口用于 ASCII 码字符的传输 通信使用 3 根线完成 1 地线 2 发送 3 接收 由于串口通信是异步的 端口能够在一根线上 发送数据同时在另一根线上接收数据 其他线用于握手 但是不是必须的 串口通信最 重要的参数是波特率 数据位 停止位和奇偶校验 对于两个进行通行的端口 这些参 数必须匹配 a 波特率 这是一个衡量通信速度的参数 它表示每秒钟传送的bit 的个数 例如 300 波特表示每秒钟发送 300 个 bit 当我们提到时钟周期时 我们就是指波特 率例如如果协议需要 4800 波特率 那么时钟是 4800Hz 这意味着串口通信在数据 线上的采样率为 4800Hz 通常电话线的波特率为 14400 28800 和 36600 波特率 可以远远大于这些值 但是波特率和距离成反比 高波特率常常用于放置的很近的仪器 间的通信 典型的例子就是 GPIB 设备的通信 b 数据位 这是衡量通信中实际数据位的参数 当计算机发送一个信息包 实际 的数据不会是 8 位的 标准的值是 5 7 和 8 位 如何设置取决于你想传送的信息 比如 标准的 ASCII 码是 0 127 7 位 扩展的 ASCII 码是 0 255 8 位 如 果数据使用简单的文本 标准 ASCII 码 那么每个数据包使用 7 位数据 每个包 是指一个字节 包括开始 停止位 数据位和奇偶校验位 由于实际数据位取决于通信 协议的选取 术语 包 指任何通信的情况 c 停止位 用于表示单个包的最后一位 典型的值为1 1 5 和 2 位 由于数据 是在传输线上定时的 并且每一个设备有其自己的时钟 很可能在通信中两台设备间出 现了小小的不同步 因此停止位不仅仅是表示传输的结束 并且提供计算机校正时钟同 步的机会 适用于停止位的位数越多 不同时钟同步的容忍程度越大 但是数据传输率 同时也越慢 d 奇偶校验位 在串口通信中一种简单的检错方式 有四种检错方式 偶 奇 高和低 当然没有校验位也是可以的 对于偶和奇校验的情况 串口会设置校验位 数 据位后面的一位 用一个值确保传输的数据有偶个或者奇个逻辑高位 例如 如果数 据是 011 那么对于偶校验 校验位为0 保证逻辑高的位数是偶数个 如果是奇校 验 校验位位 1 这样就有 3 个逻辑高位 高位和低位不真正的检查数据 简单置位 逻辑高或者逻辑低校验 这样使得接收设备能够知道一个位的状态 有机会判断是否有 噪声干扰了通信或者是否传输和接收数据是否不同步 Uart 模块的设计 1 外围电路 电平转换电路 EIA RS 232C 对电器特性 逻辑电平和各种信号线功能都作了规定 在 TxD 和 RxD 上 逻辑 1 MARK 3V 15V 逻辑 0 SPACE 3 15V 在 RTS CTS DSR DTR 和 DCD 等控制线上 信号有效 接通 ON 状态 正电压 3V 15V 信号无效 断开 OFF 状态 负电压 3V 15V 以上规定说明了 RS 323C 标准对逻辑电平的定义 对于数据 信息码 逻辑 1 传号 的电平低于 3V 逻辑 0 空号 的电平高于 3V 对于控制信号 接通 状态 ON 即信号有效的电平高于 3V 断开状态 OFF 即信号无效的电平低于 3V 也就是当传输电平的绝对值大于3V 时 电路可以有效地检查出来 介于 3 3V 之间的电压无意义 低于 15V 或高于 15V 的电压也认为无意义 因此 实际工作时 应保证电平在 3 15 V 之间 EIA RS 232C 与 TTL 转换 EIA RS 232C 是用正负电压来表示逻辑状态 与 TTL 以高低电平表示逻辑状态的规定不同 因此 为了能够同计算机接口或终端的 TTL 器件连接 必须在 EIA RS 232C 与 TTL 电路之间进行电平和逻辑关系的变换 实现这种变换的方法可用分立元件 也可用集成电路芯片 目前较为广泛地使用集成电 路转换器件 如 MC1488 SN75150 芯片可完成 TTL 电平到 EIA 电平的转换 而 MC1489 SN75154 可实现 EIA 电平到 TTL 电平的转换 MAX232 芯片可完成 TTL EIA 双向电平转换 2 波特率发生模块 3 数据发送模块 4 数据接收模块 参考文献 clk rst rxd xmit cmd tbuf 7 0 bclk rec ready rbuf 7 0 txd xmit done UART inst 原理图 致谢 翻译 DQ PRE ENA CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR DQ PRE ENA CLR DQ PRE ENA CLR DQ PRE ENA CLR DQ PRE ENA CLR DQ PRE ENA CLR DQ PRE ENA CLR D ENA Q PRE CLR A 1 0 B 1 0 EQUAL A 1 0 B 1 0 EQUAL D ENA Q PRE CLR SEL DATAA DATAB OUT0 MUX21 A 4 0 B 4 0 EQUAL A 4 0 B 4 0 ADDER SEL DATAA DATAB OUT0 MUX21 SEL 3 0 DATA 15 0 OUT MUX SEL 3 0 DATA 15 0 OUT MUX SEL 3 0 DATA 15 0 OUT MUX SEL 3 0 DATA 15 0 OUT MUX A 3 0 B 3 0 ADDER SEL 3 0 DATA 15 0 OUT MUX SEL 3 0 DATA 15 0 OUT MUX SEL 3 0 DATA 15 0 OUT MUX SEL 3 0 DATA 15 0 OUT MUX SEL 3 0 DATA 15 0 OUT MUX SEL 3 0 DATA 15 0 OUT MUX SEL 3 0 DATA 15 0 OUT MUX SEL 3 0 DATA 15 0 OUT MUX A 3 0 B 3 0 ADDER SEL DATAA DATAB OUT0 MUX21 A 3 0 B 3 0 ADDER SEL DATAA DATAB OUT0 MUX21 SEL DATAA DATAB OUT0 MUX21 A 3 0 B 3 0 EQUAL SEL DATAA DATAB OUT0 MUX21 SEL DATAA DATAB OUT0 MUX21 baud clk 1 OUT0 baud clk OUT0 rbuf OUT0 rbuf 0 reg0 OUT0 rec ready 0 OUT0 Equal6 OUT rec ready reg0 OUT0 rbuf 7 reg0 OUT0 rbuf 6 reg0 OUT0 rbuf 5 reg0 OUT0 rbuf 4 reg0 OUT0 rbuf 3 reg0 OUT0 rbuf 2 reg0 OUT0 rbuf 1 reg0 OUT0 Mux4 OUT Equal10 OUT Mux13 OUT txd done OUT0 rxcnt16 OUT0 rxd cnt OUT0 rxd shift OUT0rxd shift OUT0 txcnt16 OUT0txcnt16 OUT0 txd cnt OUT0 txd shift OUT0 Equal3 OUT Equal4 OUT rxd sync 1 OUT0rxd sync OUT0 baud cnt OUT0 process2 0 OUT0 Equal9 OUT Equal8 OUT clk rst baud clk bclk rbuf 0 reg0 rbuf 7 0 rec ready reg0 rec ready rbuf 7 reg0 rbuf 6 reg0 rbuf 5 reg0 rbuf 4 reg0 rbuf 3 reg0 rbuf 2 reg0 rbuf 1 reg0 txd reg0 txd txd done xmit done rxcnt16 3 0 rxd cnt 3 0 rxd shift 7 0 txcnt16 3 0 txd cnt 3 0 txd shift 7 0 samples 0 rxd Equal3 2 h0 Equal4 2 h3 rxd sync Equal0 5 h19 Add0 5 h01 process3 0 xmit cmd txd cnt 3 0 4 h1 Mux0 1 h0 1 h0 Mux1 1 h0 1 h0 Mux2 1 h0 1 h1 Mux3 1 h0 1 h0 Add4 4 h1 Mux5 tbuf 7 0 Mux6 Mux7 Mux8 Mux9 Mux10 Mux11 Mux12 Add1 4 h1 rxcnt16 3 0 4 h0 process2 1 Add2 4 h1 rxd cnt 3 0 rxd cnt 7 4 4 h0 Equal7 4 h7 rxd cnt 15 12 rxd cnt 11 8 baud cnt 4 0 baud cnt 4 0 5 h00 D ENA Q PRE CLR INCLKOUTCLK CLKCTRL DATAA DATAB DATAC DATAD COMBOUT LOGIC CELL COMB E8F0 INCLKOUTCLK CLKCTRL DATAA DATAB DATAD COMBOUT LOGIC CELL COMB 4400 INCLKOUTCLK CLKCTRL D ENA Q PRE CLR D ENA SCLR SDATA SLOAD Q PRE CLR 1 D ENA Q PRE CLR D ENA Q PRE CLR D ENA SCLR SDATA SLOAD Q PRE CLR 1 D ENA SCLR SDATA SLOAD Q PRE CLR 1 D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA SCLR SDATA SLOAD Q PRE CLR 1 D ENA Q PRE CLR D ENA SCLR SDATA SLOAD Q PRE CLR 1 D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR clk clkctrl OUTCLK baud cnt 118 COMBOUT Add0 161 COMBOUT Equal1 52 COMBOUT rst clkctrl OUTCLK rbuf 0 156 COMBOUT Equal8 18 COMBOUT baud clk clkctrl OUTCLK rec ready 67 COMBOUT rec ready reg0 REGOUT rbuf 2 reg0feeder COMBOUT rbuf 1 reg0feeder COMBOUT Mux4 217 COMBOUT Equal10 21 COMBOUT rbuf 5 reg0feeder COMBOUT rbuf 6 reg0feeder COMBOUT txd done 48 COMBOUT txd done REGOUT rbuf 7 reg0feeder COMBOUT rxd cnt 2 409 COMBOUTrxd cnt 2 REGOUT rxd cnt 3 407 COMBOUTrxd cnt 3 REGOUT rxd cnt 1 410 COMBOUTrxd cnt 1 REGOUT rxd cnt 0 408 COMBOUTrxd cnt 0 REGOUT rxcnt16 194 COMBOUTrxcnt16 3 REGOUT rxcnt16 195 COMBOUTrxcnt16 2 REGOUT rxcnt16 197 COMBOUTrxcnt16 0 REGOUT rxcnt16 196 COMBOUTrxcnt16 1 REGOUT rxd shift 0 feeder COMBOUT rxd shift 0 121 COMBOUT txd cnt 3 704 COMBOUTtxd cnt 3 REGOUT rxd shift 1 feeder COMBOUTrxd shift 1 REGOUT rxd shift 2 REGOUT rxd shift 4 feeder COMBOUT rxd shift 7 122 COMBOUTrxd shift 7 REGOUT rxd shift 6 feeder COMBOUTrxd shift 6 REGOUT txd cnt 2 706 COMBOUTtxd cnt 2 REGOUT txd cnt 1 705 COMBOUTtxd cnt 1 REGOUT rxd shift 5 feeder COMBOUTrxd shift 5 REGOUT Mux12 63 COMBOUT txd shift 0 25

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论