王 軍,劉和松,陳 輝
WANG Jun1, LIU He-song2, CHEN Hui2
(1. 北京京運(yùn)通科技股份有限公司,北京 100176;2. 北京航空航天大學(xué) 機(jī)械工程及自動(dòng)化學(xué)院,北京 100038)
工業(yè)行車系統(tǒng)廣泛應(yīng)用于制造業(yè)室、內(nèi)外組裝、運(yùn)輸?shù)裙ぷ髦小H畿囬g工字梁上安裝的行車,橋式起重機(jī),以及戶外場(chǎng)合應(yīng)用的“天車”等。其控制方法是由裝在行車上的電控箱中引出的多芯電纜連接一手持操作盒,通過按鈕控制行車各部分運(yùn)動(dòng)機(jī)構(gòu)進(jìn)行動(dòng)作。在其操作工程中,操作者手持操作盒,眼睛盯著重物,同行車一起走動(dòng),很不方便;另外,處于戶外的行車系統(tǒng),其線纜長(zhǎng)期受到風(fēng)吹日曬雨淋,容易老化,需要頻繁更換,使成本大大增加;嚴(yán)重時(shí),在操作過程中有時(shí)還會(huì)發(fā)生短路,造成安全隱患。
為此,本文以一種典型的“三自由度”天車為例(“三自由度”指的是天車機(jī)架沿軌道的“前”、“后”運(yùn)動(dòng),電動(dòng)葫蘆滑車的“左”、“右”運(yùn)動(dòng),以及吊鉤的“上”、“下”移動(dòng)),為其設(shè)計(jì)了一種低功耗、低成本、高抗干擾能力的無線遙控系統(tǒng)。在半徑100m的有效控制范圍內(nèi),操作人員手持便攜式發(fā)射機(jī),即可自由走動(dòng),選擇最佳視角及位置進(jìn)行操作,不再受電纜長(zhǎng)度的限制;同時(shí),避免了頻繁更換老化的電纜,在節(jié)約成本的同時(shí),進(jìn)一步提高了可靠性。
整個(gè)遙控系統(tǒng)由發(fā)送機(jī)和接收機(jī)兩個(gè)單元組成。這兩個(gè)單元基于單片機(jī)及單片無線收發(fā)芯片搭建。
P89LPC921是由NXP半導(dǎo)體公司開發(fā)的單片機(jī),適合于要求高集成度、低成本的場(chǎng)合。其采用了高性能的處理器結(jié)構(gòu),指令執(zhí)行時(shí)間只需2到4個(gè)時(shí)鐘周期,6倍于標(biāo)準(zhǔn)80C51器件,并集成了許多系統(tǒng)級(jí)的功能,可大大減少元件的數(shù)目和電路板面積并降低系統(tǒng)的成本。其片內(nèi)集成RC振蕩器,不再需要外接振蕩器件。操作電壓范圍2.4~3.6V,適合采用電池供電。I/O口配置靈活,可配置為準(zhǔn)雙向口,開漏輸出,推挽輸出以及僅為輸入(高阻抗)等四種輸出模式。I/O端口可承受5V電壓,可上拉或驅(qū)動(dòng)到5.5V,且驅(qū)動(dòng)能力強(qiáng),每個(gè)I/O口都具備20mA的驅(qū)動(dòng)能力。具備空閑和兩種不同的掉電節(jié)電模式。典型的掉電電流僅為1uA,非常適合于低功耗設(shè)計(jì)。
nRF905是由Nordic半導(dǎo)體公司開發(fā)的單片GFSK(高斯移頻鍵控)無線收發(fā)一體芯片,可工作于433/868/915三個(gè)ISM頻段。其內(nèi)部結(jié)構(gòu)組成如圖1所示[1,2]。
nRF905片內(nèi)集成了頻率合成器、晶體振蕩器、功率放大器、調(diào)制/解調(diào)器等模塊。曼徹斯特編碼/解碼由片內(nèi)硬件完成,無需用戶對(duì)數(shù)據(jù)進(jìn)行曼徹斯特編碼,因此使用非常方便。適合于低功耗應(yīng)用的自動(dòng)產(chǎn)生前導(dǎo)碼和CRC校驗(yàn)。模塊配置通過SPI接口實(shí)現(xiàn)。發(fā)射功率可調(diào)節(jié),最大支持10dBm。工作電流消耗非常低,在輸出功率-10dBm的情況下,發(fā)送僅需要9mA,接收需要12.5mA。而ShockBurstTM模式以及內(nèi)建的節(jié)電模式,都為低功耗設(shè)計(jì)提高了必要的支持。該芯片因此性能優(yōu)良,應(yīng)用方便,廣泛應(yīng)用于無線數(shù)據(jù)通訊,報(bào)警安全,遙控,工業(yè)傳感器等領(lǐng)域[3,4]。

圖1 nRF905內(nèi)部硬件結(jié)構(gòu)圖
發(fā)送機(jī)為手持設(shè)備,其主要功能是發(fā)送按鍵狀態(tài)給接收機(jī),從而使接收機(jī)接收到按鍵狀態(tài)后進(jìn)行動(dòng)作。其硬件系統(tǒng)框圖如圖2所示。

圖2 發(fā)送機(jī)硬件結(jié)構(gòu)框圖
發(fā)送機(jī)采用兩節(jié)1.5V電池供電。為簡(jiǎn)化設(shè)計(jì),單片機(jī)的時(shí)鐘采用內(nèi)部時(shí)鐘,無需采用外部晶振。其中,單片機(jī)的P0口配置為僅為輸入模式,P0.0~P0.5分別對(duì)應(yīng)6個(gè)按鍵,即“前”、“后”、“左”、“右”、“上”、“下”六個(gè)動(dòng)作;P1.3配置為開漏,用來接指示燈;其余IO口用于同nRF905進(jìn)行通訊和控制,其配置見表1。

表1 發(fā)射機(jī)中單片機(jī)I/O口配置

?
一般來講,接收機(jī)安裝在被遙控的行車上,由行車系統(tǒng)的電源進(jìn)行供電,無需像手持設(shè)備那樣考慮功耗問題。但由于工作環(huán)境較為惡劣,存在嚴(yán)重的電磁干擾,因此必須重點(diǎn)考慮抗干擾設(shè)計(jì)。
接收機(jī)硬件設(shè)計(jì)框圖如圖3所示,其中,電源采用工業(yè)現(xiàn)場(chǎng)380V供電,濾波后,經(jīng)變壓器降壓及橋式整流電路進(jìn)行整流后,輸出12V直流,給繼電器供電,并再經(jīng)三端穩(wěn)壓管7805及ASM1117變換成3V給單片機(jī)P89LPC921供電。單片機(jī)的P0.0~P0.6口配置為推挽式輸出模式,驅(qū)動(dòng)電路采用達(dá)林頓管ULN2003驅(qū)動(dòng)7個(gè)繼電器,其中一個(gè)是主電路繼電器,另外六個(gè)分別對(duì)應(yīng)“前”、“后”、“左”、“右”、“上”、“下”動(dòng)作繼電器,控制交流接觸器的線圈通電,進(jìn)而控制相應(yīng)的電機(jī)動(dòng)作。其余IO口用于控制nRF905接收數(shù)據(jù),其配置同接收機(jī)相同,見表1。

圖3 接收機(jī)硬件結(jié)構(gòu)框圖
作為面向工業(yè)應(yīng)用的產(chǎn)品,本接收機(jī)的硬件設(shè)計(jì)提出了一些低成本但非常有效的抗干擾設(shè)計(jì)措施。首先,本行車系統(tǒng)工作于戶外,有受到雷擊而造成損壞的可能,因此,采用常用的壓敏電阻并聯(lián)于380V電源兩端,并在電源線上串接熔絲,可以保證在雷擊的環(huán)境下不至損壞整機(jī)。另外,供電電源取自工業(yè)現(xiàn)場(chǎng),實(shí)驗(yàn)表明,天車上經(jīng)常工作在重載頻繁啟、停的工況,給電網(wǎng)帶來了較大的沖擊,使得電源線中有較大的浪涌電壓,使得單片機(jī)頻繁受到干擾而復(fù)位,造成接觸器觸點(diǎn)頻繁抖動(dòng)。
為解決此問題,首先,在三端穩(wěn)壓器前端應(yīng)用瞬變電壓抑制器(即TVS管)緩解浪涌電壓的沖擊,抑制脈沖群干擾;其次,在單片機(jī)與ULN2003間,設(shè)計(jì)一阻容串聯(lián)電路,并配合相應(yīng)的軟件代碼,便可以確保及時(shí)在受到干擾后,接觸器的通斷狀態(tài)也能得以保持,不致發(fā)生“抖動(dòng)”。以P0.0口為例,圖4及圖5所示為該電路的工作原理。電容的充、放電電流為瞬態(tài),用虛線箭頭表示。其中,圖4所示為未受到干擾時(shí)的正常工作狀態(tài)下的情形。此時(shí),電容C1隨P0.0口輸出狀態(tài)而充放電,不影響繼電器的通斷。其中,P0口配置為推挽輸出狀態(tài),電流驅(qū)動(dòng)能力強(qiáng)。當(dāng)輸出為高電平時(shí),電流經(jīng)路徑“1”驅(qū)動(dòng)ULN2003達(dá)林頓管,繼電器吸合,同時(shí)電容充電;當(dāng)輸出為低電平時(shí),電流經(jīng)路徑“2”由單片機(jī)下拉晶體管放電,達(dá)林頓管由于輸入電阻相對(duì)較大而幾乎沒有電流通過,繼電器斷開。圖5所示為當(dāng)P0.0口輸出高電平時(shí),單片機(jī)受干擾而復(fù)位(或由看門狗復(fù)位)后,電流的路徑。在復(fù)位后,P0口首先被初始化為僅為輸入模式(高阻態(tài))。此時(shí),P0口相當(dāng)于斷開,電容C1通過電阻R1以及達(dá)林頓管放電,此電流經(jīng)達(dá)林頓管放大后驅(qū)動(dòng)繼電器。電容和電阻值的選取應(yīng)使得其在經(jīng)由P0口充、放電時(shí),電流不致過大而損壞單片機(jī),同時(shí)在其經(jīng)過驅(qū)動(dòng)達(dá)林頓管時(shí),又能保持充足的放電時(shí)間,使得單片機(jī)在復(fù)位后能再次接收到發(fā)送機(jī)發(fā)射的信號(hào),重新將P0.0口置為推挽輸出模式,并輸出高電平,繼電器的吸合狀態(tài)得以在單片機(jī)復(fù)位并重新接收到信號(hào)的時(shí)間內(nèi)得以保持,避免抖動(dòng)。按“三要素”法進(jìn)行簡(jiǎn)單的計(jì)算并經(jīng)過測(cè)試,電容選擇33uF,電阻為150歐姆即可滿足需求。
軟件設(shè)計(jì)的首要宗旨就是設(shè)計(jì)一套可靠的通訊機(jī)制,保證行車系統(tǒng)的安全性。最重要的原則是,接收機(jī)在通訊因某種原因而中斷后(包括人為關(guān)閉發(fā)射機(jī),或者受到干擾,或通訊距離過長(zhǎng)等),行車上的所有運(yùn)動(dòng)機(jī)構(gòu)必須及時(shí)停止運(yùn)動(dòng),以避免造成嚴(yán)重后果。

圖4 正常工作輸出高、低電平時(shí)的電流路徑

圖5 單片機(jī)復(fù)位后的電流路徑
因此,本遙控系統(tǒng)采用如下通訊機(jī)制:1)當(dāng)發(fā)送機(jī)通電后,在沒有任何按鍵按下時(shí),每隔一定時(shí)間間隔發(fā)送數(shù)據(jù)至接收機(jī),當(dāng)接收機(jī)接收到數(shù)據(jù)時(shí),僅保持主交流接觸器的吸合;2)按鍵不設(shè)置自鎖功能,當(dāng)有按鍵按下且保持按壓狀態(tài)時(shí),發(fā)送機(jī)每隔一定時(shí)間間隔發(fā)送按鍵狀態(tài)給接收機(jī),相應(yīng)的接觸器吸合;一旦松開按鍵,則接收端所對(duì)應(yīng)的接觸器立即斷開,僅保持主交流接觸器吸合;3)在一定時(shí)間間隔內(nèi),若接收機(jī)沒有接收到任何數(shù)據(jù),認(rèn)為通訊中斷或者發(fā)送機(jī)停機(jī),斷開所有交流接觸器,確保停車。
作為采用電池供電的手持設(shè)備,發(fā)送機(jī)的軟件設(shè)計(jì)在確保安全通訊機(jī)制得以實(shí)現(xiàn)的前提下,重點(diǎn)考慮低功耗設(shè)計(jì),充分利用nRF905模塊的ShockBurstTM模式,降低平均功耗。
發(fā)送機(jī)的主程序流程如圖6所示。首先,對(duì)單片機(jī)進(jìn)行初始化,按2.2節(jié)所講對(duì)所有IO口的工作模式進(jìn)行初始化,并關(guān)閉片上實(shí)時(shí)時(shí)鐘,模擬電壓比較器,I2C總線以及UART等外設(shè)的電源,最大限度的降低功耗;將nRF905的PWR引腳置位,TRX_CE引腳清零,延時(shí)3ms后,進(jìn)入SPI模式,本例中配置如下:器件工作于433MHz頻段(主要由發(fā)射天線決定),發(fā)射頻率422.4MHz(可設(shè)定29=512種頻率),發(fā)射功率10dBm,不自動(dòng)重發(fā)數(shù)據(jù),發(fā)送數(shù)據(jù)寬度為1字節(jié),地址寬度4個(gè)字節(jié),因此可指定232個(gè)不同地址,當(dāng)作為商品時(shí),可保證出廠地址永不重復(fù),本機(jī)地址指定為CCCCCC01H。完成上述配置后,開啟全局中斷及定時(shí)器中斷,并啟動(dòng)定時(shí)器T0。延時(shí)16ms后,啟動(dòng)鍵盤掃描程序,若有鍵按下,則將發(fā)送按鍵狀態(tài),并接通主交流接觸器;若沒有鍵按下,則僅接通主交流接觸器。在按鍵合法性檢查中,對(duì)同一電機(jī)的正、反轉(zhuǎn)動(dòng)作進(jìn)行互鎖限制,不發(fā)送非法按鍵狀態(tài)。當(dāng)檢測(cè)到無效按鍵狀態(tài)時(shí),僅發(fā)送上一合法按鍵狀態(tài),忽略本次按鍵掃描結(jié)果。按nRF905的發(fā)送時(shí)序?qū)存I狀態(tài)數(shù)據(jù)進(jìn)行發(fā)送,數(shù)據(jù)的編碼為8位,各位定義見圖7。其中,最高位“0”為保留位,第二位“1”表示主交流接觸器為常通狀態(tài),其余各按鍵狀態(tài)為“1”時(shí)表示按下,“0”表示釋放。例如,若按下“右”和“下”兩個(gè)按鍵,則其編碼為“01000101”。在發(fā)送數(shù)據(jù)完成后,延時(shí)16ms后繼續(xù)下個(gè)按鍵掃描周期。容易看出,16ms用來控制發(fā)送數(shù)據(jù)的間隔。這個(gè)間隔越短,反應(yīng)的實(shí)時(shí)性越強(qiáng),接收機(jī)動(dòng)作反應(yīng)越快,但發(fā)送機(jī)的功耗越大;反之,延長(zhǎng)發(fā)送數(shù)據(jù)的間隔時(shí)間,可以節(jié)約發(fā)送機(jī)的功耗,但接收機(jī)的反應(yīng)會(huì)變慢。在實(shí)際應(yīng)用中,可根據(jù)用戶的需求來調(diào)節(jié)此延時(shí)時(shí)間的長(zhǎng)短。
為進(jìn)一步降低功耗,發(fā)送機(jī)設(shè)計(jì)為在一分鐘內(nèi)無人操作時(shí),自動(dòng)轉(zhuǎn)入待機(jī)模式。定時(shí)器功能由單片機(jī)定時(shí)器T0來實(shí)現(xiàn)。
接收機(jī)的軟件以提高抗干擾能力為重點(diǎn)進(jìn)行設(shè)計(jì),確保接收機(jī)在惡劣工況下仍能保證行車系統(tǒng)的可靠動(dòng)作。
接收機(jī)的主程序流程如圖8所示。接收機(jī)啟用了看門狗,看門狗的復(fù)位時(shí)間設(shè)定在80ms。當(dāng)單片機(jī)受到干擾造成死機(jī)或程序跑飛時(shí),看門狗將復(fù)位單片機(jī)。而后,初始化P0口為高阻態(tài),使得在上電初始時(shí)刻,P0口的輸出電平可以保持單片機(jī)復(fù)位前的狀態(tài)。單片機(jī)及nRF905的初始化與發(fā)送機(jī)基本一致,特別要注意到是,nRF905的工作頻率及接收數(shù)據(jù)的地址必須與發(fā)送機(jī)保持一致。在完成上述配置后,調(diào)用按鍵狀態(tài)接收子程序,并把接收到的狀態(tài)由P0口輸出。

圖6 發(fā)送機(jī)的主程序流程圖

圖7 發(fā)送機(jī)數(shù)據(jù)位定義
圖9所示為按鍵狀態(tài)接收子程序流程圖。當(dāng)nRF905進(jìn)入接收模式后,對(duì)其DR輸出進(jìn)行查詢,每3ms查詢一次,查詢7次。這樣,在正常狀態(tài)下,發(fā)送機(jī)一旦發(fā)送出數(shù)據(jù),在3ms內(nèi)就可得以響應(yīng)。由于發(fā)送機(jī)的發(fā)送周期設(shè)定為16ms,查詢7次共計(jì)21ms,完全可以覆蓋發(fā)送周期,使得發(fā)送的數(shù)據(jù)不丟失。但這種方法仍然不能保證可靠性。原因在于,nRF905在受到干擾后會(huì)復(fù)位,而復(fù)位后其配置寄存器發(fā)生改變,其頻率、地址等將不在同發(fā)送機(jī)一致,而導(dǎo)致無法接收到數(shù)據(jù),只有人為斷電重啟后才能恢復(fù)。
為解決上述問題,在重復(fù)7次3ms循環(huán)后,若仍然沒有接收到數(shù)據(jù),則認(rèn)為nRF905配置寄存器因受到干擾而發(fā)生改變,此時(shí),重新對(duì)nRF905進(jìn)行配置后再次接收,并為了確保不丟失數(shù)據(jù),進(jìn)行4次循環(huán),即總計(jì)8 4 m s內(nèi)仍然沒有收到任何數(shù)據(jù),則認(rèn)為通訊中斷(可能是正常停機(jī)指令,也可能是通訊受到多種因素影響而確實(shí)中斷),此時(shí)關(guān)閉所有接觸器,按停機(jī)處理。

圖8 接收機(jī)的主程序流程圖

圖9 按鍵狀態(tài)接收子程序流程圖
本無線遙控系統(tǒng)在某水泥管廠的戶外天車上進(jìn)行了約6個(gè)月的試用及實(shí)地測(cè)試。
在使用過程中,發(fā)送狀態(tài)下平均工作電流為0.45mA左右。采用兩節(jié)AAA電池,每天工作10小時(shí)情況下,約兩個(gè)月更換一次電池,可見功耗較低。在半徑100米范圍內(nèi)都可進(jìn)行有效操作。接收機(jī)工作穩(wěn)定,在現(xiàn)場(chǎng)嚴(yán)酷的工作環(huán)境下,接觸器動(dòng)作靈敏且觸點(diǎn)無抖動(dòng),電機(jī)運(yùn)轉(zhuǎn)良好,無故障發(fā)生。驗(yàn)證了此系統(tǒng)具有低功耗,高可靠性的優(yōu)點(diǎn),且完全能適用于工業(yè)場(chǎng)合應(yīng)用。
本文基于P89LPC921以及nRF905設(shè)計(jì)了一種工業(yè)行車遙控系統(tǒng)。以三自由度天車為例,以低功耗和高可靠性為目標(biāo),詳細(xì)地介紹了系統(tǒng)的軟硬件設(shè)計(jì)。經(jīng)實(shí)地測(cè)試,整個(gè)系統(tǒng)具有低功耗、高可靠性等顯著優(yōu)點(diǎn),具備可行性,且可以很容易推廣到除天車以外的各種工業(yè)行車系統(tǒng),在工業(yè)遙控系統(tǒng)的設(shè)計(jì)方面具有一定借鑒意義。
[1] Single Chip 433,868,915 MHz Transceiver nRF905[M].Nordic VLSI AS 2004.
[2] Nordic VLSI ASA nRF905 Product[S].Norway Nordic VLSI ASA 2005.
[3] 張曉健,李偉,張小雨.MSP430 和 nRF905的無線數(shù)傳系統(tǒng)設(shè)計(jì)[J]. 單片機(jī)與嵌入式系統(tǒng),2006,(2).
[4] 蔣博.nRF905的無線數(shù)據(jù)傳輸系統(tǒng)[J].工業(yè)儀表與自動(dòng)化裝置, 2006,3.