關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > SERCON816型SERCOS總線控制器及其應(yīng)用

SERCON816型SERCOS總線控制器及其應(yīng)用

作者: 時間:2006-02-22 來源:網(wǎng)絡(luò) 收藏
摘要:介紹的功能及使用方法,詳細闡述電路在開發(fā)過程中的外圍電路連接、控制寄存器的設(shè)置及初始化軟件的設(shè)計。

關(guān)鍵詞:

1 引言

總線是一種連接運動與驅(qū)動器的運動控制總線。它出現(xiàn)的較晚,但一面世便受到世界各種設(shè)備供應(yīng)商的廣泛關(guān)注。SERCOS總線特有的開放性、同步性與抗干擾性有力支持了目前各先進工業(yè)國家對開放式數(shù)控系統(tǒng)的研究與,因此其協(xié)議很快便被采納為國際標(biāo)準(zhǔn)。2002年中國也正式頒布了SERCOS協(xié)議的國家標(biāo)準(zhǔn)。在此之前,SERCOS總線已被于實踐,如今全球有70多家公司能提供帶有SERCOS接口的數(shù)字產(chǎn)品,國外生產(chǎn)的各類印刷機、食品包裝機、裝配機器人、半導(dǎo)體加工設(shè)備、紡織機它具有特殊用途的機器中也不乏SERCOS總線的應(yīng)用。因內(nèi)也開始嘗試應(yīng)用這一后起之秀,相關(guān)的研究也在日益增多。文中從應(yīng)用角度,結(jié)合筆者實際使用中的經(jīng)驗,著重介紹一款主流的SERCOS總線控制器一,希望能借此對國內(nèi)數(shù)控技術(shù)的發(fā)展起到拋磚引玉的作用。

2 SERCON816簡介

SERCON816是由歐洲SERCOS協(xié)會推出的第二代SERCOS總線控制器。該芯片集成了SERCOS總線的數(shù)據(jù)鏈路層,通過設(shè)定片內(nèi)寄存器和讀寫結(jié)構(gòu)化的雙口RAM便可實現(xiàn)總線的通訊。這款芯片報文處理的時鐘頻率最大可達16MHz,即可在最短為62.5μs的固定周期內(nèi)實現(xiàn)一主多從的環(huán)形通訊。SERCON816資源豐富,功能強大,內(nèi)部有43個16位的控制寄存器、2kB的雙口RAM、2個外部中斷引腳、34個內(nèi)部中斷源、1個看門狗定時器及DMA控制器。另外,該電路的接口方式也靈活多樣,與微處理器互聯(lián)的總線寬度即可為8位,也可為16位;讀/寫控制的模式既可遵循Intel標(biāo)準(zhǔn),也可遵循Motorola標(biāo)準(zhǔn)。而串行接口的通訊也可選用光纖或電纜來實現(xiàn)。SERCON816的內(nèi)部功能結(jié)構(gòu)如圖1所示。

3 SERCON816的應(yīng)用

3.1 SERCON816與微處理器的接口

SERCON816以總線的形式與微處理器接口。總線操作有兩種模式,第一種是總線分離模式。在該模式下,數(shù)據(jù)總線上只傳遞數(shù)據(jù),地址總線上只傳遞地址;第二種是總線復(fù)用模式。此時,對于片外數(shù)據(jù)總線而言,既傳遞數(shù)據(jù)也傳遞地址,不過,在芯片內(nèi)部通過地址鎖存器將二者分開了,具體說明見表1。

表1 SERCON816與微處理器接口

ADMUX0總線分離模式
1總線復(fù)用模式
BUSWIDTH0數(shù)據(jù)總線寬度為8位
1數(shù)據(jù)總線寬度為16位
A0A0、BHEN=00,數(shù)據(jù)總線有效位D0-D15;A0、BHDEN=01,為D0-D7;A0、BHEN=DIR=1,D0-D7代表高字節(jié),D8-D15代表低字節(jié)
BHEN
BYTEDIR16位數(shù)據(jù)總線BYTEDIR=0,D0-D7代表低字節(jié),D8-D15代表高字節(jié),BYTEDIR=1,D0-D7代表高字節(jié),D8-D15代表低字節(jié)
8位數(shù)據(jù)總線BYTEDIR=0時,A0=0傳遞低字節(jié),A0=1傳遞高字節(jié),BYTEDIR=1時,A0=0傳遞高字節(jié),A0=1傳遞低字節(jié)

在總線分離模式下,首先要將BUSWIDTH置1,以選擇16位寬的數(shù)據(jù)總線。然后將A0、BHEN都接地,使數(shù)據(jù)總線16位均有效。還要注意BYTEDIR的選擇,由于內(nèi)部寄存器或RAM單元都是16位的,分離、低二個字節(jié),當(dāng)BYTEDIR=0時,數(shù)據(jù)總線上傳送的低8位數(shù)據(jù)作為低字節(jié)存入,高8位數(shù)據(jù)作為高字節(jié)存入;而當(dāng)BYTEDIR=1時,低8位數(shù)據(jù)作為高字節(jié)存入,高8位數(shù)據(jù)作為低字節(jié)存入。通常情況下,將BYTEDIR接地。

總線復(fù)用模式主要是為了與8位微處理器進行接口。在這種模式下,片外數(shù)據(jù)總線首先傳送地址信號,穩(wěn)定后,打開內(nèi)部鎖存器將地址輸入到內(nèi)部地址總線,隨后鎖存器關(guān)閉,將地址鎖存,最后再從片外數(shù)據(jù)總線將8位數(shù)據(jù)傳入內(nèi)部數(shù)據(jù)總線。由于內(nèi)部寄存器或RAM單元由高、低二個字節(jié)構(gòu)成,讀/寫時總是一個字節(jié)一個字節(jié)的進行,次序由BYTEDIR的設(shè)寫與A0的變化來確定。值得注意的是,當(dāng)與Motorola微處理器或8051系列微處理器進行接口時,BYTEDIR通常被設(shè)為1;而當(dāng)與非8051系列的其它Intel微處理器接口時,BYTEDIR通常被設(shè)為0。

SERCON816總線的讀寫控制可選用Intel或Motorola二種標(biāo)準(zhǔn)之一,具體說明見表2。

表2 讀寫操作的標(biāo)準(zhǔn)說明

BUSMODEOBUSMODE1標(biāo)準(zhǔn)WRNRDN
0XIntelWRNRDN
10MotorolaR/WN低電平WRN有效
11MotorolaR/WN高電平WRN有效

當(dāng)BUSMODE0為0時,采用Intel標(biāo)準(zhǔn)。此時,若WRN為低、RDN為高,進行寫操作;若RDN為低、WRN為高,進行讀操作。當(dāng)BUSMODE0=1時,采用Motorola標(biāo)準(zhǔn),只有在這種標(biāo)準(zhǔn)下,BUSMODE1才有意義。如果此時的BUSMODE1=0,說明當(dāng)控制線RDN上出現(xiàn)低電平時,控制線WRN的控制信號有效;而如果BUSMODE1=1,說明當(dāng)控制線RDN上出現(xiàn)高電平時,控制線WRN的控制信號有效。當(dāng)WRN有效時,高電平表示讀,低電平表示寫。

SERCON816內(nèi)部有2048字的雙口RAM和大量的控制寄存器。由于對它們訪問的地址上有重疊,所以必須事先確認訪問的是雙口RAM還是控制寄存器。當(dāng)MCSN0=0,MCS=1時,對RAM進行讀寫操作;而當(dāng)PCSN0=0,PCS1=1時,則對寄存器進行讀寫操作。

圖2

3.2 時鐘與復(fù)位

SERCON816需要二個時鐘。一個由SCLK引腳輸入,作為基準(zhǔn)源;另一個由MCLK引腳輸入,用于報文處理。作為新一代的SERCOS接口控制器,為了能夠很好地與上一代控制器兼容,SERCON816提供了一個可選的設(shè)置引腳SBAUD16。通常,將SBAUD16接5V電源,可使SERCON816工作在兼容模式下。注意:SCLK最高輸入頻率為64MHz,MCLK輸入頻率在12MHz~64MHz之間。

SERCON816有硬件復(fù)位和軟件復(fù)位二種方式。硬件復(fù)位是通過在RSTN引腳上加一個寬度不小于50ns的負脈沖來完成。不過,在非兼容模式下或掉電復(fù)位時,負脈沖的寬度不應(yīng)小于10ms。此外,還要注意在復(fù)位電路中加上具有低通濾波器特性的電路以防止毛刺噪聲的干擾。軟件復(fù)位則是通過向SERCON816的控制寄存器SWRST位寫1來完成。如果SERCON816未能正常復(fù)位,則可以通過軟件進行復(fù)位。

3.3 通信波特率的設(shè)置

波特率也可通過硬件或軟件來設(shè)置。寄存器ENTSBAUD決定著波特率的設(shè)置方式。當(dāng)ENTSBAUD=0時,通常硬件設(shè)置;而當(dāng)ENTSBAUD=1時,通過軟件設(shè)置,具體見表3,此表是在fmclk=64MHz時的波特率選擇。

表3 通信波特率的設(shè)置

ENTSBAUDSBAUDSBAUD16SWSABUDSWSBUAD16波特率
011XX2M(fsclk/32)
001XX4M(fsclk/16)
1X11X2M(fsclk/32)
1X10X4M(fsclk/16)
010XX8M(fsclk/8)
000XX16M(fsclk/4)
1X0112M(fsclk/32)
1X0014M(fsclk/16)
1X0108M(fsclk/8)
1X00016M(fsclk/4)

當(dāng)芯片工作在與SERCON410B兼容的模式下時,如果選擇硬件設(shè)置波特率則控制寄存器SWSBAUD和SWSBAUD16無效,此時,可以通過引腳SBAUD選擇2MHz或4MHz的波特率;如果選擇軟件設(shè)置波特率,則引腳SBAUD無效,此時,可以通過寄存器SWSBAUD選擇2MHz或4MHz的波特率。同理,可設(shè)置非兼容模式下的波特率。

實際應(yīng)用中,會出現(xiàn)波特率的實際值與設(shè)置值不相等的情況。造成這種情況的實際值與設(shè)置值不相等的情況。造成這種情況的原因可能是由于信號變形過大或通訊回路堵塞。此時,在SERCON816內(nèi)部會產(chǎn)生相同的中斷和錯誤標(biāo)志,用戶由此可以判斷錯誤產(chǎn)生的原因。在通信正常以后,錯誤標(biāo)志會自動復(fù)位,而中斷標(biāo)志則必須通過軟件來清除。

3.4 輸入/輸出引腳的設(shè)置

SERCOS總線一般采用光通訊的方式,以提高抗干擾能力。接口的光電轉(zhuǎn)換通過光電接頭自動完成。為了能調(diào)節(jié)輸出電流的大小,使得輸出信號具有不同的驅(qū)動能力,SERCON816提供了6個輸出引腳。這樣便可以通過使能輸出引腳的多少來調(diào)節(jié)輸出電流的大小。通常將6根輸出引腳并聯(lián)起來,可以得到60mA的最大靜態(tài)輸出電流和120mA的最大動態(tài)輸出電流。另外還需在每一根輸出引腳上外接一個電阻器和并聯(lián)一個RC電路,其目的是來用電阻器傳遞靜態(tài)電流,利用RC電容來穩(wěn)定信號快速變化時產(chǎn)生的動態(tài)電流。

SERCON816與51單片機接口連接如圖2所示。

3.5 軟件設(shè)計

軟件設(shè)計主要集中在對SERCON816進行初始化。初始化主要包括:RAM報文數(shù)據(jù)初始化、硬件配置初始化和通訊初始化。其流程圖如圖3所示。

硬件配置初始化和通訊初始化主要通過設(shè)置控制寄存器中的相應(yīng)位來完成,推薦的寄存器配置見表4,而RAM的初始化則是按照電路要求的數(shù)據(jù)結(jié)構(gòu)在RAM開辟特定的數(shù)據(jù)空間。

表4 控制寄存器的配置

硬件配置寄存器參數(shù)REGMODE1報文處理寄存器參數(shù)ENTMT1
SYNCWR1COMBLK00
TXDMODE0COMBLK10
ENTXD1_6111111BPHASO1
TMODE0_2111BPHAS12
REG_06H0008HMSTTCHK0
REG_07H0001H  
REG_09H0223H  
REG-08H4100H  
通訊寄存器參數(shù)REG_09H1MCLKST 6
ENTSBAUD0TCNTST 2
SWBAUD1JTSYC1 -1
MSTEN0JTSCYC2 6
REPON1TSCYC0 1000
MCLKDIV15PHAS12 1

4 結(jié)束語

SERCON816是實現(xiàn)SERCOS通訊的核心電路,使SERCOS總線在國際數(shù)控領(lǐng)域得到了很好的應(yīng)用。筆者近一二年通過對SERCOS總線的研究,在實際的開發(fā)過程中深感此芯片的重要性,希望上述心得能為國內(nèi)相關(guān)人士的深入研究提供一個參考。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉