如何用比较简单的方法实现曼彻斯特编解码?

[复制链接]
8255|20
手机看帖
扫描二维码
随时随地手机跟帖
cnpollux|  楼主 | 2007-1-4 12:37 | 显示全部楼层 |阅读模式
cnpollux|  楼主 | 2007-1-5 08:49 | 显示全部楼层

用于无线方式

使用特权

评论回复
lypd96| | 2007-1-5 09:45 | 显示全部楼层

RE:

可以用带捕获功能的单片机,现在很多MCU都有这个功能,如单片机任务不多,可以直接用普通的I/O口

使用特权

评论回复
dcp| | 2007-1-5 14:17 | 显示全部楼层

re

用定时器+IO捕捉效率低,处理复杂...????

不要这么武断好不好?

使用特权

评论回复
xwj| | 2007-1-6 09:33 | 显示全部楼层

用UART不可能的

随便用什么方法都会“处理复杂”的,
但“用定时器+IO捕捉”不见得就“效率低”


建议你去我得Blog看看SAA3010的解码程序

使用特权

评论回复
anyusb| | 2007-1-6 21:46 | 显示全部楼层

有编码程序吗?

使用特权

评论回复
xwj| | 2007-1-7 10:12 | 显示全部楼层

编码很容易的啊,这也要程序?

使用特权

评论回复
chunyang| | 2007-1-7 12:13 | 显示全部楼层

不能用UART,除非编码是通过串口发送的

否则没有符合串口规约的起停位,串口如何工作?

使用特权

评论回复
cnpollux|  楼主 | 2007-1-9 09:45 | 显示全部楼层

一点想法

使用无线方式传输,接收部分总是有杂波,所以才想用编码的方式来过滤,收发都是自己的设备,协议可自定,所以自由度大一些.数据肯定要进行必要的修改使之既符合曼码的编码格式,又符合UART的接收格式,当然这样做传输效率会有所降低,但便于软件实现上,也减少了处理硬件上的开销.

当然这只是应用中的一种特例,有相当的局限性,不具备广泛性.

使用特权

评论回复
工控秀才| | 2007-1-9 11:03 | 显示全部楼层

简单实验成功

曼码的10(1),01(0)解起来还真有点麻烦,关键是每位数据发送前没有同步头了呀
我也是按楼主的思路做的,利用波特率的概念来解码,在我的FPPA TM上解起来相当稳定的,可是同样的方法用在51上就没有那么稳定了,因为在FPPA TM上可以专门安排一路PC来接收IR信号,不会被任何事件打断.我的IR信号是1.68ms每位,已经精确到了80us,用中断太浪费资源,用延时又可能被打断.希望大家可以提供更好的方法来解决曼码的无线传输呀!

使用特权

评论回复
xinxi| | 2007-1-9 15:57 | 显示全部楼层

我的解码方法,不知适合你?

先捡出同步头,再把把数据(010101.....)检测记录在RAM中(类似数字存储示波器),等接收一侦后再解码。在检测电平时检测三次,三取其二。

使用特权

评论回复
liyong110| | 2007-1-10 00:13 | 显示全部楼层

这样就OK!

我认为这个解码和普通解码一样.
最好采用延时等待,用定时器进行时间校准.读中点电平,然后开始等待H或L,一旦等到电平跳变即开始定时(及在timer中加一句减法就可).消除误差积累.
多次验证,OK!

使用特权

评论回复
anyusb| | 2007-3-27 01:27 | 显示全部楼层

没办法也.俺笨也.

10(1)高低电平俺不会发送,01(0)低高电平俺也不知道是什么东西.嘿.

使用特权

评论回复
西小屯| | 2014-4-8 14:06 | 显示全部楼层
怎么获得同步头呢,哪位大侠给个方法

使用特权

评论回复
huangxz| | 2014-4-8 17:43 | 显示全部楼层
西小屯 发表于 2014-4-8 14:06
怎么获得同步头呢,哪位大侠给个方法

协议定的.一般可以用连续的几个1啊,或者特征字符都行的

使用特权

评论回复
西小屯| | 2014-4-9 11:40 | 显示全部楼层
huangxz 发表于 2014-4-8 17:43
协议定的.一般可以用连续的几个1啊,或者特征字符都行的

谢谢,现在做读卡器读5577卡,卡片发出曼彻斯特码(协议已定死),自己不能定义,看来按照手册上协议来了,再次感谢

使用特权

评论回复
huangxz| | 2014-4-9 12:02 | 显示全部楼层
西小屯 发表于 2014-4-9 11:40
谢谢,现在做读卡器读5577卡,卡片发出曼彻斯特码(协议已定死),自己不能定义,看来按照手册上协议来了 ...

那你的协议上面肯定有同步方法啊,这还更省心了啊

使用特权

评论回复
沧海一笑| | 2014-4-9 12:09 | 显示全部楼层
放段你的代码出来,瞧一瞧,嘻嘻...

使用特权

评论回复
西小屯| | 2014-4-15 11:01 | 显示全部楼层
huangxz 发表于 2014-4-9 12:02
那你的协议上面肯定有同步方法啊,这还更省心了啊

是,数据前有4个位时间固定的 分别为:1,只调制无升降沿,1,只调制无升降沿

使用特权

评论回复
因火生烟| | 2017-11-22 10:49 | 显示全部楼层
liyong110 发表于 2007-1-10 00:13
我认为这个解码和普通解码一样.最好采用延时等待,用定时器进行时间校准.读中点电平,然后开始等待H或L,一旦 ...

等待电平跳变效率低

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

38

帖子

0

粉丝