前言
编码科技,作为储存科技中的一支,近年来逐渐知名
但是,关于编码,b站等主流平台并没有任何相关的从0开始的介绍。而且基本上大部分好用,值得学习的参考编码科技零部件被雪藏于社群中
小白想学习编码,基本上只能在社群里面问。但是并不是所有人都是E人,其次就是大部分情况下小白连怎么解码都不知道。
作者也是从小萌新走来的,虽然并不算很懂。但是希望能给看到这篇文章的你一些学习参考♥
今天不讲流程,不讲设计编码全物品整体,只讲最基本的编解码原理。把基础打好才是往上学习的助力
编码的原理

如图可见,这里有三个箱子
三个箱子上面分别放了不同颜色的玻璃方便区分
箱子内物品
红色玻璃:
橙色玻璃:
黄色玻璃:
每个箱子后面接上比较器,并且编上码
这样我们就算完成了一个及其简易的8bit编码器
如果你有注意的话,可以看到每个不同的箱子后面的码都不一样。箱子内也是非常奇特的填充方式
那这时候就有人问了:啊为什么要这么填充呢?
这样填充的目的是为了让任何一个物品被取出之后,检测箱子的比较器都会发生变化。
跑起来!
既然我们已经填充好了,是时候准备运行我们的超丐编码器了。一般我们使用漏斗矿车将箱子内填充物品取出
我们想要获得钻石的码,这时候我们需要将漏斗矿车的前四个格子填上占位符,最后一个填上钻石。这样只能取出钻石
如果你是按照图内去做的,那么从羊毛那一侧去看输出的码将是00110011(灯暗为0,灯亮为1)
那这是为什么呢?
如果你有注意上文的图片,那么你可以看到红色玻璃和橙色玻璃下的箱子里面都填了钻石。由于箱子填充是少了任何一个物品都会产生信号-1,而我们的矿车里能吸取的也是钻石,所以红色玻璃和橙色玻璃下面的箱子会被取走物品。
红色玻璃箱子检测到信号后处理了前半段的码(0011),橙色玻璃负责了后半段(也是0011)。将两个一半的码最终组合到一起,就成了完整的8bit 二进制码
为此我们可以得出来编码的原理:两个物品分别在不同的箱子里。两个箱子分别代表了前半段和后半段的码。被取出时两个码组合在一起,形成一个完整的码。
如果是其中一个箱子的另一个物品被取出,那么最终码是和那个物品的另一个存储箱子所对应的后半段码的组合
好我理解你看到上面那坨文字很难理解。大概意思是:前一个箱子相当于“路名”,后一个箱子相当于“门牌号”,两部分组合起来,才能唯一确定一个目标
不知道这个解释看到这的你能不能理解w,大概就这个样
有了编码,也得有解码
解码其实对比起编码来讲,不算更难。但是一般玩家不理解的地方就是运作原理。

一个简单的解码器+单片解锁。也就是我们俗称的编码单片
如果我们看上图,可以看到很多的侦测器,以及一个激活的红石粉激活了底部的铁轨。最右侧侦测器检测底部铁轨的变化触发解锁单片
那问题来了,我们要如何激活底部铁轨呢?这看起来是永远激活的。其次是看起来就算左侧红石粉熄灭,也会全解锁所有的单片
稍安勿躁,先让我们看一下前置(车头)w
上图看到的,就是解码器的前置。
前置要做的,是将编码器输出的码转化成单片能接收的形式。这一步如果要理解需要一点关于计划刻的知识。

按照图中的设计,当我们点击音符盒时,会激活侦测器充能比较器。但是由于比较器的计划科稍靠后,在检测自身状态时侦测器已经熄灭了。导致比较器未能成功亮起
为了解决这个问题,我们可以给比较器另一个更新,让比较器提前运算自身
这样比较器就亮起了
那…这有什么用呢?
让我们回到前置的图片
可以看到音符盒那里就是码输入,每一个音符盒后面都有活塞。被激活时活塞把侦测器推出,随后最右边的音符盒被激活。按照从右到左的顺序把侦测器推下去。侦测器本身被推之后激活铁轨,输入到前置那里。而最右边音符盒被激活后也会激活那一坨一排中继器。这样如果刚好铁轨被激活就会激活比较器。
这样,我们就算完成了一次码的录入
此时,输入完成后,前置复位,有一侧是专门延迟奇数gt的。其他的bit如果比较器被激活就会提前2gt,如果没被激活就维持4gt后激活。与此同时那串红石线也会熄灭2gt。这就算输出了。
而如果有符合码的,那么经过这一坨时序铁轨之后会有1gt的窗口期,被侦测器检测到解锁单片。如果是不符合的,那么无论是什么码,只要不符合那个单片。那么都是常亮不会被侦测器检测。
说再简单一点:运用时序让只有相同编码的铁轨会被激活,其他的由于时序原因铁轨会常亮。
解码解释起来很复杂(虽然原理并不复杂),如果想要真正去理解解码的原理,推荐无元yo的二进制编码仓库存档去学习。稍微摸几下就很快能理解了。
什么?解码不止一种???
没错,实际上解码器有三种不同的设计。基本是不同的解码原理。本篇文章只讲了crain,实际上总共有dreams,crain,floppy三种形式。由于作者咕咕,暂不讲解这部分细节w(作者飞走了咕咕)。需要的话自己可以去找找设计,floppy解码器推荐30的编码大厅参考。dreams解码器由于用途较少,你只需要这是用了bud投掷器的crain魔改就行了w
dreams解码器
floppy解码器
感谢你看到此处!
写这篇文章也算是对我本人的编码理解稍微进行了次复习。与此同时,因为编码是个很大的储电分支,为此其实要想娓娓道来并不容易。而且还没讲到16进制,那个讲起来我自己都觉得太复杂了w。日后也会写关于bit,二进制,十六进制的文章w
欢迎你在这篇文章底下提建议(我知道我的博客评论还暂时没法用w,但是会解决的,s∞n)!
感谢:
- wreg 提到的部分修改建议,画更大的大饼
- 林间(仙人掌)的文章,群内的解码器介绍
还有,看到这的你w。希望你能看完这篇文章后能稍微理解编码的原理
储电学习群/交流大群:
- OpenST: Trice的大群,以开源为理念,欢迎任何新人。QQ群号:440138916 官网:https://openstmc.com/
虽然不完全是储电,基本啥都聊。但是还是宣传下 - Linvin的鸽子窝:作者本人的群,人数少。每天只有咕咕咕复读机,但是也欢迎来跟作者交流,或者提建议。亦或者把作者烤了来吃。群号:1064146730