基于AVR单片机的曼彻斯特编解码及其应用_王建国
一种基于AVR单片机的无线编码解码实现方法

# 70# 文章编号: 1002- 6886( 2008) 03- 0070- 3
现代机械 2008年第 3期
一种基于 AVR 单片机的无线编码解码实现方法
张思建, 颜路阳
(浙江大学 电气工程学院, 浙江 杭州 310027)
摘要: 编码解码技术在提高无线数据传输质量方面起着十分重 要的作用, 并且 直接影响数 据传输的可 靠性。本文设 计了 一种实现无线编码解码的方法, 并且根据该方法利用 AVR 单片机进行了硬件 和软件设计。本方法不 仅原理较为直观, 实 现也相对简单, 而且实验表明, 采用该方法设计的发送 ) 接收系统数据传输误 码率低、可靠 性高。本方法不仅可用 于无线 遥控, 而且对于其他无线传输应用也有一定的参考价值。 关键词: 无线遥控 编码 解码 AVR 单片机
在实验中发现, 当发射模块不工作时, 接收模块仍然 会收到一系列由尖脉冲组成的白噪声, 不编码时干扰很 大。当发射端连续发射高电平载波 (输入为 / 10 ) 时, 则接 收端在开始的 1 s内能收到正确的信号, 1 s后接收到的信 号就是由一系列尖脉冲组成的干扰信号。
作者简介: 张思建 ( 1983) ), 男, 广东澄海人, 硕士研究生, 研究方向: 嵌入式系统及其工业应用。 收稿日期: 2007 - 12- 4
计算机应用
# 71#
现场经验
代入数据计算: P V实 = { [ 71 540 @ 74 /8 @ 1123 @ 1. 5 @ ( 80 - 35 ) / 3. 1 416( 124. 52 - 118. 52 ) /4+ 4 @ ( 124. 52 - 1202 ) y z / ( 124. 52 - 118. 52 ) - 0. 5] } @2 750 @124. 5 @ 3. 141 6 /
曼彻斯特编码的解码及其应用

第 1 2卷 第 4期
20 10年 08 1 J
辽 宁 省 交 通 高 等 科 学 校 学 报 专
J OURNAL 0F LI AONI NG PROⅥ NCI AL COLL EGE OF COM MUNI CAT1 0NS
VO1 2 N O.4 .1 Au .2 0 0 g 1
『 ]中华 人 民共 和 国建 设 部 .GJ2 -2 0 8 J 1 3 0 0既 有 建 筑 地 基 基 础 加 固技 术 规 范 [ S]. 京 :中 国标 准 出版 社 ,2 0 . 北 00
[ ]《 山县 污 水 处 理 厂监 测 实 施 报 告 》 ( 12 9 巫 第 ~ 0期 及 20 .3 090 、
a ay e h ou d to te g h n n n l z st e f n ai nssr n t e i g.
[ y o d ]fu d t n d fr t n rifre n Ke w r s o n a o ; eoma o ;enocme t i i
这 种 编 码 形 式 的 特 点 ,给 出 了 两种 在 单 片机 中的 解 码 方 法 ,并 对 这 两种 方 法进 行 了 简单 的 比较 。最
后 在 文 章 中给 出 了 曼彻 斯 特 编 码 在 实际 中的 应 用例 子 一D 卡 的 解码 程 序 ,主 要 针 对 的 是 现 在 国 内 比 r
曼彻斯特码原理与应用

曼彻斯特码1 曼彻斯特原理介及其编码规则12 曼彻斯特码的各方面应用43 曼彻斯特码与差分曼彻斯特码61 曼彻斯特原理介及其编码规则Manchester编码是一种常用的基带信号编码。
它具有内在的时钟信息,因而能使网络上的每一个系统保持同步。
在Manchester编码中,时间被划分为等间隔的小段,其中每小段代表一位数据。
每一小段时间本身又分为两半,前半个时间段所传信号是该时间段传送比特值的反码,后半个时间段传送的是比特值本身。
可见在一个时间段内,其中间点总有一次信号电平的变化,因此携带有信号传送的同步信息而不需另外传送同步信号。
Manchester编码采用电平由高到低变化的下降沿代表0,电平由低到高变化的上升沿代表1;发送和接收的同步工作方式保证了信息传递的方便和可靠。
为了减少控制器与位置反馈单元之间的连线数目,信息的传递可采用两根线的串行方式。
发送端和接收端的同步靠信息脉冲串之前的同步脉冲串来实现。
在电信领域,曼彻斯特码,(也称作相位码或者PE)是一种数据通讯线性码,它的每一个数据比特都是由至少一次电压转换的形式所表示的曼彻斯特编码被图1 二进制码和曼彻斯特码对比图因此被认为是一种自定时码。
自定时意味着数据流的精确同步是可行的。
每一个比特都准确的在一预先定义时间时期的时间中被传送。
但是,今天有许许多多的复杂的编码方法(例如8B/10B编码),在达到同等目的情况下只需要更少带宽负荷并且只有更少的同步信号相位模糊。
二进制码与曼彻斯特码波形的对比关系如图1所示。
在曼彻斯特编码中,用电压跳变的相位不同来区分1和0,即用正的电压跳变表示0,用负的电压跳变表示1。
因此,这种编码也称为相应编码。
由于跳变都发生在每一个码元的中间,接收端可以方便地利用它作为位同步时钟,因此,这种编码也称为自同步编码。
用于数字基带传输的码型种类较多,Manchester码是其中常用的一种。
Manchester码是一种用跳变沿(而非电平)来表示要传输的二进制信息(0或1),一般规定在位元中间用下跳变表示“1”,用上跳变表示“0”. 曼彻斯特编码被被认为是一种自定时码自定时意味着数据流的精确同步是可行的。
曼彻斯特编码的FPGA设计方案

曼彻斯特编码的FPGA设计方案1 绪论1.1 背景及目的意义曼彻斯特编码是一种自同步的编码方式,即时钟同步信号就隐藏在数据波形中。
在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示"1",从低到高跳变表示"0"。
还有一种是差分曼彻斯特编码,每位中间的跳变仅提供时钟定时,而用每位开始时有无跳变表示"0"或"1",有跳变为"0",无跳变为"1"。
在曼彻斯特编码中,用电压跳变的相位不同来区分1和0,即用正的电压跳变表示0,用负的电压跳变表示1。
因此,这种编码也称为相应编码。
由于跳变都发生在每一个码元的中间,接收端可以方便地利用它作为位同步时钟[1]。
由于技术的发展,现代通信体现出了越来越高的要求:1.能有效实现各子系统之间的数据传输,且满足特定的通信特性;2.通信子系统相对独立地工作,对应用软件尽可能透明,且占用主机的时间尽可能少;3.通信系统灵活,易于修改;4.通信子系统具有较强的抗干扰能力。
在数据通信领域,开发一个数据通信系统,选择一种好的数据编码方式是非常重要的,关系到整个系统的可行性、稳定性、通信质量以及以后系统的工作效率等方面。
如何实现开发出更高可行性、可靠性及稳定性的通信系统,这正是研究曼彻斯特码的目的和意义所在。
1.2 国外研究现状曼彻斯特码采用跳变沿来表示0或1,与二进制码相比,具有如下优点:1.波形在每一位元中间都有跳变,因此具有丰富的定时信息,便于接收端提取定时信号。
若采用二进制传输,当出现连续的0或1时,则无法区分两位元之间的边界;2.由于曼彻斯特码在每一位元中都有电平的转变,因此,传输时无直流分量,可降低系统的功耗。
而对于二进制波形,当出现连续的1时,将有直流分量的产生;3.曼彻斯特码传输方式非常适合于多路数据的快速切换。
曼彻斯特编解码电路设计毕业设计

毕业设计(论文)题目名称:曼彻斯特编解码电路设计学生姓名:院(系):电子信息学院专业班级:电气10602指导教师:辅导教师:时间:2010年3月15日至2010年6月10日目录毕业设计(论文)开题报告 (V)曼彻斯特编解码电路设计 (12)Manchester encoding and decoding circuit (13)前言 0曼彻斯特编解码电路设计 (1)1 选题背景 (1)普通NRZ码存在的问题 (1)应用背景 (1)2 方案论证 0曼彻斯特码简介 0曼彻斯特编解码解析 0曼彻斯特编解码具体实现方式 (1)方案选择 (2)3 硬件电路设计 (5)系统实物照片展示 (5)系统的硬件框图 (6)AT89S52单片机简介 (7)单片机外围电路 (9)信号调理电路 (13)4 软件设计 (16)资源利用 (16)曼彻斯特码编解码方式分析 (18)程序流程图 (19)编码实现 (21)改良方向 (24)参考文献 (26)致谢 (27)附录1:地下液位测量系统实物照片 (28)长江大学毕业设计(论文)任务书学院(系)电子信息学院专业电气工程及自动化班级电气10602学生姓名熊香春指导教师/职称吴爱平/讲师1.毕业设计(论文)题目曼彻斯特编解码电路设计2.毕业设计(论文)起止时刻:2010年3月15日-2010年6月10日3.毕业设计(论文)所需资料及原始数据(指导教师选定部份)所需资料:(1)《MCS-51单片机原理与应用》(2)《单片机的C语言编程》(3) 通信原理原始数据传输速度为20Kb/S,一帧数据有16个字节,一帧的命令有2个字节。
4.毕业设计(论文)应完成的主要内容(1)利用C语言编程实现曼彻斯特编码、解码模块,并在PROTUES软件中仿真;(2)设计曼彻斯特信号调理电路;(3)毕业论文中必需包括如下内容:大体原理介绍、整体框图、软件流程图、软件原理介绍、源程序清单。
5.毕业设计(论文)的目标及具体要求利用单片机和C语言编程实现曼彻斯特编码、解码模块,并在PROTUES软件中仿真通过;通过单片机最小系统,辅之外围电路,能够实现编解码。
一种基于FPGA的曼彻斯特编译码电路设计

图 2 1B2B 编码电路的顶层设计图
具体设计说明如下 : PS7 模块用于产生 7 阶 m 序列 ,以作为编码的信号源. 为了防止移位寄存器产 生死循环 ,设计采用基于 Load 信号的自启动设计 ,产 生伪随机序列“1111001000110010”.
通过 MaxPlusII 软件仿真 ,得到了编码电路中伪 随机序列 seq 和编码后串行数据 q 的输出 ,仿真结果 如图 3 所示.
参考文献 :
[ 1 ] 李履信. 光纤通信系统 [ M ] . 北京 : 机 械 工 业 出版 社 , 2007.
[ 2 ] 倪康婷. CPLD 在光纤传输系统数字编码中的应用 [J ] . 国外电子测量技术 ,2005 ,12 (24) :31232.
[ 3 ] 段吉海 ,黄志伟. 基于 CPLD/ FP GA 的数字通信系统建 模与设计[ M ] . 北京 :电子工业出版社 ,2004.
图 1 曼彻斯特码编码原理
1. 3 1 B2 B 编码电路的 FPGA 实现 在用 V HDL 语言设计 1B2B 编码电路时 ,采用
自顶向下的设计方法[324] ,其顶层设计图如图 2 所示.
2 曼彻斯特解码器设计
2. 1 1 B2 B 译码电路的工作原理 1B2B 译码部分主要包括 2 部分 :位同步提取部
第 30 卷 第 6 期 2008 年 12 月
三峡大学学报 (自然科学版) J of China Three Gorges U niv. (Nat ural Sciences)
Vol1 30 No . 6 Dec1 2008
一种基于 FPGA 的曼彻斯特编译码电路设计
程 希 罗志会 陈小刚
在光纤传输系统中 ,从电端机输出的数字信号是 适合于电缆传输的双极性码. 而光端机中 ,光源不能 发射负的光脉冲 ,只能采用‘0’和‘1’二电平码. 但简 单的二电平码的直流基线会随着信息流中 0 和 1 的 不同组合而随机起伏 ,劣化光接收机的性能 ,而进行 线路编码能稳定直流基线 ,方便时钟提取和进行在线 的误码检测[1] . 常 用的 编码 方式 有扰 码 、mBnB 码 、 mB1C/ 1 H/ 1 P 码等 ,其中最常用的就是曼彻斯特编 码 (即 1B2B 码) . 以曼彻斯特编码为例 ,介绍了一种 基于全数字锁相环的 mBnB 编解码 ,以及在 Max + Plus 系统上 ,用 V HDL 语言实现曼彻斯特编译码电 路的思想和方法.
曼彻斯特编码与解码实验

计算机通信网实验一 曼彻斯特编码与解码实验一、实验目的1.掌握曼彻斯特编解码原理;2.了解如何利用曼彻斯特的时钟特征实现收/发时钟同步及其实现方法。
二、预习要求1.复习曼彻斯特编解码原理; 2.复习软件Maxpluss Ⅱ的使用方法。
三、实验原理1.编码原理在曼彻斯特编码方式中,每一位的中间有一个跳变,位中间的跳变为时钟,也作为数据。
从高电平到低电平的跳变表示数据“1”(称为“1”跳变)。
从低电平到高电平的跳变表示数据“0”(称为“0”跳变)。
因此发送时钟必须在发送数据位的中间进行采样,即发送时钟TxC 的频率应为数据TxD 频率的两倍。
2.解码原理解码可通过解码器来实现,解码器从曼彻斯特码中分离出接收数据RxD 与接收时钟RxC 。
具体方法是:解码器从曼码中分别提出“1”跳变和“0”跳变信号,但需区分位中跳变与位间跳变,前者是表示数据的跳变,后者是当数据中有连续“1”信号或连续“0”信号时产生的不反应数据特征的无效跳变。
解码器提取位中跳变后,可将其转换为二进制1212(1)D触发器在编码中的作用。
(2)D触发器的时钟信号为何用2TxC?2.解码电路(1)图中如何提取Mc中的“1”跳变和“0”跳变信号的,试解释4个非门和YH1的作用。
(2)八位移位寄存器的作用是取得延迟信号,用于封住YF门以便除去无效的位间跳Q)的输出,是否可选择用其它输出?为变。
延迟时间应如何选取?为何选用第七位(7什么?(3)移位寄存器的时钟为什么要用8TxC(TxC的8倍频信号),如选用16TxC或4TxC 将会如何?八、实验报告要求1.绘制编解码电路图(给定或自行设计均可);2.描绘8TxC、TxC、Mc、A、B、B’、C、D、Q G1、Q G2、RxD、RxC各点信号波形图;3.回答思考题。
曼切斯特码编码与解码电路设计与仿真总结

曼切斯特码编码与解码电路设计与仿真总结摘要:本文通过对曼彻斯特码编码与解码电路设计与仿真的研究,探讨了曼彻斯特编码与解码的原理和实现方法,并进行了相应的仿真实验。
通过电路仿真实验,验证了曼彻斯特编码与解码电路的正确性和可行性。
关键词:曼彻斯特编码;曼彻斯特解码;仿真试验;电路设计1.引言曼彻斯特编码是一种常见的数据编码方式,广泛应用于通信领域。
通过将数据信号转化为不同电平来表示数据位,从而提高数据传输的可靠性。
而曼彻斯特解码则是将曼彻斯特编码的信号还原为原始数据信号。
本文旨在通过电路设计与仿真方法,研究曼彻斯特编码与解码的原理与实现方法,并进行相应的仿真实验。
2.曼彻斯特编码的原理与实现曼彻斯特编码将每个数据位分为两个时钟周期,对于“0”和“1”分别表示为低电平和高电平。
这样做的目的是为了减少数据传输过程中的噪声干扰,并保证数据传输的可靠性。
曼彻斯特编码电路的设计思路是将时钟信号与数据信号进行异或运算,再将结果与时钟信号相与得到最终的输出信号。
在电路实现中,采用D触发器实现时钟信号的延迟,并通过门电路实现异或运算和与运算。
3.曼彻斯特解码的原理与实现曼彻斯特解码电路是曼彻斯特编码电路的逆过程,通过对输入信号经过滤波和半波整流处理,将高电平与低电平分别表示为“1”和“0”。
解码电路的设计思路是通过比较邻近的两个采样值的大小,然后确定其对应的数据位。
曼彻斯特解码电路的实现过程中,需要用到运算放大器、比较器、滤波电路和半波整流电路等。
其中,运算放大器用于放大信号;比较器用于判断邻近采样值的大小;滤波电路用于滤除不必要的高频干扰信号;半波整流电路用于将输入信号转化为仅含正半波部分的输出信号。
4.仿真实验与结果分析为了验证曼彻斯特编码与解码电路的正确性和可行性,本文采用Multisim软件进行了相关的仿真实验。
在实验中,分别对曼彻斯特编码电路和曼彻斯特解码电路进行了仿真测试。
实验结果表明,曼彻斯特编码电路能够将输入的数据信号正确转化为曼彻斯特编码信号,同时保持了数据传输过程中高低电平的变化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
—258— 基于A VR 单片机的曼彻斯特编解码及其应用王建国,孙敬华,曹丙霞(中国海洋大学工程学院,青岛 266071)摘 要:提出了一种在较高通信速率(10kbps)下用A VR 单片机软件实现曼彻斯特码编解码的方法。
介绍了小功率无线传输系统的工作原理和通信协议。
详细阐述了用软件识别同步时钟、起始符、同步头和数据的技术方法。
关键词:曼彻斯特编解码;无线通信;A VR 单片机Manchester Code/decode Based on A VR and Its ApplicationWANG Jianguo, SUN Jinghua, CAO Bingxia(Engineering College, Ocean University of China, Qingdao 266071)【Abstract 】The paper introduces a hi-efficient coding/decoding method to apply A VR MCU to code/decode Manchester at 10kbps successfully,principle and communication protocol in wireless communicating systems of low power. It provides in detail a technique about how to identify initial flag, synchronization code and data.【Key words 】Manchester code/decode; Wireless communication; A VR计 算 机 工 程Computer Engineering 第32卷 第20期Vol.32 № 20 2006年10月October 2006·工程应用技术与实现·文章编号:1000—3428(2006)20—0258—03文献标识码:A 中图分类号:TP368.2随着无线通信芯片技术的发展,越来越多的便携式或电池供电的无线传输设备进入人们日常生活中。
例如,遥控车门开关(RKE)系统、汽车轮胎压力监视系统(TPMS)、无线内窥镜系统、蓝牙技术等。
这种小功率无线传输系统的关键技术是在低电流消耗和信道干扰较强的情况下实现数据稳定可靠的传输。
曼彻斯特码由于其特殊的性能,被广泛应用于小功率无线传输系统中。
曼彻斯特编码是串行数据传输的一种重要的编码方式。
曼彻斯特编码最大的优点是:数据和同步时钟统一编码,曼码中含有丰富的时钟信号,直流分量基本为零,接收器能够较容易恢复同步时钟,并同步解调出数据,具有很好的抗干扰性能,这使它更适合于信道传输。
传统的曼彻斯特码的编解码一般采用专用芯片电路实现,数据的串/并转换和信号的合成都通过硬件电路实现,导致电路复杂,系统成本提高。
考虑到目前微处理器功能不断提高,在不影响系统微处理器完成其它处理任务的情况下,完全可以采用微处理器来实现曼彻斯特码的编码和解码。
本设计提出了一种简单有效的曼彻斯特码解调方法,并选用高速AVR 单片机及软件编程实现了曼彻斯特码的编解码。
1 小功率无线传输系统工作原理小功率无线传输系统一般由射频发射机和接收监视器两部分组成。
射频发射机采集和发射信息;接收监视器接收信息,并根据接收到的信息执行相应的操作。
1.1 射频发射机模块射频发射机一般采用电池供电,以遥控车门开关(RKE)系统为例,电池需要连续工作3~5年,低功耗设计是电路设计的关键。
在此射频发射机主控MCU 选用Atmel 公司的高性能、低功耗微控制器ATmega48V 。
该芯片工作电压最低可达1.8V ,具有5种省电休眠模式,适合低功耗应用场合。
根据处理器工作状态的不同进入相应的休眠模式。
在掉电模式下耗电小于1µA ,极大地降低了功耗。
射频发射机的系统框图如图1所示。
MCU 首先对数据进行曼彻斯特码编码,然后把数据送到射频发射芯片发射。
1.2 射频接收监视器模块接收监视器的主控MCU 采用Atmel 公司的高性能、高速RISC 微控制器ATmega169。
该芯片内嵌了4*25段的LCD 驱动器,通过它可以在LCD 上显示一些用户关心的状态信息,如轮胎气压信息等。
ATmega169单片机的T/C1具有一个捕捉单元,可用来捕捉外部事件,并为其赋予时间标记以说明此事件发生的时刻。
外部事件发生的触发信号可由引脚ICP1(输入捕捉引脚)输入,也可通过模拟比较器单元实现。
本设计采用T/C1的输入捕捉单元接收数据,即曼彻斯特码数据从引脚ICP1输入。
这种数据接收处理方法要求MCU 对外部输入事件具有足够的处理能力,微控制器ATmega169工作在16MHz 时性能高达16MIPS 。
实验证明,当数据波特率为10kHz 时,系统能够正确接收数据。
接收监视器的系统框图如图2所示。
射频信号经接收芯片解调,输出的曼码数据经过引脚ICP1输入到MCU ,MCU 利用单片机的T/C1的引脚捕捉功能虽然能够实现曼码数据电平时间精确测量,但存在一个明显的不足,就是对干作者简介:王建国(1954-),男,教授,主研方向:智能仪器仪表与计算机控制技术;孙敬华、曹丙霞,硕士生收稿日期:2005-11-08 E-mail :sunjinghua-2001@扰比较灵敏,干扰严重时直接导致数据传输失败。
本系统从软硬件两方面对系统的抗干扰能力进行了改善。
软件方面详见下面介绍。
在硬件方面加了带通滤波器。
又因为接收机接收到的信号比较微弱,所以又加入了增益补偿电路。
此外还使用了MCU内部的输入捕捉单元的噪声抑制器。
噪声抑制器通过一个简单的数字滤波方案提高系统的抗噪性。
它对输入触发信号进行4次采样。
只有当4次采样值相等时其输出才会送入边沿检测器。
目前市场上有很多种RF发射接收芯片,表1列出几种常用的芯片。
表1 RF发射接收芯片型号类型收/发频点工作模式生产厂家T5744 接收芯片315/433.92MHzASK AtmelMAX1470 接收芯片315MHz ASK Maxim MC33594 接收芯片315/434MHz OOK/FSK FreescaleT5754 发送芯片433.92 MHz ASK/FSK AtmelTDA5101 发送芯片868/433 MHz ASK/FSK InfineonMC33493 发送芯片315/434/868/928MHzOOK/FSK FreescaleNRF401 收发芯片433.93/434.33MHzFSK NordicTRF6903 收发芯片315/433/868/915MHzOOK/FSK TI2 AVR单片机实现曼彻斯特码编解码的方法2.1 曼彻斯特码及数据帧的特征在曼彻斯特编码中,将一位时间一分为二,位时间内发生低电平到高电平的变化表示‘0’;高电平到低电平的变化表示‘1’;由于跳变都发生在每一个码元的中间,接收端可以方便地利用它作为位同步时钟,因此,这种编码也称为自同步编码。
曼彻斯特编码如图3所示。
从图3可以看出曼码具有以下特征:(1)当数据位出现连‘0’或连‘1’时,曼码的位速率2倍于的数据位速率,在每个数据的起始点也出现跳变,但都是无效跳变。
(2)当数据位出现‘0’、‘1’交替时,曼码的位速率等于数据位速率,脉冲的前后沿均为有效跳变。
2.2 数据传输帧格式及曼彻斯特码编解码原理2.2.1 数据传输协议本系统采用的数据传输格式如下:同步时钟同步头 ID号数据包校验字节结束符同步时钟也就是数据解码时钟,同时还是本次传输起始标志。
同步头则用于确定信息包的开始,本设计用“@”作为同步头数据。
ID号用于识别发射模块,防止与其它发射模块串扰。
数据包含有要传输的信息,采用定长数据包格式。
停止符为二进制数‘0’,停止符的作用是保证数据接收完整。
因为此设计在上升沿中断时识别码元,当最后一个字节为1时,如果没有停止位,就不存在上升沿,则无法识别这个码元。
用data[]表示该格式数组。
2.2.2曼彻斯特编码原理实现曼彻斯特软件编码比较简单,根据曼码和二进制数据的对应关系,一位二进制数据在编码后将占据两位空间。
例如:1在编码后变为1、0;0在编码后变为0、1。
其中,曼码数据低位在前,高位在后;被编码的数据字节的高4位编码后存放在一个字节中,低4位编码后存放在相邻的下一个字节中。
2.2.3曼彻斯特解码原理曼彻斯特解码是编码的逆过程,也就是从曼码数据中提取时钟,并利用这个时钟还原二进制数据的过程。
根据曼彻斯特解码过程中完成任务的不同,可以把曼彻斯特解码过程分为起始符识别及获取同步时钟、识别同步头、提取数据信息3个阶段。
(1)起始符识别及获取同步时钟通常传输通道干扰比较严重,所以无法用简单的起始位方法来判断何时开始接收数据。
本系统采用连续发送2个字节0xFF的方法来标识一次数据传输的开始。
2个字节的0xFF 转换成曼码后就相当于16个周期一定的矩形波。
因为干扰信号连续出现几个周期相近矩形波的几率很小,因此,在本系统中如果连续接收到8个码元,其周期在一定容差范围内,则认为捕捉到起始符,再根据捕捉到的信号周期计算实际波特率。
由于在发送接收开始时波形畸变的机率比较大,因此在波特率计算时进行了滤波。
滤波算法中忽略了前2个数据,采用后6个数据的平均值作为数据传输的波特率,从而使系统具有波特率自适应的能力。
该特性可很好地解决因发射模块供电电压变化导致波特率改变带来的不利影响。
(2)同步头识别同步头识别也就是识别数据“@”的问题。
本系统通过信号高低电平所占的位宽来判断数据。
当电平持续时间小于3/4的同步时钟周期时,电平时间为半个位宽,反之电平时间为1个位宽。
因为在起始符识别时只用了2个字节0xFF中的一个,所以在开始识别同步头时识别出的第1个数据位肯定是‘1’,由此决定了在码元识别时必须遵循以下2点。
1)先采用下降沿触发方式获得高电平的持续时间,然后把触发方式改为上升沿,获得低电平的持续时间,并进行码元判别。
判别依据见表2。
其中:S代表电平持续时间为半个位宽,L代表电平持续时间为一个位宽,本次位个数是指从曼码的一个高低电平持续时间中提取出来二进制数据的位数。
表2 码元判别高电平时间低电平时间本次位值本次位个数S S与上次值相同 1S L 1,0 2L S 1 1L L 1,0 22)在第1次进行码元识别时,假定上次值为‘1’。
当识别出来的位数据个数大于等于8时,则开始判断接收到的数据是否包含“@”,如果是则认为识别出同步头,下次开始接收数据;反之则把数据右移1位丢掉最低位,把下次接收到的位数据添加到最高位,再判断,依此类推,逐位接收判断。