基于16位DSP的PROFIBUS-DP從站系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
核心器件的選擇
SPC3協(xié)議芯片
SPC3是專(zhuān)用于從站開(kāi)發(fā)的智能通訊芯片,它支持PROFIBUS-DP協(xié)議。圖1為SPC3結(jié)構(gòu)圖,其主要性能如下:44腳、PQFP封裝;在PROFIBUS上自動(dòng)檢測(cè)波特率,自9. 6kbps至12Mbps;RS-485傳輸;完整的PROFIBUS-DP協(xié)議;內(nèi)部集成監(jiān)視定時(shí)器;5V DC電源。
圖1 SPC3結(jié)構(gòu)圖
SPC3內(nèi)部集成了1. 5KB的雙口RAM,其地址空間從00H到5FFH。內(nèi)部以8字節(jié)為一單元,分為192個(gè)段。根據(jù)功能可分為3個(gè)區(qū)域:
00H到015H為方式設(shè)定和狀態(tài)指示寄存器區(qū)。016H到03FH為參數(shù)配置區(qū),各種BUF的指針與長(zhǎng)度在此區(qū)域設(shè)置。040H到5FFH為用戶(hù)區(qū),用來(lái)接收來(lái)自IO應(yīng)用和主站的數(shù)據(jù)。這些BUF的配置,包括BUF的長(zhǎng)度和初始地址必須在SPC3的“離線(xiàn)”狀態(tài)下完成;在操作過(guò)程中除輸入輸出BUF的長(zhǎng)度可變外,其他的配置不能更改。此外,SPC3內(nèi)部還集成了一個(gè)看門(mén)狗定時(shí)器,可工作于3種不同的狀態(tài):波特率監(jiān)測(cè)、波特率控制和DP控制。
TMS320F206
TMS320F206是16位定點(diǎn)DSP,運(yùn)算速率為40MIPS。它采用靜態(tài)CMOS集成電路工藝制造,其結(jié)構(gòu)以‘C5x為基礎(chǔ),采用改進(jìn)的哈佛結(jié)構(gòu),有一條程序總線(xiàn)和3條數(shù)據(jù)總線(xiàn),流水線(xiàn)操作,有并行32bit算術(shù)邏輯單元、16×16bit并行的硬件乘法器、片內(nèi)存貯器、片內(nèi)外設(shè)和高度專(zhuān)業(yè)化的指令集。片內(nèi)資源還有:內(nèi)部時(shí)鐘發(fā)生器,可外接時(shí)鐘源進(jìn)行×1、×2、×4和/2來(lái)產(chǎn)生CPU時(shí)鐘;片內(nèi)還有RAM4.5KB, FLASH32KB,能夠適合于許多工程應(yīng)用, 32KB FLASH可作為程序存貯器,給系統(tǒng)的設(shè)計(jì)和程序的調(diào)試帶來(lái)很大的方便;3個(gè)外部中斷INT1、INT2、INT;1個(gè)同步串口和一個(gè)異步串口;1個(gè)軟件可編程定時(shí)器;4個(gè)獨(dú)立可編程的I/O引腳,1個(gè)輸出引腳XF和1個(gè)輸入引腳B IO;JTAG掃描仿真接口,用來(lái)實(shí)現(xiàn)在線(xiàn)仿真測(cè)試。
硬件系統(tǒng)構(gòu)成
圖2 為PROFIBUS-DP 從站的硬件框圖,系統(tǒng)由MAX125、TMS320F206、SPC3、EPM7128SQC100、DS1286、HK1225、外部RAM以及地址撥碼開(kāi)關(guān)組成一個(gè)PROFIBUS-DP從站,用于鐵路信號(hào)電源故障的診斷。三相交流電壓和電流信號(hào)經(jīng)MAX125同步采樣,DSP通過(guò)一定的算法進(jìn)行數(shù)據(jù)處理和數(shù)據(jù)運(yùn)算,再綜合相關(guān)開(kāi)關(guān)量信號(hào)情況作出診斷,對(duì)電力設(shè)備進(jìn)行控制。同時(shí)將根據(jù)PROFIBUS主站的要求把必要的數(shù)據(jù)與故障信息通過(guò)協(xié)議芯片SPC3傳送至主站。主站也通過(guò)SPC3對(duì)從站進(jìn)行設(shè)置和電力設(shè)備的遠(yuǎn)程控制。
圖2 硬件電路圖
設(shè)計(jì)中8位的SPC3使用TMS320F206的低8位數(shù)據(jù)線(xiàn),并將其映射到全局?jǐn)?shù)據(jù)空間;同時(shí)也將DS1286、HK1225數(shù)字輸入和數(shù)字輸出映射到全局?jǐn)?shù)據(jù)空間。這樣,DSP對(duì)它們的操作,就象操作外部RAM那樣簡(jiǎn)便。程序設(shè)計(jì)中16位的DSP對(duì)SPC3、DS1286、HK1225進(jìn)行寫(xiě)操作時(shí),先寫(xiě)低8位再寫(xiě)高8位。
系統(tǒng)軟件實(shí)現(xiàn)
PROFIBUS-DP 從站(即故障診斷的終端單元) 主要完成數(shù)據(jù)采集、數(shù)據(jù)處理、故障判斷以及將必要的電能參數(shù)與故障信息根據(jù)主站的要求傳送到主站,同時(shí)主站能夠?qū)恼具M(jìn)行賦值。
SPC3通信軟件的設(shè)計(jì)
設(shè)計(jì)中將電能參數(shù)看作是從站的輸入數(shù)據(jù),主站對(duì)從站的賦值看作是輸出數(shù)據(jù),而把故障信息當(dāng)作外部診斷處理。對(duì)于主站賦值的處理采用SPC3中斷的方式,以便能達(dá)到實(shí)時(shí)性。除此之外,參數(shù)化報(bào)文、配置報(bào)文的處理也在SPC3中斷程序中完成。SPC3中斷程序流程圖如圖3。
3 SPC3中斷程序流程圖
由于SPC3集成了完整的DP協(xié)議,標(biāo)準(zhǔn)的診斷信息由SPC3自動(dòng)形成并傳輸,因此用戶(hù)將與DP主站通信的信息存放到指定的緩沖器中即可;當(dāng)用戶(hù)需接收主站傳來(lái)的信息時(shí),也只需訪(fǎng)問(wèn)指定的緩沖區(qū)。
TMS320F206的智能軟件的設(shè)計(jì)
數(shù)據(jù)采集、數(shù)據(jù)處理、故障判斷、以及必要信息的記錄在TMS320F206程序中完成。為了連續(xù)的對(duì)系統(tǒng)監(jiān)測(cè),數(shù)據(jù)采集采用中斷的方法,不間斷的采集數(shù)據(jù)。對(duì)于故障信息則采用軟中斷的方法,將故障報(bào)警信息盡快的送到SPC3的診斷緩沖區(qū),以便能及時(shí)的等待主站的輪詢(xún)。圖4給出了系統(tǒng)的主程序流程圖。
圖4 主程序流程圖
SPC3的軟件操作
由于TMS320F206的速度快,在與SPC3進(jìn)行數(shù)據(jù)交換時(shí)需速度一致。我們通過(guò)軟件設(shè)置F206的等待時(shí)間使兩者的速度相匹配。設(shè)計(jì)中對(duì)SPC3采用結(jié)構(gòu)體類(lèi)型的寄存器的方法,對(duì)其進(jìn)行操作。首先定義一個(gè)與1. 5KB的雙口RAM相對(duì)應(yīng)的結(jié)構(gòu)體類(lèi)型數(shù)據(jù)“SPC3”,然后F206寄存器的頭文件中定義一個(gè)“SPC3 ”類(lèi)型的寄存器“spc3”,這樣就可方便靈活地對(duì)其進(jìn)行操作了。軟件使用C語(yǔ)言編寫(xiě), SPC3的初始化部分程序如下:
頭文件中定義“spc3”寄存器
.
#define spc3 ( * ( ( volatile SPC3) 0xE800) )
/*SPC3影射到全局?jǐn)?shù)據(jù)空間的0xE800* /
.
初始化操作:
GREG = GLOBAL 16K;/ *映射到16KB全局?jǐn)?shù)據(jù)空間* / .
spc3. mode_ reg0_ L = 0x00d3;
spc3. mode _reg0 _H = 0x0003; /*設(shè)置SPC3的工作方式* /
spc3. is reg. mask[ 0 ] = 0x001e;
spc3. is reg. mask[ 1 ] = 0x002d;/ *設(shè)置SPC3的中斷源,設(shè)置輸出數(shù)據(jù)處理為SPC3硬件中 斷* /
spc3. r len diag buf[ 0 ] = 16;
spc3. r len diag buf[ 1 ] = 16;
spc3. r len p rm buf = 10;
spc3. r len cfg buf = 2;
spc3. r len read cfg buf = 2;
spc3. r len din buf = 244;
spc3. r len dout buf = 244; /*初始化各緩沖器的長(zhǎng)度/*
UserInputBufferPtr =DPS2 GET D IN BUF PTR ( ) ; / *獲取第一個(gè)輸入緩沖器的地址* /
UserDiagBufferPtr =DPS2 GET D IAG BUF PTR ( ) ; /* 獲取第一個(gè)診斷緩沖器的地址*/
UserDiagFlag = TRUE;
......
本文采用運(yùn)算速度快的16 位DSP設(shè)計(jì)了一個(gè)PROF IBUS2DP智能從站,這使得現(xiàn)場(chǎng)總線(xiàn)的應(yīng)用更加廣泛。