司癸卯,李 輝,呂 奎,肖 鵬
(長安大學(xué) 道路施工技術(shù)與裝備教育部重點實驗室,陜西 西安 710064)
?
集裝箱自裝卸運(yùn)輸車的雙CPU無線遙控系統(tǒng)設(shè)計
司癸卯,李 輝,呂 奎,肖 鵬
(長安大學(xué) 道路施工技術(shù)與裝備教育部重點實驗室,陜西 西安 710064)
選用STM32F103RBT6作為遙控器CPU(Central Proessing Unit),nRF905和nRF24L01作為遙控器無線數(shù)據(jù)收發(fā)模塊,并完成集裝箱運(yùn)輸車自裝卸機(jī)構(gòu)遙控系統(tǒng)的設(shè)計,以此改善機(jī)構(gòu)操作的便捷性.遙控器接收端通過并行串口和I2C總線進(jìn)行通信,并設(shè)計主從CPU控制系統(tǒng),大大提高了遙控系統(tǒng)的可靠性.
集裝箱運(yùn)輸車自裝卸機(jī)構(gòu); 無線遙控器; 雙CPU控制; 可靠性
自裝卸集裝箱運(yùn)輸車廣泛應(yīng)用于公路運(yùn)輸和軍事物資轉(zhuǎn)移,具有運(yùn)輸靈活、快捷、機(jī)動性強(qiáng)的優(yōu)點,其結(jié)構(gòu)如圖1所示.無線遙控裝置是運(yùn)輸車控制系統(tǒng)的重要部分,裝卸過程中控制的實時性和可靠性主要由遙控裝置來決定.本文基于ARM7系列的STM32F103RBT6(以下簡稱STM32)單片機(jī),采用主從式雙CPU控制,大大提高了控制系統(tǒng)的可靠性,改善了機(jī)構(gòu)操作的便捷性.該遙控器系統(tǒng)開發(fā)成本低、性能優(yōu)良、性價比高,可應(yīng)用于許多工業(yè)領(lǐng)域,前景廣闊.
1.1 無線遙控器的工作原理
無線遙控系統(tǒng)主要由無線發(fā)射系統(tǒng)、無線接收系統(tǒng)、可編程控制設(shè)備及急停設(shè)備等組成,微處理器(Micro Controller Unit,MCU)選STM32.無線發(fā)射系統(tǒng)的控制面板采用按鍵式輸入,經(jīng)STM32處理后發(fā)送到無線發(fā)射模塊并輸出.車載無線接收系統(tǒng)的無線接收模塊接收到無線控制信號后經(jīng)IO(Input Output)口將信號傳送給接收系統(tǒng)STM32.數(shù)據(jù)信號經(jīng)STM32處理后若為急停信號,則直接輸出到機(jī)械設(shè)備,對機(jī)械設(shè)備進(jìn)行直接控制.若為普通控制信號則傳輸給CAN(Controller Area Network)總線,經(jīng)PLC(Programm Logic Controller)放大后輸出開關(guān)量,進(jìn)而對機(jī)械設(shè)備進(jìn)行控制.無線遙控器原理圖如圖2所示.
對集裝箱運(yùn)輸車自裝卸機(jī)構(gòu)運(yùn)行控制主要包括對吊裝機(jī)構(gòu)在掛車底盤的移動、支撐腿縱向伸縮臂的伸縮、支撐腿的旋轉(zhuǎn)、支撐腿的伸縮、擺動伸縮臂的伸縮以及主伸縮臂伸縮的控制[1].這些動作采用電機(jī)和液壓閥的開關(guān)即可控制,遙控器手持操作器采用按鍵式輸入,操作簡單,可靠性好.
圖1 集裝箱自裝卸運(yùn)輸車吊裝機(jī)構(gòu)
圖2 無線遙控器系統(tǒng)原理圖
1.2 無線射頻模塊
無線射頻通信是遙控器系統(tǒng)的主要通信方式,工業(yè)遙控器的無線通信頻段多為ISM(Inhustrial Scentific Medica)頻段,即工業(yè)、科學(xué)、醫(yī)用頻段,包括433 MHz,869 MHz,2.4 GHz等.其中433 MHz及2.4 GHz頻段使用最多,所以選擇這兩個頻段進(jìn)行發(fā)射器與接收器之間的無線收發(fā)[2].經(jīng)過選型性能分析,選用具有射頻技術(shù)的nRF905射頻模塊和nRF24L01射頻模塊.
nRF905是挪威Nordic VLSI公司推出的單片無線收發(fā)一體的芯片,工作電壓為1.9~3.6 V,32引腳QFN(Quad Fat No-leadpackage)封裝(5 mm × 5 mm),工作于433/868/915 MHz3個ISM頻道.它有ShockBurstTM接收模式、ShockBurstTM發(fā)送模式、關(guān)機(jī)模式和空閑模式.nRF905的工作模式由TRX_CE,TX_EN和PWR_UP3個引腳決定.
nRF24L01是一款新型單片射頻收發(fā)器件,工作于2.4~2.5 GHz頻段.通過設(shè)置配置寄存器中PWR_UP,PRIM_RX,CE的值,可將nRF241L01配置為發(fā)射、接收、空閑及掉電4種工作模式.
單片機(jī)與其他芯片連接時可選擇的接口很多,除特殊功能的接口,如電源接口、接地接口、時鐘電路接口以及其他特殊功能的接口,其他接口可根據(jù)用戶需求任意選擇[3].在運(yùn)行時,將所選接口通過軟件設(shè)置即可實現(xiàn)所需功能.
本設(shè)計的發(fā)射系統(tǒng)和接收系統(tǒng)均采用雙CPU控制,發(fā)射系統(tǒng)采用雙CPU完成信號采集和雙頻道信號發(fā)射,接收系統(tǒng)采用雙CPU完成雙頻道信號接收和處理.發(fā)送系統(tǒng)中兩單片機(jī)與兩射頻模塊的連接如圖3所示,在接收系統(tǒng)中亦采用同樣的連接.
圖3 單片機(jī)與射頻模塊連接圖
遙控器發(fā)射系統(tǒng)主要完成遙控器操作面板的信號采集和控制信號的發(fā)送.為使兩射頻模塊能夠同時發(fā)送指令,發(fā)射系統(tǒng)采用雙CPU同時采集、同時發(fā)射.其原理圖如圖4所示.兩CPU的電源、復(fù)位電路、時鐘電路相互獨立,可提高發(fā)送設(shè)備的可靠性.遙控器發(fā)射系統(tǒng)操作面板同時與兩CPU相連,面板的按鍵信號同時被兩個CPU采集.若某個CPU采集端口出現(xiàn)故障或兩CPU采集到的信號不一致,接收系統(tǒng)經(jīng)過對比分析,做出相應(yīng)的停止.本設(shè)計的遙控器應(yīng)用于集裝箱運(yùn)輸車自裝卸機(jī)構(gòu)控制,只需控制開關(guān)閉合即可.若某些特定場合下需要用到模擬量,可在備用設(shè)備接口連接模擬量設(shè)備,擴(kuò)展簡單.
圖4 遙控器發(fā)射系統(tǒng)結(jié)構(gòu)圖
3.1 雙CPU通信
工業(yè)用遙控器規(guī)程規(guī)定,遙控器的接收模塊須使用雙CPU通道,當(dāng)某一CPU發(fā)生故障時,另一個CPU立即啟動斷電命令.雙CPU通信常用的方法有:利用雙口RAM(Random-Acess Memory)實現(xiàn)雙CPU通信,利用共享內(nèi)存的方法實現(xiàn)雙CPU通信,通過接口芯片或CPU本身具備的SPI(Serial Peripheral Interface)、I2C(Inter-Intergrated Circuit)等接口實現(xiàn)雙CPU通信.本設(shè)計采用STM32的通用同步異步收發(fā)器(Universal Synchronous/Asynchonus Receiver/Transmitter,USART)實現(xiàn)異步串口通信,通過兩個單片機(jī)的RXD(Receive Data)、TXD(Transmitter Data)實現(xiàn)系統(tǒng)互檢,并利用I2C總線完成數(shù)據(jù)交互[3].
3.1.1 USART的異步通信完成雙CPU的互檢
遙控器接收部分工作時,為防止CPU供電故障、時鐘電路故障而引起控制系統(tǒng)失效,在雙CPU之間設(shè)置了系統(tǒng)互檢模塊.本設(shè)計所選的單片機(jī)含有USART接口,選用USART來完成量CPU的異步通信.連接時將單片機(jī)1的TX與單片機(jī)2的RX相連,單片機(jī)1的RX與單片機(jī)2的TX相連,如圖5所示.
軟件設(shè)計時首先完成時鐘配置、GPIO(General Purpose Input Outpt)配置、USART初始化、中斷優(yōu)先級初始化、使能中斷.然后采用“一個CPU輸出定寬的脈沖,另一個CPU檢測此脈沖寬度”的方法完成兩CPU開機(jī)和運(yùn)行過程中的實時監(jiān)控.
圖5 單片機(jī)雙機(jī)串口交互
3.1.2 單片機(jī)I2C通信完成主從CPU數(shù)據(jù)的傳輸
STM32有一組I2C通信接口,連接時將單片機(jī)1的SDA(Synchronous Data Adapter)接口、SCL(Serial Communication Loop)接口分別于單片機(jī)2的SDA接口、SCL接口相連[3],如圖6所示.
圖6 單片機(jī)雙機(jī)I2C通信
單片機(jī)1為主機(jī),2為從機(jī),單片機(jī)1將接收到的信號通過SDA接口傳給單片機(jī)2,單片機(jī)2將兩組數(shù)據(jù)進(jìn)行對比,判斷是否相同.
I2C通信只有SDA和SCL兩根線,各器件通過軟件尋址,硬件電路簡單,且采用應(yīng)答式數(shù)據(jù)傳輸,傳輸穩(wěn)定可靠.
3.2 雙CPU主從控制系統(tǒng)設(shè)計
遙控系統(tǒng)的車載接收系統(tǒng)采用雙CPU主從系統(tǒng)設(shè)計,以提高系統(tǒng)工作的可靠性.兩個CPU的電源、復(fù)位電路、時鐘電路和信號接收模塊相互獨立,各自完成各自的功能,相互之間沒有影響[4].其系統(tǒng)原理圖如圖7所示.
圖7所示的遙控器車載部分采用主從CPU設(shè)計,單片機(jī)1作為主CPU,單片機(jī)2作為從CPU.單片機(jī)1連接控制總線,單片機(jī)2主要的作用是對主CPU的數(shù)據(jù)和工作狀態(tài)進(jìn)行檢測.同時,單片機(jī)1也對單片機(jī)2的工作狀態(tài)進(jìn)行檢測.當(dāng)兩個單片機(jī)中的任何一個檢測出彼此工作狀態(tài)出現(xiàn)故障時,立即啟動各自獨立的急停電路.當(dāng)遙控器的其中一個接收頻道受干擾信號干擾,或者發(fā)射器兩個CPU采集數(shù)據(jù)不一致時,都會被從機(jī)CPU檢測出來,并啟動急停指令,終止運(yùn)行,大大提高了系統(tǒng)運(yùn)行的安全可靠性.
圖7 遙控器接收系統(tǒng)原理圖
用C語言編寫系統(tǒng)軟件,編寫方便、可讀性強(qiáng).在遙控器接收部分完成對主、從CPU系統(tǒng)軟件的編寫,主CPU軟件包括:對從CPU的檢測、無線數(shù)據(jù)的接收、向從機(jī)發(fā)送數(shù)據(jù)以及控制信號輸出; 從CPU軟件包括:對主CPU的檢測、無線數(shù)據(jù)接收、接收主機(jī)傳送的數(shù)據(jù)、完成主機(jī)與從機(jī)數(shù)據(jù)的對比.
主、從CPU程序流程圖如圖8和圖9所示.初始化函數(shù)包括定時器、I2C通模擬口初始化、并行串口定義初始化等.開機(jī)后雙機(jī)通過并行串口總線,通過對比對方脈沖與設(shè)定的值,判斷雙機(jī)是否正常.為保證兩個CPU的實時性,主從機(jī)每隔20 ms進(jìn)行一次數(shù)據(jù)對比,判斷兩CPU輸出信息是否一致.若對比結(jié)果不一致,另一個計數(shù)器開始計時40 ms后,即再進(jìn)行兩次數(shù)據(jù)傳輸對比,判斷數(shù)據(jù)結(jié)果是否一致,這樣可減小因兩發(fā)送模塊的發(fā)送程序不同而引起的數(shù)據(jù)傳輸不同步問題[5].
接收系統(tǒng)的總線控制信號最終由主機(jī)輸出,從機(jī)不參與控制信號的輸出; 急停信號由主、從機(jī)獨自輸出,兩機(jī)可單獨實現(xiàn)急停命令.
集裝箱運(yùn)輸車自裝卸機(jī)構(gòu)采用遙控系統(tǒng)控制可改善工作環(huán)境、節(jié)約成本、提高效率.本文所設(shè)計的雙CPU無線遙控器應(yīng)用于集裝箱運(yùn)輸車自裝卸機(jī)構(gòu)上,大大提高遙控系統(tǒng)的可靠性,符合工業(yè)控制要求.雙CPU遙控器硬件要求較低,開發(fā)成本低,其可靠性高,操作便利,使用價值高,能給用戶帶來很大的經(jīng)濟(jì)效益,應(yīng)用前景廣闊.
圖8 接收系統(tǒng)主機(jī)CPU軟件流程
圖9 接收系統(tǒng)從機(jī)CPU軟件流程
[1] 李振營,廖德峰,曾峰,等.一種裝于半掛車的自裝卸吊裝機(jī)構(gòu):中國,CN 202641478 U[P].2013-01-02.
LI Zhenying,LIAO Defeng,ZENG Feng,et al.The self-handling crane structure of semi trailer:China,CN 202641478 U[P].2013-01-02.
[2] 宋丹丹.無線工業(yè)遙控器的研究與設(shè)計[D].南京:南京理工大學(xué),2013.
SONG Dandan.Research and design of wireless industrial remote controller[D].Nanjing:Nanjing University of Science and Technology,2013.
[3] 黃智偉,王兵,朱衛(wèi)華,等.STM32F 32位ARM微控制器應(yīng)用設(shè)計與實踐[M].北京:北京航空航天大學(xué)出版社,2012.
HUANG Zhiwei,WANG Bing,ZHU Weihua,et al.Application design and practice of STM32F 32 bit ARM microcontroller[M].Beijing:Beijing University of Aeronautics and Astronautics Press,2012.
[5] 楊國先,陶霞,王子菡,等.基于雙CPU的切換及控制系統(tǒng)設(shè)計[J].微計算機(jī)信息,2006(10):268-270.
YANG Guoxian,TAO Xia,WANG Zihan,et al.Switch and design of control system based on double CPU[J].Micro computer information,2006(10):268-270.
Double-CPU wireless remote control system design for self-handing container vehicles
SI Gui-mao,LI Hui,LV Kui,XIAO Peng
(Key Laboratory for Highway Construction Technique and Equipment of Ministry of Education, Chang' an University, Xi'an 710064, China)
By choosing the STM32F103RBT6 as a remote control CPU, and the nRF905 and nRF24L01 as wireless data transceiver modules, the remote controller system for self-handing mechanism of container vehicles is first designed.Then, the remote controller is designed based on the master-slave CPU control system through the parallel serial port and I2C bus communication at the receiving end.Therefore, this approach can significantly improve the system reliability.
container vehicle self-handling mechanism; wireless controller; double-CPU control; reliability
司癸卯(1963-),男,副教授,工學(xué)博士.E-mail:smart@chd.edu.cn
TH 247
A
1672-5581(2016)03-00249-05