IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 龙芯1B:串口通信例程 -> 正文阅读

[嵌入式]龙芯1B:串口通信例程

文章目录


前言

一、串口通信?

1.串口通信的基础与分类

2.波特率

3.单工、半双工和全双工

4.起始位、数据位、奇偶校验位、停止位

5.TXD,RXD,GND

二、龙芯UART串口介绍

三、程序代码

总结


前言

串口可以在某种程度来说,是一个单片机向外界传输信息的可靠途径,指的就是经过编码后的信息在某一可靠传输介质上传输的过程。这一期咱们就来讲讲龙芯1B的串口通信吧。
在此谢谢各位的关注了,大家的关注是我更新的持久动力!


一、串口通信?

1.串口通信的基础与分类

串口通信出现的时间比较早,速率低,距离近,干扰并不明显,当时使用的就是电平信号。后续经过不同的修改逐渐成为了差分信号传输。

串口通信每次都是同时只能传输1个二进制位。

首先我们可以把串口通信的分为TTL电平和RS232电平!不管哪种电平在工业上,TTL适合近距离且干扰小的情况。RS232电平传输适合于一种干扰大并且距离也可以毕竟大的情况。但这两种方式是不能混为一谈,胡乱接线!

龙芯串口通信:

2.波特率

波特率,就是串口通信的速率,也就是每秒钟可以传输多少个二进制位。比如,每秒钟可以传输9600个二进制位,则波特率就是9600。(传输一个二进制位的时间是1/9600秒,也就是104us)

3.单工、半双工和全双工

单工:甲方向乙方收发暑假,甲发送,乙接收

半双工:甲乙双方分时间的收发数据,甲发送,乙接收或者乙发送,甲接收(双方不能同时进行)

全双工:甲乙双方同时收发数据,甲发送,乙接收或者乙发送,甲接收(双方可以同时进行)

4.起始位、数据位、奇偶校验位、停止位

? ? ????????串口通信是一个周期接着下一个周期进行的,每个周期传输许多个二进制位。每个周期由:起始位+数据位+奇偶校验位+停止位组成。

? ? ? ? ? ? 起始位:表示发送方要开始发送,起始位的定义是串口通信标准事先指定的,根据通信线上的电平变化而变化。

? ? ? ? ? ? 数据位:是真正要发送的有效数据,串口通信一次发送多少位有效数据是可以设定的(可选的有6、7、8、9,一般都是选择8位数据位,因为一般通过串口发送的文字信息都是ASCII码编码,而ASCII码中一个字符刚好编码为8位)。

? ? ? ? ? ? 校验位:是用来校验数据位防止数据位出错。

? ? ? ? ? ? 停止位:是发送方用来表示本通信单元结束标志的。

5.TXD,RXD,GND

串口通信是有线通信,可以实现全双工通信。甲乙双方txd? rxd互相反接才行。

二、龙芯UART串口介绍

1B集成了 12 个UART核,通过APB总线与总线桥通信。UART控制器提供与MODEM 或其他外部设备串行通信的功能,例如与另外一台计算机,以RS232 为标准使用串行线路 进行通信。 该控制器在设计上能很好地兼容国际工业标准半导体设备 16550A。

UART 控制器有发送和接收模块(Transmitter and Receiver)、MODEM 模块、中断仲 裁模块(Interrupt Arbitrator)、访问寄存器模块(Register Access Control),这些模块之间 的关系见下图所示。主要模块功能及特征描述如下:

? 发送和接收模块:负责处理数据帧的发送和接收。发送模块是将FIFO发送队列中 的数据按照设定的格式把并行数据转换为串行数据帧,并通过发送端口送出去。 接收模块则监视接收端信号,一旦出现有效开始位,就进行接收,并实现将接收 到的异步串行数据帧转换为并行数据,存入 FIFO 接收队列中,同时检查数据帧格 式是否有错。UART 的帧结构是通过行控制寄存器(LCR)设置的,发送和接收器 的状态被保存在行状态寄存器(LSR)中

? MODEM 模块:MODEM 控制寄存器(MCR)控制输出信号 DTR 和 RTS 的状态。 MODEM 控制模块监视输入信号 DCD,CTS,DSR 和 RI 的线路状态,并将这些信号 的状态记录在 MODEM 状态寄存器(MSR)的相对应位中

? 中断仲裁模块:当任何一种中断条件被满足,并且在中断使能寄存器(IER)中相 应位置 1,那么 UART 的中断请求信号 UAT_INT 被置为有效状态。为了减少和外 部软件的交互,UART 把中断分为四个级别,并且在中断标识寄存器(IIR)中标 识这些中断。四个级别的中断按优先级级别由高到低的排列顺序为,接收线路状 态中断;接收数据准备好中断;传送拥有寄存器为空中断;MODEM 状态中断

? 访问寄存器模块:当 UART 模块被选中时,CPU 可通过读或写操作访问被地址线 选中的寄存器

三、程序代码

代码如下(示例):

uart.c:

#include "uart.h"
#include "ls1b.h"
#include "ls1b_gpio.h"
#include "ns16550.h"
#include "stdio.h"
#include "led.h"
#include "string.h"
#include "uart.h"
/*******************************************************************
 **函数名:UART5_set_IO
 **函数功能:初始化uart的IO口
 **形参:无
 **返回值:无
 **说明:   UART5_RX:60 -- 数据接收
            UART5_TX:61 -- 数据发送
 *******************************************************************/
void UART5_Config_Init(void)
{
    unsigned int BaudRate = 9600;
    ls1x_uart_init(devUART5,(void *)BaudRate); //初始化串口
    ls1x_uart_open(devUART5,NULL); //打开串口
}

int count;
char buff[256];

//测试
void UART5_Test(void)
{
    //接收数据
    count = ls1x_uart_read(devUART5,buff,256,NULL);
    if(count > 0)
    {
        //发送数据
        ls1x_uart_write(devUART5,buff,8,NULL);
    }
    
    delay_ms(500);

    if(strncmp(buff,"ABC",6) == 0) //比较前n个字节
    {
        LED_ON();// 开启LED
    }
    if(strncmp(buff,"ABD",6) == 0)
    {
        LED_OFF();//关闭LED
    }
        if(strncmp(buff,"ABE",6)==0)
    {
        LED_Wa();//流水灯
    }

}


总结

源码链接:龙芯1B:串口通信例程-单片机文档类资源-CSDN文库

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-09-04 01:27:46  更:2022-09-04 01:31:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 17:29:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计