当前位置:首页 > 电源 > 电源
[导读]引言 由于曼彻斯特(MancheSTer)编码具有传输时无直流分量,时钟提取方便等特点,被广泛地应用于以太网、车辆总线、工业总线中。现在工程上常用的曼彻斯特编译码芯片为HD-

引言

由于曼彻斯特(MancheSTer)编码具有传输时无直流分量,时钟提取方便等特点,被广泛地应用于以太网、车辆总线、工业总线中。现在工程上常用的曼彻斯特编译码芯片为HD-6408和HD-6409,但是这种芯片有一些不足。首先,该芯片在传输速率和每帧数据中的有效位数等方面都做了严格的限制。其次,使用该芯片需要增加额外的硬件电路,提高了系统成本。使用FPGA做曼彻斯特编译码成本高,而且开发周期长。本文提出了一种基于STM32F103RET6的编译码系统方案,利用了STM32F103RET6强大的定时器功能,采用灵活的编译码方式,传输速率和数据帧格式都可以根据需要完全自行定义。STM32F103RET6自带DMA的功能使得数据编码不再需要频繁的定时中断,提高了编码速率,节约了CPU的资源。该设计方案实现方法简单、稳定、灵活,应用范围广泛。

1 曼彻斯特码

曼彻斯特编码是一种自动同步的编码方式即时钟同步信号就隐藏在数据波形中。在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作为时钟信号,又作为数据信号。每个码元均用两个不同相位的电平信号表示,与用高、低电平表示的非归零二进制码相比,在连“0”或连“1”的情况下更易于提取同步时钟信息。并且曼彻斯特码传输时没有直流分量,可以降低系统的功耗,且有很强的抗干扰能力。图1所示是最常用的一种曼彻斯特编码方法,当传送信号为“1”时,曼彻斯特编码由高电平跳变为低电平;若传送的信息为“0”,曼彻斯特由低电平跳变为高电平,在一个数据周期内保持低电平无跳变则表示空闲。


图1 曼彻斯特编码

2 STM32F103RET6的定时器与DMA简介

控制器采用ST公司的STM32微处理器,STM32系列微处理器基于ARM Cortex-M3内核,采用高效的哈佛结构三级流水线,达到1.25DMIPS /MHz,这里我们选用增强型的STM32F103RET6.它具有如下特征:72 MHz系统时钟频率、512 KB闪存程序存储器、64 KBSRAM、8个定时器、3个12位模数转换器、1个数模转换器,1个CAN接口、7通道DMA控制器,以及SPI、USART、I2C、I2S、USB接口等。该控制器具有丰富的外设和较强的抗干扰能力,很适用于工业现场控制。

STM32F103RET6有8个定时器,每个定时器由一个可编程预分频的1 6位自动装载计数器构成,计数频率高达72 MHz,它适用于多种场合包括输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较或者PWM)。

STM32F103RET6支持DMA操作,DMA是在外没和存储器之间或者存储器和存储器之间的高速数据传输通道,通过DMA数据可以快速地移动而无需CPU的参与,这就节省了CPU的资源来做其他事情。本次设计便是利用计数器触发DMA进行内存与定时器的数据交换,比起中断查询的方式,提高了编码的效率和稳定性。

定时器的计数频率最高为72 MHz,DMA传输速率为6 Mb/s,因此曼彻斯特编码的速率可以很轻松的做到1 Mb/s,满足高速编码的需求。

3 系统实现方案

基于STM32F103RET6的曼彻斯特电压、电流编译码系统框图如图2所示。该系统设计主要使用STM32F103RET6芯片的定时器加DMA功能来实现曼彻斯特的电压编译码,对于电流编码译码需要借助外围的电压与电流转换电路来实现。


图2 基于STM32F103RET6的曼彻斯特电压、电流编译码系统框图

3.1 电压编码

将定时器设置为输出比较翻转功能,申请一个缓存区,将要编码的数据通过编码算法转换为翻转匹配值放入此缓存区,如图3所示的ABC DEF……计数值,编码算法根据具体应用中的编码协议来编写。启动定时器后,计数器开始计数,当计数值与定时器比较寄存器的值匹配时,输出引脚的电平进行翻转并触发DMA从缓存区来更新比较寄存器;每更新一次,DMA指向的内存地址递增1,指向下一次要更新到比较寄存器的数据,以此方式实现定时器根据缓存区的数据输出对应的编码波形。编码速率可通过修改定时器预分频器和RCC时钟控制器分频器来进行调节。


图3 编辑示例

3.2 电压译码

将定时器设置为输入捕获功能,当曼彻斯特码的上升沿或下降沿到来时定时器会将当前的计数值进行捕获,并经由DMA通道?涞交捍媲?恢鞒绦蛑谢岬饔靡肼胨惴ɡ炊曰捍媲?氖?萁?写?聿⒔?幸肼耄?肼胱魑?嗦氲哪婀?蹋?湟肼胨惴ㄒ惨??菥咛逵τ弥械谋嗦胄?槔幢嘈础?p>

3. 3 电流编码

将电压编码通过图4所示的电压/电流转换电路来实现,将定时器输出的曼彻斯特电压编码转换为曼彻斯特电流码。


图4 电压/电流转换电路

3.4 电流译码

将待测的曼彻斯特电流码信号通过电流/电压转换为电压码,进行整形使边缘变陡峭后交MCU来译码,电流/电压转换电路如图5所示。


图5 电流/电压转换电路

4 软件设计

软件流程如图6所示。系统初始化包括时钟初始化、定时器初始化、DMA初始化等。如果一次性连续编码的数据最比较大时,应将这罩的DMA缓冲区设置为双缓冲,为每个用到的DMA通道开辟两个缓冲区。当DMA使用其中的一个缓冲区时,MCU调用编码或者译码算法来对另外一个缓冲区进行读写操作;当DMA数据传输完毕的时候,发生一个DMA传输结束中断,在中断服务程序里切换到另外一个缓冲区,并将编码算法或者译码算法标志位置位。当主程序查询到标志位置位后,MCU调用编码或者译码算法来对DMA先前指向的缓冲区进行处理(填充数据或者取数据)。当然,如一次性编码或者译码的数据不是很多时,我们只需一个缓冲区就够了。


因为CPU处理数据的速度要高于编码的速率,所以CPU可以空出时间来做其他的事情,时间的长短依赖于缓冲区的大小和编码的速率,等到主程序中查询到编码或者译码标志位置位了再去执行编码或者译码算法对数据进行处理,这样就提高了CPU的工作效率。在实时性要求不高的应用中,不再需要一个专门的CPU去处理编码或者译码。

5 方案验证

本方案已在汽车加速度传感器模拟系统中得到了验证,这里以某款加速度传感器的曼彻斯特编码协议为例,其数据帧格式为一帧数据为19位包括:2个起始位、2个类别位、10个数据位、5个CRC效验位。

5.1 编码方案验证

对图4所示电路的T1点测量曼彻斯特电压编码的波形,电流编码的波形通过测量T2、T3问的压降来间接测量。


对一帧数据0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1连续编码,帧之间延时6μs,编码速率400kb/s,编码波形如图7所示。

5.2 译码方案验证

通过对某真实传感器输出的曼彻斯特电流码进行捕获译码,得到其ID信息,译码数据如图8所示。ID正确,译码成功。


结语

该没计方案可以方便地实现曼彻斯特电压、电流编码译码,实现方法灵活、可靠,适用于各种类型的曼彻斯特编码译码应用领域。目前,本设计方案已经成功地应用在汽车加速度传感器模拟系统中。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式开发中,STM32的时钟系统因其灵活性和复杂性成为开发者关注的焦点。然而,看似简单的时钟配置背后,隐藏着诸多易被忽视的陷阱,轻则导致系统不稳定,重则引发硬件损坏。本文从时钟源选择、PLL配置、总线时钟分配等关键环...

关键字: STM32 时钟系统

在嵌入式系统开发中,STM32系列微控制器的内部温度传感器因其低成本、高集成度特性,广泛应用于设备自检、环境监测等场景。然而,受芯片工艺差异和电源噪声影响,其原始数据存在±1.5℃的固有误差。本文从硬件配置、校准算法、软...

关键字: STM32 温度传感器

在能源效率与智能化需求双重驱动下,AC-DC转换器的数字控制技术正经历从传统模拟方案向全数字架构的深刻变革。基于STM32微控制器的PFM(脉冲频率调制)+PWM(脉冲宽度调制)混合调制策略,结合动态电压调整(Dynam...

关键字: AC-DC STM32

当前智能家居产品需求不断增长 ,在这一背景下 ,对现有浇花装置缺陷进行了改进 ,设计出基于STM32单片机的全 自动家用浇花机器人。该设计主要由机械结构和控制系统构成 ,机械结构通过麦克纳姆轮底盘与喷洒装置的结合实现机器...

关键字: STM32 麦克纳姆轮 安全可靠 通过性强

用c++编程似乎是让你的Arduino项目起步的障碍吗?您想要一种更直观的微控制器编程方式吗?那你需要了解一下Visuino!这个图形化编程平台将复杂电子项目的创建变成了拖动和连接块的简单任务。在本文中,我们将带您完成使...

关键字: Visuino Arduino ESP32 STM32

基于STM32与LoRa技术的无线传感网络凭借其低功耗、广覆盖、抗干扰等特性,成为环境监测、工业自动化等场景的核心解决方案。然而,如何在复杂电磁环境中实现高效休眠调度与动态信道优化,成为提升网络能效与可靠性的关键挑战。本...

关键字: STM32 LoRa

在实时控制系统、高速通信协议处理及高精度数据采集等对时间敏感的应用场景中,中断响应延迟的优化直接决定了系统的可靠性与性能上限。STM32系列微控制器凭借其灵活的嵌套向量中断控制器(NVIC)、多通道直接内存访问(DMA)...

关键字: STM32 DMA

数字电源技术向高功率密度、高效率与高动态响应方向加速演进,STM32微控制器凭借其基于DSP库的算法加速能力与对LLC谐振变换器的精准控制架构,成为优化电源动态性能的核心平台。相较于传统模拟控制或通用型数字控制器,STM...

关键字: STM32 数字电源

STM32微控制器凭借其针对电机控制场景的深度优化,成为高精度、高可靠性驱动系统的核心选择。相较于通用型MCU,STM32在电机控制领域的核心优势集中体现在FOC(磁场定向控制)算法的硬件加速引擎与PWM死区时间的动态补...

关键字: STM32 电机控制

无线充电技术加速渗透消费电子与汽车电子领域,基于Qi协议的无线充电发射端开发成为智能设备能量补给的核心课题。传统模拟控制方案存在响应滞后、参数调整困难等问题,而基于STM32的数字PID控制结合FOD(Foreign O...

关键字: STM32 无线充电
关闭