赞
踩
本节文章主打用Altera FPGA 的开发工具 Quratus 以及开发板 EP4CE6F17C8完成rs232的串口回环实验(加FIFO)。
接下来咱们学习基础低速通信协议之一:UART。完成串口回环实验,并且封装uart的自用IP核。内容分三章发布。主打学习协议以及熟悉IP核的封装流程。
串口回环实验:将数据通过上位机(电脑)发送到FPGA芯片上然后由芯片传回上位机的串口助手中。
UART IP核:封装IP核,以后不用再编写冗长的代码,直接调用IP核就能实现串口通信。今后一些工程也会使用到哦,毕竟作者比较懒,懒得动脑子改写了很久的代码( -_-')(除非文章里的一些代码出错,记得出错了抓紧联系我,我会快速改好,不过应该也没啥错误,都是我重复检查好几遍的)。
在硬件通信中数据的传递有两种方式,串行和并行。
并行通信是指数据的各个位用多条数据线同时进行传输。
优点:传输速度快。
缺点:占用资源多,传输距离短。
串行通信是指将数据的各个位拆开,一位一位的在一条数据线上进行传输。
优点:传输距离长,通信线路简单,占用的引脚资源少。
缺点:传输速度慢。
数据传输过程中时钟也会对数据产生一些影响,这就导致出现了两种通信方式:
同步通信:带有时钟同步信号的数据传输。发送方和接收方在同一时钟的控制下,同步传输数据。
异步通信:不带时钟同步信号的数据传输。通信双方在各自的时钟控制下进行数据的收发。
在通信中有发送方和接收方,数据在通信双方传递中也有方向可言:
单工:数据只能沿一个方向传输。
半双工:数据的传输有两个方向,但是需要分时进行。
全双工:数据可以同时进行双向传输。
总结一下常见协议的通信方式,这些挺重要的基础要记住。
前边写了这么多主要是让小白了解一下通信的概念,接下来进入正题。
UART(Universal Asynchronous Receiver-Transmitter)是一种采用异步串行通信方式进行数据传输的通用异步收发传输器。它在发送数据时将并行数据转换成串行数据来发送(并转串),接收数据时将接收到的串行数据转换为并行数据(串转并)。
UART的三种接口标准,本文章使用的是rs232。3线是指还有接地线。
由于UART是异步通信接口,接收方发送方都有各自的时钟,在数据传输中不需要时钟,发送方发送数据的时间间隔可以不均匀,接收方是在数据的起始位和停止位的帮助下实现数据同步的。
UART实现通信的条件是需要两根信号线来实现。一根用于发送(TX),另一根用于接收(RX)。
观察上图,对于上位机来说,它的TX端要和FPGA芯片的RX端连接,同样,芯片的TX端要和上位机的RX端连接。如果两个TX或者两个RX相连接,数据就不会正常的发送和接收。UART可以实现全双工。
UART传输速率低(以波特率为传输速率),传输距离短,通过奇偶校验位对数据进行检测,减少数据传输出现错误的概率。
刚才写了UART的数据传输靠的是波特率。波特率是指单位时间(1S)内传输的码元的个数。单位是波特(Baud)。一般常用的波特率有:9600、19200、38400、115200。双方必须在相同的波特率下传输数据,否则数据就会出错。
波特率需要和比特率进行区别。比特率是指单位时间内传输的bit位数。比特率是从二进制信息的角度来定义的。
接下来讲一讲UART的数据格式:
一般UART每一帧数据由4个部分组成。
空闲状态:设备之间不传输数据的时候以持续的高电平来表示空闲。空闲时间间隔的越长,两帧数据的帧间隔就越少。
起始位:UART的接收端会一直检测信号线上的电平变化,开始传输数据时,发送端将信号线从高电平拉到低电平结束空闲状态,并保持低电平一个bit位的时长。接收方检测到电平变化时,开始接收信号。
数据位:数据位包含传输的实际数据,数据首先从最低位开始发送,高位在后(LSB)。
奇偶校验位:可要可不要;奇偶校验是一种通信中检验数据传输正确性的方法。通常采用哪种校验方式是收发双方事先约定好的。发送端发送的数据中包括原始数据和1bit校验位。
若是奇校验则要保证发送的数据中“1”的 bit数是奇数个。
若是偶校验,则要保证发送的数据中“1”的bit数是偶数个。
例如:采用奇校验时,若原始数据中“1”的bit数是奇数个,则校验位此时应该为0,若原始数据中1的 bit数是偶数个,则校验位此时应该为1;反之亦然。
停止位:停止位表示一帧数据的结束,实际信号是一段时间的高电平。停止位的时间长短可以设置成1/1.5/2bit。
因为UART是一个异步协议,每一帧的开头可以用跳变沿来同步,但是停止位只能通过波特率来计算相对位置,如果在停止位的位置识别到一个低电平,则会产生帧错误。在通讯过程中,为了减少波特率的误差导致的问题,可以设置不同的停止位长度来适配。
我比较喜欢用这个串口软件,操作简单而且安装方便。
有些朋友把板子连接电脑后,可能会在串口软件里显示不出串口。
只需要打开电脑的设备管理器,能看到一个黄色小三角的错误警告,那个就是没有安装驱动的串口,咱们只需要安装合适的驱动就能正常使用了。
咱们已经学习了UART的基本知识,我可能讲的有些简单,但UART本来就是基础协议,挑重点讲就行。
然后串口软件和驱动我都放进了我的百度网盘“资源”中,大家自行下载,有问题发私信或者加qq,网站不经常看,回复慢。
链接:百度网盘
提取码:yang
下一节文章就是实现串口回环传输数据了,我加油赶进度!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。