FPGA学习笔记(五),串口

注:文章内容为本人学习笔记,若有错误欢迎指正或补充。

1,串口

串口即通用异步收发器,异步串行通信口,全双工,串口是一种通信方式,其内部有不同的协议,常见的通信接口有RS232,RS485,RS499,RS423,RS422。

串口的通讯方式,主机和从机分别都有两个端口Rx和Tx,主机的Rx与从机的Tx相连,主机的Tx与从机的Rx相连。

串口的接口即com口又叫DB9,有9个引脚,其中第二和第三引脚最重要,分别是RxD与TxD引脚(公头的第二引脚为RxD,第三引脚为TxD,母头的第二引脚为TxD,第三引脚为RxD)。

2,Rs232串行通行接口

因为串口是串行通信,所以发送端要先把并行数据改为串行数据后在发送,接收端在接收到串行数据后改为并行数据,在传入内部。

串口是以针结构的方式发送数据,每一帧有8bit的数据,一个起始位和停止位,一共10个bit的数据,没有数据传输时Rx与Tx都会处于空闲状态,空闲状态为高电平,起始位为低电平,停止位为高电平。

串口发送或接收一个数据所要的时间为一个波特,每个波特所需要的时间=1/波特率s ,每个波特所需要的计数周期=时钟频率/波特率 。

3,亚稳态

在实际的电路中,电信号的跳变不是瞬间改变的,会有个渐变的过程,当系统时钟刚好采集到渐变处,会使输出信号产生震荡或毛刺,在震荡或毛刺后会产生随机的电平,不与输入有关,这就是亚稳态。

亚稳态产生的原因:在时钟采集前一段时间与采集后一段时间,数据要保持稳定,前一段时间为建立时间Tus,后一段时间为保持时间Th,在时钟采集处到发生毛刺电这段时间为寄存器延迟时间Tcd,毛刺发生期间为决断时间tment。

消除亚稳态的方法:使用寄存器,因为寄存器本身就具有稳定亚稳态的作用,信号每经过一个寄存器其亚稳态的绝断时间就会缩短,当决断时间小于一个时钟周期时,它的影响就会很小。每一个寄存器可以缩短70/80%的决断时间。单bit信号从高速到低速时钟一般要经过两个寄存器,在多加效果就不会很明显。单bit信号从高速到低速时钟就不能用寄存器的方式,因为会漏数据,要使用脉冲同步或握手信号的方法进行数据同步。多bit信号进行跨时钟域时,要经过格雷码编码,在使用寄存器,FIFO,RAM来进行数据同步。

4,新函数介绍

integer函数用于定义变量,寄存器数据类型,位宽为主机的字的位数,最小为32位,默认有符号类型。

task函数,类似c语言中的非主函数,需要调用才运行内部代码,用法如下。

//name为函数名称,data为输入信号
tase    name    (int  data);

/*
    内部代码需要调用才能运行
*/

//函数结束标志
endtase   


//在initial中调用,程序最开始的时候调用一次
initial
begin
    name(data1);
end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值