博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对串行设备的理解
阅读量:5764 次
发布时间:2019-06-18

本文共 843 字,大约阅读时间需要 2 分钟。

大学毕业之前一直都没有接触到嵌入式,所以对这个概念的理解也是很糊,互联网上也比较难找到通俗易懂的定义。

下面我来说说我自己的理解:

这个问题需要从数据流来考虑,一个设备时会发送信息的(数据),所谓一个局部系统(此设备),那么这个信息流就是它的输出,当然此设备肯定也会有输入,因为一个系统不可能只有输出,没有输入。从信息论的角度看,因为信息不会自发(凭空)的产生(信息的产生须有一个熵的来源)。所以程序不会自发产生数据,必然有数据是对程序的输入,因为这个输入,程序才产生了输出。那么设备也是一个硬件化的程序,这样就非常好理解。所以设备产生的数据输出,是随着时间的累加逐个过来的,以数据的处理者(一般是CPU),这些数据就可以当做输入。类似于有限状态机的模型。比如,网路上我们看视频,视频的帧信息就是逐个过来的,那么这边系统处理这些数据,就是把这些逐个过来的数据压入进队列(FIFO),然后从这个队列中逐个获取信息,这个就是所谓的流。(数据流)。有些东西必须用流的这种思想方式来做,数据的生产者一直在产生数据,数据的消费者也需要不断处理(消费)这些数据。所以从抽象上它就必须是串行的。就是一点点的处理生产者传过来的数据,而不是所有数据传过来再处理。(当然,串行设备的数据大小有点随机,也不可能知道它到底有多少数据产生,比如鼠标,键盘,调制调解器(Modem)就是串行设备,因为我们的键盘,鼠标击键的消息是随机不断的,无穷的))。

 

这也是UART存在的目的,在串行通信和并行通信间作为一个中间者转换。因为计算机内部使用并行数据,不可能直接把并行数据传到串行设备中。过程是这样的:CPU先把准备写入串行设备的数据放到UART的寄存器(临时内存块)中,再通过FIFO(先入先出队列)传送到串行设备,若是没有FIFO,信息将变得杂乱无章(那么就不是串行了),不可能传送到调制调解器(Modem)。

转载于:https://www.cnblogs.com/foohack/p/4228235.html

你可能感兴趣的文章
lamp+nginx代理+discuz+wordpress+phpmyadmin搭建一
查看>>
nagios监控使用139邮箱报警
查看>>
Windows Phone 7 中各种Task解说(启动器与选择器)
查看>>
罗森伯格助力2011年中国智能建筑技术发展应用论坛哈尔滨站
查看>>
windows server 2016 活动目录(二)
查看>>
openstack G版 修改vm的flavor级别
查看>>
python_控制台输出带颜色的文字方法
查看>>
java泛型中特殊符号的含义
查看>>
Android组件化最佳实践 ARetrofit原理
查看>>
舍弃浮躁, 50条重要的C++学习建议
查看>>
同步手绘板——将View的内容映射成Bitmap转图片导出
查看>>
【Android游戏开发之十】(优化处理)详细剖析Android Traceview 效率检视工具!分析程序运行速度!并讲解两种创建SDcard方式!...
查看>>
微信小程序之wx.navigateback往回携带参数
查看>>
陌陌和请吃饭之类的应用,你要是能玩转,那就厉害了
查看>>
递归的运行机制简单理解
查看>>
汉字转阿斯克马值
查看>>
Java 栈与堆简介
查看>>
【supervisord】部署单进程服务的利器
查看>>
zabbix oracle监控插件orabbix部署安装
查看>>
python3 通过qq 服务器 发送邮件
查看>>