历史上的今天
今天是:2025年01月31日(星期五)
2018年01月31日 | 基于MC3361+MCU结构的低速光纤通信模块设计方案
2018-01-31 来源:互联网
光纤通信做为一种新兴的高性能的串行通信技术,已经在电力领域逐步展开应用。目前的光纤通信模块大多使用FPGA或DSP技术实现信号解调,虽然其传输速度快、效率高,但是成本高、技术复杂,而且对于传输距离、电器隔离特性、可靠性、产品成本参数等都有极高的要求。而电力行业对光纤的应用主要还是集中在强电的控制方面,现场环境对光纤模块的通信速度要求较低。所以,在电力系统的工程实际中,由于现场情况复杂、干扰信号繁多,致使高成本的高速光纤通信技术的应用并不十分理想。
鉴于光纤通信技术在电力系统中的应用现状,本文提出一种MC3361+MCU结构的低速光纤通信模块设计方案。本设计硬件成本低、软件流程简单、性能稳定,输出信号为工业标准RS485信号或RS232信号,可直接与各种电力设备连接,非常适合在电力系统中广泛使用。
1调制解调原理
为了降低硬件成本和提高硬件电路的可靠性,本设计使用BFSK调制解调算法。BFSK的调制原理是用载波的频率来传送数字消息,即用所传送的数字消息控制载波的频率。BFSK信号是符号“1”对应于载频f1,而符号“0”对应于载频f2(与f1不同的另一载频)的已调波形,而且f1与f2之间的改变是瞬间完成的。
1.1调制原理
本文设计的光纤通信系统由MCU通过内部程序控制通过PWM接口完成调制。外部设备与模块通过串行接口(包括RS232接口或RS485接口)连接,模块接收到数据后,首先将数据传输给MCU,MCU通过UART接口接收到数据,MCU通过程序控制输出BFSK调制信号,调制后的信号直接发送至光纤发射接口发送出去。
进行BFSK调制时使用MCU串行接口接收外部设备发送的数据,BFSK的调制频率由程序控制,信号“1”对应于270KHz载频,信号“0”对应于240KHz载频,波形如图2所示,上边的波形为未经调制的信号,下边的波形为经调制后的信号。MCU将调制后的载频信号通过PWM方式发送至光纤发射接口,电信号转换成光信号。
1.2解调原理
BFSK的解调使用MC3361单片窄带调频接收芯片完成,MC3361片内包含振荡电路、混频电路、限幅放大器、积分鉴频器、滤波器、抑制器、扫描控制器及静噪开关电路。
解调电路原理图如图3所示。其中,185K网络标号为MCU输出185K矩形波信号,R1为限流电阻,C5、L4组成滤波电路,C12谐振电容,信号经过R1、C5、L4及C12后,由MC3361第1脚输入,构成MC3361解调的第二本振级。图3中FSK网络标号为光纤接收接口输入的矩形波信号,信号经过R4、R6分压,将信号高电平转换为500mV,再经过L6、C25进行滤波,及C27、L7、VD1、VD2二次限压滤波后,消除干扰频率后,经过C1谐振,最终信号转变为正弦波信号。
最终只有标准正弦波信号输入至MC3361的第16引脚,作为MC3361的第一中频IF输入信号,信号幅值为0V,峰值为500mV,频率为270KHz或230KHz.在MC3361内部第二混频级进行混频处理,处理后的信号为455KHz的第二中频信号,由第3引脚输出,由455kHz陶瓷滤波器选频,即图3中的Z4器件,再经第5脚输入MC3361的限幅放大器进行高增益放大,限幅放大级是整个电路的主要增益级。第8脚接鉴频电路,由455kHz鉴频器Z3、R2及C26组成,经放大后的第二中频信号在内部进行鉴频解调,并经一级音频电压放大后由第9引脚输出信号,信号经过第10脚和第11脚构成的有源滤波电路,再输入MC3361的第12脚进行载频检测并控制电子开关,最终经过解调的信号由第13引脚输出,直接输入MCU的引脚,由MCU进行处理。
2软件设计
系统主程序分为两个主要流程:串行接口处理流程和光纤接口数据处理流程。
2.1串行接口处理流程
本流程的主要任务是检测串行接口是否接收到数据,如果串行接口接收到数据,设计中为了提高系统的稳定性和抗干扰能力,首先对数据进行拆分,将长数据包拆分成若干个短数据包,并为每个数据包增加起始标识、校验码和结束标识,组成一个数据帧,每个数据帧正确传输结束再进行下一数据帧的传输。组成数据帧后,由MCU对数据进行调制,并发送到光纤接口,将数据发送出去。
2.2光纤接口数据处理流程
本流程的主要任务是检测光纤接口是否接收到数据,如果光纤接口接收到数据,则首先验证数据帧格式,如果格式正确,则将有效数据提取出来重新组成完整数据包,并将数据包从串行接口发送出去,完成光纤接口到标准串行接口的数据传输。
史海拾趣
|
小弟新手 一般来说用printf都是串口输出,或者shell输出, 现在想在屏幕输出请问需要调用什么函数? 这个是不是要调用屏幕的输出函数?? 大家有自己屏幕输出函数吗?请给一个我参考下,谢谢 … 查看全部问答> |
|
在网上下了个platform builder 6.0软件. 大概3.6GB. 安装后. 在\"所有程序\"栏中没有发现有Platform builder执行文件. 只有一个Windows Emberdded ce6.02 -->Release Notes. 在桌面也没有图标. 但在C盘下的WINCE600下有CRC. OTHERS. PLA ...… 查看全部问答> |
|
tinyos可以移植到gains 3里面么。。。主要是想应用tinyos里面所带的java工具的功能。。 如果可以要怎么去做啊,给各大概的思路,比如说要修改哪个里面的东西之类的,有没有相关的资料… 查看全部问答> |
|
请各位帮帮忙: PENTIUM的CPU,从系统加电,到VXWORKS初始化完成,也就是进入usrAppInit入口的时间需两分钟左右,实在太长了。如何缩短这部分时间呢? 万分感谢!… 查看全部问答> |
|
首先声明:我专业知识没学好.而且很笨. 我问的问题是:我的毕业设计是旋转式电子广告体的制作.51STC单片机控制.目前毫无头绪. 主要问题:1:一个广告体的实体出来,需要的东西都是哪些? 2:原理是什么?电路怎么画啊? ...… 查看全部问答> |
|
我看了一下数据手册:8位非复用方式只有16位地址即只有扩展64KB。而16位数据/地址复用方式有24位地址即可以扩展16M ...… 查看全部问答> |
|
《STM32博客大赛》即将开锣,请各位做好准备,万元大奖等你 还有配套的团购活动!心动不如行动,要快啊!http://group.ednchina.com/619/10721.aspx… 查看全部问答> |
|
用altera的IP core配置FIR滤波器非常方便,但有一个问题我想不明白: 输入的是无符号16位数据,ip配置告之输出是31位的。那么这31位数据是怎么构成的呢,哪些是整数,哪些是小数?? … 查看全部问答> |
|
K60数据存放到程序存储区是不是就是指定一个地址,地址在Flash地址空间: 0x00000000--0x00080000里就可以了?K60的启动是不是从0x00000000开始启动?PC指针的跳转是用什么指令实现的?如果我在0x00000000处开始写入一个程序,再从0x00020000写入一 ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 09:46 编辑 2011年全国大学生电子设计竞赛 基本仪器和主要元器件清单 1、基本仪器清单 20MHz普通示波器(双通道,外触发输入,有X轴输入) 60MHz双通道数字示波器 低频信号发生器(1Hz~1MHz) ...… 查看全部问答> |




