V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
totalfee
V2EX  ›  奇思妙想

一种新型的通信方式:计数器同步通信

  •  
  •   totalfee · 2017-09-24 12:16:31 +08:00 · 5465 次点击
    这是一个创建于 2616 天前的主题,其中的信息可能已经有所发展或是发生改变。
    先想象一条数轴:
    0_________________+∞

    计算机上的任何信息,都是二进制存储,都可以用一个自然数来表示,对应于数轴中某一个点。

    通信的本质,就是把一个自然数从一个空间传递到另外一个空间。

    因此我们可以在 A、B 两地分别放置一个同步计数器,当 A 给 B 传递某条信息时,A 先发送一个“开始计数”信号,A、B 两地的计数器便会同步开始计数:0、1、2、3...... 直到达到指定的自然数,A 再发送“停止计数”信号,此时 B 计数器显示的数字即为 A 传递的信息。

    目前难题:
    1. 计数器震荡频率提升。
    2. 计数器位宽提升。
    2. 计数器同步困难。
    38 条回复    2017-09-26 15:45:28 +08:00
    zmj1316
        1
    zmj1316  
       2017-09-24 12:31:35 +08:00
    你这就类似于一个定死的哈夫曼编码
    churchmice
        2
    churchmice  
       2017-09-24 12:40:14 +08:00 via Android
    所以我发送一个 10000,双方时钟得跳 1000 下对吧?这效率得有多低下啊?
    zgray
        3
    zgray  
       2017-09-24 12:43:43 +08:00 via iPhone
    时序库
    totalfee
        4
    totalfee  
    OP
       2017-09-24 12:45:03 +08:00
    @zmj1316 哈夫曼编码不是一种简单的压缩算法么,我这个通信方式不会传输数据本身,不用压缩。
    平常的通信你看网卡信号灯都在不停再闪,那是有二进制数据不断流过了数据线。
    我这种通信方式,只需要发送“开始”和“结束”两个信号,中途网线断了都不影响。
    LxExExl
        5
    LxExExl  
       2017-09-24 12:52:38 +08:00
    1. 如果开始 /结束两个信号能保证 CAP,为啥不直接发需要的信息?
    2. 我要发个 Hello World, 计数器怎么编码,怎么保证 A 和 B 的计数器是同步的呢?

    建议楼主了解一下 CAP 和分布式的相关概念
    aheadlead
        6
    aheadlead  
       2017-09-24 12:55:15 +08:00   ❤️ 1
    原谅我 我笑了一会 这有点像这个
    https://zh.wikipedia.org/wiki/魯布·戈德堡機械

    如果说我这个计数器最大的计数能力是 1 的话
    有没有觉得逐渐的又回到现在的通讯方式了
    nousername2030
        7
    nousername2030  
       2017-09-24 12:57:55 +08:00 via Android
    查了下一台铯原子钟几十万......
    totalfee
        8
    totalfee  
    OP
       2017-09-24 12:59:18 +08:00
    @churchmice 是的,同步跳动是关键。 至于效率我们就不讨论了,这个留给专家解决。
    totalfee
        9
    totalfee  
    OP
       2017-09-24 13:09:19 +08:00
    @LxExExl 通信的本质是简单的,其他复杂的东西都是为了解决某个问题而衍生的。

    至于你问我编码的问题,我给你举个容易理解的例子吧:
    “今天我在这个帖子里面第一次回复了你,算作发了“开始”指令。
    再过几天,也可能是好几年,具体好久取决于我要传给你的信息量,我会第二次在这个帖子里面回复你,算作发了“停止”命令。
    到时候你计算下这两个回复时间经过的分钟数(用分钟是因为我们选择的计数器精度有限),转换为二进制,再转 ASCII,就知道我给你表达的意思了。”
    LxExExl
        10
    LxExExl  
       2017-09-24 13:11:53 +08:00
    你发的"开始"我没收到怎么办?
    kifile
        11
    kifile  
       2017-09-24 13:19:34 +08:00
    和摩斯电码有异曲同工之妙
    totalfee
        12
    totalfee  
    OP
       2017-09-24 13:23:59 +08:00
    @zgray 强,一眼看穿本质。


    @aheadlead 是的,可以认为现有通信方式是 位宽为 1 的计数器。
    sujin190
        13
    sujin190  
       2017-09-24 13:26:57 +08:00   ❤️ 1
    跪了,现在的计算机通信本来就是这么设计的,而且经过无数人改进,还是应该多去读点书
    vmebeh
        14
    vmebeh  
       2017-09-24 13:31:05 +08:00
    温湿度传感器 DHT11 就是这样的
    datasheet: http://www.micropik.com/PDF/dht11.pdf
    中文版: https://cdn-shop.adafruit.com/datasheets/DHT11-chinese.pdf
    用的时候也就是需要按说明书写驱动了

    没学过通信,感觉大部分通信方式的底层都差不多吧,约定电压区间为 0 或 1,按特定频率和规则发送和接收
    totalfee
        15
    totalfee  
    OP
       2017-09-24 13:31:40 +08:00
    @nousername2030 是啊,所以这个通信方式目前没有实用价值。
    但是可以作为某些领域传输特殊信息,比如传输情报,监控只看到发了两个信号,没人会怀疑你在和外界通信。
    totalfee
        16
    totalfee  
    OP
       2017-09-24 13:33:27 +08:00
    @sujin190 我说我 97 年就开始学电子通信了你信不?
    ryd994
        17
    ryd994  
       2017-09-24 14:31:33 +08:00
    1.怎么保证同步
    2.怎么保证延时(丢包等效于无限延迟)
    做到这两点你可以重写 NTP
    3.考虑相对论了么
    做到这点你可以重写 GPS

    传输情报人家早就用数字电台跳频了,信号强度比背景噪声更低


    @vmebeh 这不一样,之前的 50us 是同步信号,可以假设同步信号之后,双方时钟没有大的变化
    crazyneo
        18
    crazyneo  
       2017-09-24 15:39:19 +08:00
    这不就是 ntp 协议的简化+昂贵版么-。-
    zhujinliang
        19
    zhujinliang  
       2017-09-24 18:37:25 +08:00
    就是相当于
    用 01 表示 0
    用 001 表示 1
    用 0001 表示 2
    ...
    这样呗。。。
    有没有考虑过 带宽 问题?
    hst001
        20
    hst001  
       2017-09-24 18:49:33 +08:00
    原子弹的原理大家都知道了
    geelaw
        21
    geelaw  
       2017-09-24 20:59:12 +08:00 via iPhone
    @totalfee 不要以为传输方式是可以保密的
    deanguqiang
        22
    deanguqiang  
       2017-09-24 21:17:54 +08:00 via iPhone
    从通信角度看: 如果计时器精度是 1ms,可以认为信道的带宽是 1kHz,也就是其实建立了一个 1kbps 的通信通道而已,没啥神秘的
    loading
        23
    loading  
       2017-09-24 21:28:34 +08:00
    听说过所有东西都在 pi 这个数里面吗?
    只要告诉计算机开始位置和结束位置就可了。(然后开始位置就长度爆表,加上算不出来,233 )
    akira
        24
    akira  
       2017-09-24 21:45:03 +08:00
    如何保证停止计数的同时性才是最大的难点
    houbaron
        25
    houbaron  
       2017-09-24 22:13:56 +08:00 via Android
    协议三要素:语法 语义 同步。前两个都可以人为定下,最后一个不好弄。
    CEBBCAT
        26
    CEBBCAT  
       2017-09-24 23:12:28 +08:00
    我想起了那个排序:睡排序
    zhs227
        27
    zhs227  
       2017-09-24 23:29:59 +08:00
    我以为,现有的通信系统或多或少都利用了时间的。只是除了时间的维度以外,在同时之外同时加了频域,码域来区分。如果只用时间维度的话,会是一个效率相当低下的系统。如果这个系统的信息交换容量得到了突破,那么其它通信方式一样会产生突破。
    huweic
        28
    huweic  
       2017-09-24 23:34:45 +08:00 via Android
    想了一下,还挺有意思的
    also24
        29
    also24  
       2017-09-25 00:10:04 +08:00
    @deanguqiang #22
    并没有 1kbps,1bit 是可以表示两种状态的,楼主的只能表示一种

    所以实际 1 秒只能表示 1000 种状态,差不多相当于不到 10bit 的信息量,也就是带宽在 10bps 以下
    also24
        30
    also24  
       2017-09-25 00:16:45 +08:00
    建议楼主可以看一下以下关键词:
    波特率,比特率,曼彻斯特编码,4B/5B 编码
    lonccc
        31
    lonccc  
       2017-09-25 08:24:15 +08:00 via Android
    假设时钟频率和 cpu 频率一样 3ghz,一个字节 8bit,0-255,取平均值 128,那一秒钟可以传 3g/128byte=22MB。楼主你知道你浪费了多少带宽吗
    mengyaoss77
        32
    mengyaoss77  
       2017-09-25 09:20:31 +08:00
    传输的信息取决于 开始到结束这么一段时间的时长啊。 时间不一样传输的信息就不一样。
    也就是说,我上面这句话,改一个标点符号,那么传输所耗的时间就不同 。感觉血亏
    deanguqiang
        33
    deanguqiang  
       2017-09-25 09:34:59 +08:00 via iPhone
    @also24 任何一个 cycle 可以发或者不发停止,所以从信道角度一个 cycle 就是一个 bit,楼主只是做了一个信源编码而已,这个信源编码把任何数据都编码成 10000000...1 这样的码流。这不是压缩,而是对带宽的浪费。
    amu
        34
    amu  
       2017-09-25 09:53:06 +08:00
    香农 通信的数学理论
    Panic
        35
    Panic  
       2017-09-25 11:01:08 +08:00
    在工程派这种想法屁用也没有
    also24
        36
    also24  
       2017-09-25 12:35:27 +08:00
    @deanguqiang #33
    我们对一个 bit 的定义可能略有区别,我所说的 1bit 其实是 “现有体系下 1bit 所能携带的信息量” 。

    anyway,1000....00001 这个部分我们是一致的,不过实际两边的 1 是无效的,相当于发了 000....0000
    Shouly
        37
    Shouly  
       2017-09-25 20:13:25 +08:00
    量子通信
    huclengyue
        38
    huclengyue  
       2017-09-26 15:45:28 +08:00
    有一个疑问。。。A 先发送一个“开始计数”信号 你这个信号是通过什么传递的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3029 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:55 · PVG 18:55 · LAX 02:55 · JFK 05:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.