原创 和匠人玩梅花三弄

2007-1-12 00:31 3988 11 11 分类: MCU/ 嵌入式




《匠人手记》24《用单片机IO口实现单线单工通讯》已经发布

mood.gif 程序匠人 发表于 2007-1-8 23:49 侃单片机 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖举报该贴


 


《匠人手记》24《用单片机IO口实现单线单工通讯》已经发布,敬请关注。

许多便宜的单片机都没有标准的串行通讯口。因此,我们常用单片机的IO口来模拟串行通讯。在该手记中,匠人给出一个简单的通讯方案。

由于文档中包含了图片,所以还是按惯例,以PDF格式发布。点击下面的连接,进入下载页面






倒塌了~~~就灌点水吧

mood.gif hotpower 发表于 2007-1-10 23:01 侃单片机 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖举报该贴


 


匠人好辛苦呀~~~

现在成熟的单总线协议很多.基本有:

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个状态.
而且位和位之间时间可以任意,当然不能很长.

就灌到这里吧,希望匠人不要以为菜农在拍砖~~~匠人的精神可嘉~~~



倒塌了~~~还梅花三弄呢~~~
mood.gif hotpower 发表于 2007-1-11 00:50 侃单片机 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖举报该贴


1.异步协议都存在波特率问题,因为不像同步协议有同步(一般为下降沿).
  故相对来说"异步协议对时间要求很严".
2.长线可能在几十米甚至上百米,再线的质量和平行及双绞线等问题,
  故线损耗及线电容等都存在很大的差异,所以就带来了上升及下降时间的
  不一致.
3.波特率自适应肯定是有好处的,特别是对RC振荡器更有好处.
  但在长线应用中,1:1的自适应估计行不通.
  因为发送方是按1:1发送的,但接收方波形的畸变就未知了,因为这和线路
  的长短有很大的差异,这在工程中是常有的事.
  故接收方自适应应该将'1'/'0'分别测试,而不能简单地认为是相等的.
  所以实际应用中可能要复杂的多,这要根据实际具体考虑了.




3问hotpower

mood.gif 程序匠人 发表于 2007-1-11 00:32 侃单片机 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖举报该贴


 



1、大家知道实际上单总线也分同步和异步协议,类红外实际为异步协议,故对时间要求很严,而且占用系统资源较大
——异步协议对时间要求很严?我感觉……

2、这种协议实际应用中是有个偏移的问题的
——你说的长线通讯有多长啊?

3、另,你觉得我文档中的采用增加一个校准位实现波特率自适应的方法可行吗?能否解决你的偏移问题?




三弄hotpower
mood.gif 程序匠人 发表于 2007-1-11 08:33 侃单片机 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖举报该贴



1、倒~~~到底是"转"还是"砖"~~~
——是“转”,意思就是说你的贴已经被百宝箱转贴了。也可以理解为“砖”,意思就是说你的贴为百宝箱添“砖”加瓦了。根据你的爱好,特赠送透明短裤一条请查收。呵呵

2、关于畸变的问题
——匠人的通讯协议中,低电平是作为“同步信号”的,略有畸变应该没有太大问题,因为我本来就是按RC振荡模式来考虑。高电平时间1t或3t才有实际意义。我想,即使有畸变,也应该是一个方向的畸变吧,要么都变大,要么都变小。通过波特率校准位采样t,应该可以消除影响吧。不知道这样想法对否?

3、关于异步通讯的问题
——匠人觉得这种通讯方式虽然只是单线制,但由于每个低电平都作为“同步信号”因此,时间误差不会被累积。这更像是同步通讯吧。呵呵,一家之言。


PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /3 下一条