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