|
匠人好辛苦呀~~~ 现在成熟的单总线协议很多.基本有: 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个状态. 而且位和位之间时间可以任意,当然不能很长. 就灌到这里吧,希望匠人不要以为菜农在拍砖~~~匠人的精神可嘉~~~
|