由LPC2104构成的曼彻斯特码解码器

发布时间:2010-6-3 16:42    发布者:李宽
关键词: 解码器 , 曼彻斯特
1 应用背景

在局域网、红外线遥控、工业现场总线和有线视频监控等通信系统中,普遍使用曼彻斯特码作为数据编码的方式。对曼彻斯特码的解码通常采用专用的解码芯片,但是这种方法的通用性差。因为同样是曼彻斯特码。不同厂家有不同的编码规则和不同的帧同步方式,因此解码芯片不具备通用性,不能适用于一些特殊的曼彻斯特编码。如果在信号接收端采用微处理器对其解码,则具有通用性和灵活性。

Bosch和Philips公司的视频监控系统中,控制中速和高速摄像机云台动作的信号均采用曼彻斯特码编码传输。本文在开发解码器的过程中发现所记录的曼彻斯特码与参考文献[1—3]所描述的完全不同。此外在参考文献[1—3]中叙述了采用单片机对曼彻斯特码进行解码的方法,但是都没有给出曼彻斯特码转换为TTI。信号的详细电路。而且由于曼彻斯特码每1位的传输时间为32 ps,8位单片机的运行速度仅够对其解码而不能同时承担其他工作。因此按照这种设计,在云台解码器中必须采用2个单片机,一个作为协议转换器,另外一个单片机完成指令解析和控制云台及摄像机等其他动作。本文采用的则是单一芯片解决方案,使用基于ARM(Advanced RISC Ma—chines)内核的微控制器I。PC2104,利用其运行速度快和定时精度高的特点,对曼彻斯特码进行解码并控制云台和摄像机的其他动作。本文将详细叙述Bosch和Philips公司的曼彻斯特码编码规则、曼彻斯特码转换为TTL信号的2种电路方案和软件设计思想。

2曼彻斯特码编码规则

曼彻斯特码以双绞线为物理传输媒介,并采用差分信号进行传输,2根传输线分别为D+和D一。尽管曼彻斯特编码规定采用电平跳变的方式来表示0和1,但是不同的设备制造商在实际使用过程中采用了不同特点的编码方式。这体现在编码规则和传输格式上的不同。例如,一般的曼彻斯特编码规则是,由低电平到高电平的跳变代表逻辑0,由高电平到低电平的跳变代表逻辑1。但是在部分红外线通信和有线视频监控中,控制信号的传输却采用r完没有数据全相反的规则,即:由低电平到高电平的跳变代表逻辑1,由高电平到低电平的跳变代表逻辑0,传输时D+与D一之间的电位差为0。

图1所示为Bosch和Philips公司的曼彻斯特码编码规则。

1.gif

3 曼彻斯特码转换为TTL信号

差分信号必须转换为TTL信号才能被微处理器识别。在T程应用中,实测的差分信号都不是标准的矩形,而是很不规则的近似于iF弦信号的波
形。因此还需要对信号进行整形。图2是带有同差的比较器电路,它的功能是对差分信号整形。同时将差分信号转换为TTI,信号。图3所示则采用r差分信号转TTL信号的专用集成电路SN75176。转换后的TTI,信号通过引脚PO.2,即定时器0的捕获输入口CAP0.0,进入I.PC2104。

23.gif

4. 帧结构

图4所示为图2或图3中记录的曼彻斯特码转换为TTI。信号后的波形。它是Bosch公司用于远程控制云台的LTC5136键盘发出的一串指令中的1帧,包含完整的帧同步、帧数据和帧结束等部分。其传输的内容足l位起始位,8位数据位(图中的数据为十六进制数87),1位奇
偶校验位和l位停止位。

4.gif

每个比特的传输时间为32 ps,它在电平上分为两相,一个是高电平,一个是低电平。在32弘s的一半处。两相发牛跳变,因此每相的持续时间均为16 ps。由低电平到高电平的跳变代表逻辑1,由高电平到低电平的跳变代表逻辑0。

可以看出,每个字节都是以1帧为单位进行传输的,每帧分为帧同步、帧数据和帧结束三个部分,每个部分的结构和特点如下:

①帧同步的作用是提示接收设备做好接收后续字节的准备,同时可以作为接收设备识别帧同步的时钟信号。识别帧同步足正确接收后续字节的关键。帧同步的结构是。连续出现5个逻辑1,之后出现1个较宽的方波信号,低电平时间为48 ps,高电平时间也是48 lus,这个方波是帧同步信号的结束标志。

②数据部分包括1个起始位,8位数据位,1位奇偶校验位和1位停止位。实际采用的是奇校验。数据传输时,先传输最低有效位,后传输最高有效位。

③帧结束的标志为1个方波,其高电平和低电平的时间均为64弘s。

④帧与帧之间的间隔时间为304 ps。因此1帧的传输时间为1 040弘s,对应的波特率刚好为9 600 bps。

Philips公司的LTC8553和I.TC8800矩阵发送的曼彻斯特码与上述Bosch公司的编码有完全相同的地方,即帧同步和帧结束标志的结构都是完全一样的,每1位的传输时间是一致的,对逻辑0和1的编码规则是相同的,且都是奇校验。不同之处在于,Philips公司的编码将1条控制命令中的所有字节首尾相连地在1帧信号中发送,字节与字节之间没有分隔开来,而Bosch公司的则是每传输1个字节都有完整的帧同步和帧结束标志。

5数据采样

LPC2104有2个捕获/比较定时器,即定时器0和定时器l,每个定时器除具备对外部信号的捕获功能外还具备匹配功能。本系统中,曼彻斯特码转换为TTL信号后送入定时器0的捕获信号输入端CAP0.0。利用定时器0的捕获功能捕捉并识别】帧信号的帧同步,利用定时器的比较功能去识别一帧的数据部分。图5为程序框图。

5.gif

①同步信号的识别。识别同步信号的方法是,从一开始接收到方波时就捕捉方波的低电平和高电平时间,如果都是48 ps,则表明已经检测到帧同步的标志。将LPC2104的定时器0的捕获控制寄存器TOCCR设定为上升沿捕获,即当输入端CAP0.0的电平产生从0到1的跳变时,将计数器的值保存到捕获寄存器CR0,并产生中断。当产生中断时,在中断服务程序里判断CR0的值是否在(48±5)ps范围,如果正确,则将标志变量Flag置l,否则清零。无论是否为48肛s,都必须将CR0清零并将TOCCR设定为下降沿捕获。当下降沿产生捕获时,在中断服务程序中对CR0的值,即脉冲高电平时间,进行判断,如果在(48±5)/zs范围且Flag为l,则表明帧同步的结束标志已经检测到,否则将Flag清零。

②起始位的判断。如果下降沿捕获产生的中断服务程序已经检测到帧同步的结束标志,则将定时器0设定在比较功能,将匹配寄存器0的值设定为24 Ps,当产生匹配时复位定时器并产生中断。在中断服务程序中对CAP0.0引脚进行采样。采样点刚好落在起始位的后一相信号的中间位置,即1位数据传输时间的24 ps位置处,如图6中箭头所指位置。为了提高采样数据的可靠性,在采样点附近连续采样3次,取其中2次相同的数据为最终结果。如果采样得到的电平为0,则表明数据位为0,否则为1。如果最终采样结果为1,表明起始位判断成功,后面开始数据位的采样。如果结果为0,表明该位并非起始位,因此需要重新进行同步信号的识别。

6.gif

③数据位的采样。如图6所示,采样点选取在每1位后一相的中间,即24弘s处。从起始位的采样点开始,每隔32 ps对CAP0.0的电平进行连续的3次采样,取其中2次相同的数据为最终结果。按照同样的方式连续采样10个数据。采集到的第1位到第8位分别为1个字节的bit0到bit7,注意低位在前高位在后。第9位为奇偶校验位,第lo位为停止位。停止位始终为0。

④在停止位之后紧跟的是64 ps的高电平和64 ps的低电平。停止位与下一帧信号之间为空闲信号,空闲信号为高电平,持续时间为304弘s。一般而言对这部分不必做任何检测。

6 实验

LPC2104构成的曼彻斯特码解码器已经用于中速和高速球型摄像机云台中,LPC2104首先对曼彻斯特码进行解码,然后解释命令的内容,最后控制云台和摄像机的动作。该解码器运行至今非常稳定,没有发生控制指令漏失的情况。在编写程序的过程中要注意,定时器中断服务
程序的运行时间一定要非常短,不能大于32 ps,否则就会产生采集到的数据与实际数据不相符的情况。

参考文献

   1. 王志永.李晓白 曼彻斯特码异步解调的单片机实现及性能分析 [期刊论文] -遥测遥控2003(11)
   2. 李欣 高速曼彻斯特码的准异步解调 1999(03)
   3. 李会银 用 AT89C2051实现的曼彻斯特编码译码器及应用 1999(10)

作者:湖北咸宁学院 张红兵
来源:单片机与嵌入式系统应用  2008 (9)
本文地址:https://www.eechina.com/thread-11972-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表