基于fpga的串口通信.docx

上传人:b****6 文档编号:15783767 上传时间:2023-07-07 格式:DOCX 页数:10 大小:200.83KB
下载 相关 举报
基于fpga的串口通信.docx_第1页
第1页 / 共10页
基于fpga的串口通信.docx_第2页
第2页 / 共10页
基于fpga的串口通信.docx_第3页
第3页 / 共10页
基于fpga的串口通信.docx_第4页
第4页 / 共10页
基于fpga的串口通信.docx_第5页
第5页 / 共10页
基于fpga的串口通信.docx_第6页
第6页 / 共10页
基于fpga的串口通信.docx_第7页
第7页 / 共10页
基于fpga的串口通信.docx_第8页
第8页 / 共10页
基于fpga的串口通信.docx_第9页
第9页 / 共10页
基于fpga的串口通信.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于fpga的串口通信.docx

《基于fpga的串口通信.docx》由会员分享,可在线阅读,更多相关《基于fpga的串口通信.docx(10页珍藏版)》请在冰点文库上搜索。

基于fpga的串口通信.docx

基于fpga的串口通信

 

基于FPGA的串口通信设计

 

学号:

姓名:

班级:

指导教师:

 

电子与控制工程学院

一、串行通信系统

1.1概述

在计算机系统和微机网络的快速发展领域里串行通信在数据通信及控制系统中得到广泛的应用。

UART即UniversalAsynchronousReceiverTransmitter通用异步收发器协议是数据通信及控制系统中广泛使用的一种全双工串行数据传输协议在实际工业生产中有时并不使用UART的全部功能。

只需将其核心功能集成即可。

波特率发生器、接收器和发送器是UART的三个核心功能模块利用Verilog-HDL语言对这三个功能模块进行描述并加以整合UART是广泛使用的串行数据传输协议。

UART允许在串行链路上进行全双工的通信。

串行外设用到RS232-C异步串行接口一般采用专用的集成电路即UART实现。

如8250、8251、NS16450等芯片都是常见的UART器件这类芯片已经相当复杂有的含有许多辅助的模块如FIFO有时我们不需要使用完整UART的功能和这些辅助功能。

或者设计上用到了FPGA/CPLD器件那么我们就可以将所需要的UART功能集成到FPGA内部。

使用VHDL或Veriolog-HDL将UART的核心功能集成从而使整个设计更加紧凑、稳定且可靠。

本文应用EDA技术基于FPGA/CPLD器件设计与实现UART。

通信指人与人或人与自然之间通过某种行为或媒介进行的信息交流与传递从广义上指需要信息的双方或多方在不违背各自意愿的情况下无论采用何种方法使用何种媒质将信息从某方准确安全传送到另方。

通信在不同的环境下有不同的解释在出现电波传递通信后通信(Communication)被单一解释为信息的传递是指由一地向另一地进行信息的传输与交换其目的是传输消息。

然而通信是在人类实践过程中随着社会生产力的发展对传递消息的要求不断提升使得人类文明不断进步。

在各种各样的通信方式中利用“电”来传递消息的通信方法称为电信(Telecommunication)这种通信具有迅速、准确、可靠等特点且几乎不受时间、地点、空间、距离的限制因而得到了飞速发展和广泛应用。

1.2串行通信简介

计算机与计算机,计算机与外部设备进行数据交换也称为通信,一般有两种方式并行通信和串行通信。

信息的各位数据被同时传送的通信方法是并行通信并行通信依靠I/O接口来实现。

并行通信中数据有多少位就需要多少条信号传输线。

这种通信方式快,但由于传输线较多,所以成本较高,仅适合近距离通信通常传送距离小于30米。

当距离大于30米时则多采用串行通信方式串行通信是指外部设备和计算机间使用一根数据线另外需要地线可能还需要控制线进行数据传输的方式。

数据在一根数据线上一位一位进行传输每一位数据都占据一个固定的时间长度。

与并行通信方式相比有以下优点:

1、传输距离长可达数千公里。

2、长距离内串行数据传送速率会比并行数据传送速率快串行通信的通信时钟频率比并行通信更容易提高。

3、抗干扰力强串行通信信号间的相互干扰完全可以忽略。

4、通信成本低。

5、传输线既传输数据又传输联络信息。

因此串行通信得到广泛的应用。

目前的串行通信常用UART实现数据的串/并转换或并/串转换。

UART(通用异步收发器)是一种串行通信协议,主要用于短距离,低速率,低成本的数据的计算机和外设之间的交流。

是电脑硬件的一部分,具体实物表现为一块并行输入成为串行输出的模块化芯片。

8250、8251、NS16450等芯片都是常见的UART器件。

UART主要功能实现通信中的数据串并转换,且能奇偶检验。

将计算机内部传送过来的并行数据转换为串行数据流加入奇偶校验位后输出。

或者将计算机外部来的串行数据奇偶校验后转换为字节,供计算机内部使用并行数据的器件使用。

它的异步模式使芯片适应性强,对时钟精度要求低(成本低)。

随着FPGA的广泛应用,经常需要FPGA与其他数字系统进行串行通信,专用的UART集成电路如8250,8251等是比较复杂的,因为专用的UART集成电路既要考虑异步的收发功能,又要兼容RS232接口设计,在实际应用中,往往只需要用到UART的基本功能,使用专用芯片会造成资源浪费和成本提高。

如果设计上用到FPGA/CPLD器件,可以将所需要的UART功能集成到FPGA内部,实现FPGA与其他数字系统的直接通信,从而简化了整个系统电路,提高了可靠性、稳定性和灵活性。

二、UART理论基础

2.1接口技术简介

接口是CPU与外界的连接部件,是CPU与外界交换信息的中转站。

一个接口的基本功能是在系统总线和I/O设备之间传输信号,提供缓冲作用,以满足接口两边的时序要求。

如图1,

图1接口功能

主要的计算机接口技术有两种:

并行接口和串行接口。

串行通信是把要传输数据中的各个二进制码置于同一条传输线上,从低位到高位、逐位地、顺序地进行传送。

所用传输线少,一个方向只需一条传输线,成本低。

串行通信分为两种类型:

同步通信和异步通信。

串行异步是计算机通信最常用的数据信息传输方式,接收和发送双方不使用共同的参考时钟,以字符为单位进行传输,字符之间的传输间隔任意,而每个字符的前后都要用一些位数来作为分隔位。

2.2UART基本结构

UART主要由UART内核、信号检测器、移位寄存器、波特率发生器和计数器组成,如图2所示。

图2UART功能模块

从异步接收输入信号RXD接收到的异步信号通过接收器完成串行/并行的转换,形成异步数据帧;发送器将CPU发出的8位数据进行并行/串行转换,从TXD发送出去。

2.3UART数据帧格式

基本的UART通信只需要两条信号线(RXD,TXD)就可以完成数据的相互通信,接收与发送是全双工形式,其中TXD是UART发送端,RXD是UART接收端。

UART基本特点是:

在信号线上有两种状态,可分别用逻辑1(高电平)和逻辑0(低电平)来区分。

在发送器空闲时,数据线应保持在逻辑高电平状态。

发送器是通过发送起始比特而开始一个字符传送,起始比特使数据线处于逻辑0状态,提示接收器数据传输即将开始。

数据位一般为8位一个字节的数(也有6位7位的情况),低位(LSB)在前,高位(MSB)在后。

校验位一般用来判断接收的数据位有无错误,一般是奇偶校验。

停止位在最后,用以标志UART一个字符传送的结束,它对应于逻辑1状态,UART数据帧格式如图3所示。

图3UART数据帧格式

一帧异步通信传输经历的步骤为:

无传输:

发送器处于空闲状态,数据线保持“1”状态。

起始传输:

发送器发出一个“0”表示传输字符开始。

而同时,接收方收到空号后,开始与发送方同步,并期望收到随后的数据。

数据传输:

传输8位数据D0-D7。

低位到高位传输。

奇偶传输:

在使用中,校验位常常取消。

停止传输:

一个字符数据的结束标志。

可以是1位、1.5位、2位的高电平“1”。

3、开发平台

1、软件平台

软件设计工具采用QuartusII。

QuartusII是Altera公司推出的CPLD/FPGA集成化开发软件,可以完成设计输入、逻辑综合、布局与布线、仿真、时序分析、硬件配置完整的PLD设计流程。

QuartusⅡ提供了多种设计输入方式、快速的编译和直接易懂的器件编程。

具有友好的用户界面,快速的综合速度和更优化的综合和适配功能。

QuartusII自带宏功能模块库,大大减轻了用户的工作量,加快设计速度。

QuartusII内置仿真器可以在工程中仿真任何设计。

可进行功能仿真、时序仿真来检验设计的逻辑功能和计算设计的内部定时是否符合设计。

仿真器可以仿真整个设计,或仿真设计的任何部分。

支持可编程系统(SOPC)和大规模FPGA设计开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

该软件支持Altera公司的StratixⅡ、StratixGX、Stratix、MAX3000A、MAX7000B、MAX7000AE、MAXⅡ、FLEX6000、FLEX10K系列、Cyclone、CycloneⅡ、APEXⅡ、APEX20K和ACEX1K系列。

2、硬件平台

FPGA设计方法有“自顶向下”和“自下而上”,一般FPGA设计常选择前者。

所谓“自顶向下”的设计方法,就是把系统分成若干个基本单元,然后再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接使用EDA元件库为止。

具体步骤为:

按照“自顶向下”的设计方法进行系统划分,用硬件描述语言,将设计产品的功能描述出来,将设计输入编译成标准文件;利用综合器对源代码进行综合优化处理得到EDA工业标准文件;把设计好的逻辑安放到PLD/FPGA内(布局布线);用仿真软件验证电路的时序;无误后将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片FPGA中。

目标芯片为黑金CycloneIV开发板。

4、设计与实现

该实验要实现的功能是CPLD实时监测RS232_RX信号是否有数据,若接收到数据,则把接收到的数据通过RS232_TX发回给对方。

上位机用的是串口调试助手。

在代码设计中,发送数据的波特率是可选的,可以是9600bps,19200bps,38400bps,57600bps或115200bps。

这部分在模块speed_select里,用户可以根据需要进行配置。

发送的数据帧格式为:

1bit起始位(保持一个传输位周期的低电平),8bit数据,无校验位,1bit停止位。

该设计分为4个模块实现如图四所示,4个模块的划分主要是依据数据流的方向。

my_uart_rx模块主要是完成数据的接收,speed_select(speed_rx)模块主要响应my_uart_rx模块发出的使能信号进行波特率计数,并且回送一个数据采样使能信号。

my_uart_tx模块在my_uart_rx模块接收好一个完整的数据。

图4整体设计框图

4.1数据接收模块

接收模块的作用是把收到的串行数据转换成并行数据进行输出,并判断收到的数据是否有错。

接收模块的引脚如图5所示,

图5数据接收模块

设计中接收器的工作频率由前面的速度选择器决定,频率是9600bps的16倍,由输入端输入,在接收器工作时,接收端一直以16背得波特率的速率读取线路状态,检测线路上出现低电平的时刻。

找到起始位以后,就开始接收数据,用16倍波特率的时钟作为接收时钟,就是为了确保在位宽的中心时间对接收的位序列进行可靠采样,当采样计数器计数结束后所有数据位都已经输入完成。

4.2数据发送模块

发送模块主要实现对并行数据的缓存、并串转换,并把串行数据按照既定数据帧格式进行输出。

每隔一个固定发送周期发送符合数据帧格式要求的数据帧,发送时输出起始位低电平,依次将数据位输出,最后将起始位重新置为高。

空闲时是高电平,收到一个发送指令后,将数据装载进来,开始位拉低,然后移出数据,停止位高电平意味着一帧传输结束。

发送模块的引脚如图6所示,

图6数据发送模块

4.3速度选择模块

需要说明的是这两个例化都是针对一个相同的模块speed_select,但是例化后的名字不同,分别为speed_rx和speed_tx。

它们综合后是两个不同的模块,相互独立,不可以复用。

speed_selectspeed_rx(

.clk(clk),//波特率选择模块

.rst_n(rst_n),

.bps_start(bps_start1),

.clk_bps(clk_bps1)

);

speed_selectspeed_tx(

.clk(clk),//波特率选择模块

.rst_n(rst_n),

.bps_start(bps_start2),

.clk_bps(clk_bps2)

);

 

4.4功能设计

此设计前端与数字信号发生器相连接,将数字信号频率发生器的数据进行处理后接收,然后通过黑金开发板与上位机作用,返回到PC机上,查看接收收到的数据,其最终实现的效果如图7所示。

图7实验结果

五、总结概括

UART是广泛使用的串行数据通信电路,因其要求的传输线少,可靠性高,传输距离远,所以系统间互联常采用异步串行通信接口方式。

本文用VHDL语言,结合有限状态机的设计方法实现了UART的功能,将其核心功能集成到FPGA上,使整体设计紧凑、小巧,实现的UART功能稳定、可靠;同时,利用有限状态机的方法具有结构模式直观简单,设计流程短,程序层次分明,易综合,可靠性高等优点,必将在EDA技术中发挥重要作用。

本设计具有较大的灵活性,通过调整波特率发生器的分频参数,就可以使其工作在不同的频率。

采用16倍波特率的采样时钟,可以实时有效探测数据的起始位,并可对数据位进行“对准”中央采样,保证了所采样数据的正确性。

该模块可以作为一个完整的IP核移植进各种FPGA中,在实际应用时可嵌入到其他系统中,很容易实现和远端上位机的异步通信。

 

 

【本文档内容可以自由复制内容或自由编辑修改内容期待你的好评和关注,我们将会做得更好】

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2