您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 基于FPGA的ASIC设计
基于FPGA的ASIC设计—RS232接口功能一、设计说明为了配合课程设计,完成RS232通信功能,以Verilog为硬件描述语言在FPGA开发板上实现串行通信的接受和发送模块,通过本项目掌握基于FPGA的ASIC设计的流程方法。1.RS232介绍RS232是一种异步串行通信接口,RS232只是一个物理层的标准,只规定了信号物理特性,链路层的协议是UART,RS232接口的逻辑设计就是这部分内容。其设置包括三部分:波特率、奇偶校验、停止位。所谓波特率,指单位时间内传送二进制数据的位数,以位/秒为单位,是衡量串行数据传输快慢的重要指标。如果某串口的波特率为115200,指的是该串口以115200bits/s的速率在传输数据。奇偶校验:是用来验证数据的正确性。奇偶校验是通过修改每一发送字节(也可以限制发送的字节)来工作的。在偶校验中,因为奇偶校验位会被相应的置1或0(一般是最高位或最低位),所以数据会被改变以使得所有传送的数位(含字符的各数位和校验位)中“1”的个数为偶数;在奇校验中,所有传送的数位(含字符的各数位和校验位)中“1”的个数为奇数。奇偶校验可以用于接受方检查传输是否发送生错误——如果某一字节中“1”的个数发生了错误,那么这个字节在传输中一定有错误发生。如果奇偶校验是正确的,那么要么没有发生错误要么发生了偶数个的错误。停止位:是在每个字节传输之后发送的,它用来帮助接受信号方硬件重同步。2.RS232的特性使用9针的DB-9插头(它一共有9个引脚,最重要的3个引脚是:引脚2RxD(接收数据).引脚3:TxD(发送数据).引脚5:GND(地)).允许全双工的双向通讯,最大可支持的传输速率为10KBytes/sRS232通信线上的电平RS-323标准对逻辑电平的定义。对于数据(信息码):逻辑“1”(传号)的电平低于-3V,逻辑“0”(空号)的电平高于+3V;对于控制信号;接通状态(ON)即信号有效的电平高于+3V,断开状态(OFF)即信号无效的电平低于-3V,也就是当传输电平的绝对值大于3V时,电路可以有效地检查出来,介于-3~+3V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义,因此,实际工作时,应保证电平在±(3~15)V之间。RS-232C与TTL转换:RS-232C是用正负电压来表示逻辑状态(EIA),与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的TTL器件连接,必须在RS-232C与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。目前较为广泛地使用集成电路转换器件,如MC1488、SN75150芯片可完成TTL电平到EIA电平的转换,而MC1489、SN75154可实现EIA电平到TTL电平的转换。MAX232芯片可完成TTL←→EIA双向电平转换。二、UART的协议数据通信的基本方式可分为并行通信与串行通信两种:并行通信:是指利用多条数据传输线将一个资料的各位同时传送。它的特点是传输速度快,适用于短距离通信,但要求通讯速率较高的应用场合。串行通信:是指利用一条传输线将资料一位位地顺序传送。特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。异步通信以一个字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,然而在同一个字符中的两个相邻位代码间的时间间隔是固定的而且单位的本身也是固定的(决定于传输速率)。通信协议(通信规程):是指通信双方约定的一些规则。在使用异步串口传送一个字符的信息时,对资料格式有如下约定:规定有空闲位、起始位、资料位、奇偶校验位、停止位。其中各位的意义如下:空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。资料位:紧接着起始位之后。资料位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。奇偶校验位:资料位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。四、模块显示UART串行通讯模块由3个子模块组成:波特率发生器、接收模块和发送模块。波特率发生器专门产生一个本地时钟信号来控制UART的接收与发送;UART接收模块的用途是接收RxD端的串行信号,并将其转化为并行数据;UART发送模块的用途是将准备输出的并行数据按照基本UART帧格式转为串行数据从TxD端串行输出。波特率发生器波特率产生器实际是一个分频器,将系统时钟转化为与串行通行匹配的波特率频率。其设计思想是一个基本计数器,该计数器工作在很高的系统时钟下,通过写入不同的数值到波特率发生器保持寄存器中,然后用计数器方式产生所需要的各种与波特率匹配的时钟,该输出为波特率的16倍频。发送模块发送模块分为空闲、载入数据、移位等3种模式。如图所示。当并行8位数据从总线写入发送模块后,发送模块将并行数据装入锁存器thr中,然后在移位寄存器tsr中将数据移位,产生完整的发送序列(包括起始位,数据位,奇偶校验位和停止位),以相应波特率从tx发送。发送模块的输入时钟mclkx16是串行数据波特率的16倍,模块内部将其16分频后得到波特率时钟txclk。图1接收模块接收模块也分为空闲、检测起始位、移位等3种模式。如图2所示。首先捕捉起始位,在mclkx16时钟下不断检测从rx端输入数据的起始位,当检测到起始位后,接收模块由空闲模式转换为移位模式,并且16分频mclkx16产生rxclk波特率时钟。此时rxclk时钟的上升沿位于串行数据每一位的中间,这样接下来的数据在每一位的中点采样。然后由rxclk控制在上升沿将数据位写入移位寄存器rgr的rsr[7]位,并且rsr右移1位,依次将8位数据全部写入rsr,并且停止产生rxclk波特率时钟。判断奇偶校验、帧结构和溢出标志正确后,rsr寄存器中的数据写入rhr数据锁存寄存器中,最后由8位数据总线输出转换完成的数据。图2五、系统设计及硬件验证整个系统框图如下接受部分端口说明:端口宽度方向功能Clk1输入时钟Rst1输入全局复位信号Rxd1输入转换允许信号Rdn1输入输入数据Dout[7..0]8输出输出数据Interupt1输出中断指示Error1输出错误标志Parity1输出奇偶校验位发送部分端口说明:端口宽度方向功能Clk1输入时钟Rst1输入全局复位信号Wrn1输入允许转换信号Din1输入输入数据Data1输入数据传入寄存器信号Txd8输出输出数据Tbre1输出并串转换标志信号Tsre1输出工作过程标志PC机电平转换中断指示错误指示ClkRstRxdRdnDout[7..0]InteruptErrorParityDinClkDataRstwrnThreTsteTxd接受器发送器LED显示CLK50MHzRESET低电平有效验证方法将UART的程序编译、仿真后,下载到FPGA的芯片上。引入50MHz的晶振频率;发送使能端和复位端分别接一个开关;状态输出标志TRE和DATA-READTY分别接一个二极管,指示状态;串行数据帧的格式为:起始位0,8位数据位,无校验位,1位停止位。将UART的串行发送、接收端口分别与计算机的RS-232的串行接收、发送端口连接,以便与PC机进行串行通信;并行输入DIN接入并行输出DOUT;连好线后,执行发送测试程序。在PC机上输入一数字,对应的LED点亮,且每发送一次数据,系统的的中断指示灯就会点亮一次,反复在PC上输入数据进行验证,如果有错误,系统要给与提示(可用led或蜂鸣器)。小组成员:杜博,傅彬彬,李超轶,李亚军,罗永亮,薛洪亮,徐立佳
本文标题:基于FPGA的ASIC设计
链接地址:https://www.777doc.com/doc-2569581 .html