假如古代用异步通信——谈谈串口的异步通信
假如古代用异步通信——谈谈串口的异步通信我们经常提到串口是异步通信。
那到底啥样的异步通信呢。
我们先复习下串口通信。是有三个引脚,TX,RX,GND。
如果只考虑单方向发送,就只有TX和GND。
我们再把GND先不考虑,那就只有一条线了。
那么是如何通过一根线就能进行数据传输的呢。
一根电线,就是有电和没电,就这两种状态。
我们换直观一些的,换个灯。就是只有亮或不亮。
那么如何在亮和不亮之间,怎么通过异步通信,实现数据的传输呢。
我们通过讲故事的形式来讲一下这个异步通信。
《梦回三国之异步通信》
话说小诸同学,某种偶然,穿越到了三国。奈何读书不多,历史不太好,没能像很多穿越小说那样,搞经济,搞科技生产等。
但是凭着不多的知识,还是混到诸葛亮的身边当谋士。此处快进到小诸同学成为谋士的剧情。
古代信息传递可以说是非常重要的,甚至会影响军事战略等。这时候的三国,信息传递还是停留在飞鸽传书,快马加鞭,驿站传信。
由于物资及科技的限制,掌握着各种物联网通信手段和知识的小诸同学也无能为力呀。
这时候小诸同学想到了串口异步通信。于是为诸葛军师设计一套三国异步通信方案。
由于没有什么照明条件,太阳落山之后,蜀地可以说很是漆黑的,正是可以用光来传递信息。
于是小诸同学照着串口异步通信的原理,这样应用。
发送和接收信息的人,就是信号兵。
准备一个可聚光的照明灯笼,给它起名为信号灯。这漆黑的夜晚,几十里开外,都能看到信号灯。下一步就是怎么通过这个信号灯传递信息了。
发送信号兵就操作这个信号灯,让它亮和灭。接收信号兵就是观察这个信号灯的状态,分析它的工作状态和内容。接收信号兵要是看到信号灯亮起来了。就表示信号灯准备工作了。接收兵就要随时记录信号灯内容了。
孔明:可是怎么样才能知道信号灯开始工作呢?
我们设计一个起始位。信号灯就绪之后,就是一直长亮状态。如果要开始传递信息数据,我们就先将信号灯盖住,这样接收兵突然看到信号灯灭了,就表示接下来要有数据了。这就是起始位了。孔明:此举甚好,但是要灭多久呢。
丞相,子东设计个吊钟,这一来一回,主是一秒钟。我们就以一秒为单位。每一秒就是一格信息,一格就代表信号灯亮还是灭。
孔明:那一秒后,信号灯要亮还是灭呢。诸多汉字,又如何传递呢。
丞相再看。起始位之后,我们每秒看一格内容,是亮还是灭。三个格为一卦。比如,三格都为亮,则为乾卦。三格为灭,则为坤卦。
六个格就可以表示八八六十四卦。每一格我们就是一个数据位。
一共设计12个位,两个六十四卦,就能有4096个卦了。
丞相可看,我们把汉字都排列分配到这4000个卦里。
比如,乾乾乾乾卦表示一字。乾乾乾巽卦表示二字。坤坤离离表示刘字。
如此一来,我们只需要12个位。(常规串口是8个位,剧情需要,改成12个位)。就能把汉字都表示起来。然后我们将这个汉字排布统一发布,军中通信统一一个编码,就叫蜀码表如何。(汉字编码GB 2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个)
孔明大为震惊:这样一来,只需要这个信号灯一亮一灭,就能将汉字传出去,实在是妙呀。可是要怎么传递连续的汉字呢。
起始位之后,我们传递了12个位,这时候接收兵就可以把当前内容记录下来备用。发送兵就将信号灯保持亮起,就作为停止位。这样一个字就传输完成。如果要传递下一个字,信号兵等个几秒左右,留给对方点时间记录和准备接收下一个字节。
然后再开始下一个字的传递,起始位,数据,停止。
我们再对信号兵加以训练,就可以很好地进行通信了。
我们来练习一下。这边发送兵准备好了。接收兵也做好准备。
现在发送兵把信号灯点亮。接收兵做好准备好喂。(TX的空闲状态是高电平)发送兵开始将信号灯灭一秒。表示起始位了。(TX先发一个起始位)发送兵紧接着将信号灯亮和灭。一共维持了12秒,也就是数据了。(TX再发数据位+校验位)发送兵将信号兵维持亮的状态。当前字发送完成。(TX最后发停止位,停止位和空闲状态都是高电平)等了几秒后,又开始传下一个字。(每个字节传输之间有间隔)
丞相您看,传递一份简报,只需要一盏茶时间即可。效率是不是比以往快了很多。
我们在军中可以创建信号兵营,专门挑选和培养信号兵。到时候在军中都可以随时用这种通信机制来提高效率。
孔明:可是这样传递信息,迟早会有探子发现并将该技术偷去,就能破解我们的内容了。
丞相不用担心,常规情况下,我们是明文传递信息。那我们就干脆将这个方案推广出去,这样大家都会了之后,以后对战,两军对峙,不需要阵前喊话了,可以隔着老远用信号灯通信。
我们蜀军内部通信,重要军情就用加密本通信。这样敌方就不知道我们的真实内容了。
---------------------------------------------------------------
不久之后,赤壁之战来了,此时用信号灯通信已广为使用。
两队对垒,大战在即。诸葛亮和周瑜决定用信号兵和曹贼阵前打个招呼以示尊重。
诸葛亮命信号兵准备信号灯,给大江对面传递内容。
曹营这边看到对面信号灯准备起来了。
信号兵来报,报告丞相,对向信号灯准备好,似乎准备传递信息。
曹丞相:接信号。要第一时间报上来。
一会后,第一个信号兵“报,对面传来了第一个字”
曹丞相:快说。
第一个信号兵:“操”。
曹:“来人,将此人拖下去三十大板”。
第二个信号兵,报告丞相,对方传来第二个字。
快说。
"近"
第三个小兵,对方又传来一个字。
"来"。
第四个小兵来报。"可"。
第五个小兵来报。"好"。
第六个小兵,报告,暂时没有消息了。
原来消息是,操,近来可好。
来人,回消息。
此时孙刘阵营,信号兵:对面好像要传递信息。
对面好像在骂脏话,骂得还挺脏。
不管了,打就是了。
依然还是和历史一样,曹战败。
----------------------------------------------------------番外篇多年后。
司马懿兵临城下。诸葛亮决定使用空城计。
司马懿未敢攻城,夜幕开始暗下。
已撤退的部队用信号灯和空城里的诸葛孔明联系。
就一来一回,一盏茶时间。
“敌撤退否”,“没,我现在慌得一批”。
司马懿手下信号兵。“将军,对方似乎正在用信号灯通信,我已获取到内容”。
司马懿,“哦,快说,是什么内容。”
“敌进城没”,“否,埋伏等司马中计”。
司马懿,“我就说有埋伏,切莫中计。听我令,撤退。”
+++++++++++++++++++++++++++++++++++++++++
说到这个异步通信,也就是这么回事。
如果用信号灯来理解,就是灯一亮一灭,然后约定好每个信号数据的时间进行统计,就得到数据了。
当然,现在科技发展了,这种用信号灯通信也是非常常见的。
最常见的一种应用就是,遥控器。
遥控器前面有个红外灯,可以发送红外光。电视机有个红外光接收器。
当我们按下一个按钮的时候,这个红外灯,就发出一组也是亮灭的信号组合。
对方收到之后,就按约定的时间,比如每1ms看一下是亮还是灭,就得到数据,拼起来就是发送的报文或指令了。
随着技术的发展,灯的发送和接收处理性能上来了。
就有一个叫Li-Fi的技术。
号称开灯就能上网的技术。也就是信号灯的现代化应用。
不过,受技术限制,也没能很好地推广和使用。日常生活中也很少见到Li-Fi的应用了。
页:
[1]