基于fpga的串口设计_毕业设计(编辑修改稿)内容摘要:
电源电平转换芯片 ,使用 +5v 单电源供电。 40M时钟信号 EP1C12引脚 40MHZ J3 总结 第 11 页 (共 37 页) 图 7 MAX232 芯片 引脚介绍 第一部分是电荷泵电路。 由 6 脚和 4 只电容构成。 功能是产生 +12v 和 12v 两个电源,提供给 RS232 串口电平的需要。 第二部分是数据转换通道。 由 1 1 1 14 脚构成两个数据通道。 其中 13 脚( R1IN)、 12 脚( R1OUT)、 11 脚( T1IN)、 14 脚( T1OUT)为第一数据通道。 8 脚( R2IN)、 9 脚( R2OUT)、 10 脚( T2IN)、 7 脚( T2OUT)为第二数据通道。 TTL/CMOS 数据从 T1IN、 T2IN 输入转换成 RS232 数据从 T1OUT、 T2OUT送到电脑 DB9 插头; DB9 插头的 RS232 数据从 R1IN、 R2IN 输入转换成TTL/CMOS 数据后从 R1OUT、 R2OUT 输出。 第三部分是供电。 15 脚 GND、 16 脚 VCC( +5v)。 主要特点 符合所有的 RS232C 技术标准 只需要单一 +5V 电源供电 片载电荷泵具有升压、电压极性反转能力,能够产生 +10V 和 10V 电压V+、 V 功耗低,典型供电电流 5mA 内部集成 2 个 RS232C 驱动器 内部集成两个 RS232C 接收器 高集成度,片外最低只需 4 个电容即可工作。 RS232 RS232 接口是 1970 年由美国电子工业协会( EIA)联合贝尔系统、调制解调器厂家及计算机终 端生产厂家共同制定的用于串行通讯的标准。 它的全名是 “ 数据终端设备( DTE)和数据通讯设备( DCE)之间串行二进制数据交换接口技术标准 ”。 该标准规定采用一个 25 个脚的 DB25 连接器,对连接器的每个引脚的信号内容加以规定,基于 FPGA 的串口设计 第 12 页 (共 40 页) 还对各种信号的电平加以规定。 随着设备的不断改进,出现了代替 DB25 的 DB9 接口,现在都把 RS232 接口叫做 DB9。 RS232C 的接口信号 : RS232C 的功能特性定义了 25芯标准连接器中的 20根信号线,其中 2 条地线、 4 条数据线、 11 条控制线、 3 条定时信号线,剩下的 5 根线作备用或未定 义。 常用的只有 10 根,它们是: ( 1)联络控制信号线: 数据发送准备好( Data set readyDSR)—— 有效时( ON)状态,表明 MODEM处于可以使用的状态。 数据终端 准备好 (Data terminal readyDTR)—— 有效时( ON)状态,表明数据终端可以使用。 这两个信号有时连到电源上,一上电就立即有效。 这两个设备状态信号有效,只表示设 备本身可用,并不说明通信链路可以开始进行通信了,能否开始进行通信要由下面的控制信号决定。 请求发送 (Request to sendRTS)—— 用来表示 DTE 请求 DCE 发送数据,即当终端要发送数据时,使该信号有效( ON 状态),向 MODEM 请求发送。 它用来控制 MODEM 是否要进入发送状态。 允许发送( Clear to sendCTS) —— 用来表示 DCE 准备好接收 DTE 发来的数据,是对请求发送信号 RTS 的响应信号。 当 MODEM 已准备好接收终端传来的数据,并向前发送时,使该信号有效,通知终端开始沿发 送数据线 TxD 发送数据。 这对 RTS/CTS 请求应答联络信号是用于 半双工 MODEM 系统中发送方式和接收方式之间的切换。 在全双工系统中,因配置双向通道,故不需要 RTS/CTS联络信号,使其变高。 接收线信号检出 (Received Line detectionRLSD)—— 用来表示 DCE 已接通通信链路,告知 DTE 准备接收数据。 当本地的 MODEM 收到由通信链路另一端(远地)的 MODEM 送来的载波信号时,使 RLSD 信号有效,通知终端准备接收,并且由 MODEM 将接收下来的载波信号解调成数字两数据后,沿接收数据线 RxD送到终端。 此线也叫做数据载波检出 (Data Carrier dectectionDCD)线。 振铃指示 (RingingRI)—— 当 MODEM 收到交换台送来的振铃呼叫信号时,使该信号有效( ON 状态),通知终端,已被呼叫。 ( 2)数据发送与接收线: 发送数据 (Transmitted dataTxD)—— 通过 TxD 终端将串行数据发送到MODEM, (DTE→DCE)。 接收数据 (Received dataRxD)—— 通过 RxD 线终端接收从 MODEM 发来的串行数据, (DCE→DTE)。 ( 3)地线 : 总结 第 13 页 (共 37 页) GND、 —— 保护地和信号地,无方向。 上述控制信号线何时有效,何时无效的顺序表示了接口信号的传送过程。 例如,只有当 DSR 和 DTR 都处于有效( ON)状态时,才能在 DTE 和 DCE 之间进行传送操作。 若 DTE 要发送数据,则预先将 DTR 线置成有效 (ON)状态,等CTS 线上收到有效 (ON)状态的回答后,才能在 TxD 线上发送串 行数据。 这种顺序的规定对半双工的 通信线路 特别有用,因为半双工的通信才能确定 DCE 已由接收方向改为发送方向,这时线路才能开始发送。 2 个数据信号:发送 TXD;接收 RXD。 1 个信号地线: SG。 6 个控制信号: DSR 数传发送准备好, Data Set Ready。 DTR 数据终端准备好, Data Terminal Ready。 RTS DTE 请求 DCE 发送( Request To Send)。 CTS DCE 允许 DTE 发送( Clear To Send),该信号是对 RTS 信号的回答。 DCD 数据载波检测( Data Carrier Detection),当本地 DCE 设备( Modem)收到对方的 DCE 设备送来的载波信号时,使 DCD 有效,通知 DTE 准备接收, 并且由 DCE 将接收到的载波信号解调为 数字信号 , 经 RXD 线送给 DTE。 RI 振铃信号( Ringing),当 DCE 收到对方的 DCE 设备送来的振铃呼叫信号时,使该信号有效,通知 DTE 已被呼叫。 由于 RS232 接口标准出现较早,难免有不足之处,主要有以下四点: ( 1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与 TTL 电平不兼容故需使用电平转换电路方能与 TTL 电路连接。 ( 2)传输速率较低,在 异步传输时,波特率 ≤20Kbps。 ( 3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。 ( 4)传输距离有限,最大传输距离标准值为 50 英尺(实际 ≤15 米)。 RS232( DB9) 接口定义 图 8 接口说明 基于 FPGA 的串口设计 第 14 页 (共 40 页) 1 DCD 载波检测 2 RXD 接收数据 3 TXD 发送数据 4 DTR 数据终端准备好 5 SG 信号地 6 DSR 数据准备好 7 RTS 请求发送 8 CTS 允许发送 9 RI 振铃提示 系统硬件框图 图 9 系统硬件图 主要 组成电路分析 本系统设计目标 主要 包括 两个 部分: FPGA 模块 、 电平转换 模块。 FPGA AS 下载方式 JTAG 接口 MAX232 PC 终端 电源 时钟晶振 总结 第 15 页 (共 37 页) FPGA 模块 FPGA 模块主要由波特率产生 模块 、数据发送模块、数据接收模块三部分组成。 下图为 FPGA 的顶层原理图。 图 10 .顶层模块的电路图 波特率产生模块 : 波特率发生器实际上就是一个分频器。 可以根据给定的系统时钟(晶振时钟)和要求的波特率算出波特率分频因子,算出的波特率 分频器的分频数。 即 分频数 =系统时钟 / (16 波特率 ), 波特率分频 数 可以根据不同的应用需要更改。 题目要求 波特率为 9600bit/s, 由于 FPGA的 EP1C12核心板提供了高精度、高稳定性的40MHz时钟源。 波特率发生器模块图如下所示 图 11 波特率发生器模块图 基于 FPGA 的串口设计 第 16 页 (共 40 页) 波特率发生器的仿真结果 如图: Clk:时钟信号周期 Resetb:复位信号 Bclk:输出波特率时钟信号周期 图 12 波特率发生器的仿真波形 UART 接收器模块 : 由于串行数据帧和接收时钟是异步的,由逻辑 1 转为逻辑 0 可以被视为一个数 据帧的起始位。 然而,为了避免毛刺影响,能够得到正确的起始位信号,必须要求接收到的起始位在波特率时钟采样的过程中至少有一半都是属于逻辑 0 才可认定接收到的是起始位。 由于内部采样时钟 bclk 周期(由波特率发生器产生)是发送或接收波特率时钟频率的 16 倍,所以起始位需要至少 8 个连续 bclk 周期的逻辑0 被接收到,才认为起始位接收到,接着数据位和奇偶校验位将每隔 16 个 bclk 周期被采样一次(即每一个波特率时钟被采样一次)。 如果起始位的确是 16 个 bclk 周期长,那么接下来的数据将在每个位的中点处被采样。 R_START 状态:当 UART 接收器复位后,接收状态机将处于这一状态。 在此状态,状态机一直在等待 RXD 的电平跳转,从逻辑 1 变为逻辑 0,即起始位,这意味着新的一帧 UART 数据帧的开始,一旦起始位被确定,状态机将转入 R_CENTER 状态。 图 6 中的 RXD_SYNC 信号是 RXD 的同步信号,因为在进行逻辑 1 或逻辑 0 判断时,不希望检测的信号是不稳定的,所以不直接检测 RXD 信号,而是检测经过同步后的RXD_SYNC 信号。 R_CENTER 状态:对于异步串行信号,为了使每一次都检测到正确的位信号,而是在较后的数据位检测时累计误差 较小,显然在每位的中点检测是最为理想的。 在本状态,就是由起始位求出每位的中点,通过对 bclk 的个数进行计数( RCNT16),但计数值不是想当然的“ 1000”,要考虑经过一个状态,也即经过了一个 bclk 周期,所希望得到的是在采样时 1/2 位。 另外,可能在 R_START 状态检测到的起始位不是总结 第 17 页 (共 37 页) 真正的起始位,可能是一个偶然出现的干扰尖脉冲(负脉冲)。 这种干扰脉冲的周期是很短的,所以可以认为保持逻辑 0 超过 1/4 个位时间的信号一定是起始位。 图 13 UART 接收器的接收状态机 注:状态机一共有 5 个状态: R_START(等待起始位)、 R_CENTER(求中点)、R_WAIT(等待采样)、 R_SAMPLE(采样)和 R_STOP(停止位接收)。 R_WAIT 状态:当状态机处于这一状态,等待计满 15 个 bclk,在第 16 个 bclk是进入 R_SAMPLE 状态进行数据位的采样检测,同时也判断是否采集的数据位长度已达到数据帧的长度,如果到来,就说明停止位来临了。 在本设计中默认为 8,即对应的 UART 工作在 8 位数据位、无校验位格式。 R_SAMPLE 状态:即数据位采样检测,完成后无条件状态机转入 R_WAIT 状态,等待下次数据 位的到来。 R_ST。基于fpga的串口设计_毕业设计(编辑修改稿)
相关推荐
是稳定性好,抗干扰能力强,非常适合作为计程车的计价器系统的控制核心。 方案的确定 从以上两种方案的比较 可以看出基于 FPGA 的设计方案要优于基于单片机的设计方案基于 FPGA 的设计 方案稳定性更强且相对于单 片机的设计方案来说它更易于将来进行功能扩展。 因此 我确定采用基于 FPGA 的出租车计费器 的设计方案。 基于 FPGA 的出租车计费系统设计 14 5 出租车计费系统的设计
别计费。 ( 1)从设计目的来看,经过研究和实际情况考虑,觉得还是第一种方案的 设计目的比较符合实际情况,且对乘客和司机都相对公平。 因此决定采用方案一的设计目的,时钟脉冲 分频器 控制器 等待脉冲 公里脉冲 计费 /复位 显 示 计 费 计 时 8 来作为设计目标。 ( 2)从设计正确性和实现可能性出发,我发现要想用 VHDL 语言来设计一定的函数关系,来达到目的,比较困难
时钟综合,还具有降 低抖动和实现过滤功能。 嵌入式块 RAM( BRAM)。 大多数 FPGA 都具有内嵌的块 RAM,这大大拓展了 FPGA的应用范围和灵活性。 BRAM 可被配置为单端口 RAM、双端口 RAM、内容地址存储器 ( CAM)以及 FIFO 等常用存储结构。 CAM 存储器在其内部的每个存储单元中都有一个比较逻辑,写入 CAM 中的数据会和内部的每一个数据进行比较
,UB,UC分别加在三相绕组上。 可以定义三个定子电压空间矢量 Ua, Ub,Uc使它们的方向始终 位 于各相绕组的轴线上,而 其幅值则随时间按正弦规律脉动,时间相位 相互 错开的角度也是 2π /3。 与电机原理中三相脉动磁动势相加后产生旋转磁动势相仿, 就 可以证明,三相定子电压空间矢量相加的合成 得 空间矢 量 uref是一个旋转的空间矢量,它的幅值不变, 其幅值 是每相电压值的 3/2倍
可以用来检查设计的逻辑和时序,以便计算各通中性能,识别可靠的踪迹,检测建立和保持时间的配合,时序分析器不要求用户产生输入激励或测试矢量。 f) 下载验证 下载是在功能仿真与时序仿真正确的 前提下,将综合后形成的位流下载到具体的 FPGA芯片中,也叫芯片配置。 FPGA 设计有两种配置形式:直接由计算机经过专用下载电缆进行配置;由外围配置芯片进行上电时自动配置。 因 FPGA
常工作。 程序计数器 PC 用来存放即将要执行的指令地址,它可以完成 64K 的外部存储器寻址,执行指令时, PC 内容的高 8 位经 P2 口输出,低 8 位经 P0 口输出。 数据指针 DPTR 为 16 位数据指针,它可以对 64K 的外部数据存储器和 I/O 口进行寻址,它的低 8 位为 DPL(地址 82H),高 8 位为 DPH(地址为 83H)。 堆栈指 针 SP 在片内 RAM(