匠人好辛苦呀~~~
现在成熟的单总线协议很多.基本有:
1-wire总线hdq16总线和一些红外协议等等很多...
由于单总线的单线特点,基本由复位(同步),写'1',写'0'组成.
匠人的单总线应该归属于类红外的单总线协议.
它是由dt决定,这里匠人用了1t='0',3t='1'.
即有个容错范围,0.5t<'0'<1.5t,2.5t<'1'<'3.5t.
非法: t<0.5t,1.5t<t<2.5t,t>3.5t(可用于复位即同步引导,当然肯定要长些时间了)
这种协议实际应用中是有个偏移的问题的,菜农在这上面吃过苦头的~~~
由于在长线通讯中,电平信号的上升(充电过程)和下降(放电过程)是存在很大差异的.故有时1:3估计也不够.
要达到真正的自适应应该分别测出充电和放电时间.
大家知道实际上单总线也分同步和异步协议,类红外实际为异步协议,故对时间要求很严,而且占用系统资源较大.
而单总线的同步协议的代表1-wire在这上面有很大的优点,它很适合IO中断的操作.
它可以在每个电平的下降沿开始计算时间即测出是复位,写'1',写'0'这3个状态.
而且位和位之间时间可以任意,当然不能很长.
就灌到这里吧,希望匠人不要以为菜农在拍砖~~~匠人的精神可嘉~~~
文章评论(0条评论)
登录后参与讨论