郭語,鞠全勇
(金陵科技學(xué)院 機(jī)電工程學(xué)院, 江蘇 南京 211169)
主從通信在工業(yè)控制領(lǐng)域有著非常廣泛的應(yīng)用。現(xiàn)有的主從通信往往采用SPI、SCI或I2C等通信方式,需要專門的通信接口,在一些對總線硬件資源有限制的場合會有較大的應(yīng)用局限性。脈寬調(diào)制(pulse with modulation, PWM)信號,是一種利用微處理器的數(shù)字信號對模擬量進(jìn)行編碼的非常有效的技術(shù),在移動通信、電機(jī)矢量控制和逆變電路等方面有著較為廣泛的應(yīng)用[1-4]。PWM信號有兩個重要的特征,分別是頻率和占空比。在主從通信系統(tǒng)的設(shè)計(jì)中,可以利用這兩個特征進(jìn)行信息的傳遞,從而實(shí)現(xiàn)低成本、高可靠性的單線協(xié)議通信。目前,基于PWM方式的通信技術(shù)已成功應(yīng)用于無線遙控通信[5]、光纖中繼傳輸系統(tǒng)[6]等領(lǐng)域。
本文提出基于PWM信號的主從通信方法,根據(jù)通信特點(diǎn)設(shè)計(jì)主從機(jī)系統(tǒng)軟硬件,并在其上實(shí)現(xiàn)基于PWM信號的主從通信。相對于傳統(tǒng)的SPI、SCI以及I2C等通信,本文所提方法只需1根通信總線,結(jié)構(gòu)簡單、系統(tǒng)簡潔。
主機(jī)和從機(jī)通過1根PWM線相互傳遞信息,其連接原理圖如圖1所示。主機(jī)通過M_OUT引腳發(fā)送一定頻率和占空比的PWM信號,傳遞到從機(jī)的S_IN引腳,從機(jī)采集PWM信號,計(jì)算頻率和占空比,獲取信息;同時從機(jī)通過S_OUT引腳控制器開關(guān)K2,周期性拉低PWM線路上的電平,主機(jī)通過開關(guān)K1采集PWM信號的持續(xù)拉低與釋放時間,從而獲取從機(jī)反饋的信息。
圖1 主從機(jī)連接原理圖
通信過程如圖2所示,主機(jī)向通信總線上發(fā)送一定頻率和占空比的PWM信號,不同的頻率和占空比代表不同的信息;從機(jī)周期性地拉低信號時間TLs和釋放1 s,通過修改拉低時間TL向主機(jī)傳遞不同的信息。
圖2 通信示意圖
主機(jī)硬件電路需包含PWM信號發(fā)送和PWM信號線電平采樣功能。如圖3所示,本文選用Freescale的MC9S08SG8單片機(jī)作為主控芯片,該單片機(jī)屬于HCS08系列8位MCU,芯片內(nèi)置8 K字節(jié)FLASH,512字節(jié)片上RAM以及靈活可配置的PWM輸入輸出模塊,可以滿足系統(tǒng)的需求[7]。通過單片機(jī)PTA1引腳輸出PWM波形驅(qū)動三級管Q1以改變PWM信號線的波形,同時主控芯片通過對PTA2引腳的電平采樣功能,回讀PWM信號的電平狀態(tài)。
圖3 主機(jī)電路設(shè)計(jì)
1)發(fā)送PWM信號
通過配置單片機(jī)MC9S08SG8的相關(guān)寄存器,將MC9S08SG8單片機(jī)自帶的TPM2模塊配置成PWM輸出功能[8],修改寄存器TPM2MOD和TPM2C0V即可改變信號的頻率和占空比,利用單片機(jī)程序進(jìn)行設(shè)置并輸出PWM波形[9],流程如圖4所示。
圖4 主機(jī)發(fā)送PWM流程圖
2)信號低電平采樣
采用對IO口周期掃描的方法采樣PWM信號電平,在單片機(jī)程序中以10 K的速率讀取PTA2引腳電平,累加低電平的次數(shù),遇到高電平則清零。如果低電平次數(shù)累加超過900,則計(jì)算拉低時間TL。TL等于低電平的累加因子乘以0.1 ms的執(zhí)行周期,流程如圖5所示。
圖5 信號低電平采樣流程
從機(jī)硬件電路分為主控電路和接口電路兩部分,本文選擇與主機(jī)一樣的單片機(jī)作為從機(jī)主控,如圖6所示。接口電路如圖7所示,該電路包含信號接口和反饋兩部分功能。為了增強(qiáng)信號的傳輸能力和抗干擾能力,通過電阻R9對PWM線上的信號進(jìn)行12 V上拉。
圖6 從機(jī)主控電路
圖7 從機(jī)接口電路
1)計(jì)算PWM信號的占空比和頻率
在軟件程序里定義3個變量,分別是T1、T2和Tf,其中T1對應(yīng)捕獲到第1個上升沿的時刻,T2對應(yīng)捕獲到第2個上升沿的時刻,Tf對應(yīng)捕獲到第1個下降沿的時刻。連續(xù)捕獲到2個上升沿認(rèn)為是一個完整周期,第1個上升沿和第1個下降沿之間的時間認(rèn)為是1個周期內(nèi)高電平持續(xù)的時間,如圖8所示。
圖8 PWM周期與占空比定義
則有
其中K是比例系數(shù)。
2)拉低信號線電平
通過配置從機(jī)主控單片機(jī)的IO模塊,使得PTA1可以輸出高低電平。以拉低1 s,釋放1 s為例,軟件流程如圖9所示。
圖9 從機(jī)拉低1 s流程
對系統(tǒng)進(jìn)行實(shí)驗(yàn)分析,定義主機(jī)發(fā)送頻率為50 Hz,占空比為1%~99%的PWM信號,主從機(jī)通信協(xié)議如表1所示,使用示波器對主從機(jī)之間的PWM信號連接線進(jìn)行觀察測量,判斷主機(jī)發(fā)送與從機(jī)回復(fù)是否正常。
表1 主從機(jī)通信協(xié)議
將主機(jī)與從機(jī)連接,如圖10所示。按表1協(xié)議進(jìn)行通信,測量PWM連接信號線波形如圖11-圖13所示。
圖10 主從機(jī)連接圖
圖11 主機(jī)發(fā)送10%,從機(jī)拉低1 s
圖12 主機(jī)發(fā)送50%,從機(jī)拉低1.5 s
圖13 主機(jī)發(fā)送90%,從機(jī)拉低1.99 s
通過示波器波形,可以看出實(shí)驗(yàn)結(jié)果與預(yù)設(shè)的通信協(xié)議是一致的,驗(yàn)證了主從機(jī)通過PWM信號通信的可行性。本通信方式仍可進(jìn)一步優(yōu)化:將信號的頻率和占空比結(jié)合,主機(jī)可以傳遞更多的信息;從機(jī)將低信號線的時間分辨率精確到10 ms可以傳遞更多的信息;如選用16位單片機(jī),擴(kuò)展信號的頻率范圍,將占空比分辨率精確到0.1%。
本文提出的PWM通信方式,通過PWM信號的占空比和電平狀態(tài)相互傳遞信息,可以有效地用于主從機(jī)通信系統(tǒng)。經(jīng)驗(yàn)證,本通信方式可靠穩(wěn)定,對于從機(jī)發(fā)送數(shù)據(jù)量較小的系統(tǒng)而言,是優(yōu)先的選擇?;赑WM信號的通信方式,結(jié)構(gòu)簡單、成本低,在電子與工業(yè)控制行業(yè)有著較大的應(yīng)用前景。