汇编指令和时序电路的关系?
一旦硬件电路设计好,时序电路就是固定好的了. 每条汇编指令在特定长度的机器周期内完成
有这么样的一个疑问,在一些设计中,会看到这样的描述,等到数据传输完了,会给发送方发送一个信号(通
过实实在在的物理线通知发送方), 但是由于在传输过程中由于传输的数据长度是不固定的,如果判断数据
传输完了呢,有软件判断还是有硬件判断传输完了?
个人感觉是硬件判断的,如果真是所猜测,个人能否给详细的解释下?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
这跟你的标题完全不搭界。
数据传输,有很多方式,只因双方遵守同一个协议。
各种各样的协议都可以满足这一要求。
是硬件判定还是软件判定这不是本质,遵守协议才是本质。
不知道你玩过GPIO没有,那就是用软件的方法模拟硬接口。
打个比方,我来设计一个全双工的串行协议:
三根线,两根IO+一根地
平时不串数据的时候,数据线被拉到低电压。
当要开始传数据的时候,我先传一个宽度为10us的高电压脉冲。
以后按bit传,1用宽度为5us的高电压脉冲表示,0用宽度为3us的高电压表示。
每两个bit之间间距3us的低电压。
于是这个串行协议就可以传数据了。
因为我规定了每两个bit之间间距3us的低电压
所以一旦发现连续比3us宽的多的低电压(比如10us),我就认为这一段数据已经传完。
标题改成"协议的实现是用硬件还是软件",可能更贴近我问题的描述. 可是这样问的话, 答案很明了,既可以用硬件也可以用软件.
标题暂时不换了,随着问题的深入理解,我在 换.
2楼的"协议"应该是正解. 实现同一"协议"接可以用软件,也可用硬件.
但是还有一个疑问,如果按照2楼的理解,我怎么觉得软件和硬件相互独立了. 除了硬件帮忙执行了汇编指令,没有体现出硬件逻辑还做了什么? 因为汇编指令只会帮我们读,存数据,并没有通知说数据已经传完了. 还是硬件在执行汇编指令的同时,所有的硬件逻辑也做完了.
所谓的硬件逻辑就是能够判断数据传完了吗,收到了特殊的数据等.(个人暂时这样理解的)
疑问应该描述清楚了吧?
这些都是协议规定的,不同的东西实现的前提是要“遵守!!”协议,至于用什么方式去遵守协议,那是如何实现的问题。
软件怎么可能和硬件脱离,软件从来都不是独立存在的,没有硬件,哪来软件?软件只是使硬件更灵活的一种方式而已。最终去实现者其实永远都是硬件,即使用了软件,软件也只是一个指挥者而已,并非一个实施者。
至于“硬件逻辑做什么了”,那种不用软件的硬件接发器(我习惯称之为傻瓜式),它的所有实现都由自己的硬件逻辑来唯一决定。
而基于可编程的话,那么就可以被控制,可以引入软件的思维,使之更灵活。
这个比方很清楚, 我应该理解了协议的概念,已经在硬件上如何实现的.
不过还有些疑问,忘赐教.(在这个问题上有些呆)
汇编指令在整个过程(包括传输前的准备,传输中,传输结束)中有作用吗?
基于指令集的指令(处理器中概念)只是软件操纵的一种手段,这只是狭义的软件而已。
其实说白了,它只是提供了一种手段,仅此而已,控制的方法很多,不只有处理器的指令。
其实,如果你真的想了解,有机会写写硬件驱动就明白了,对于相同处理器来说,相同的一条操作会因为你硬件的设计不同而完全不同。
其实每到接口处(甚至IC内部模块间接口),起作用的只是接口的双方遵照同样的协议。整个计算系统其实全都是用协议搭起来的。
都给讲到这个份上了,看来自己不明白只能看驱动的code了. 哈哈
可是现在基于linux操作系统的驱动,在书写方式上,个人感觉他把底层的实现都给隐藏了. 在c语言code里看到的只是一些设备逻辑,根本看不出"协议"的设计了. 让人有点不知所措....