打印
[应用相关]

125khz曼彻斯特编码问题求教

[复制链接]
1687|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
749120145|  楼主 | 2017-12-14 10:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我接手一个关于曼彻斯特编码的程序,但是没有看懂什么意思网上找资料也没有看到有价值的。。用的是125khz低频通信的曼彻斯特编码格式,曼彻斯特编码波特率为3900bit/s。程序如下:

void LF_FSK_senddata(void)
{
        static  uint8_t send_buf=0,send_ct=0;
//-----------------------------------------------------
        if((send_ct<122)&&(LF_FSK_send_flag!=0))
        {
                switch(send_ct)
                {
                case 0:send_buf=0xff;break;
                case 16:send_buf=0xff;break;
                case 32:send_buf=0xff;break;
                case 58:send_buf=~0x5a;break;
                case 74:send_buf=~0x5a;break;
                case 90:send_buf=~(LF_FSK_command>>8);break;
                case 106:send_buf=~LF_FSK_command;break;
                default:break;
                }
//------------------------------------------
                if((send_ct>=40)&&(send_ct<=57))
                {
                        switch(send_ct)
                        {
                        case 40:
                        case 41:
                        case 42:
                        case 46:
                        case 48:
                        case 49:
                        case 52:
                        case 53:
                        case 56:TM2CH3ON();TM2CH4ON();break;
                        default:TM2CH3OFF();TM2CH4OFF();break;       
                        }
                }
//------------------------------------------
                else
                {
                        if((send_ct%2)==0)
                        {
                                if((send_buf&0x80)!=0)//send 1
                                        {TM2CH3ON();TM2CH4ON();}
                                else
                                        {TM2CH3OFF();TM2CH4OFF();}
                        }
                        else
                        {
                                if((send_buf&0x80)!=0)//send 1
                                        {TM2CH3OFF();TM2CH4OFF();}
                                else
                                        {TM2CH3ON();TM2CH4ON();}
                                send_buf<<=1;
                        }
                }
//---------------------------------------------
                send_ct++;               
        }
        else
        {
                send_buf=0;send_ct=0;               
                TM2CH3OFF();TM2CH4OFF();
                //ASK_send_flag=0;
                LF_FSK_send_flag=0;
        }
}
请教一下大家能不能帮我看下程序流程怎么走的?非常感谢

沙发
airwill| | 2017-12-17 21:33 | 只看该作者
先搞明白编码规则再看程序.
曼彻斯特编码将时钟和数据包含在数据流中,在传输代码信息的同时,也将时钟同步信号一起传输到对方,每位编码中有一跳变,不存在直流分量,因此具有自同步能力和良好的抗干扰性能。但每一个码元都被调成两个电平。

使用特权

评论回复
板凳
749120145|  楼主 | 2017-12-19 08:44 | 只看该作者
airwill 发表于 2017-12-17 21:33
先搞明白编码规则再看程序.
曼彻斯特编码将时钟和数据包含在数据流中,在传输代码信息的同时,也将时钟同步 ...

好的谢谢,我再看看

使用特权

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

本版积分规则

13

主题

46

帖子

1

粉丝