王子鵬,高 格,黃連生
(中國科學(xué)院 等離子體物理研究所,安徽 合肥 230031)
基于以太網(wǎng)控制的外部時鐘系統(tǒng)設(shè)計
王子鵬,高 格,黃連生
(中國科學(xué)院 等離子體物理研究所,安徽 合肥230031)
EAST電源數(shù)據(jù)采集系統(tǒng)的多道信號之間存在采集不同步的問題。這是由于每個采集單元的采集卡在各自的時鐘下工作造成的。使用統(tǒng)一的外部源可以同步采集卡的時鐘以達(dá)到同步采集的目的,同時外部時鐘系統(tǒng)需要能被控制網(wǎng)通過以太網(wǎng)控制和配置。基于ATmega16單片機和ENC28J60以太網(wǎng)芯片的電路可以實現(xiàn)以太網(wǎng)控制的外部時鐘系統(tǒng)。此方案包含系統(tǒng)的電源電路的選型與設(shè)計、網(wǎng)絡(luò)接口的選型與電路設(shè)計、ENC28J60驅(qū)動程序的編寫、時鐘信號輸出程序的設(shè)計與時鐘信號的調(diào)理。最終通過實驗調(diào)試采集到的波形,表明此方案可以通過以太網(wǎng)更改配置并輸出不同頻率的時鐘信號,達(dá)到了預(yù)期的設(shè)計目標(biāo),為EAST電源數(shù)據(jù)采集系統(tǒng)提供統(tǒng)一的外部時鐘。
ATmega16;ENC28J60;以太網(wǎng);時鐘信號
EAST電源系統(tǒng)是托卡馬克裝置的核心子系統(tǒng)之一。為了對實驗進(jìn)行運行分析和故障診斷,需要采集該系統(tǒng)包括主回路、變流器、變壓器、母線等電流和電壓在內(nèi)的200多道信號。目前數(shù)據(jù)采集系統(tǒng)具有多臺采集計算機,通過以太網(wǎng)遠(yuǎn)程控制來采集數(shù)據(jù)[1]。由于采集板卡上的晶振存在容許誤差,當(dāng)使用采集板卡的內(nèi)時鐘功能時會造成多張采集卡采集到的數(shù)據(jù)不同步的問題[2]。采集板卡提供了外部時鐘輸入的功能。現(xiàn)在需要設(shè)計一個外部時鐘系統(tǒng),提供統(tǒng)一的源來同步數(shù)據(jù)采集。
基于單片機和以太網(wǎng)芯片的系統(tǒng)可以實現(xiàn)此功能并且價格低廉可擴(kuò)展性高。ATmega16單片機的比較輸出模式(CTC)可以實現(xiàn)通過I/O口對工作頻率的分頻輸出。所以本文的關(guān)鍵在于實現(xiàn)嵌入式系統(tǒng)的以太網(wǎng)功能。
嵌入式系統(tǒng)中加入以太網(wǎng)連接目前有很多種實現(xiàn)方式,傳統(tǒng)的方案是一種多器件方案,它需要單片機與外部以太網(wǎng)控制器相結(jié)合,必要時可能還需要一些外部組件比如RAM、ROM等。這種方案雖然并不復(fù)雜,但是涉及的元器件數(shù)量眾多,增加了更多的不穩(wěn)定因素,同時驅(qū)動全部器件需要較大的系統(tǒng)開銷。另一種常用的方案是使用集成了以太網(wǎng)功能的單片機MC9S12NE64實現(xiàn)單個器件的以太網(wǎng)連接,也有人使用RTL8019,AX88796L,DM9008等以太網(wǎng)控制器來實現(xiàn)以太網(wǎng)的連接[3]。第二種方案與多器件方案相比,外部元器件數(shù)量大減少,節(jié)省了系統(tǒng)資源,具有較高的穩(wěn)定性。但上述以太網(wǎng)控制器結(jié)構(gòu)復(fù)雜、體積龐大,封裝甚至超過80引腳,而且價格比較昂貴,從易用性和成本方面考慮不符合本文的設(shè)計需求。
本文最終采用的Atmega16單片機與ENC28J6以太網(wǎng)芯片為實現(xiàn)以太網(wǎng)控制的采集觸發(fā)和時鐘信號同步提供了良好的解決方案。
本方案中ATmega16單片機通過ENC28J60實現(xiàn)與控制系統(tǒng)的以太網(wǎng)通訊。在需要開始采集時,控制系統(tǒng)會發(fā)送SET命令設(shè)置本次采集所需要的采集頻率。單片機收到控制命令后通過算法計算出CTC功能寄存器的值并賦值使單片機PD5/OC1A引腳輸出所需頻率的時鐘。
1.1ENC28J60簡介
ENC28J60是一款微型以太網(wǎng)控制芯片,由Microchip Techno logy(美國微芯科技公司)在2005年推出。只有28個引腳的ENC28J60不僅具備了早期器件的相應(yīng)功能,滿足設(shè)計需求,而且可靠性也大幅提高。同時,采用ENC28J60實現(xiàn)的嵌入式以太網(wǎng)應(yīng)用系統(tǒng)具有成本低、占位小、高效易用精簡的優(yōu)勢[4]。
1.2電源設(shè)計
ATmega16需要穩(wěn)定低紋波的外部直流電源供電來保證輸出精確的時鐘信號。本文中電源部分首先用變壓器將220 V交流電變?yōu)? V交流電,然后選用整流橋芯片整流,接著通過LM2576-5的穩(wěn)壓電路為電路提供5 V直流電。其中LM2576-5具有3 A的負(fù)載驅(qū)動能力,在規(guī)定的輸入電壓和輸出負(fù)載的條件下,LM2576-5輸出電壓的誤差范圍為±4%;振蕩器的振蕩頻率誤差范圍為±10%,滿足ATmega16的輸入要求。
電源部分原理圖如圖1所示。C1為輸入端濾波電容,C2、C3為輸出端濾波電容。C1、C2的選擇原則可按Iom×1 000 μF/A經(jīng)驗公式進(jìn)行估算,即每輸出1 A電流就對應(yīng)1 000 μF的電容量,耐壓為63 V即可。續(xù)流二極管D1的選擇,正向額定電流必須大于負(fù)載電流,耐壓值必須大于輸入電壓[6]。

圖1 電源部分原理圖Fig.1 Schematic of power supply circuit
輸出端濾波電容C3的計算,按公式計算。其中ΔVo為輸出電壓紋波分量。
TVS1和TVS2穩(wěn)壓管是為了吸收浪涌,保護(hù)單片機和其他的芯片。
1.3信號調(diào)理電路設(shè)計
ATmega16單片機的I/O口驅(qū)動能力為40 mA。時鐘信號如果需要發(fā)送給多個負(fù)載,可能會存在驅(qū)動能力不足的問題。同時時鐘信號在輸出之前需要進(jìn)行整形,保證輸出標(biāo)準(zhǔn)的波形和電壓值。TTL和CMOS反相器都具有整形和提高信號負(fù)載的能力。CMOS器件具有低功耗,工作電壓范圍寬和抗干擾能力強的優(yōu)點。但是它的延遲時間為25~50 ns,比TTL器件的5~10 ns高出很多。TTL反相器還具有更高的負(fù)載能力和更好的傳輸特性[7]。本文最后選用TTL器件由于所要傳輸?shù)臅r鐘信號要求器件具有快速的響應(yīng)特性。
本文選用的74ls04芯片集成了6個TTL反相器。如圖2所示,采用反相器串聯(lián)的方式可以實現(xiàn)波形整形和提高負(fù)載能力的目的同時保證輸出跟輸入的波形保持一致。
1.4網(wǎng)絡(luò)接口設(shè)計
網(wǎng)絡(luò)變壓器在網(wǎng)絡(luò)接口中起到很重要的作用。從理論上來說,不需要網(wǎng)絡(luò)變壓器RJ45也可以正常工作,但是傳輸距離會受到限制而且外部對芯片會產(chǎn)生很大的干擾。網(wǎng)絡(luò)變壓器一方面可以實現(xiàn)增強信號,使傳輸距離更遠(yuǎn),另一方面可以起到隔離作用,大大提高電路的抗干擾能力。
本文中網(wǎng)絡(luò)接口選用了HR911105A模塊,內(nèi)部原理圖如圖3所示,集成了RJ45的網(wǎng)絡(luò)插座、網(wǎng)絡(luò)隔離變壓器和LED指示燈,集成度高,外圍電路成熟,同時具有信號耦合、電氣隔離、阻抗匹配、抑制干擾等作用。

圖2 反相器串聯(lián)電路Fig.2 Phase inverter in series
2.1系統(tǒng)的初始化與ENC28J60驅(qū)動程序的編寫
該部分程序主要對單片機和ENC28J60進(jìn)行初始化配置。程序的核心是通過發(fā)送指令來初始化ENC28J60和配置它的寄存器以實現(xiàn)需要的功能,表1列出ENC28J60的SPI指令命令代碼及格式。AVR單片機通過 SPI緩沖器向ENC28J60寫入相應(yīng)格式的命令代碼,就可以實現(xiàn)相應(yīng)的讀寫以及其他的操作,其中PHY寄存器不能通過SPI接口直接配置,需要通過特殊功能寄存器MII完成讀寫操作[5]。

圖3 HR911105A模塊內(nèi)部原理圖Fig.3 Schematic of HR911105A

表1 ENC28J60的SPI指令代碼及格式Tab.1 SPI instruction set for the ENC28J60
讀寫寄存器的分為兩步,第一步為選定寄存器的BANK編號,第二步使用寫命令或讀命令,操作指定地址的寄存器。在ENC28J60中,由ECON1中的低兩位保存BANK編號,ECON1是比較特殊的控制寄存器,4個BANK均具有該寄存器且該寄存器的地址相同[12]。

讀控制寄存器實際上就是嚴(yán)格遵守數(shù)據(jù)手冊的操作要求。由于讀MAC和MII寄存器時,第一個接收到的字節(jié)為無效字節(jié),第二個字節(jié)才為有效字節(jié)。程序通過寄存器地址的最高位來判斷是否為MAC或MII寄存器。寫寄存器函數(shù)較為簡單,第一次字節(jié)包括操作碼和寄存器地址,第二個字節(jié)為數(shù)據(jù)。在這兩個函數(shù)中參數(shù)op為ENC28J60的指令,或稱之為操作碼,該指令占據(jù)SPI首字節(jié)的前3位,參數(shù)address為寄存器地址,參數(shù)data為寄存器的具體值[8]。


其他對ENC28J60寄存器的讀寫操作與此類似,由于篇幅限制,不再詳細(xì)描述。
2.2時鐘信號輸出程序的編寫


圖4 CTC模式時序圖Fig.4 CTC mode timing diagram
通過使用以太網(wǎng)調(diào)試助手進(jìn)行調(diào)試。ATmega16單片機配置為主機模式,IP設(shè)置為192.168.1.81,端口號為1200。在數(shù)據(jù)發(fā)送窗口輸入指令“SETXXXXX”,XXXXX為所需頻率,單位為100Hz。若單片機收到指令且指令正確會返回收到“配置成功”字樣。此時單片機引腳會輸出設(shè)置的頻率的高質(zhì)量時鐘信號。如需停止則發(fā)送“STOP”指令,即可暫停信號的發(fā)送。圖5調(diào)試界面,圖6為輸出的時鐘信號。

圖5 以太網(wǎng)調(diào)試助手調(diào)試Fig.5 Debug with net assist

圖6 50 kHZ時鐘信號Fig.6 50 kHZ clock signal
本文采用AVR單片機和ENC28J60組建了嵌入式以太網(wǎng)系統(tǒng),實現(xiàn)了單片機系統(tǒng)的以太網(wǎng)的通信。同時利用ATmega16單片機內(nèi)置的CTC功能實現(xiàn)了不同頻率時鐘信號的輸出,從而使控制系統(tǒng)可以通過以太網(wǎng)控制單片機輸出不同頻率的時鐘信號。給EAST電源數(shù)據(jù)采集系統(tǒng)多臺采集計算機的采集卡提供了統(tǒng)一的外部時鐘,同步了200多道采集通道的采集起始時刻和采集頻率,為對East實驗進(jìn)行準(zhǔn)確的運行分析和故障診斷提供了保障。本文的局限在于由于ATmega16單片機CTC內(nèi)部分頻寄存器為整數(shù)寄存器,無法通過單片機輸出任意頻率的信號,下一步工作擬選用更高級的單片機解決此問題。
[1]夏登超,沈彪,楊育.基于RIA的EAST數(shù)據(jù)采集遠(yuǎn)程控制系統(tǒng)的設(shè)計[J].計算機測量與控制,2010,18(6):1346-1348.
[2]戴敏敏,王華忠,楊飛,等.EAST電源數(shù)據(jù)采集控制系統(tǒng)的設(shè)計與實現(xiàn)[J].測控技術(shù),2015,34(3):44-47.
[3]祁樹勝.SPI接口以太網(wǎng)控制器ENC28J60及其應(yīng)用[J].微計算機信息,2006,8-2:266-268.
[4]張瑞瑞,馬晨普.一種精簡可靠的低成本嵌入式以太網(wǎng)接口設(shè)計[J].電子產(chǎn)品世界,2006(12):66-68.
[5]于海波,付江波,李金濤.AVR單片機實現(xiàn)以太網(wǎng)通信的研究[J].電子工業(yè)專用設(shè)備,2012(205):54-56.
[6]楊智敏,候傳教,劉霞.單片式開關(guān)穩(wěn)壓器LM2576-ADJ及其應(yīng)用[J].移動電源與車輛,2004(1):33-34.
[7]王琳,李毅.PSpice9.2在TTL和CMOS反相器中的應(yīng)用[J].湖北工業(yè)大學(xué)學(xué)報,2007,22(5):8-11.
[8]張永濤,黃丹丹,李歐.uIP協(xié)議分析及應(yīng)用[J].信息工程大學(xué)學(xué)報,2006,7(2):148-149.
Design of external clock system based on ethernet control
WANG Zi-peng,GAO Ge,HUANG Lian-sheng
(Institute of Plasma Physics,Chinese Academy of Sciences,Hefei 230031,China)
The asynchronous sampling of EAST power supply data acquisition system could be caused by the data acquisition cards working ontheir own clock.The unified external clock signal canbe used to make the sampling synchronous.Meanwhile the signal should be controlled and configured via Ethernet.Through the research found that circuit based on AVR microcontroller and ENC28J60 Ethernet chip can meet the requirement.The scheme includes the components selection and circuit design of power supply and network jack,ENC28J60 driver writing,the program design of external clock signal outputting and the waveform shaping.According to the test,every DAQ card of EAST power supply data acquisition system can work on unified clock signal which controlled by upper-computer via Ethernet with this method.
ATmega16;ENC28J60;ethernet;clock
TN79+1
A
1674-6236(2016)05-0162-04
2015-05-04稿件編號:201505020
國家“九五”重大科學(xué)工程資助項目--EAST超導(dǎo)托卡馬克核聚變實驗裝置(計投資(1998)1303號);國家重點基礎(chǔ)研究發(fā)展計劃(973計劃)項目(2008GB104000)
王子鵬(1990—),男,安徽宿州人,碩士研究生。研究方向:數(shù)據(jù)采集及數(shù)據(jù)庫研究。