基于TMS320LF2407A和NRF903的工程機(jī)械遙控器高可靠性設(shè)計
在我國經(jīng)濟(jì)快速發(fā)展的過程中,工程機(jī)械起到了巨大的推動作用。但傳統(tǒng)的工程機(jī)械工作現(xiàn)場的環(huán)境條件一般都很惡劣,而工作人員又必須在龐大的駕駛室里操作,容易對工作人員心理和生理造成不良影響,從而影響機(jī)械的安全可靠高效運行。近年來,無線電通信技術(shù)及超大規(guī)模集成電路的飛速發(fā)展,為工作人員走出駕駛室通過無線電對工程機(jī)械進(jìn)行可靠的遠(yuǎn)程控制提供了基礎(chǔ)。由于工程機(jī)械的動作失誤會造成生命財產(chǎn)的巨大損失,因此可靠性是無線遙控技術(shù)能否應(yīng)用于工程機(jī)械的決定因素。
1 工程機(jī)械遙控器系統(tǒng)介紹
遙控器由發(fā)射端和接收端兩部分組成。操作人員利用發(fā)射端將控制命令發(fā)射出去,控制命令通過無線信道到達(dá)接收端,接收端接收控制命令并控制工程機(jī)械作出相應(yīng)的動作[1]。系統(tǒng)構(gòu)成框圖如圖1所示。
TMS320LF2407A芯片是整個系統(tǒng)的核心控制芯片。NRF903為系統(tǒng)的射頻收發(fā)芯片。由于篇幅限制,本文重點從TMS320LF2407A與NRF903的接口設(shè)計及通信協(xié)議設(shè)計兩個方面,對工程機(jī)械遙控器進(jìn)行高可靠性設(shè)計。
2 硬件接口設(shè)計
TMS320LF2407A采用高性能靜態(tài)CMOS技術(shù),使得供電電壓降為3.3 V,減小了控制器的功耗,滿足了手持發(fā)射端的省電要求[2]。TMS320LF2407A具有良好的處理性能(40 MIPS),可以實現(xiàn)對控制命令的快速編解碼處理,提高遙控器對控制命令的實時處理和響應(yīng)速度。TMS320LF2407A集成了豐富的外設(shè)接口,如串口通信接口(SCI),串口外設(shè)接口(SPI),利用這兩種外設(shè)接口可以方便地與NRF903連接。TMS320LF2407A與NRF903的接口如圖2所示。
NRF903是一個單片RF收發(fā)芯片,工作在433/868/915 MHz國際通用的ISM頻段,具有GMSK/GFSK調(diào)制和解調(diào)能力,抗干擾能力強(qiáng),適合工業(yè)控制應(yīng)用[3]。采用DDS+PLL頻率合成技術(shù),頻率穩(wěn)定性好,具有170個頻道,滿足本文所采用的頻道轉(zhuǎn)換的需要;可直接與TMS320LF2407A接口,而無需對數(shù)據(jù)進(jìn)行曼徹斯特編碼,通信波特率可達(dá)76.8 kb/s;工作電壓范圍是2.7 V~3.6 V,功耗低,構(gòu)成一個完整的射頻收發(fā)器所需的外圍器件少。
3 SPI接口設(shè)計
3.1 配置字設(shè)計
TMS320LF2407A的同步串口SPI用于完成對NRF903的組態(tài)控制字的配置,設(shè)置SPI工作于主動方式(MASTER/SLAVE=1),SPICLK輸出同步時鐘信號到CFG_CLK。設(shè)置串行外設(shè)接口配置控制寄存器SPICCR=0x0D,當(dāng)CS為高電平時,來自SPISIMO/IOPC2的14位組態(tài)控制字在每一個CFG_CLK編程模式時鐘的上升沿,通過CFG_DATA端口被寫入組態(tài)寄存器中,完成對工作頻率、通道、輸出功率和輸出時鐘頻率等參數(shù)的設(shè)置。
當(dāng)組態(tài)控制字輸入到數(shù)據(jù)移位寄存器時,CS無效,一個新的配置完成。CFG_DATA的比特率由SPI模塊的波特率設(shè)置寄存器SPIBRR確定。
一旦配置完成,芯片的工作狀態(tài)由外部信號TXEN、PWR_DWN、STBY和DATA設(shè)置。除待機(jī)模式和低功耗模式外,配置可以在所有模式下完成,這為頻道的快速實時轉(zhuǎn)換提供了基礎(chǔ)[4]。
3.2 收發(fā)雙方的頻道轉(zhuǎn)換協(xié)議設(shè)計
本文采用通信頻道在三個固定頻道間轉(zhuǎn)換,以避免使用某一固定頻率時產(chǎn)生同頻干擾問題。
本設(shè)計選用438頻段,該頻段有10個頻道可供使用,選用其中3個頻道(頻道0,4,8)來實現(xiàn)頻率轉(zhuǎn)換。由CFG_DATA[9~2]設(shè)定。
為了避免收發(fā)雙方的頻道發(fā)生混亂,本設(shè)計令收發(fā)雙方開機(jī)啟動、待機(jī)時或復(fù)位后都進(jìn)入頻道0。
收發(fā)雙方都采用靈活的頻道轉(zhuǎn)換和頻道停留方式通信。每次發(fā)射方在某一頻道發(fā)射控制命令后會在此頻道等待應(yīng)答信號。若在規(guī)定的時間內(nèi)沒有接收到正確的應(yīng)答信號,則自動轉(zhuǎn)換到下一頻道重復(fù)上面的發(fā)射過程;若在規(guī)定時間內(nèi)收到正確的應(yīng)答信號,則自動停留在此頻道一段較長的時間,等待發(fā)射其他控制命令。每次正確應(yīng)答信號的接收都延遲發(fā)射方在此頻道的停留時間,如果超時沒有正確應(yīng)答信號的接收,則返回頻道0。接收方的頻道停留方式與發(fā)射方相似,即每次正確命令的接收都會延遲其在此頻道的接收時間。但其頻道轉(zhuǎn)換方式不同,它的頻道轉(zhuǎn)換間隔時間是發(fā)射方頻道轉(zhuǎn)換間隔時間的3倍,以保證收發(fā)雙方至多在9個間隔時間內(nèi)頻道同步一次。收發(fā)雙方頻道轉(zhuǎn)換如圖3所示。發(fā)射端頻道轉(zhuǎn)換流程如圖4所示。
若雙方多次啟動SPI傳送配置字去改變通信頻道而沒有成功,則發(fā)生超次中斷,要求收發(fā)雙方系統(tǒng)復(fù)位重啟到初始頻道0狀態(tài),繼續(xù)通信。若系統(tǒng)復(fù)位后仍無法正常連接,則可能三個頻道都已受到干擾,可以人為地為收發(fā)雙方重新配置一個初始頻道,使收發(fā)雙方進(jìn)入另外一組頻道通信。
4 SCI模塊通信設(shè)計
4.1 控制命令編碼設(shè)計
由于無線信道干擾因素的存在,接收到的控制指令很可能變得不可靠,如果此控制指令恰好變成另外一組控制指令,則必然會發(fā)生誤動作。為了避免這種情況發(fā)生,就必須增大不同控制命令碼之間的差異。它們之間的差異越大,從一個控制指令碼變成另一個控制指令碼的可能性就越小,即發(fā)生誤動作的可能性就越小。本文用8 bit表示一組控制命令,最多可以得到28=256組不同的控制命令,用軟件編程方法可以挑選出各不同控制命令碼之間差異為4 bit的碼組最多16組,可以表示16種不同的控制命令,滿足工程機(jī)械所需的控制命令數(shù)目要求。
盡管這樣可以避免工程機(jī)械發(fā)生誤動作,但還是無法抵制信道噪聲給控制命令碼帶來的干擾,若是每次發(fā)生干擾都要求發(fā)射端重發(fā),則會使得系統(tǒng)的通信效率變低。如果發(fā)射方發(fā)射具有糾錯能力的控制命令編碼,而接收方根據(jù)收到的控制命令碼和編碼規(guī)則進(jìn)行糾錯運算,自動糾正傳輸過程中發(fā)生的錯誤,這樣就可以在一定程度上提高系統(tǒng)的通信效率。RS編碼有很強(qiáng)的糾錯能力。本設(shè)計令原始控制命令以不變的形式出現(xiàn)在碼組中,在其后面加入RS糾錯碼。
因為收發(fā)雙方的地址碼固定,發(fā)送方的原始控制命令碼固定,采用RS糾錯編碼方式,所以可以把它們組合起來列表于發(fā)送方TMS320LF2407A的內(nèi)存中,各個按鍵值分別對應(yīng)表中不同碼組,當(dāng)有按鍵動作時,根據(jù)鍵值去查表并發(fā)送相應(yīng)的碼組。接收方列表中存放地址碼和原始控制命令碼,原始控制命令碼分別對應(yīng)不同的工程機(jī)械動作。
4.2 收發(fā)雙方通信協(xié)議設(shè)計
SCI模塊支持CPU與其他使用標(biāo)準(zhǔn)格式的異步外設(shè)之間的數(shù)字通信。SCI接收器和發(fā)射器都是雙緩沖的,每一個都有其單獨的使能和中斷標(biāo)志位。NRF903的DATA口采用透明協(xié)議的方式進(jìn)行通信,將收到的數(shù)據(jù)原封不動地發(fā)射出去,能適應(yīng)任何標(biāo)準(zhǔn)或非標(biāo)準(zhǔn)的用戶協(xié)議。
本設(shè)計選擇SCI模塊空閑線喚醒模式。空閑線模式在地址前留有一個固定空間。初始化SCICCR=07h,選擇停止位為1 bit,禁止奇偶校驗,禁止自測試模式,選擇空閑線多處理器模式,SCI字符長度為8 bit。本設(shè)計用一個幀塊實現(xiàn)對一個控制命令的定義。幀塊的第一幀為地址幀,存放收發(fā)雙方的共同地址。由于在同一場所運作的工程機(jī)械并不會很多,所以用8 bit(保證28=256臺機(jī)械在同一場所工作)表示地址就已足夠。實現(xiàn)一個控制指令的幀塊格式如圖5所示。
開始位(0)只占一位,用來通知接收設(shè)備一個待接收的字符開始到達(dá)。線路在不傳送字符時應(yīng)保持為1。接收端不斷檢測線路的狀態(tài),若連續(xù)為1后又檢測到一個0,就知道發(fā)來一個新字符,應(yīng)馬上準(zhǔn)備接收。因為設(shè)計中使用的是無線信道,如何使接收引腳SCIRXD在空閑狀態(tài)下檢測到連續(xù)1是一個關(guān)鍵問題。由于NRF903有一個輸出引腳C_SENSE,當(dāng)接收通道沒有接收到載波時,C_SENSE是穩(wěn)定的0狀態(tài);當(dāng)接收通道接收到載波時,C_SENSE變成1狀態(tài)。根據(jù)此引腳特性,在C_SENSE引腳加一個非門之后與NRF903的數(shù)據(jù)接收引腳經(jīng)或門之后連接到SCIRXD引腳(如圖2所示),就可以解決上述問題。
由于SCI模塊的通信協(xié)議并不是針對無線信道的,所以在用于無線信道時,既要考慮如何更有效地利用SCI模塊的既定通信協(xié)議,又要考慮使SCI的既定通信協(xié)議能夠盡量容忍控制命令經(jīng)過無線信道后發(fā)生的畸變,使通信能夠正常進(jìn)行。
用編程的方式配置SCI通信協(xié)議。配置串行通信接口控制寄存器1SCICTL1=0Fh,將TXWAKE位置1;寫1到TXWAKE (SCICTL1.3),然后將數(shù)據(jù)寫入SCITXBUF寄存器來產(chǎn)生一個11位數(shù)據(jù)位的空閑周期;將SLEEP位(SCICTL1.2)置為1,使得它們在檢測到地址字節(jié)時才被中斷。當(dāng)處理器讀取到的地址與應(yīng)用軟件設(shè)置的本處理器的地址相符時,用戶程序清除SLEEP位,以確保串行通信接口在收到每一個數(shù)據(jù)字節(jié)時產(chǎn)生一個中斷。設(shè)置串行通信接口控制寄存器2(SCICTL2)使能RXRDY/BRKDT中斷和TXRDY中斷。設(shè)置波特率選擇寄存器,決定收發(fā)雙方控制命令的傳送速率。
雖然處理器在SLEEP位為1時仍能工作,但除非檢測到地址字,否則不能將RXRDY、RXINT或任何接收錯誤狀態(tài)位置1,也就無法實現(xiàn)數(shù)據(jù)的接收。經(jīng)無線傳輸后地址幀可能畸變,如果地址幀的畸變比特在RS碼的糾錯能力之內(nèi),則可以被接收器認(rèn)為是地址幀,即對地址幀進(jìn)行一次粗判之后清除SLEEP位為0,實現(xiàn)控制命令幀和RS糾錯幀的接收。接收流程如圖6所示。
本文設(shè)計實現(xiàn)了工程機(jī)械遙控系統(tǒng)的高可靠性要求。但整體系統(tǒng)的實現(xiàn)還需要注意操作板鍵盤與TMS320LF2407A接口設(shè)計以及TMS320LF2407A與工程機(jī)械接口設(shè)計等問題。為了使工程機(jī)械遙控器的操作者更清楚地了解工程機(jī)械的運行情況,還可以在遙控器的發(fā)射方添加一個LCD以及在工程機(jī)械上安裝一些傳感器,使遙控器發(fā)射方實時檢測工程機(jī)械的運行情況等,進(jìn)一步提高其可靠性。
參考文獻(xiàn)
[1] 趙松杰,李蘭忖.基于單片機(jī)控制的起重機(jī)智能遙控器.機(jī)電工程,2008,25(4).
[2] 劉和平,鄧力,江渝,等.DSP原理及電機(jī)控制應(yīng)用——基于TMS320LF2407x系列.北京:北京航空航天大學(xué)出版社,2006.
[3] 韓向陽,周鳳星,胡磊,等.一種基于無線收發(fā)模塊nRF903的距離監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)[J].電子測量技術(shù),2006,29(5).
[4] 劉昌輝,何華輝.基于單片機(jī)的5-32噸天車遙控裝置的設(shè)計[J].電子工程師,2004,30(9).
評論