【软件工程师学硬件】之 通信

提到通信,软件工程师并不陌生,但他们更多的是指网络通信,尤其是指socket。你要是和软件工程师说什么串口、SPI、I2C、Modbus、CAN等等什么的,他们也会莫名其妙。俗话说,“隔行如隔山”,就是这么个道理。
今天我们不说socket,只说硬件中的几个基本的通信方式。
硬件虽然属于底层,但是通信也是少不了的,比如说,单片机要和电脑交换数据、单片机之间交换数据、单片机和传感器之间的数据交换以及单片机和其他硬件设备之间的数据交换等等,这些都涉及到通信的问题。既然要通信,肯定就涉及到怎么通信的问题,也就是我们经常说的通信协议。一个人自言自语,那不能叫交流,至少得两人,你一句我一句,才能算是交流。所以通信协议需要规定两个人谁先说、谁后说,我点点头,表示你可以继续说,我摇摇头,表示你不能再说了。
单片机的通信协议有很多,但是经常用到的主要是uart、spi、i2c以及usb。别看这些英文莫名其妙,但本质都是一样的,无非就是规定什么信号表示选择设备,什么信号表示开始,什么信号表示结束,什么信号表示对方回复。这就和我们平时打电话一样,通信录里那么多的朋友,你不能一个电话打给所有人吧,那就成了广播了。所以我们得先选择其中一个人,比如说赵丽颖小姐姐,单片机里将这个动作就定义成一个信号,比如说我发送连续1秒钟的高电平,小姐姐如果接我的电话,她就给我回一个信号,比如说间隔500毫秒,连续三次,然后电话就通了。这时候就可以传送数据了,看看就这么简单。
当然,实际通信中,因为需要考虑到诸多因素,情形比我们上面描述的要复杂一些。我们今天只需要对这几个通信协议有个概念就行,具体每个通信协议是如何定义和操作的,到具体应用的时候再详细描述不迟。
非常感谢大家的阅读!祝大家情人节快乐!

猜你喜欢

转载自blog.csdn.net/wwwmagic/article/details/91489544