摘 要: 給出了基于Altera公司的MAXⅡ系列芯片EPM570T144C5設(shè)計(jì)的多路選擇器,介紹了多路選擇器的應(yīng)用、硬件結(jié)構(gòu)、串行通信協(xié)議及軟件設(shè)計(jì),并給出了調(diào)試的結(jié)果。
關(guān)鍵詞: 多路選擇器;CPLD;EPM570T144C5
在舞臺(tái)吊桿控制系統(tǒng)中,多路選擇器主要實(shí)現(xiàn)多個(gè)吊桿選擇少數(shù)電機(jī)進(jìn)行拖動(dòng)的功能,是舞臺(tái)吊桿控制系統(tǒng)中必不可少的部分。而多路選擇器實(shí)現(xiàn)的方法有很多,目前大多數(shù)都是采用單片機(jī)作為核心芯片來進(jìn)行控制,但單片機(jī)容易受到強(qiáng)電設(shè)備開關(guān)時(shí)產(chǎn)生的電氣干擾而“跑飛”。本文選擇64選10方式的多路選擇器,該選擇器的功能為接收來自主控制器的數(shù)據(jù)選擇信號(hào),并根據(jù)信號(hào)中對(duì)應(yīng)的吊桿、通道信息來實(shí)現(xiàn)具體的控制選擇工作。為此,本文設(shè)計(jì)了一種基于CPLD的多路選擇器。
1 EPM570T144C5芯片簡介
EPM570T144C5是Altera公司MAXⅡ系列中的一款低功耗、低成本的CPLD。該芯片1.8 V的內(nèi)核電壓降低了功耗、提高了可靠性,并且支持高達(dá)300 MHz的內(nèi)部時(shí)鐘頻率;板上的振蕩器和用戶閃存,不需要分立振蕩器或者非易失存儲(chǔ)器;有實(shí)時(shí)在系統(tǒng)可編程能力,器件工作時(shí)可下載第二個(gè)設(shè)計(jì),方便在線調(diào)試;而且該芯片有144個(gè)可編程的I/O引腳,每個(gè)I/O引腳均耐5 V電壓,完全可以滿足本系統(tǒng)I/O引腳個(gè)數(shù)的要求,在使用中還有可擴(kuò)展空間。
2 硬件設(shè)計(jì)
本系統(tǒng)的硬件電路主要由EPM570T144C5芯片、RS485通信模塊、64路輸入接口、64路輸入光電隔離電路、10路輸出光電隔離電路、10路輸出接口組成,如圖1所示。
輸入、輸出的光電隔離電路,均采用工業(yè)級(jí)的光電耦合隔離器TLP521進(jìn)行電氣隔離。TLP521為電流驅(qū)動(dòng)型工作元件,需外接電源電路來產(chǎn)生所需的壓降,而且需要根據(jù)具體的輸入/輸出電壓、電流來計(jì)算對(duì)應(yīng)的電源電路中電阻的阻值,以避免二極管的壓降過大而損壞以及驅(qū)動(dòng)能力不足的問題。
RS485通信模塊采用半雙工工作方式的串行通信芯片MAX485,由于該芯片內(nèi)部為平衡驅(qū)動(dòng)器和差分接收器的組合,其抗共模干擾能力增強(qiáng),且總線收發(fā)器能檢測低至200 mV的電壓,可實(shí)現(xiàn)千米以上的遠(yuǎn)距離傳輸。特別是RS485通信方式只定義了電壓、阻抗,未對(duì)軟件協(xié)議進(jìn)行定義,因此使本系統(tǒng)的通信協(xié)議設(shè)計(jì)非常靈活。
3 串行通信協(xié)議的設(shè)計(jì)
本系統(tǒng)的串行通信協(xié)議分為兩部分:多路選擇器接收來自主控制器部分和多路選擇器發(fā)送到主控制器部分。其中,接收部分起主要作用,而發(fā)送部分只是用來反饋錯(cuò)誤信息。由于多路選擇器是根據(jù)主控制器所發(fā)送的串行指令來進(jìn)行具體工作的,所以串行通信協(xié)議接收部分的設(shè)計(jì)很重要,既要包括相應(yīng)的吊桿、通道信息,又要考慮到抗電氣干擾的問題,還要考慮所采用芯片的邏輯、存儲(chǔ)單元的個(gè)數(shù)。
3.1 接收通信協(xié)議
本文通信協(xié)議的接收部分采用按固定的通道順序,一次接收10組吊桿的數(shù)據(jù),而每組吊桿數(shù)據(jù)均依次按順序?qū)?yīng)的原則進(jìn)行設(shè)計(jì),同時(shí)每組數(shù)據(jù)均采用奇校驗(yàn),且全部數(shù)據(jù)采用和校驗(yàn)的方法來進(jìn)行軟件抗電氣干擾。其中,第1個(gè)字節(jié)為起始標(biāo)志“01010101”,最高位的“0”表示該字節(jié)為標(biāo)志;第2字節(jié)~第11字節(jié)為10路具體的吊桿數(shù)據(jù);第12、13字節(jié)為和校驗(yàn)碼,分別為10路吊桿數(shù)據(jù)的和除64取商、取余;第14字節(jié)為停止標(biāo)志“00101010”,除最高位外,其余均與起始標(biāo)志位對(duì)應(yīng)取反。
每個(gè)字節(jié)的D7位用于區(qū)分標(biāo)志與數(shù)據(jù),用“0”表示標(biāo)志,而用“1”表示數(shù)據(jù);除標(biāo)志外,每個(gè)字節(jié)的D6位均為奇校驗(yàn)碼;10路數(shù)據(jù)seldata[1]~seldata[10]中的D5~D0位為64路中的1路吊桿數(shù)據(jù)。通信協(xié)議按照從低位到高位、從低字節(jié)到高字節(jié)按順序進(jìn)行接收,如表1所示。
3.2 發(fā)送通信協(xié)議
發(fā)送的通信協(xié)議只有當(dāng)多路選擇器在接收過程中受到電氣干擾、一些數(shù)據(jù)位發(fā)生邏輯改變而使奇校驗(yàn)或和校驗(yàn)不匹配時(shí),才工作;否則一直保持接收狀態(tài),準(zhǔn)備接收下一次的數(shù)據(jù)流。
通信協(xié)議的發(fā)送部分是由一組10位的二進(jìn)制數(shù)(停止位“1”+“10100101”+起始位“0”)組成的數(shù)據(jù)流,以表示之前的通信出錯(cuò)要求重發(fā)。當(dāng)主控制器接收到該信號(hào)后,則重發(fā)一次數(shù)據(jù)流。通信協(xié)議按低位到高位的順序進(jìn)行發(fā)送,如表2所示。
4 軟件系統(tǒng)的設(shè)計(jì)
本系統(tǒng)使用Verilog HDL硬件描述語言,采用自頂而下的設(shè)計(jì)方法在Quartus Ⅱ的軟件平臺(tái)上進(jìn)行設(shè)計(jì)。系統(tǒng)由采樣時(shí)鐘輸出模塊、信號(hào)采樣模塊、起始標(biāo)志檢測模塊、數(shù)據(jù)處理模塊、停止標(biāo)志檢測模塊、64選10模塊、錯(cuò)誤檢測模塊、輸出控制模塊和發(fā)送模塊組成。軟件系統(tǒng)框圖如圖2所示。
采樣時(shí)鐘輸出模塊:對(duì)11.059 2 MHz的時(shí)鐘頻率進(jìn)行分頻產(chǎn)生16倍波特率的采樣脈沖。
信號(hào)采樣模塊對(duì)按波特率輸入的控制命令進(jìn)行3次采樣,如果采樣結(jié)果一致,則按波特率向后級(jí)輸出控制命令的電平信號(hào),否則將發(fā)出錯(cuò)誤指令。
起始標(biāo)志檢測模塊:實(shí)現(xiàn)對(duì)第一組數(shù)據(jù)標(biāo)志的判斷,如果不是起始標(biāo)志,則直接輸出后續(xù)數(shù)據(jù),否則進(jìn)行起始標(biāo)志的序列檢測;如果檢測正確,則設(shè)置第一組數(shù)據(jù)標(biāo)志,否則發(fā)出錯(cuò)誤指令。
64選10模塊:由10組64選1電路并行組成,接收來自數(shù)據(jù)處理結(jié)果的并行數(shù)據(jù)。
停止標(biāo)志檢測模塊:完成對(duì)停止標(biāo)志的檢測,并輸出清零第一組數(shù)據(jù)標(biāo)志的信號(hào),同時(shí)輸出啟動(dòng)脈沖,如果檢測錯(cuò)誤,則發(fā)出錯(cuò)誤指令。
錯(cuò)誤檢測模塊:收到來自停止標(biāo)志檢測的啟動(dòng)脈沖后,將根據(jù)前面各級(jí)有無錯(cuò)誤輸出來實(shí)現(xiàn)控制。而輸出控制模塊為一個(gè)暫存器,由錯(cuò)誤檢測的控制脈沖來控制10路輸出信號(hào)是否可以輸出至管腳。
發(fā)送模塊:在錯(cuò)誤檢測發(fā)現(xiàn)問題后,將設(shè)置RS485為發(fā)送狀態(tài),同時(shí)發(fā)送一組錯(cuò)誤標(biāo)志信號(hào)到主控制器后,重新處于接收狀態(tài),準(zhǔn)備再次接收。
數(shù)據(jù)處理及校驗(yàn)?zāi)K:主要實(shí)現(xiàn)對(duì)前10個(gè)字節(jié)的吊桿信號(hào)進(jìn)行字節(jié)個(gè)數(shù)的計(jì)算、每個(gè)字節(jié)的奇校驗(yàn)的判斷、吊桿數(shù)據(jù)的依次存儲(chǔ)、前10個(gè)字節(jié)吊桿數(shù)據(jù)之和除以64的商、余計(jì)算,以及對(duì)第11、12字節(jié)的和校驗(yàn)。當(dāng)有字節(jié)奇校驗(yàn)或和校驗(yàn)錯(cuò)誤時(shí),則報(bào)錯(cuò)D_ERROR;當(dāng)完成12個(gè)字節(jié)的存儲(chǔ)及校驗(yàn)后,不再對(duì)后面接收的信號(hào)做處理,而是直接輸出。
由于篇幅有限,此處只給出數(shù)據(jù)處理及校驗(yàn)部分的流程圖,如圖3所示。
5 仿真及調(diào)試安裝
本文采用Quartus Ⅱ自帶的波形仿真軟件進(jìn)行仿真,仿真結(jié)果如圖4所示。
本文對(duì)多路選擇器的實(shí)物調(diào)試專門設(shè)計(jì)了一個(gè)測試板。該測試板采用單片機(jī)C8051F020為核心芯片,通過8個(gè)8位的撥碼開關(guān)來模擬64路輸入信號(hào),10個(gè)LED電路來顯示輸出結(jié)果,通過RS232接口與PC機(jī)交互,通過RS485接口連接多路選擇器。
調(diào)試的過程中,PC機(jī)使用“串口調(diào)試助手”發(fā)送具體的吊桿、通道指令,再經(jīng)C8051F020進(jìn)行對(duì)應(yīng)的處理,并按照多路選擇器的通信協(xié)議發(fā)送至多路選擇器,同時(shí)反饋給PC機(jī)具體處理的信息。而通過調(diào)節(jié)64個(gè)撥碼開關(guān)來觀察10個(gè)LED顯示的情況進(jìn)行分析。
在采用不同的通信材料及波特率、有一定的電氣干擾下,經(jīng)過多次長期的調(diào)試得到如下結(jié)果:64選10的多路選擇器在選用雙絞屏蔽線作為RS485通信線、同時(shí)使用獨(dú)立電源并工作在低波特率(1 200 b/s)時(shí),半雙工通信模塊邏輯正常,輸入、輸出的邏輯正常,EPM570T144C5芯片工作正常。
本文設(shè)計(jì)的多路選擇器在實(shí)際使用時(shí),與強(qiáng)電設(shè)備安裝在一個(gè)電氣控制柜中。為了進(jìn)一步提高抗電氣干擾的性能,需將多路選擇器安裝于網(wǎng)狀的金屬盒內(nèi),以屏蔽開關(guān)時(shí)產(chǎn)生的電弧所引起的空間輻射干擾,同時(shí)又能良好地散熱。而且多路選擇器與主控制器的通信連線采用屏蔽線連接,并在走線時(shí)盡量遠(yuǎn)離電氣線路。此外,多路選擇器采用獨(dú)立的交流穩(wěn)壓電源,以防止電氣設(shè)備在開關(guān)瞬間對(duì)電網(wǎng)產(chǎn)生的尖峰干擾。
本文采用CPLD進(jìn)行多路選擇器的設(shè)計(jì),不僅能實(shí)現(xiàn)64選10的正常工作,而且設(shè)計(jì)的方法非常靈活。通過測試表明,基于CPLD設(shè)計(jì)的多路選擇器抗干擾能力要強(qiáng)于用單片機(jī)的設(shè)計(jì),不但降低了系統(tǒng)的功耗,生產(chǎn)及維修成本也比單片機(jī)少,而且實(shí)時(shí)性強(qiáng)、可靠性高。
參考文獻(xiàn)
[1] 小林芳直.數(shù)字邏輯電路的ASIC設(shè)計(jì)[M].蔣民,譯.北京:科學(xué)出版社,2004.
[2] 帕爾尼卡.Verilog HDL 數(shù)字設(shè)計(jì)與綜合[M].夏宇聞,等譯.北京:電子工業(yè)出版社,2004.