串行接口的工作原理和实现

串口的结构和工作原理

通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。
uART使用标准的CMOS逻辑电平(0~5v、0~3.3 V、0~2.5V或0~1.8V四种)来表示数据,高电平为1,低电平为0。为了增强数据的抗干扰能力,提高传输长度,通常将CMOS逻辑电平转换为RS-232逻辑电平(3~15v以o表示,-3~-15V以1表示)。
在这里插入图片描述
上图为串行接口的原理图,可以分为三部分分别为发送缓冲寄存器,波特率发生器,接受缓冲寄存器,发送缓冲寄存器从总线接受资源,通过波特发生器发送到接收缓存器中
一句话总结串口:异步全双通串行数据总线

串口寄存器的配置

我们通过查手册找到串口,和我们分析的一样,三条线一个AST,DSR,DGND
在这里插入图片描述
:我们通过看原理图知道,他的两根线一个是接受数据的,一个是发送数据的,其中接地线是用来调节电平的,他的通信方式是通过是板子的串口线和笔记本的串口线,他中间通过一个电平转换芯片来进入这个
在这里插入图片描述
继续翻阅可以看见它通过排叉到核心板,这样就可以看见他连接到GPA0的引脚
在这里插入图片描述

传输实现

在这里插入图片描述
查看手册,对GPA0进行配置

#define GPA0CON *((volatile u32 *)(0x11400000))
#define UART0BASE 0x13800000
 //将GPA0-0  1引脚配置为串口0的发送和接收功能
    GPA0CON &= ~(0XFF<<0);
    GPA0CON |= 0x22;

对串口进行配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//配置数据位8N1
    ULCON0 = 0x3 <<0;
    //配置串口数据收发方式为中断或者论寻
    UCON0 |= (0x1 << 2) | ( 0x1 << 0);
    //使用无FIFO模式
    UFCON0 = 0x0;
    //禁用modem流控
    UMCON0 = 0x0;
    //配置波特率为115200
    UBRDIV0 = 53;
    UFRACVAL0 = 4;

通过这个寄存器来进行数据的收发,0=缓冲区为空,1=缓冲器接收到数据,所以我们这样来实现

在这里插入图片描述

void uart0_putchar(char ch)
{
        while (!(UTRSTAT0 & (0x1 << 1)))
        {
                ;
        }
        UTXH0 = ch;
        
}
char uart0_getchar(void)
{
        char c;
        while (!(UTRSTAT0 & (0x1 << 0)))
        {
                ;
        }
        c = URXH0;

        return c;
        
}

int main(void)
{
  

    uart0_init();
    u8 c;
    while ((c = uart0_getchar()) != '@' )
    {
        uart0_putchar(c);
        uart0_putchar('\r');
        uart0_putchar('\n');
    }
    
    return 0;
}

通过这样的配置,然后我们通过交叉编译,在arm板中运行这个,就可以实现最简单的串口通信.

串口通信原理的理解

由于程序是跑在板子上的,所以我们的板子请求笔记本发送数据(通过kermit平台),不断的去查询寄存器是是否变化,之后将写入的数据发送给板子的串口

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值