0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于ARM微控制器PC2104实现曼彻斯特码转换电路的应用设计

电子设计 来源:单片机与嵌入式系统应用 作者:张红兵 2020-10-28 10:15 次阅读

1 应用背景

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

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

基于ARM微控制器PC2104实现曼彻斯特码转换电路的应用设计

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

差分信号必须转换为TTL信号才能被微处理器识别。在T程应用中,实测的差分信号都不是标准的矩形,而是很不规则的近似于iF弦信号的波

形。因此还需要对信号进行整形。图2是带有同差的比较器电路,它的功能是对差分信号整形。同时将差分信号转换为TTI,信号。图3所示则采用r差分信号转TTL信号的专用集成电路SN75176。转换后的TTI,信号通过引脚PO.2,即定时器0的捕获输入口CAP0.0,进入I.PC2104。

4. 帧结构

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

偶校验位和l位停止位。

每个比特的传输时间为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为程序框图。

①同步信号的识别。识别同步信号的方法是,从一开始接收到方波时就捕捉方波的低电平和高电平时间,如果都是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所示,采样点选取在每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,否则就会产生采集到的数据与实际数据不相符的情况。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6803

    浏览量

    147595
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8647

    浏览量

    361728
  • 视频监控
    +关注

    关注

    17

    文章

    1682

    浏览量

    64209
收藏 人收藏

    评论

    相关推荐

    什么是微控制器

    就执行自动波特率功能,并与主机的波特率同步。如图1所示是在系统编程的物理连接.简单的引导加载程序接口允许使用几种方法来实现PC机与目标微控制  间的通信。最简单的方法是使用Dalla
    发表于 11-14 14:30

    ARM 微控制器 AT91M55800A

    AT91M55800A 概述爱特梅尔的AT91 ARM Thumb微控制器能提供8位微控制器用户期望的32位的性能,而仍在他的严格的系统预算之内。额外性能使软件中创新而非发展通信、压缩或控制
    发表于 09-02 11:18

    【图书分享】STM32系列ARM Cortex-M3微控制器原理与实践

    本帖最后由 小Z 于 2014-3-13 14:09 编辑 《STM32系列ARM Cortex-M3微控制器原理与实践》作  者:王永虹,徐炜,郝立平 编著内容简介本书介绍ARM
    发表于 03-13 14:05

    单片机、微控制器和微处理有何区别?

    CPU。最常见的微处理是Motorola的68K系列和Intel的X86系列。早期的微控制器是将一个计算机集成到一个芯片中,实现嵌入式应用,故称单片机(single chip
    发表于 04-05 09:32

    图书推荐:《ARM Cortex-M4微控制器原理与应用:基于Atmel SAM4系列》

    ARM Cortex-M4微控制器原理与应用:基于Atmel SAM4系列》以具有ARM Cortex—M4内核的Atmel公司SAM4E微控制器为蓝本讲述嵌入式开发技术。内容包括
    发表于 06-12 13:32

    基于ARM9微控制器怎么实现上层控制算法?

    在很多嵌入式控制系统中,系统既要完成大量的信息采集和复杂的算法,又要实现精确的控制功能。采用运行有嵌入式Linux操作系统的ARM9微控制器
    发表于 08-19 06:29

    32位微控制器LPC2104资料推荐

    32位微控制器LPC2104资料下载内容主要介绍了:LPC2104引脚功能LPC2104功能和特点LPC2104内部方框图
    发表于 03-30 07:26

    LPC2194CAN控制器ARM微控制器相关资料分享

    LPC2194是飞利浦公司生产的一款CAN控制器ARM微控制器。它为四面64脚封装。自带4路CAN控制器ARM
    发表于 04-22 07:37

    讨论AVR,ARM,8051和PIC微控制器之间的区别

    如今,微控制器非常便宜且易于获得,因此通常使用它们代替简单的逻辑电路(如计数微控制器是“在系统可编程”,这意味着可以调整正在执行的程序,而无需从其位置移除
    发表于 11-23 07:24

    AVR,ARM,8051和PIC微控制器之间的区别在哪

    如今,微控制器非常便宜且易于获得,因此通常使用它们代替简单的逻辑电路(如计数微控制器是“在系统可编程”,这意味着可以调整正在执行的程序,而无需从其位置移除
    发表于 11-23 08:24

    ARM微控制器基础与实战的两个问题求解?

    1.《ARM微控制器基础与实战》上说 32 字节的向量表的累加和必须为 0 才可脱机运行, 是否需要每次修改程序后修改第六个保留向量的值(因为地址有改变).2.《ARM 微控制器基础与
    发表于 04-19 10:12

    ARM微控制器基础与实战

    ARM微控制器基础与实战
    发表于 02-11 08:40 114次下载

    基于ARM7的GPRS无线上网研究

    提出以先进的精简指令(RISC) 的ARM7 PC2104 微控制器为核心, 通用无线分组业务(GPRS)模块MC 35i 组成无线上网系统。MC 35i 模块可实现系统方案中的数据、
    发表于 09-13 14:25 43次下载
    基于<b class='flag-5'>ARM</b>7的GPRS无线上网研究

    ARM_Cortex-M0+微控制器原理与应用

    ARM Cortex-M0+微控制器原理与应用,非常实用的教程。
    发表于 01-15 15:46 10次下载

    基于ARM Cortex M0内核的32位微控制器

    基于ARM Cortex M0内核的32位微控制器
    发表于 08-26 10:27 13次下载