历史上的今天
返回首页

历史上的今天

今天是:2024年09月27日(星期五)

正在发生

2021年09月27日 | 串行接口的工作原理和实现

2021-09-27 来源:eefocus

串口的结构和工作原理

通用异步收发传输器(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平台),不断的去查询寄存器是是否变化,之后将写入的数据发送给板子的串口

推荐阅读

史海拾趣

FRIWO公司的发展小趣事

FRIWO公司自成立以来,始终在技术领域保持领先地位。从便携式收录机问世之初,FRIWO就凭借其先进的技术在该领域崭露头角。随后,随着技术的不断进步,FRIWO迅速将业务扩展到Atari计算机、摄影机等新兴领域,并成功成为这些领域的电源解决方案提供商。近年来,FRIWO更是专注于移动电话充电器市场,凭借其卓越的技术实力和创新能力,成为了世界上移动电话充电器的最主要供应商。这一系列的成功,彰显了FRIWO在电子行业中的技术领先地位和多元化发展战略。

远阳(FLYOUNG)公司的发展小趣事

福建国光新业科技股份有限公司,作为全球领先的聚合物片式叠层铝电解电容器(MLPC)制造商,自成立之初便致力于国产高端被动元器件的技术开发与产品创新。面对高端电容器被国外厂商长期垄断的局面,国光新业经过长期技术积累与研发,成功打破了国际垄断,实现了MLPC电容器的国产替代。这一成就不仅填补了国内空白,还使公司在细分领域发明专利授权数量上跃居全球第一,荣获多项国家级荣誉称号。

ASI [ASI Semiconductor, Inc]公司的发展小趣事

随着电子行业的快速发展,许多电子产品型号逐渐停产或变得稀缺。ASI敏锐地捕捉到了这一市场变化,并开始专注于生产停产及稀缺元器件的替代或新设计。其RF功率晶体管生产线主要提供Motorola、Philips及SGS Thomson公司的替代型号,而微波二极管生产线则主要提供HP、M/A-COM、Alpha及Loral/Frequency sources公司的替代型号。这一策略不仅满足了市场的需求,还进一步巩固了ASI在行业中的地位。

Gemmy Electronics Co Ltd公司的发展小趣事
可能是由于电容器老化、容量下降或升压电路故障导致高压不足。
创基(CBI)公司的发展小趣事

品质是电子行业的生命线。CBI公司始终将品质管理放在首位,通过引进先进的生产设备和检测仪器,建立严格的质量控制体系,确保产品的品质稳定可靠。此外,公司还注重员工的培训和教育,提高员工的品质意识和操作技能。这些措施使CBI的产品在品质上赢得了消费者的信赖和认可。

ETEQ Microsystems Inc公司的发展小趣事

面对电子行业日新月异的发展变化,ETEQ Microsystems Inc始终保持敏锐的市场洞察力。公司不断调整战略方向,积极应对行业变革带来的挑战。未来,ETEQ Microsystems Inc将继续加大研发投入,推动技术创新和产品升级,致力于成为电子行业的领军企业。

问答坊 | AI 解惑

中国工程师生存情况大揭密!欢迎揭黑!

由于经济环境方面的原因,毫不夸张地说,中国工程师的生存状况在脑力劳动者群体中的表现和体力劳动者群体中的井下矿工极为相象,比如他们都背负着巨大的压力(当然一个是精神压力一个肉体的压力),都经常加班工作。而且也是经常在某个重大恶性事件 ...…

查看全部问答>

是不是有便宜的空pcb板可以买到啊!

要是让制作商制作一块pcb板需要很多钱的,问问大家是不是能买到便宜的空白pcb板啊!…

查看全部问答>

为什么CCS需要安装Driver?

CCS是开放的软件平台,它可以支持不同的硬件接口,因此不同的硬件接口必须通过标准的Driver同CCS连接。 Driver安装的常见问题? 请认真阅读“安装手册”和Driver盘中的Readme。 1)对于SEED-XDS,安装Readme中的步骤,将I/O口设为240/280/320/34 ...…

查看全部问答>

求程序的验证结果

小弟有一个程序,但没硬件平台,希望大家在硬件上验证后告诉下结果。(是考试的程序) #include sbit P1_0=P1^0; sbit P1_1=P1^1; void DELAY(int i) {    TMOD=0X01;    EA=0;    TR0=1;    whi ...…

查看全部问答>

LED照明产品检测方法中的缺陷和改善

传统的LED及其模块光、色、电参数检测方法有电脉冲驱动,CCD快速光谱测量法,也有在一定的条件下,热平衡后的测量法,但这些方法的测量条件和结果与LED进入照明器具内的实际工作情况都相差甚远。文章介绍了通过Vf-TJ曲线的标出并控制LED在控定的结 ...…

查看全部问答>

从现在开始,一起学习LM3S811吧

就如我上个贴“春天到了,又将有大批Stellaris的板子运到EEWORLD https://bbs.eeworld.com.cn/thread-254845-1-1.html”所说,大批的Stellaris LM3S811就要来了! 大家之前都专心在LM3S8962,现在可以开始分分心来研究LM3S811了,把自己对LM3S811 ...…

查看全部问答>

关于堆栈提示警告的困扰!!!

在ccs3.1环境下新建一个工程之后,编译完了之后老是提示一个警告:     warning: creating .stack section with default size of 400 (hex) words.    Use             -stack opt ...…

查看全部问答>

【问TI】6713的ARE连接FIFO的读时钟?

6713的ARE连接FIFO的读时钟ARE不是使能信号吗如何当时钟应用啊…

查看全部问答>

IO 口驱动直流电机

大家好。 我想用单片机的IO口直接驱动直流电机。  需要在IO口上接驱动电路吗? …

查看全部问答>

MSP430FG439上实现IO模拟UART以及移植要点解析

最近要做MSP430上的开发,一上手就要做IO模拟UART这种难度的玩意,幸好网上已经有很多现成的MSP430的软串口实现例子,本文代码大部分参考>http://www.microcontrol.cn/430base.htm上的《MSP430的Timer_A实现模拟串口功能例程》,并且成功移植到MSP4 ...…

查看全部问答>