基于TMS320LF2407A和NRF903的工程機(jī)械遙控器高可靠性設(shè)計(jì)
在我國(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,減小了控制器的功耗,滿(mǎn)足了手持發(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è)頻道,滿(mǎn)足本文所采用的頻道轉(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種不同的控制命令,滿(mǎn)足工程機(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)的用戶(hù)協(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í),用戶(hù)程序清除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噸天車(chē)遙控裝置的設(shè)計(jì)[J].電子工程師,2004,30(9).
評(píng)論