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