4、以UART为例,来理解下何为接口协议,何为模块化设计(上)
内容简介
2024-02-02
这是19年3月份写的一篇文章,老存货了,翻出来看看感觉还有些价值,希望能为需要的朋友提供些参考。
UART是很简单的协议,也可以说是入门级的协议,它本身不值得我们花费多大的精力探讨,但是我们可以把它看作我们刚学C语言时候写下的”hello world”,刚学习单片机时候点亮的一个led灯,这样,它就有意义了,而且它的意义已经不再是实现一个功能了。我们要好好利用这个简单的协议去理解“协议”这个概念以及如何进行模块化设计,这对FPGA来说,是尤为重要的两个方面。
”
| /
★
主要内容为:
1、何为接口协议
2、认识UART协议
3、如何进行模块化设计
代码、资料可在公众号的【资料下载】菜单获取
何为接口协议
1.1 为什么要去理解“协议”这个词?
为什么要单纯的去理解“协议”这个很虚的词呢?因为在我看来,对于刚接触协议或者FPGA这方面的朋友来说,知道“为什么这么做”比“知道怎么做”更重要。为什么这么说呢?
记得我在上学时候,我把好多协议列个清单有,看着清单踌躇满志,准备像打怪升级那样一个一个的攻克,这样就能成为技术牛人,走向人生巅峰了,然后我就去看技术文档,去搞懂这是个什么协议,怎么工作的,硬件怎么连的,程序怎么写的,时序是什么样子的,搞了不久,我投降了。就拿我们经常会接触到协议来举例,uart、I2C、SPI,SDRAM、DDR、serdes、TCP/IP协议栈,其中TCP/IP协议占还包括UDP、TCP、RAP等待,还分了数据链路层等等,太多了太复杂了。我就被一堆一堆专业名词搞晕了,被看不懂的时序整糊涂了,被别人的程序逻辑整残了。那为什么会这样呢?心急,太想多学点多会点,太想学习更多的协议来提升自己,因此,只想知道这个怎么实现那个怎么做,把位置占的太低而不去考虑人家为什么这么设计,也就是忽略了为什么这么做。
其实,协议是学不完的,哪怕今天你把所有的协议都学会了,明天还会有新的协议出现,但协议都是存在共性的,当我们知道为什么了这么做,并对此有深刻的体会,就会游刃有余各种协议,简单的协议,张口即来,复杂点的协议,看看就会,没有协议满足项目需求,那就造他个协议。
2024年2月补充
现在看起来这都是稀松平常的事,当年还特意写下,有时候真是这样,到了一定程度就忘了当初的“幼稚”。
1.2 协议是什么呢?
协议是人们根据器件的物理特性和使用场景想出来的让器件沟通的方法。器件不会说话,聪明的人类就设定一种方法让他们去沟通,通过交流去完成一些事情。所以说协议是人想出来的,哪怕再晦涩难懂那也是人想出来的,协议是源自于人、源自于生活的,我们是主人,是这些协议的设计者,我们要去俯视它,驾驭它甚至是玩弄它,我们要将抽象的东西回归到生活,站在一个更高的位置去做宏观的理解,然后带着这种理解和好奇心去看某个协议,看某篇文档,我想就会更有效率和动力。比如说,令人比较抓狂的专业名词,可以说就是将生活中的现象用在专业领域的另一种表述方式。
什么是响应应答,就我说老师好,老师说同学们好,
什么是通讯超时,就是我叫声美女,美女没理我。
什么是三次握手,就是我看到小张了,说了句,“哟小张”,小张说嗯,我说,你真的是小张啊,小张来句,是的,我说,真的,小张说真的。这就是TCP/IP里面的三次握手也就是这个原理,握手好了就可以干其他事了,比如说,小张吃饭了没?这就是通讯内容。可以说,一些专业名词不是可以通过生活中的现象去解释,而是它就是源自于我们的生活,那什么是协议呢?举几个例子,
例 1
我走路上看到小张,我说句:“小张,吃饭了没?”,小张回复一句:“吃了”,这就是我和小张建立起了通讯机制,通讯链路是我们发声器官和空气,通讯协议就是汉语。
例 2
我又走路上,看到一条小狗,蛮可爱的,我说句:“小狗,吃饭了没?”小狗回复一句:“汪汪”,吓得我拔腿就跑,就是我和小狗通讯建立失败,虽然通讯链路建立起来了,但通讯协议确实汉语和狗语,就好用uart协议去和TA24C02通讯,对不上啊。
例 3
我又走路上,看到小赵我说句:“小赵”小赵回复一句:“嗯嗯“我说句:“吃了没”小赵回复一句:“吃了“,这就好比IIC协议,有起始信号,有应答信号。
例 4
我又走路上,看到小李,我说句:“小李,吃饭了没?”小李回了句,刚从厕所出来”。这是啥,通讯建立了,但通讯内容校验有误,这就是为啥好多通讯要做CRC校验,循环校验。
例 5
我走路上,看到一群美女,这把我激动的,说了句:“嗨,美女们,吃饭了没”?结果美女抬头一看这家伙怎么这么丑,没人回应我,心里想着“傻X”、“丑人多作怪”,这叫什么?多播或广播,在工程上也是用的比较多的一种方式。
所以说,通讯协议源自于生活,我们要有将抽象的东西回归到生活的心态,这样理解起来又容易又开心。
回过头来我们再说,什么是接口协议,百度说接口协议就是需要进行信息交换的接口间需要遵从的通信方式和要求。通讯方式就是这信息是用什么传递的,拿什么运过去的,通信要求就是语法,是说用汉语还是英语还是什么的。也就是说我们要让两个器件进行沟通,首先要做什么呢?确定拿什么传,然后确定说什么话,最后可以说咱想说的了。当然,这就是简单的通讯建立,复杂的通讯原理一样,但建立过程很复杂。
2024年2月补充
记得当时还有点小兴奋,因为后来发现自己理解方式的和《图解TCP/IP》有部分内容差不多
快来扫描下方二维码关注公众号,领取站内所有相关资料,所有哦~
有建议、有需求、有疑问、联系我