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