趙曉宇,張啟平,高躍
?
基于FPGA 的高速串行通信在電力推進控制系統(tǒng)中的應用
趙曉宇,張啟平,高躍
(武漢船用電力裝置研究所, 武漢 430064)
本文介紹了一種優(yōu)化時鐘差分曼徹斯特編碼的編碼方法,并分析了其在高速串行通信中的實際應用價值。通過VHDL編程實現(xiàn)上述方法的編碼、解碼功能,完成了在Quartus II環(huán)境下的仿真驗證。通過在FPGA硬件設備上的實際測試,驗證了其可行性和可靠性。通過對多種現(xiàn)有串行通信協(xié)議的研究,并在借鑒IEC60044-8通信規(guī)約的基礎上提出了一種自定義協(xié)議。協(xié)議在編碼效率和編程復雜度方面得到一定的平衡。通過與傳統(tǒng)串行通信方式比較并結(jié)合電力推進控制系統(tǒng)的現(xiàn)狀和性能需求,分析了其在電力推進控制系統(tǒng)中應用的可行性,并完成了實驗驗證。
高速串行通信 FPGA IEC60044-8通信規(guī)約 電力推進控制系統(tǒng) VHDL編程 差分曼徹斯特編碼
近年來嵌入式控制器在現(xiàn)場控制領(lǐng)域的應用越來越廣泛,其在電力推進控制系統(tǒng)中的應用也得到了進一步的發(fā)展。隨著控制器控制功能的增強、控制精度的提高以及對采樣信號精度的提高和數(shù)量的增加,都對現(xiàn)有的控制器通信系統(tǒng)提出了新的挑戰(zhàn)。另外電力推進控制系統(tǒng)對于通信的實時性和可靠性等方面的需求使得許多現(xiàn)有的通信方案表現(xiàn)出諸多弊端?,F(xiàn)有的控制器通信多采用RS484、RS232、CAN等通信協(xié)議[7],而這些協(xié)議的通信速率均不超過1M,這就使得其在通信量大幅提高的情況下難以滿足性能需求。隨著信號采集量的增大,現(xiàn)場的接線數(shù)量也增加,使得布線復雜度和故障的概率也相應的大幅增加。因此需要對信號進行統(tǒng)一的采集處理,然后以高速率傳輸出去。同時為了實現(xiàn)通信的實時性要求,也需要對通信進行一定的自由控制。近年傳輸速率在通信行業(yè)得到了極大的提高,其已經(jīng)達到千兆、G級別的傳輸速率,而在控制領(lǐng)域卻發(fā)展相對緩慢。但隨著控制領(lǐng)域?qū)鬏斔俾室蟮奶岣?,近些年工業(yè)控制通信也得到了一定的發(fā)展,如工業(yè)以太網(wǎng)、實時工業(yè)以太網(wǎng)等。許多公司都推出了自己的標準協(xié)議,其均采用100M傳輸速率,如ProfiNet IRT、SERCOSIII、EtherCAT等[2]。而要實現(xiàn)這些技術(shù)需要專用芯片或者IP核,且協(xié)議開發(fā)困難,使得其應用受到很大限制。
目前很多FPGA芯片都集成了專用的SerDes內(nèi)核用來完成數(shù)據(jù)的串行傳輸。本文在此基礎上提出了一種新的通信解決方案,即采用優(yōu)化時鐘差分曼徹斯特編碼,以4位時鐘表示一位數(shù)據(jù)的同時插入了時鐘,使得在經(jīng)過解碼后可同時恢復出時鐘和數(shù)據(jù),實現(xiàn)類似SPI的通信方式[1]。而且,差分曼碼可有效的抑制直流偏移,時鐘和數(shù)據(jù)同時傳輸又消除了時鐘和數(shù)據(jù)傳輸不同步的可能性,使得數(shù)據(jù)可以可靠的恢復。在IEC60044-8通信規(guī)約的基礎上,通過對通信協(xié)議的合理修改使得其在可靠性和實時性方面滿足電力推進控制系統(tǒng)的需求。
曼徹斯特編碼用兩位時鐘表示一位數(shù)據(jù),在每個時鐘位的中間都有一次跳變,傳輸?shù)?和0,是在每個時鐘位的開始有無跳變來區(qū)分的,當有跳變時為1反之為0。差分曼徹斯特編碼是曼徹斯特編碼的改進。
差分曼碼比曼徹斯特編碼的變化要少,因此更適合與傳輸高速的信息,被廣泛用于高速寬帶網(wǎng)中。而優(yōu)化時鐘差分曼碼則使用4位時鐘表示一位數(shù)據(jù),在每傳輸一位數(shù)據(jù)的同時傳輸一位時鐘,這樣在經(jīng)過解碼后可以解碼出的時鐘來恢復數(shù)據(jù),實現(xiàn)類似SPI的方式通信。可以有效的消除時鐘偏移和抖動所帶來的不利影響,同時也不用設計復雜的時鐘恢復電路,使得設計簡單同時又有很高的可靠性。
本文采用基于FPGA的方法,來實現(xiàn)相關(guān)功能。采用VHDL語言進行硬件編程。通信功能的實現(xiàn)如下所示:
圖1 編碼模塊接口圖
編碼功能主要用來實現(xiàn)將并行數(shù)據(jù)轉(zhuǎn)化為串行并插入時鐘信號并發(fā)送出去。編碼需要的信號有:編碼時鐘clkin、啟動發(fā)送信號start、并行數(shù)據(jù)輸入datain、發(fā)送的有效數(shù)據(jù)位數(shù)datanum、差分曼碼輸出dout、用于表示是否有數(shù)據(jù)發(fā)送的信號BUSY和用于復位的rst信號。
圖2 編碼模塊接口圖
編碼思路:本文約定以每一位開始如果有電平的跳變表示數(shù)據(jù)‘1’,反之為‘0’。另外在每次發(fā)送時要插入一位‘0’作為起始位,用于定位時鐘信號。由于采用四位時鐘表示一位數(shù)據(jù)的方法,因此我們對時鐘進行0~3的循環(huán)計數(shù),定義計數(shù)‘0’為數(shù)據(jù)沿、計數(shù)‘2’為時鐘沿、計數(shù)‘1’和‘3’用于檢測BUSY和start信號以控制數(shù)據(jù)的傳輸過程。(輸入的datain數(shù)據(jù)為,原始數(shù)據(jù)經(jīng)過添加數(shù)據(jù)類型、地址信息、差錯檢驗等信息,封裝組成的數(shù)據(jù)幀)
解碼功能主要用于將編碼電路傳來的信號進行解碼,恢復出時鐘和數(shù)據(jù)信號。解碼需要的信號有:時鐘輸入clk、差分曼碼輸入din,從而解碼出時鐘信號clkout、數(shù)據(jù)信號dout。從而可以用clkout和dout以SPI方式恢復出數(shù)據(jù)。
解碼思路:因為我們以數(shù)據(jù)‘0’為起始位,因此將輸入數(shù)據(jù)的第一個沿定義為時鐘沿。設置沿標志位inclkedge,當inclkedge=1時表示剛接收到的為時鐘沿否則不為時鐘沿。
圖3 解碼模塊接口圖
當inclkedge=1時
dout=0; clkout=1;然后啟動三個時鐘延時;
當inclkedge=0時
如果din有跳變沿時:dout=1延時三個時鐘后將:clkout置‘0’,inclkedge置‘1’。
恢復出的時鐘信號clkout和數(shù)據(jù)信號dout輸如普通的SPI模塊就可解碼出數(shù)據(jù)。
IEC60044-8通信規(guī)約是國際電工委員會指定的電子式電流互感器標準草案。目前在智能變電站中應用較多。其應用在測控裝置間進行數(shù)據(jù)交互有獨特的優(yōu)勢,因此本文參考其協(xié)議格式來進行本次協(xié)議的制定。本協(xié)議制定主要考慮一下幾個方面:第一:I/O量、數(shù)據(jù)量、控制信號的封裝與傳輸;第二:數(shù)據(jù)傳輸實時性、同步性的控制;第三:可靠的差錯檢驗機制。
控制幀與協(xié)議幀協(xié)議格式分別如下所示:
起始位、結(jié)束位:用于標識幀的開始與結(jié)束;地址信息:用于標識數(shù)據(jù)的邏輯連接,同時用特殊的地址作為廣播地址,來用于同步的控制??刂谱止?jié):用于封裝控制信息。數(shù)據(jù)位、CRC:在每組數(shù)據(jù)后加上CRC校驗可使得數(shù)據(jù)傳輸?shù)目煽啃愿摺?shù)據(jù)段的多少可根據(jù)實際情況自行定義。
本次仿真為基于Quartus II軟件,采用VHDL語言進行編程。分別對code、decode模塊進行了功能仿真。在仿真驗證通過后,將其通過JTAG接口將其下載到FPGA電路板中進行實驗驗證,芯片類型為Cyclone II。
圖5和圖6的仿真波形顯示了基于優(yōu)化時鐘差分曼徹斯特編碼是一種穩(wěn)定可靠的編碼方法,其解碼也電路也能很好的抵抗時鐘頻率偏差和抖動,穩(wěn)定的恢復出數(shù)據(jù)和嵌入的時鐘。圖7說明此種技術(shù)能夠很好的在FPGA上實現(xiàn),且性能穩(wěn)定可靠。圖8可以看出兩個接收節(jié)點間的就收時差為15ns。表明了通過傳輸協(xié)議的控制,可實現(xiàn)很好的同步性能,滿足電力推進控制系統(tǒng)對于實時性方面的要求。
本文介紹了一種優(yōu)化時鐘的差分曼徹斯特編碼,論述了其原理和編程實現(xiàn)思想。并通過VHDL編程和仿真驗證了其可行性和可靠性。通過對電力推進控制系統(tǒng)的性能需求的分析,在參考IEC60044-8通信規(guī)約的基礎上提出了適合電力推進控制系統(tǒng)的通信協(xié)議方案。最后完成了在FPGA板上的性能測試,驗證了此方案的可行性和可靠性。另外,本文所述方案可實現(xiàn)根據(jù)不同的情況對傳輸速率和數(shù)據(jù)幀進行調(diào)整,具有很強的適應性?;贔PGA芯片的方法,使得硬件實施也很方便。
[1] 范博然. 用于高壓直流輸電的模塊化多電平變換器分層控制系統(tǒng)設計[J]. 2013.
[2] 繆學勤. 論六種實時以太網(wǎng)的通信協(xié)議[J]. 自動化儀表, 2005, 26(4): 1-6.
[3] Jayaram B. VHDL教程[M]. 3版. 劉雷波,孟一聰譯.北京:機械工業(yè)出版社,2006.
[4] 俸天武, 謝芳. 一種差分曼徹斯特編碼解碼器的VHDL 模型[J]. 電子器件, 1997, 20(1): 50-55.
[5] Orfanus D, Indergaard R, Prytz G, et al. EtherCAT-based platform for distributed control in high-performance industrial applications[C]. Emerging Technologies & Factory Automation (ETFA), 2013 IEEE 18th Conference on. IEEE, 2013: 1-8.
[6] Cyclone I I. Device Handbook[J]. Altera Corporation, 2007.
[7] 工業(yè)數(shù)據(jù)通信與控制網(wǎng)絡[M]. 清華大學出版社, 2003.
Application of High-speed Serial Communication to the Electric Propulsion Control System Based on FPGA
Zhao Xiaoyu, Zhang Qiping, Gao Yue
(Wuhan Institute of Marine Electric Propulsion, Wuhan 430064, China)
TN762
A
1003-4862(2014)09-0014-04
2014-07-15
國家科技支撐計劃項目(2012BAG03B01)
趙曉宇(1987-),男,研究生。研究方向:電力電子與電力傳動。