《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于TMS320LF2407A和NRF903的工程機(jī)械遙控器高可靠性設(shè)計(jì)
基于TMS320LF2407A和NRF903的工程機(jī)械遙控器高可靠性設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2010年第12期
鄭德忠,李曉娟
燕山大學(xué) 河北省測(cè)試計(jì)量技術(shù)及儀器重點(diǎn)實(shí)驗(yàn)室,河北 秦皇島066004
摘要: 基于主控制芯片TMS320LF2407A和無(wú)線收發(fā)芯片NRF903設(shè)計(jì)了靈活的頻道轉(zhuǎn)換協(xié)議,采用高可靠性的控制命令編碼方式以及RS糾錯(cuò)編碼方法,利用標(biāo)準(zhǔn)異步串口協(xié)議實(shí)現(xiàn)了收發(fā)雙方控制命令的傳遞。
中圖分類號(hào): TN92
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2010)12-0025-04
High-reliability design for engineering machines remote-controller based on TMS320LF2407A and NRF903
ZHENG De Zhong,LI Xiao Juan
Hebei Key Laboratory of Measurement Technology and Instrumentation,Yanshan University,Qinhuangdao 066004,China
Abstract: Based on TMS320LF2407A as the main control chip and NRF903 as the transceiver chip, in this paper, flexible channel change protocol was designed,the command coding method of high-reliability and the method of RS coding for correction were introduced, standard asynchronous serial communication protocol was utilized to achieve the transmission of the command codes of the transceivers.
Key words : TMS320LF2407A;NRF903;channel change;communication protocol;coding

    在我國(guó)經(jīng)濟(jì)快速發(fā)展的過(guò)程中,工程機(jī)械起到了巨大的推動(dòng)作用。但傳統(tǒng)的工程機(jī)械工作現(xiàn)場(chǎng)的環(huán)境條件一般都很惡劣,而工作人員又必須在龐大的駕駛室里操作,容易對(duì)工作人員心理和生理造成不良影響,從而影響機(jī)械的安全可靠高效運(yùn)行。近年來(lái),無(wú)線電通信技術(shù)及超大規(guī)模集成電路的飛速發(fā)展,為工作人員走出駕駛室通過(guò)無(wú)線電對(duì)工程機(jī)械進(jìn)行可靠的遠(yuǎn)程控制提供了基礎(chǔ)。由于工程機(jī)械的動(dòng)作失誤會(huì)造成生命財(cái)產(chǎn)的巨大損失,因此可靠性是無(wú)線遙控技術(shù)能否應(yīng)用于工程機(jī)械的決定因素。
1 工程機(jī)械遙控器系統(tǒng)介紹
    遙控器由發(fā)射端和接收端兩部分組成。操作人員利用發(fā)射端將控制命令發(fā)射出去,控制命令通過(guò)無(wú)線信道到達(dá)接收端,接收端接收控制命令并控制工程機(jī)械作出相應(yīng)的動(dòng)作[1]。系統(tǒng)構(gòu)成框圖如圖1所示。

    TMS320LF2407A芯片是整個(gè)系統(tǒng)的核心控制芯片。NRF903為系統(tǒng)的射頻收發(fā)芯片。由于篇幅限制,本文重點(diǎn)從TMS320LF2407A與NRF903的接口設(shè)計(jì)及通信協(xié)議設(shè)計(jì)兩個(gè)方面,對(duì)工程機(jī)械遙控器進(jìn)行高可靠性設(shè)計(jì)。
2 硬件接口設(shè)計(jì)
    TMS320LF2407A采用高性能靜態(tài)CMOS技術(shù),使得供電電壓降為3.3 V,減小了控制器的功耗,滿足了手持發(fā)射端的省電要求[2]。TMS320LF2407A具有良好的處理性能(40 MIPS),可以實(shí)現(xiàn)對(duì)控制命令的快速編解碼處理,提高遙控器對(duì)控制命令的實(shí)時(shí)處理和響應(yīng)速度。TMS320LF2407A集成了豐富的外設(shè)接口,如串口通信接口(SCI),串口外設(shè)接口(SPI),利用這兩種外設(shè)接口可以方便地與NRF903連接。TMS320LF2407A與NRF903的接口如圖2所示。

    NRF903是一個(gè)單片RF收發(fā)芯片,工作在433/868/915 MHz國(guó)際通用的ISM頻段,具有GMSK/GFSK調(diào)制和解調(diào)能力,抗干擾能力強(qiáng),適合工業(yè)控制應(yīng)用[3]。采用DDS+PLL頻率合成技術(shù),頻率穩(wěn)定性好,具有170個(gè)頻道,滿足本文所采用的頻道轉(zhuǎn)換的需要;可直接與TMS320LF2407A接口,而無(wú)需對(duì)數(shù)據(jù)進(jìn)行曼徹斯特編碼,通信波特率可達(dá)76.8 kb/s;工作電壓范圍是2.7 V~3.6 V,功耗低,構(gòu)成一個(gè)完整的射頻收發(fā)器所需的外圍器件少。
3 SPI接口設(shè)計(jì)
3.1 配置字設(shè)計(jì)

    TMS320LF2407A的同步串口SPI用于完成對(duì)NRF903的組態(tài)控制字的配置,設(shè)置SPI工作于主動(dòng)方式(MASTER/SLAVE=1),SPICLK輸出同步時(shí)鐘信號(hào)到CFG_CLK。設(shè)置串行外設(shè)接口配置控制寄存器SPICCR=0x0D,當(dāng)CS為高電平時(shí),來(lái)自SPISIMO/IOPC2的14位組態(tài)控制字在每一個(gè)CFG_CLK編程模式時(shí)鐘的上升沿,通過(guò)CFG_DATA端口被寫(xiě)入組態(tài)寄存器中,完成對(duì)工作頻率、通道、輸出功率和輸出時(shí)鐘頻率等參數(shù)的設(shè)置。
    當(dāng)組態(tài)控制字輸入到數(shù)據(jù)移位寄存器時(shí),CS無(wú)效,一個(gè)新的配置完成。CFG_DATA的比特率由SPI模塊的波特率設(shè)置寄存器SPIBRR確定。
    一旦配置完成,芯片的工作狀態(tài)由外部信號(hào)TXEN、PWR_DWN、STBY和DATA設(shè)置。除待機(jī)模式和低功耗模式外,配置可以在所有模式下完成,這為頻道的快速實(shí)時(shí)轉(zhuǎn)換提供了基礎(chǔ)[4]。
3.2 收發(fā)雙方的頻道轉(zhuǎn)換協(xié)議設(shè)計(jì)
    本文采用通信頻道在三個(gè)固定頻道間轉(zhuǎn)換,以避免使用某一固定頻率時(shí)產(chǎn)生同頻干擾問(wèn)題。
    本設(shè)計(jì)選用438頻段,該頻段有10個(gè)頻道可供使用,選用其中3個(gè)頻道(頻道0,4,8)來(lái)實(shí)現(xiàn)頻率轉(zhuǎn)換。由CFG_DATA[9~2]設(shè)定。
    為了避免收發(fā)雙方的頻道發(fā)生混亂,本設(shè)計(jì)令收發(fā)雙方開(kāi)機(jī)啟動(dòng)、待機(jī)時(shí)或復(fù)位后都進(jìn)入頻道0。
    收發(fā)雙方都采用靈活的頻道轉(zhuǎn)換和頻道停留方式通信。每次發(fā)射方在某一頻道發(fā)射控制命令后會(huì)在此頻道等待應(yīng)答信號(hào)。若在規(guī)定的時(shí)間內(nèi)沒(méi)有接收到正確的應(yīng)答信號(hào),則自動(dòng)轉(zhuǎn)換到下一頻道重復(fù)上面的發(fā)射過(guò)程;若在規(guī)定時(shí)間內(nèi)收到正確的應(yīng)答信號(hào),則自動(dòng)停留在此頻道一段較長(zhǎng)的時(shí)間,等待發(fā)射其他控制命令。每次正確應(yīng)答信號(hào)的接收都延遲發(fā)射方在此頻道的停留時(shí)間,如果超時(shí)沒(méi)有正確應(yīng)答信號(hào)的接收,則返回頻道0。接收方的頻道停留方式與發(fā)射方相似,即每次正確命令的接收都會(huì)延遲其在此頻道的接收時(shí)間。但其頻道轉(zhuǎn)換方式不同,它的頻道轉(zhuǎn)換間隔時(shí)間是發(fā)射方頻道轉(zhuǎn)換間隔時(shí)間的3倍,以保證收發(fā)雙方至多在9個(gè)間隔時(shí)間內(nèi)頻道同步一次。收發(fā)雙方頻道轉(zhuǎn)換如圖3所示。發(fā)射端頻道轉(zhuǎn)換流程如圖4所示。

    若雙方多次啟動(dòng)SPI傳送配置字去改變通信頻道而沒(méi)有成功,則發(fā)生超次中斷,要求收發(fā)雙方系統(tǒng)復(fù)位重啟到初始頻道0狀態(tài),繼續(xù)通信。若系統(tǒng)復(fù)位后仍無(wú)法正常連接,則可能三個(gè)頻道都已受到干擾,可以人為地為收發(fā)雙方重新配置一個(gè)初始頻道,使收發(fā)雙方進(jìn)入另外一組頻道通信。
4 SCI模塊通信設(shè)計(jì)
4.1 控制命令編碼設(shè)計(jì)

    由于無(wú)線信道干擾因素的存在,接收到的控制指令很可能變得不可靠,如果此控制指令恰好變成另外一組控制指令,則必然會(huì)發(fā)生誤動(dòng)作。為了避免這種情況發(fā)生,就必須增大不同控制命令碼之間的差異。它們之間的差異越大,從一個(gè)控制指令碼變成另一個(gè)控制指令碼的可能性就越小,即發(fā)生誤動(dòng)作的可能性就越小。本文用8 bit表示一組控制命令,最多可以得到28=256組不同的控制命令,用軟件編程方法可以挑選出各不同控制命令碼之間差異為4 bit的碼組最多16組,可以表示16種不同的控制命令,滿足工程機(jī)械所需的控制命令數(shù)目要求。
    盡管這樣可以避免工程機(jī)械發(fā)生誤動(dòng)作,但還是無(wú)法抵制信道噪聲給控制命令碼帶來(lái)的干擾,若是每次發(fā)生干擾都要求發(fā)射端重發(fā),則會(huì)使得系統(tǒng)的通信效率變低。如果發(fā)射方發(fā)射具有糾錯(cuò)能力的控制命令編碼,而接收方根據(jù)收到的控制命令碼和編碼規(guī)則進(jìn)行糾錯(cuò)運(yùn)算,自動(dòng)糾正傳輸過(guò)程中發(fā)生的錯(cuò)誤,這樣就可以在一定程度上提高系統(tǒng)的通信效率。RS編碼有很強(qiáng)的糾錯(cuò)能力。本設(shè)計(jì)令原始控制命令以不變的形式出現(xiàn)在碼組中,在其后面加入RS糾錯(cuò)碼。
    因?yàn)槭瞻l(fā)雙方的地址碼固定,發(fā)送方的原始控制命令碼固定,采用RS糾錯(cuò)編碼方式,所以可以把它們組合起來(lái)列表于發(fā)送方TMS320LF2407A的內(nèi)存中,各個(gè)按鍵值分別對(duì)應(yīng)表中不同碼組,當(dāng)有按鍵動(dòng)作時(shí),根據(jù)鍵值去查表并發(fā)送相應(yīng)的碼組。接收方列表中存放地址碼和原始控制命令碼,原始控制命令碼分別對(duì)應(yīng)不同的工程機(jī)械動(dòng)作。
4.2 收發(fā)雙方通信協(xié)議設(shè)計(jì)
    SCI模塊支持CPU與其他使用標(biāo)準(zhǔn)格式的異步外設(shè)之間的數(shù)字通信。SCI接收器和發(fā)射器都是雙緩沖的,每一個(gè)都有其單獨(dú)的使能和中斷標(biāo)志位。NRF903的DATA口采用透明協(xié)議的方式進(jìn)行通信,將收到的數(shù)據(jù)原封不動(dòng)地發(fā)射出去,能適應(yīng)任何標(biāo)準(zhǔn)或非標(biāo)準(zhǔn)的用戶協(xié)議。
    本設(shè)計(jì)選擇SCI模塊空閑線喚醒模式??臻e線模式在地址前留有一個(gè)固定空間。初始化SCICCR=07h,選擇停止位為1 bit,禁止奇偶校驗(yàn),禁止自測(cè)試模式,選擇空閑線多處理器模式,SCI字符長(zhǎng)度為8 bit。本設(shè)計(jì)用一個(gè)幀塊實(shí)現(xiàn)對(duì)一個(gè)控制命令的定義。幀塊的第一幀為地址幀,存放收發(fā)雙方的共同地址。由于在同一場(chǎng)所運(yùn)作的工程機(jī)械并不會(huì)很多,所以用8 bit(保證28=256臺(tái)機(jī)械在同一場(chǎng)所工作)表示地址就已足夠。實(shí)現(xiàn)一個(gè)控制指令的幀塊格式如圖5所示。


    開(kāi)始位(0)只占一位,用來(lái)通知接收設(shè)備一個(gè)待接收的字符開(kāi)始到達(dá)。線路在不傳送字符時(shí)應(yīng)保持為1。接收端不斷檢測(cè)線路的狀態(tài),若連續(xù)為1后又檢測(cè)到一個(gè)0,就知道發(fā)來(lái)一個(gè)新字符,應(yīng)馬上準(zhǔn)備接收。因?yàn)樵O(shè)計(jì)中使用的是無(wú)線信道,如何使接收引腳SCIRXD在空閑狀態(tài)下檢測(cè)到連續(xù)1是一個(gè)關(guān)鍵問(wèn)題。由于NRF903有一個(gè)輸出引腳C_SENSE,當(dāng)接收通道沒(méi)有接收到載波時(shí),C_SENSE是穩(wěn)定的0狀態(tài);當(dāng)接收通道接收到載波時(shí),C_SENSE變成1狀態(tài)。根據(jù)此引腳特性,在C_SENSE引腳加一個(gè)非門(mén)之后與NRF903的數(shù)據(jù)接收引腳經(jīng)或門(mén)之后連接到SCIRXD引腳(如圖2所示),就可以解決上述問(wèn)題。
    由于SCI模塊的通信協(xié)議并不是針對(duì)無(wú)線信道的,所以在用于無(wú)線信道時(shí),既要考慮如何更有效地利用SCI模塊的既定通信協(xié)議,又要考慮使SCI的既定通信協(xié)議能夠盡量容忍控制命令經(jīng)過(guò)無(wú)線信道后發(fā)生的畸變,使通信能夠正常進(jìn)行。
    用編程的方式配置SCI通信協(xié)議。配置串行通信接口控制寄存器1SCICTL1=0Fh,將TXWAKE位置1;寫(xiě)1到TXWAKE (SCICTL1.3),然后將數(shù)據(jù)寫(xiě)入SCITXBUF寄存器來(lái)產(chǎn)生一個(gè)11位數(shù)據(jù)位的空閑周期;將SLEEP位(SCICTL1.2)置為1,使得它們?cè)跈z測(cè)到地址字節(jié)時(shí)才被中斷。當(dāng)處理器讀取到的地址與應(yīng)用軟件設(shè)置的本處理器的地址相符時(shí),用戶程序清除SLEEP位,以確保串行通信接口在收到每一個(gè)數(shù)據(jù)字節(jié)時(shí)產(chǎn)生一個(gè)中斷。設(shè)置串行通信接口控制寄存器2(SCICTL2)使能RXRDY/BRKDT中斷和TXRDY中斷。設(shè)置波特率選擇寄存器,決定收發(fā)雙方控制命令的傳送速率。
    雖然處理器在SLEEP位為1時(shí)仍能工作,但除非檢測(cè)到地址字,否則不能將RXRDY、RXINT或任何接收錯(cuò)誤狀態(tài)位置1,也就無(wú)法實(shí)現(xiàn)數(shù)據(jù)的接收。經(jīng)無(wú)線傳輸后地址幀可能畸變,如果地址幀的畸變比特在RS碼的糾錯(cuò)能力之內(nèi),則可以被接收器認(rèn)為是地址幀,即對(duì)地址幀進(jìn)行一次粗判之后清除SLEEP位為0,實(shí)現(xiàn)控制命令幀和RS糾錯(cuò)幀的接收。接收流程如圖6所示。

    本文設(shè)計(jì)實(shí)現(xiàn)了工程機(jī)械遙控系統(tǒng)的高可靠性要求。但整體系統(tǒng)的實(shí)現(xiàn)還需要注意操作板鍵盤(pán)與TMS320LF2407A接口設(shè)計(jì)以及TMS320LF2407A與工程機(jī)械接口設(shè)計(jì)等問(wèn)題。為了使工程機(jī)械遙控器的操作者更清楚地了解工程機(jī)械的運(yùn)行情況,還可以在遙控器的發(fā)射方添加一個(gè)LCD以及在工程機(jī)械上安裝一些傳感器,使遙控器發(fā)射方實(shí)時(shí)檢測(cè)工程機(jī)械的運(yùn)行情況等,進(jìn)一步提高其可靠性。
參考文獻(xiàn)
[1] 趙松杰,李蘭忖.基于單片機(jī)控制的起重機(jī)智能遙控器.機(jī)電工程,2008,25(4).
[2] 劉和平,鄧力,江渝,等.DSP原理及電機(jī)控制應(yīng)用——基于TMS320LF2407x系列.北京:北京航空航天大學(xué)出版社,2006.
[3] 韓向陽(yáng),周鳳星,胡磊,等.一種基于無(wú)線收發(fā)模塊nRF903的距離監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子測(cè)量技術(shù),2006,29(5).
[4] 劉昌輝,何華輝.基于單片機(jī)的5-32噸天車遙控裝置的設(shè)計(jì)[J].電子工程師,2004,30(9).

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。