UART串口通信实验

一.通信种类

1.1按照数据通信方式

1.1.1串行通信

优点:占用的引脚少,成本低

缺点:传输速度慢

适用场合长距离、低速率的通信场合

1.1.2并行通信

优点:传输速率快

缺点:占用引脚多,成本高

适用场合:短距离的场合。

1.2按照数据传输方向

1.2.1单工通信:

      数据只能沿一个方向传输。

1.2.2半双工通信:

      数据可以沿两个方向传输,但需要分时进行。

1.2.3全双工通信:

      数据可以同时进行双向传输。

1.3按数据同步方向分类

1.3.1同步通信

      带时钟端口的数据传输

1.3.2异步通信

     没有时钟端口,发送方和接收方使用各自的时钟控制数据的收发过程。

二.UART串口

             含义:通用异步收发器,是一种串行数据总线,它在发送数据时将并行数据转换成串行数据来传输,在接收数据时将接收到的串行数据转换成并行数据。需要两根信号线来实现,一根用于串口发送,另外一根负责串口接收,两个设备间的TXD和RXD,必须交差连接。

1.物理层:接口类型,电平标准等

2.协议层:通信协议(包括数据格式、传输速率等)

         UART 在发送或接收过程中的一帧数据由 4 部分组成,起始位、数据位、奇偶校验位和停止位 。

        起始位:一帧的开始,必须保持一个低比特的低电平0.

        数据位:传输的数据位,数据位可选5~8位,LSB在前,MSB在后。

        校验位:可选位,占用一个比特位,也可以没有校验。

        停止位:一帧的结束,必须有,可选占用0.5/1/1.5/2个比特位,保持逻辑高电平。

波特率:串口通信的速率用波特率表示,它表示每秒传输二进制数据的位数。单位是bps(位/秒).常用的波特率有 96001920038400、 57600 以及 115200 等。

      UART 负责完成数据的串并转换,而信号的传输则由外部驱动电路实现。电信号的传输过程有着不同的电平标准和接口规范,针对异步串行通信的接口标准有 RS232RS422、RS485 等,它们定义了接口不同的电气特性,如 RS-232 是单端输入输出,而 RS-422/485 为差分输入输出

等。

三.实验任务

        本节实验任务是上位机通过串口调试助手发送数据给启明星开发板,启明星开发板 PL 端通过 USB_UART 串口接收数据并将接收到的数据发送给上位机,完成串口数据环回。UART波特率:115200。停止位:1,数据位8,无校验位。

四.绘制系统框图

             uart_rx模块中:uart_rxd是串口接收到的数据,uart_rx_done表示数据转换完成(数据由并行数据转为串行数据)。uart_rx_data表示转换完成后的串行数据。注意:接收到的并行数据是1位,转换后的串行数据是8位。

            uart_tx模块中:uart_tx_dat表示转换完成的8位串行数据,uart_tx_en表示的是数据由并转串转换完成,uart_txd表示的是转换后的并行数据,uart_tx_busy表示的是数据由串转并正在转换中。

       

五.绘制波形图

                  因为uart_rxd是异步信号,并且起始位是低电平,这里需要捕捉下降沿变,因此需要对其打三拍进行处理,由此就可以得到数据接收起始位信号start_en信号,表示并行数据要来了,接下来可以进行并转串的工作了;

                  rx_flag表示并行数据转串行数据正在进行中,从start_en开始,到rx_cnt=9和baud_cnt到216结束。这里是因为避免该帧数据还没结束下帧数据起始位就来临的情况,因此把停止位控制在0.5个比特位;

                 baud_cnt:系统时钟为50Mhz,即50000000,而这里波特率选择115200,故50000000/115200=434,即传输一位数据需要434个系统时钟周期,故需要baud_cnt这个计数器。

                 rx_data:因为串行数据是8位,最好加个索引,方便找到某一位的数据,方便赋值。因此需要rx_cnt。

                 rx_data_t:转换好的串行数据。

                                                                uart_rx波形图 

uart_tx_en:表示串行数据转换完毕,即uart_rx_done信号。

uart_data_t:暂存转换完成的串行数据位,便于后续传输。

 baud_cnt:同上一样。

 tx_cnt:同上一样。

                                                                 uart_tx波形图 

六.仿真

                                                                    uart_rx仿真波形 

                                                                     uart_tx波形仿真

                                                                     uart整体波形图 

七.板级验证

              打开串口调试工具

 对需要调试的信号添加debug属性,将程序烧录到开发板上,串口助手中输入以下信息。

因为55 66 77的四位16进制码分别是 0101 0101  ,0110 0110,0111 0111.

             

       

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值