cnpollux 发表于 2007-1-4 12:37

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

用定时器+IO捕捉效率低,处理复杂,想利用UART,两倍波特率,调整数据内容来实现,传输的效率低,但是处理起来简单了,不知可行否?各位XD给点意见,多谢!

cnpollux 发表于 2007-1-5 08:49

用于无线方式

lypd96 发表于 2007-1-5 09:45

RE:

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

dcp 发表于 2007-1-5 14:17

re

用定时器+IO捕捉效率低,处理复杂...????<br /><br />不要这么武断好不好?

xwj 发表于 2007-1-6 09:33

用UART不可能的

随便用什么方法都会“处理复杂”的,<br />但“用定时器+IO捕捉”不见得就“效率低”<br /><br /><br />建议你去我得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的接收格式,当然这样做传输效率会有所降低,但便于软件实现上,也减少了处理硬件上的开销.<br /><br />当然这只是应用中的一种特例,有相当的局限性,不具备广泛性.

工控秀才 发表于 2007-1-9 11:03

简单实验成功

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

xinxi 发表于 2007-1-9 15:57

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

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

liyong110 发表于 2007-1-10 00:13

这样就OK!

我认为这个解码和普通解码一样.<br />最好采用延时等待,用定时器进行时间校准.读中点电平,然后开始等待H或L,一旦等到电平跳变即开始定时(及在timer中加一句减法就可).消除误差积累.<br />多次验证,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 static/image/common/back.gif
怎么获得同步头呢,哪位大侠给个方法

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

西小屯 发表于 2014-4-9 11:40

huangxz 发表于 2014-4-8 17:43 static/image/common/back.gif
协议定的.一般可以用连续的几个1啊,或者特征字符都行的

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

huangxz 发表于 2014-4-9 12:02

西小屯 发表于 2014-4-9 11:40 static/image/common/back.gif
谢谢,现在做读卡器读5577卡,卡片发出曼彻斯特码(协议已定死),自己不能定义,看来按照手册上协议来了 ...

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

沧海一笑 发表于 2014-4-9 12:09

放段你的代码出来,瞧一瞧,嘻嘻...

西小屯 发表于 2014-4-15 11:01

huangxz 发表于 2014-4-9 12:02 static/image/common/back.gif
那你的协议上面肯定有同步方法啊,这还更省心了啊

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

因火生烟 发表于 2017-11-22 10:49

liyong110 发表于 2007-1-10 00:13
我认为这个解码和普通解码一样.最好采用延时等待,用定时器进行时间校准.读中点电平,然后开始等待H或L,一旦 ...

等待电平跳变效率低
页: [1] 2
查看完整版本: 如何用比较简单的方法实现曼彻斯特编解码?