《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > 基于CYGNAL單片機(jī)和FPGA的舞臺(tái)吊桿控制器的設(shè)計(jì)

基于CYGNAL單片機(jī)和FPGA的舞臺(tái)吊桿控制器的設(shè)計(jì)

2008-09-23
作者:王金海, 張麗麗, 王華平, 孟

  摘 要: 介紹了舞臺(tái)吊桿控制系統(tǒng)" title="控制系統(tǒng)">控制系統(tǒng)的體系結(jié)構(gòu),并對(duì)組成該系統(tǒng)的舞臺(tái)吊桿控制器進(jìn)行了研究,論述了其工作原理" title="工作原理">工作原理,提出了用CYGNAL單片機(jī)和FPGA設(shè)計(jì)該控制器的方法?;赟OC的設(shè)計(jì)思想,完成了該控制器的硬件和軟件兩方面的設(shè)計(jì),提出了控制系統(tǒng)中的位移測(cè)量方法,并對(duì)電機(jī)慣性引起的誤差提出了補(bǔ)償方法;同時(shí)針對(duì)該系統(tǒng)采取了相應(yīng)的抗干擾措施,提高了系統(tǒng)的抗干擾能力。實(shí)際應(yīng)用證明,此控制器抗干擾能力強(qiáng),吊桿位置控制精確,且安全可靠。
  關(guān)鍵詞: 舞臺(tái)吊桿控制器 FPGA 誤差補(bǔ)償" title="誤差補(bǔ)償">誤差補(bǔ)償 位置控制


  在舞臺(tái)機(jī)械設(shè)備中,吊桿起著重要的作用[1]。在大型的影劇院,一場(chǎng)演出往往需要調(diào)動(dòng)大量的舞臺(tái)背景,有時(shí)要控制多達(dá)64路的吊桿同時(shí)動(dòng)作。操作人員要在現(xiàn)場(chǎng)不斷變換舞臺(tái)背景,控制室人員要不斷地和現(xiàn)場(chǎng)人員進(jìn)行協(xié)調(diào),這給舞臺(tái)控制帶來(lái)了很大不便。對(duì)吊桿的集中控制、實(shí)時(shí)響應(yīng)來(lái)自多路的請(qǐng)求及吊桿位置的精確定位是設(shè)計(jì)中要解決的三個(gè)關(guān)鍵問(wèn)題。目前的舞臺(tái)控制系統(tǒng)大都通過(guò)采用光電編碼盤(pán)產(chǎn)生脈沖信號(hào)的方式來(lái)獲取吊桿的移動(dòng)距離,并直接用單片機(jī)進(jìn)行計(jì)數(shù)和控制。這種方法在響應(yīng)多路請(qǐng)求時(shí),往往會(huì)因?yàn)閱纹瑱C(jī)任務(wù)繁重而造成計(jì)數(shù)脈沖丟失,引起測(cè)量誤差。綜上所述,本文提出了用CYGNAL單片機(jī)和FPGA設(shè)計(jì)舞臺(tái)吊桿控制器的方法。
1 舞臺(tái)吊桿控制系統(tǒng)的組成及工作原理
  舞臺(tái)吊桿控制系統(tǒng)主要由遠(yuǎn)程控制端" title="控制端">控制端(PC機(jī))、舞臺(tái)吊桿控制器、現(xiàn)場(chǎng)設(shè)備、LCD顯示器等組成,如圖1所示。


  系統(tǒng)采用分布式結(jié)構(gòu)。遠(yuǎn)程控制端作為管理機(jī),負(fù)責(zé)管理和協(xié)調(diào)現(xiàn)場(chǎng)設(shè)備,通過(guò)局域網(wǎng)使用UDP/IP協(xié)議發(fā)送控制指令并采集現(xiàn)場(chǎng)數(shù)據(jù);舞臺(tái)吊桿控制器作為終端,接收遠(yuǎn)程控制端送來(lái)的指令,并根據(jù)接收到的控制命令控制現(xiàn)場(chǎng)設(shè)備動(dòng)作,采集到現(xiàn)場(chǎng)數(shù)據(jù)后把數(shù)據(jù)以UDP格式打包送給遠(yuǎn)程控制端,以便遠(yuǎn)程控制端實(shí)時(shí)進(jìn)行現(xiàn)場(chǎng)監(jiān)控。同時(shí)為使現(xiàn)場(chǎng)能夠觀察到單個(gè)設(shè)備的運(yùn)行情況,還把這些數(shù)據(jù)通過(guò)串口" title="串口">串口送給現(xiàn)場(chǎng)LCD顯示器。
2 舞臺(tái)吊桿控制器的硬件設(shè)計(jì)
  在整個(gè)控制系統(tǒng)中,舞臺(tái)吊桿控制器是設(shè)計(jì)的關(guān)鍵,它的功能有兩個(gè):其一,接收與發(fā)送UDP數(shù)據(jù)包,解析數(shù)據(jù)包并轉(zhuǎn)化成FPGA控制器能夠識(shí)別的格式。其二,接收FPGA控制器送來(lái)的現(xiàn)場(chǎng)信息。
2.1 舞臺(tái)吊桿控制器的硬件組成及工作原理
  舞臺(tái)吊桿控制器主要由C8051F020單片機(jī)、FPGA控制器、LCD顯示器、E2PROM存儲(chǔ)器、RTL8019網(wǎng)卡芯片和JTAG程序下載及調(diào)試接口等組成。其硬件組成框圖如圖2所示。


  工作原理如下:C8051F020單片機(jī)通過(guò)RTL8019網(wǎng)卡芯片接收遠(yuǎn)程控制端送來(lái)的UDP格式的控制命令數(shù)據(jù)包,從該控制命令數(shù)據(jù)包解析出控制指令,傳輸給FPGA控制器。FPGA控制器根據(jù)控制指令控制現(xiàn)場(chǎng)設(shè)備動(dòng)作,并且把相關(guān)的現(xiàn)場(chǎng)數(shù)據(jù)返回給單片機(jī)。單片機(jī)把這些現(xiàn)場(chǎng)數(shù)據(jù)存入E2PROM中作為備份數(shù)據(jù),同時(shí)送給LCD顯示器,并打成UDP數(shù)據(jù)包通過(guò)網(wǎng)卡芯片發(fā)送給遠(yuǎn)程控制端。下面主要介紹單片機(jī)控制系統(tǒng)和FPGA控制器的設(shè)計(jì)。
2.2 單片機(jī)控制系統(tǒng)
  單片機(jī)控制系統(tǒng)主要由C8051F020單片機(jī)組成,主要完成數(shù)據(jù)的接收與處理。C8051F020的特點(diǎn)是運(yùn)算速度快、集成度高、引腳可配置、工作穩(wěn)定和可靠性高[5]。它完全能夠滿足舞臺(tái)吊桿控制器對(duì)存儲(chǔ)器容量、多種總線接口、處理速度和浮點(diǎn)運(yùn)算等方面的要求。
  C8051F020單片機(jī)有UART0和UART1兩個(gè)串口,其中,串口UART0與LCD顯示器連接,用于把舞臺(tái)吊桿運(yùn)行時(shí)的位置數(shù)據(jù)送給LCD顯示器。單片機(jī)利用它的SMBUS接口連接帶有I2C總線接口的E2PROM(FM24C64鐵片存儲(chǔ)器),把現(xiàn)場(chǎng)數(shù)據(jù)存入存儲(chǔ)器,以備在掉電后重新上電時(shí)能夠讀出吊桿的當(dāng)前位置,連續(xù)控制吊桿的運(yùn)動(dòng);同時(shí)利用它的普通I/O口與網(wǎng)卡芯片RTL8019和FPGA控制器相連,實(shí)現(xiàn)數(shù)據(jù)的收發(fā)。
2.3 FPGA控制器的設(shè)計(jì)
  FPGA控制器是利用EDA方法實(shí)現(xiàn)的,主要用于對(duì)從霍爾傳感器過(guò)來(lái)的脈沖進(jìn)行計(jì)數(shù)并控制電機(jī)。由于吊桿運(yùn)動(dòng)過(guò)程中產(chǎn)生的脈沖頻率高,F(xiàn)PGA控制器計(jì)數(shù)量大,所以本設(shè)計(jì)選擇了高容量、高性能的可編程邏輯器件,即ALTERA公司的FLEX 10K 系列FPGA。
2.3.1 FPGA控制器的模塊劃分
  根據(jù)系統(tǒng)功能要求,F(xiàn)PGA控制器的頂層模塊被劃分為以下四個(gè)模塊:兩個(gè)5-32譯碼器、八路與門(mén)模塊、八路16位可逆并行計(jì)數(shù)模塊、電機(jī)控制模塊,如圖3所示。


  兩個(gè)5-32譯碼器模塊的功能是提供與單片機(jī)的接口,實(shí)現(xiàn)可編程接口邏輯。八路計(jì)數(shù)模塊(COUNTER8_FILE_LAST模塊)包括八個(gè)單路計(jì)數(shù)模塊、數(shù)據(jù)轉(zhuǎn)換模塊等,其功能是對(duì)霍爾傳感器過(guò)來(lái)的八路脈沖信號(hào)進(jìn)行可逆計(jì)數(shù)并完成16位數(shù)據(jù)與8位數(shù)據(jù)之間的轉(zhuǎn)換。由于C8051F020單片機(jī)的數(shù)據(jù)長(zhǎng)度是8位,而計(jì)數(shù)模塊完成的是16位計(jì)數(shù),所以必須進(jìn)行數(shù)據(jù)位數(shù)的轉(zhuǎn)換。
2.3.2 FPGA模塊的功能仿真
  FPGA控制器是用ALTERA公司的FLEX10K10芯片,在MAX+PLUSII軟件中進(jìn)行設(shè)計(jì)綜合的。根據(jù)上述的模塊劃分,在MAX+PLUSII中的仿真波形圖如圖4所示。


3 舞臺(tái)吊桿控制器的軟件設(shè)計(jì)
  舞臺(tái)吊桿控制器的軟件主要包括:主程序、UDP數(shù)據(jù)的傳輸與解析程序、串口數(shù)據(jù)的發(fā)送程序、數(shù)據(jù)存儲(chǔ)程序等。
3.1 通信協(xié)議設(shè)計(jì)
  在舞臺(tái)吊桿控制系統(tǒng)中,遠(yuǎn)程控制端通過(guò)局域網(wǎng)采用UDP/IP協(xié)議給舞臺(tái)吊桿控制器發(fā)送命令并接收來(lái)自控制器的數(shù)據(jù)包。UDP/IP數(shù)據(jù)包的格式如下:

  
  在使用該協(xié)議時(shí),命令信息和狀態(tài)數(shù)據(jù)都在UDP DATA 數(shù)據(jù)區(qū)。為了完成控制目的,必須對(duì)這塊數(shù)據(jù)區(qū)的數(shù)據(jù)制定協(xié)議,協(xié)議格式如表1所示。


3.2 主程序設(shè)計(jì)
  主程序主要完成單片機(jī)和各個(gè)功能模塊的初始化、對(duì)各個(gè)功能模塊的調(diào)用以及對(duì)FPGA控制器的控制。由于篇幅關(guān)系,只給出主程序的流程圖,如圖5所示。


4 可靠性設(shè)計(jì)
4.1 電機(jī)慣性引起誤差的補(bǔ)償方法
  在電機(jī)拖動(dòng)系統(tǒng)中,要考慮電機(jī)
的慣性問(wèn)題以便及時(shí)進(jìn)行誤差補(bǔ)償。目前系統(tǒng)中,大都利用一次或二次函數(shù)來(lái)近似電機(jī)的慣性量。而本系統(tǒng)則采用在遠(yuǎn)程控制端人工輸入補(bǔ)償系數(shù)Q的方法來(lái)實(shí)現(xiàn)誤差補(bǔ)償。這里的補(bǔ)償系數(shù)Q的測(cè)量可在排演時(shí)進(jìn)行。
  系統(tǒng)工作時(shí),遠(yuǎn)程控制端需設(shè)定吊桿要運(yùn)行到的位置,即計(jì)數(shù)終值和誤差補(bǔ)償系數(shù)。當(dāng)接收到補(bǔ)償系數(shù)測(cè)量命令時(shí),控制系統(tǒng)將開(kāi)始測(cè)量補(bǔ)償系數(shù)Q。這里假設(shè)輸入終止位置值為S1,實(shí)際終止位置值為S2,那么Q=(S2-S1)/S1×100%(由于慣性的緣故,S2>S1)。接著控制系統(tǒng)把這個(gè)誤差補(bǔ)償系數(shù)Q送回給遠(yuǎn)程控制端,并且存入存儲(chǔ)器中。在吊桿實(shí)際運(yùn)動(dòng)時(shí),控制系統(tǒng)都會(huì)對(duì)輸入值進(jìn)行誤差補(bǔ)償,即:實(shí)際運(yùn)動(dòng)終止值S=輸入值S1-輸入值S1×Q。用此方法得到的電機(jī)慣性量非常精確。
4.2 系統(tǒng)的抗干擾設(shè)計(jì)
  為了保證舞臺(tái)吊桿控制器能夠長(zhǎng)期可靠地運(yùn)行,系統(tǒng)在硬件和軟件兩方面采取了有效的抗干擾措施。其中硬件方面主要采取了3.3V電源和5V電源隔離(它們與電源隔離)、“看門(mén)狗”等方法。通過(guò)電源隔離能夠有效地防止電源電平不穩(wěn)和其它電器對(duì)控制器的干擾,保證了系統(tǒng)的穩(wěn)定性;通過(guò)“看門(mén)狗”能保證程序的正常運(yùn)行,保證了系統(tǒng)的可靠性。軟件方面采取了軟件陷阱等方法。
  先前研制的大規(guī)模舞臺(tái)控制系統(tǒng)使用8044單片機(jī)完成數(shù)據(jù)處理及計(jì)數(shù)功能,通過(guò)BitBus總線完成通信功能。由于單片機(jī)的任務(wù)非常繁重,在實(shí)際應(yīng)用中經(jīng)常出現(xiàn)脈沖丟失以及系統(tǒng)相應(yīng)速度慢的問(wèn)題。而本設(shè)計(jì)采用了EDA技術(shù),將舞臺(tái)吊桿控制器用CYGNAL單片機(jī)和FPGA實(shí)現(xiàn),并用UDP/IP協(xié)議實(shí)現(xiàn)局域網(wǎng)內(nèi)的通信,解決了上述問(wèn)題。舞臺(tái)控制系統(tǒng)現(xiàn)場(chǎng)應(yīng)用表明,該吊桿控制器性能完全達(dá)到了要求。
參考文獻(xiàn)
1 陳若珠, 龔建新, 湯子龍. 舞臺(tái)吊桿微機(jī)群控系統(tǒng)的研制.甘肅工業(yè)大學(xué)學(xué)報(bào)[P],1996(22)
2 劉 巖,李鳳榮,王金海.高速可逆位置計(jì)數(shù)器的研究與FPGA實(shí)現(xiàn).天津工業(yè)大學(xué)學(xué)報(bào)[J],2003;22(2)
3 閻 石.數(shù)字電子技術(shù)基礎(chǔ)[M]. 北京:高等教育出版社,1998:32~433
4 趙俊超.集成電路設(shè)計(jì)VHDL教程[M].北京:北京希望電子出版社,2002.8
5 李 剛,林 凌. 與8051兼容的高性能、高速單片機(jī)-C8051Fxxx.北京:北京航天航空出版社,2002(5)

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。