close
当前位置: 物联网在线 > 技术文库 >

基于Spartan-6平台简单实现异步fifo与UART串口通信的联合使用

 基于Spartan-6平台简单实现异步fifo与UART串口通信的联合使用

UART(即Universal Asynchronous Receiver Transmitter 通用异步收发器)是广泛使用的串行数据传输协议。UART允许在串行链路上进行全双工的通信。

串行外设用到RS232-C异步串行接口,一般采用专用的集成电路即UART实现。如8250、8251、NS16450等芯片都是常见的UART器件,这类芯片已经相当复杂,有的含有许多辅助的模块(如FIFO),有时我们不需要使用完整的UART的功能和这些辅助功能。或者设计上用到了FPGA/CPLD器件,那么我们就可以将所需要的UART功能集成到FPGA内部。使用VHDL将UART的核心功能集成,从而使整个设计更加紧凑、稳定且可靠。

(参考博文: )

串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配。

波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。

数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。

停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位位1,这样就有3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。

 基于Spartan-6平台简单实现异步fifo与UART串口通信的联合使用

串口通信的数据传输时序图

异步FIFO用一种时钟写入数据,而用另外一种时钟读出数据。读写指针的变化动作由不同的时钟产生。因此,对FIFO空或满的判断是跨时钟域的。

异步FIFO是一种先进先出电路,用在需要实时数据接口的部分,用来存储、缓冲在两个异步时钟之间的数据传输。主要由双口存储器、读地址产生逻辑、写地址产生逻辑、空/满标志产生逻辑四部分构成。

 基于Spartan-6平台简单实现异步fifo与UART串口通信的联合使用

分别在读、写时钟域判断空、满信号,即时使用状态信号控制fifo的操作,可有效避免读写溢出问题(本文还未进一步研究如何避免异步传输带来的亚稳态以及正确地产生空/满标志)。

具体实现仿真图(FIFO写入数据位8位,读出数据位16位):

 基于Spartan-6平台简单实现异步fifo与UART串口通信的联合使用

再将FIFO读出的数据传入UART串口,最后传给PC显示,FIFO写入“55”,显示结果应为“55 55“,如图:

 基于Spartan-6平台简单实现异步fifo与UART串口通信的联合使用


(责任编辑:ioter)

用户喜欢...

伺服电机以及如何使用 Arduino 平台进行控制

什么是伺服电机? 什么是伺服电机,它们的用途是什么,它们由什么组成,以及它们如何工作? 伺服电机是一种根据控制信号确定轴转动位置的电机,通常用于通过调整襟翼来控制遥控飞机,...


基于AT89S52单片机的智能数字电子时钟设计

(1)数字钟实现对年、月、日、时、分、秒、星期显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带...


基于NFC的无线通信系统电路设计

在很多场合有线通信技术并不能满足实际需要,比如在野外恶劣环境中作业。使用无线射频通信芯片构建的通信模块,用单片机作为控制部件,配合一定的外围电路就能很好地进行两地空间区...


介绍ARIS(Arrow Renesas IoT Synergy)开发平台

随着越来越多的消费者和业务团队遇到物联网的概念并理解其带来的机遇,渴望在数百万个个人场景中利用其潜力将是不可阻挡的。 这种可能性是无限的:保持打印机/复印机的安装基础,管理...


基于ADXRS810提高航位推算导航系统的精度

汽车航位推算 (DR)导航系统采用一个陀螺仪(gyro)来推算车辆的即时航向。借助该信息再加上行驶的距离,导航系统可以正确确定车辆的位置,即使卫星信号因拥挤的城区环境或隧道而受阻时亦是...


ADI系统演示平台 (SDP) 快速进行原型制作与评估

系统设计有时十分复杂,需要充分了解许多不同的元件,如果解决方案的各环节可以进行原型制作并快速演示,就可以简化过程,更重要的是,可以减少设计师面临的风险。凭借ADI公司的系统演...


基于成ADAS3022解决多通道数据采集系统设计中遇到的诸多难题

可编程逻辑控制器(PLC)是很多工业自动化和过程控制系统的核心,可监控和控制复杂的系统变量。基于PLC的系统采用多个传感器和执行器,可测量和控制模拟过程变量,例如压力、温度和流量。...


基于ADI惯性MEMS稳定系统设计方案

稳定系统简介 无人飞行器安装的监控设备、海上微波接收机、车辆安装的红外成像系统传感器以及其他仪器系统都需要具有稳定的平台,以达到最佳性能,但它们通常在可能遇到振动和其他类...


基于FPGA的自适应MIMO-OFDM无线基带传输系统的研究

作者:谭 凯1,彭 端2,2017年电子技术应用第10期 摘 要: 针对自适应MIMO-OFDM无线基带传输系统,提出了一种并行复用的基4-FFT/IFFT算法的FPGA实现方法,并对其中的自适应数字调制、STBC编码和...


优化图像传感器平台以应对汽车在最具挑战性拍摄场景的要求

在安全和便利性能特点的双重驱动下,对驾驶员辅助系统的需求增长,令车中具备成像功能的系统数量也在迅速攀升。这类先进驾驶员辅助系统可实现自适应巡航控制和自动紧急制动等功能。...