核电仿真卡项目技术回顾 -- 串口通讯、以太网通讯的对比

- 串口通讯 - 了解串口通讯

常见的串口通信一般是指异步串行通信。这里就要说一下同步和异步的区别了。算了,还是先讲一下串行通信的概念。那么,与串行通信相对的是什么呢。

与串行通信相对的是并行通信。数据传输一般都是以字节传输的,一个字节8个位。拿一个并行通信举例来说,也就是会有8根线,每一根线代表一个位。一次传输就可以传一个字节,而串口通信,就是传数据只有一根线传输,一次只能传一个位,要传一个字节就需要传8次。就像小虎队那首歌一样,把你的心,我的心,串一串,再烤一烤。。串口通信就是把数据串在一根线上传输,所以就叫串口吧。

串口通讯和同步通讯的对比

|串口通讯|并行通讯 |
|-异步-|-同步-|
|一根线,适用于对速度要求不高的场景 | 8根线,需要一个同步时钟设备,让8根线一起发送信号|

如何保证一根线也能正常发送数据呢?

串口通讯必须遵守的协议

串口通讯的三种方式232,485,422 对比

|232 | 485 |422|
|-全双工-|-半双工,比如对讲机-|全|
| 通信距离不长 | 通讯距离长 |长|
|需要3根线|2根线|4根|

串口通讯属于七层网络通讯的那一层?

串口通信包含了物理层(物理链路传输,串口线)、数据链路层(成帧,起始位、数据位、校验位、结束位)、应用层(应用数据的打包由串口编程自己制定)三方面的功能。

串口和以太网的关系

以太网是局域网的一种组网结构,而串口是电脑的一种数据传输接口,两种接口不管是接口规范标准还是传输速率都不一样
以太网是网络类型,串口是网络接口类型
是两种通信方式,实现原理以及应用场景都不相同
所以以太网通信传输速率是串口通信的12500倍。

以太网是数据链路层的一种技术,不是一种网络形式,这个要区分开来,不要被以太网的网字迷惑了

python 串口通讯实现

import serial  # 采用串口通讯
import time
import struct
import random
class ComCard():
    def __init__(self, port = 'COM3', baudrate = 9600,dialAddress = 1):
        self.dialAddress = dialAddress
        try:
            self.port = serial.Serial(port = port, baudrate = baudrate, timeout = TIMEOUT)
        except Exception as e:
            print '__init__ error:',e
def readCardTypeConf(self):
   
        cmd = self.dialAddress + [0xFE, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x00, 0x00, 0x00]
        
        self.port.write(cmd)
        response = self.receive(74)
        
        if len(response) == 74:
            confList = []
            confList = response[8:72] 
            unpack_data = struct.unpack('B' * len(confList), confList)
            return unpack_data
        else:
            print 'readCardTypeConf response error',len(response)
            return []

串口转以太口:

串口数据转以太网

串口转以太网并不是简单传输媒介的变化,而是串口到TCP/IP的协议转化。其中关系到的关键技术包括:TCP/IP的工作模式问题、串口分帧技术、9位技术。
 串口转以太网,并不是简单物理层和数据链路层的转化。由于串口协议本身不具有网络层和传输层,串口转以太网,实际是将串口的数据作为TCP/IP的应用层数据,用TCP/IP封装传输的方式。TCP/IP的应用层数据是TCP/IP所要传送的真正有效的数据。例如用户通过socket的recv()和send()函数接收和发送的实际是应用层数据。这样通过串口转TCP IP用户就可以用recv()和send()函数收发串口数据了。
  串口一般来说就是UART,它实际只定义了数据链路层的规范,也就是起始位、数据位、停止位。但是在不同的物理层又分为:TTL串口、RS232串口、RS485串口等。
  由于串口协议本身不具有网络层和传输层,串口转以太网口,实际是将串口的数据作为TCP/IP的应用层数据,用TCP/IP封装传输的方式。TCP/IP的应用层数据是TCP/IP所要传送的真正有效的数据。例如用户通过socket的recv()和send()函数接收和发送的实际是应用层数据。这样通过串口转TCP IP用户就可以用recv()和send()函数收发串口数据了。

UART是串口通讯实现的关键技术

UART作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。

以太网和互联网、局域网的区别

  1. 网络按照区域,分为广域网和局域网
  2. 以太网属于数据链路层
  3. 然后在这个小区域(局域网)里建设网络,就需要使用多种标准技术,其中电气标准中规定用双绞线还是单芯线等,这个电气标准中有以太网技术、令牌环网技术、ATM网技术、帧中继技术等,不要被以太网中这个网字迷惑,把它看成技术,我们是用了CSMA/CA技术(别名:以太网技术),使用方便、网络建造简洁,以太网技术就是流传开来。3、局域网中物理网络按照以太网技术敷设完毕,还并不能通信,这个时候就需要其他技术标准,我们经常见到的TCP/IP技术,tcp/ip技术可以依托以太网技术、令牌环网技术等上使用,而且我们经常TCP/IP与以太网配合使用,所以我们日常中口语中容易将TCP/IP与以太网技术混在一起说。其实是不同层级的技术。
    在这里插入图片描述

作者:张雄杰
链接:https://www.zhihu.com/question/19918493/answer/117106080
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值