<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > MC3361+MCU的低速光纖通信模塊設(shè)計

          MC3361+MCU的低速光纖通信模塊設(shè)計

          作者: 時間:2015-07-01 來源:網(wǎng)絡(luò) 收藏

            光纖通信做為一種新興的高性能的串行通信技術(shù),已經(jīng)在電力領(lǐng)域逐步展開應(yīng)用。目前的光纖通信模塊大多使用FPGA或DSP技術(shù)實現(xiàn)信號解調(diào),雖然其傳輸速度快、效率高,但是成本高、技術(shù)復(fù)雜,而且對于傳輸距離、電器隔離特性、可靠性、產(chǎn)品成本參數(shù)等都有極高的要求。而電力行業(yè)對光纖的應(yīng)用主要還是集中在強電的控制方面,現(xiàn)場環(huán)境對光纖模塊的通信速度要求較低。所以,在電力系統(tǒng)的工程實際中,由于現(xiàn)場情況復(fù)雜、干擾信號繁多,致使高成本的高速光纖通信技術(shù)的應(yīng)用并不十分理想。

          本文引用地址:http://www.ex-cimer.com/article/276666.htm

            鑒于光纖通信技術(shù)在電力系統(tǒng)中的應(yīng)用現(xiàn)狀,本文提出一種+結(jié)構(gòu)的低速光纖通信模塊設(shè)計方案。本設(shè)計硬件成本低、軟件流程簡單、性能穩(wěn)定,輸出信號為工業(yè)標(biāo)準(zhǔn)RS485信號或RS232信號,可直接與各種電力設(shè)備連接,非常適合在電力系統(tǒng)中廣泛使用。

            1調(diào)制解調(diào)原理

            為了降低硬件成本和提高硬件電路的可靠性,本設(shè)計使用BFSK調(diào)制解調(diào)算法。BFSK的調(diào)制原理是用載波的頻率來傳送數(shù)字消息,即用所傳送的數(shù)字消息控制載波的頻率。BFSK信號是符號“1”對應(yīng)于載頻f1,而符號“0”對應(yīng)于載頻f2(與f1不同的另一載頻)的已調(diào)波形,而且f1與f2之間的改變是瞬間完成的。

            1.1調(diào)制原理

            本文設(shè)計的光纖通信系統(tǒng)由通過內(nèi)部程序控制通過PWM接口完成調(diào)制。外部設(shè)備與模塊通過串行接口(包括RS232接口或RS485接口)連接,模塊接收到數(shù)據(jù)后,首先將數(shù)據(jù)傳輸給,MCU通過UART接口接收到數(shù)據(jù),MCU通過程序控制輸出BFSK調(diào)制信號,調(diào)制后的信號直接發(fā)送至光纖發(fā)射接口發(fā)送出去。

            進(jìn)行BFSK調(diào)制時使用MCU串行接口接收外部設(shè)備發(fā)送的數(shù)據(jù),BFSK的調(diào)制頻率由程序控制,信號“1”對應(yīng)于270KHz載頻,信號“0”對應(yīng)于240KHz載頻,波形如圖2所示,上邊的波形為未經(jīng)調(diào)制的信號,下邊的波形為經(jīng)調(diào)制后的信號。MCU將調(diào)制后的載頻信號通過PWM方式發(fā)送至光纖發(fā)射接口,電信號轉(zhuǎn)換成光信號。調(diào)制硬件原理框圖如圖1所示。

            

           

            圖1調(diào)制硬件原理框圖

            

           

            圖2調(diào)制前后信號的波形圖

            1.2解調(diào)原理

            BFSK的解調(diào)使用單片窄帶調(diào)頻接收芯片完成,片內(nèi)包含振蕩電路、混頻電路、限幅放大器、積分鑒頻器、濾波器、抑制器、掃描控制器及靜噪開關(guān)電路。

            解調(diào)電路原理圖如圖3所示。其中,185K網(wǎng)絡(luò)標(biāo)號為MCU輸出185K矩形波信號,R1為限流電阻,C5、L4組成濾波電路,C12諧振電容,信號經(jīng)過R1、C5、L4及C12后,由MC3361第1腳輸入,構(gòu)成MC3361解調(diào)的第二本振級。圖3中FSK網(wǎng)絡(luò)標(biāo)號為光纖接收接口輸入的矩形波信號,信號經(jīng)過R4、R6分壓,將信號高電平轉(zhuǎn)換為500mV,再經(jīng)過L6、C25進(jìn)行濾波,及C27、L7、VD1、VD2二次限壓濾波后,消除干擾頻率后,經(jīng)過C1諧振,最終信號轉(zhuǎn)變?yōu)檎也ㄐ盘枴?/p>

            

           

            圖3解調(diào)電路原理圖

            最終只有標(biāo)準(zhǔn)正弦波信號輸入至MC3361的第16引腳,作為MC3361的第一中頻IF輸入信號,信號幅值為0V,峰值為500mV,頻率為270KHz或230KHz.在MC3361內(nèi)部第二混頻級進(jìn)行混頻處理,處理后的信號為455KHz的第二中頻信號,由第3引腳輸出,由455kHz陶瓷濾波器選頻,即圖3中的Z4器件,再經(jīng)第5腳輸入MC3361的限幅放大器進(jìn)行高增益放大,限幅放大級是整個電路的主要增益級。第8腳接鑒頻電路,由455kHz鑒頻器Z3、R2及C26組成,經(jīng)放大后的第二中頻信號在內(nèi)部進(jìn)行鑒頻解調(diào),并經(jīng)一級音頻電壓放大后由第9引腳輸出信號,信號經(jīng)過第10腳和第11腳構(gòu)成的有源濾波電路,再輸入MC3361的第12腳進(jìn)行載頻檢測并控制電子開關(guān),最終經(jīng)過解調(diào)的信號由第13引腳輸出,直接輸入MCU的引腳,由MCU進(jìn)行處理。

            2軟件設(shè)計

            系統(tǒng)主程序分為兩個主要流程:串行接口處理流程和光纖接口數(shù)據(jù)處理流程。

            2.1串行接口處理流程

            本流程的主要任務(wù)是檢測串行接口是否接收到數(shù)據(jù),如果串行接口接收到數(shù)據(jù),設(shè)計中為了提高系統(tǒng)的穩(wěn)定性和抗干擾能力,首先對數(shù)據(jù)進(jìn)行拆分,將長數(shù)據(jù)包拆分成若干個短數(shù)據(jù)包,并為每個數(shù)據(jù)包增加起始標(biāo)識、校驗碼和結(jié)束標(biāo)識,組成一個數(shù)據(jù)幀,每個數(shù)據(jù)幀正確傳輸結(jié)束再進(jìn)行下一數(shù)據(jù)幀的傳輸。組成數(shù)據(jù)幀后,由MCU對數(shù)據(jù)進(jìn)行調(diào)制,并發(fā)送到光纖接口,將數(shù)據(jù)發(fā)送出去。

            2.2光纖接口數(shù)據(jù)處理流程

            本流程的主要任務(wù)是檢測光纖接口是否接收到數(shù)據(jù),如果光纖接口接收到數(shù)據(jù),則首先驗證數(shù)據(jù)幀格式,如果格式正確,則將有效數(shù)據(jù)提取出來重新組成完整數(shù)據(jù)包,并將數(shù)據(jù)包從串行接口發(fā)送出去,完成光纖接口到標(biāo)準(zhǔn)串行接口的數(shù)據(jù)傳輸。

            系統(tǒng)軟件設(shè)計流程如圖4所示。

            

           

            圖4軟件設(shè)計流程圖


          上一頁 1 2 下一頁

          關(guān)鍵詞: MC3361 MCU

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();