利用 SPC3開發(fā)智能DP 從站源碼講解_第1頁
利用 SPC3開發(fā)智能DP 從站源碼講解_第2頁
利用 SPC3開發(fā)智能DP 從站源碼講解_第3頁
利用 SPC3開發(fā)智能DP 從站源碼講解_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、利用SPC3開發(fā)智能DP從站源碼講解(連載一)1、SPC3介紹SPC3是用于西門子公司提 供的用于智能DP從站開發(fā)的通信芯片.SPC3支持全部 PROFIBUS-DP協(xié)議。SPC3內(nèi)部集成了 1.5KB的雙口 RAM (簡稱RAM)。內(nèi)部鎖存囂/ 寄存器位于前21個地址單元。主要包括方式寄存器、中斷控制寄存器、狀態(tài)寄存器以及輸 入、輸出緩沖區(qū)和診斷緩沖區(qū)等。SPC3的主要技術(shù)指標(biāo):支持 PROFIBUSDP 協(xié)議;最大數(shù)據(jù)傳輸速率12Mbps,可自動檢測并調(diào)整數(shù)據(jù)傳輸速率;與 80c32、80X86、80C165、80C166、80C167 和 HCII、HCl6、HC916 系列芯片 兼容;

2、44引腳的PQFP封裝;可獨立處理PROFIBUSDP通信協(xié)議.集成的看門狗(WDT).外部時鐘接口 24MHz或48MHz;5V直流供電。SPC3 RAM 管理RAM空間定義SPC3 1.5Kbyte RAM分為三個區(qū),分別是系統(tǒng)參數(shù)/寄存器區(qū)、組織參數(shù)區(qū)和緩沖區(qū),如表 1所示。表1 SPC3雙口 RAM 分配圖表地址功能000H015H與SPC3相關(guān)的系統(tǒng)參數(shù)、寄存器016H03FH組織SPC3 DP緩沖區(qū)所需的參數(shù),如Data In緩沖的指針等。040H 5FFH DP 緩沖區(qū) 如:Data In(3) , Data Out(3) , Diagnostics(2) , Parameter

3、 setting data(1),Configuration data(2), Auxilliary buffer(2), SSA-buffer(1)說明:括號里的數(shù)據(jù)表示相應(yīng)緩沖區(qū)的數(shù)量。如Data In(3)表示有3個Data In緩沖區(qū),主 要實現(xiàn)SPC3和用戶CPU對輸入數(shù)據(jù)的并行處理。首先,SPC3 RAM管理是以段為單位,每個段為8個字節(jié),共分為192個段。當(dāng)用戶需要 諸如9個字節(jié)的區(qū)間時,須占用2個段。在后繼程序中計算出來的內(nèi)存空間大小就是以段 為單位的。當(dāng)用戶對RAM的使用超出1.5Kbyte的范圍時,SPC3會通過中斷通知用戶這 一事件發(fā)生。RAM 空間讀/寫管理SPC3 R

4、AM中一些區(qū)域?qū)τ谧x操作和寫操作的定義是不同的,如當(dāng)對02H和03H進行讀 操作時,它的含義就是中斷寄存器;當(dāng)對02H和03H進行寫操作時,它的含義就是中斷確 認寄存器。針對讀/寫操作的不同定義參見圖1和圖2。圖1 SPC3內(nèi)部雙口 RAM讀操作定義圖2 SPC3內(nèi)部雙口 RAM寫操作定義2、SPC3 管理功能介紹2.1 SPC3 中斷管理SPC3提供了幾個與中斷相關(guān)的寄存器,它們分別是:中斷請求寄存器(IRR)、中斷寄存器 (IR)、中斷屏蔽寄存器(IMR)和中斷確認寄存器(IAR)。每個寄存器占2個字節(jié),除了 5個 保留位之外,SPC3共支持包括波特率檢測、新參數(shù)數(shù)據(jù)、診斷緩沖區(qū)改變在內(nèi)的

5、11個中 斷。SPC3只占用一個中斷向量號,中斷服務(wù)程序在響應(yīng)中斷后,需要根據(jù)IRR中的內(nèi)容 來判斷是哪一個事件引發(fā)的中斷。用戶可以在初始化時設(shè)置IMR來對中斷事件進行開/關(guān)設(shè) 置。用戶處理完事件后,需要操作IAR或相應(yīng)的Cmd寄存器來確認相應(yīng)中斷事件。2.2 SPC3狀態(tài)機管理SPC3 可工作于四種狀態(tài):Power_On、WAIT-PRM、WAIT-CFG 和 DATA_EXCH。圖 2 給 出的狀態(tài)機描述了 SPC3工作狀態(tài)間的關(guān)系。狀態(tài)機主要用來保證從設(shè)備在不同條件下行 為的一致性。在Power_On狀態(tài),從站可接收來自二類主站的Set_Slave_Add報文,以改變從站地址,從 站應(yīng)具

6、有非易失性的存儲器來存從站地址。在內(nèi)部起動后,從站進入WAIT-PRM狀態(tài),等 待Set_Prm報文。在此狀態(tài)從站還可以接收Get_Cfg或Slave_Diag報文,但拒絕處理其他 報文,不能進行通訊。如果Set_Prm正確,從站進入WAIT-CFG,等待Check_Cfg報文。 Check_Cfg報文規(guī)定輸入和輸出字節(jié)數(shù)。另外也可以接收Slave_Diag Get_Cfg報文。如果 Check_Cfg正確,從站進入DATA_EXCH狀態(tài),進行數(shù)據(jù)通訊,在此狀態(tài),從站可以接收 來自一類主站的 Writing Outputs Reading Inputs Global_Control、Slave

7、_Diag、Chk_Diag 和 Get_Cfg 報文。圖示PROFIBUS DP從站狀態(tài)機當(dāng)從設(shè)備發(fā)生異常時,如WD超時,則SPC3的狀態(tài)就會改變,以保證系統(tǒng)的安全。開發(fā) 人員在軟件調(diào)試過程中可通過檢查SPC3的狀態(tài)寄存器來確認其工作狀態(tài)。3、PROFIBUS DP協(xié)議介紹3.1 PROFIBUS DP 協(xié)議PROFIBUS DP協(xié)議中規(guī)定了 8種主站-從站功能:讀DP從站診斷信息、傳送輸入與輸出 數(shù)據(jù)、讀DP-從站的輸入與輸出數(shù)據(jù)、發(fā)送參數(shù)數(shù)據(jù)、檢查組態(tài)數(shù)據(jù)、讀組態(tài)數(shù)據(jù)、對DP從 站的控制命令、變更DP從站的站地址。在PROFIBUS DP總線上傳送的幀分為四種類型:可變數(shù)據(jù)字段長度的幀、

8、有數(shù)據(jù)字段的固 定長度的幀、無數(shù)據(jù)字段的固定長度的幀和令牌幀。下面給出了有數(shù)據(jù)字段的固定長度的幀 中發(fā)送/請求幀和響應(yīng)幀的格式。發(fā)送/請求幀的格式:回答幀的格式:其中,SYN同步時間,最小33個線空閑位SD3開始定界符,值:A2HDA目的地址SA源地址FC 幀控制DATA_UNIT數(shù)據(jù)字段,固定長度(L-3)=8個八位位組FCS幀檢查順序ED結(jié)束定界符,值:16HL信息字段長度,固定的八位位組的個數(shù):L=11圖示 有數(shù)據(jù)字段的固定長度的幀對于利用SPC3芯片來開發(fā)DP從設(shè)備的開發(fā)人員來講,沒有必要考慮如何對從總線接 收到的幀進行校驗、解析和處理,也不必考慮如何將響應(yīng)報文發(fā)送到總線上去,這些功能

9、均 由SPC3完成。需要說明的是,用戶程序?qū)f(xié)議報文收發(fā)的控制能力是很有限的。SPC3 管理功能介紹在上面介紹的DP主站-從站服務(wù)中,診斷處理、參數(shù)化、檢查組態(tài)數(shù)據(jù)和從設(shè)備地址設(shè)置四種協(xié)議報文是必須了解的。3.2診斷處理(Dialog)當(dāng)從設(shè)備發(fā)生異常,可以通過診斷報文來向主站傳遞相關(guān)信息,此信息是從設(shè)備主動發(fā) 送的。標(biāo)準(zhǔn)的診斷信息有6個字節(jié),而且用戶可以在標(biāo)準(zhǔn)診斷信息之后加入設(shè)備相關(guān)的診 斷信息,最長可擴展到244字節(jié)。SPC3在收到應(yīng)用程序傳過來的診斷數(shù)據(jù)后,并不是立刻發(fā)給主站。而是在當(dāng)前的服務(wù) 響應(yīng)中置上標(biāo)記,當(dāng)主站收到這樣的標(biāo)記后,會在下個輪循周期內(nèi)讀取從站的診斷信息。3.3 參數(shù)化(

10、Parameter)參數(shù)化報文主要是主站用來設(shè)置從設(shè)備的工作參數(shù)。從站的參數(shù)化在DP系統(tǒng)的建立階 段首先完成,也可在用戶數(shù)據(jù)交換模式中完成。除總線一般參數(shù)數(shù)據(jù)外,DP從站專用的參 數(shù)(如:較高或較低限值)傳送到每個DP從站。這些數(shù)據(jù)從主站參數(shù)集中的用戶那里發(fā)送, 此參數(shù)集緩存在主站中。標(biāo)準(zhǔn)的參數(shù)化信息是7個字節(jié),根據(jù)需要用戶最長可擴展到244個字節(jié)。3.4檢查組態(tài)數(shù)據(jù)(CFG)此功能允許DP主站傳送組態(tài)數(shù)據(jù)到DP從站以便檢查。它們包括輸入輸出區(qū)域的范圍, 也包括關(guān)于數(shù)據(jù)連續(xù)性的信息。DP從站中的用戶程序會對接收到的組態(tài)數(shù)據(jù)進行檢查,將 結(jié)果通知SPC3。組態(tài)數(shù)據(jù)的內(nèi)容和長度跟從站中被組態(tài)的模塊

11、數(shù)和設(shè)備描述(GSD)文件中描述該模塊 的信息內(nèi)容有關(guān),例如,GSD文件中有如下模塊描述信息:Module = 2AI*16bit 0 x43,0 x41,0 x01,0 x10,0 x02 ;EndModule表示這是一個2通道的16位精度的模擬量輸入模塊,是用5個字節(jié)的內(nèi)容描述的,后 三個字節(jié)的含義由開發(fā)商自行定義。3.5變更DP從站的地址(SSA)此功能允許DP主站(2類)變更DP從站的地址。如DP從站沒有存儲能力(EEPROM, FLASH)或如果地址設(shè)置是以一個開關(guān)來實施的,則此功能以RS出錯報文來拒絕。與此 同時,用此功能發(fā)送Ident_Number。如果本地的和被傳送的Ident

12、_Number相對應(yīng),那么站地 址將被改變。附錄以上所講內(nèi)容可參見SPC3用戶手冊和DP協(xié)議規(guī)范。4、DP從設(shè)備軟件設(shè)計方案在方案設(shè)計過程中,我們將軟件結(jié)構(gòu)設(shè)計成主程序模塊/中斷處理模塊的形式。主程序 模塊主要負責(zé)系統(tǒng)初始化和寄存器狀態(tài)查詢,并根據(jù)寄存的狀態(tài)進行相應(yīng)的操作,這一過程 主要處理一些對時間關(guān)鍵性要求相對較低的操作,如IN/OUT數(shù)據(jù)的處理、診斷報文的處 理等;中斷處理模塊主要處理對時間關(guān)鍵性要求較高的操作,如設(shè)備的上/下線處理、參數(shù)化 報文處理、從設(shè)備通道配置報文處理、設(shè)地址報文和設(shè)備波特率變更報文處理等過程。 下圖給了主程序模塊和中斷處理模塊的工作流程圖。圖基于SPC3的DP從設(shè)

13、備程序設(shè)計流程圖在主程序模塊的工作流程中,SPC3初始化是非常關(guān)鍵一個環(huán)節(jié)。SPC3的初始化過程主 要包括以下內(nèi)容:SPC3中斷配置。SPC3最多支持11種類型的中斷,用戶程序可以對SPC3需要響應(yīng)的中斷進行設(shè)置。SPC3 RAM內(nèi)中斷屏蔽寄存器(IMR)的地址為0 x04。用戶定時器配置。在用戶定時器超時后,SPC3會認為用戶程序發(fā)生錯誤,會自動切換其工作狀態(tài),以防止設(shè)備發(fā)生故障時影響整個系統(tǒng)的安全。SPC3 RAM內(nèi)設(shè)置 用戶定時器時間的地址為0 x18,0 x19。設(shè)備地址設(shè)置。SPC3內(nèi)0 x16H為寫入設(shè)備地址處。制造商標(biāo)識設(shè)置。SPC3 RAM內(nèi)設(shè)置制造商標(biāo)識的地址為0 x3a,0

14、 x3b。SPC3內(nèi)各種緩沖區(qū)地址及長度計算。需要注意的是,最后的長度值是以段為單位 的。需要計算的內(nèi)容包括:輸入/輸出緩沖區(qū)的長度和指針;存放診斷處理、參數(shù) 化、檢查組態(tài)數(shù)據(jù)和從設(shè)備地址設(shè)置等多種協(xié)議報文的緩沖區(qū)長度及指針等。SPC3只提供一個中斷,用戶程序在響應(yīng)中斷后根據(jù)中斷請求寄存器(IRR)中的內(nèi)容來 判斷具體發(fā)生何種類型的中斷事件,SPC3 RAM中IRR的地址為0 x00,0 x01。中斷處理模塊主要做以下工作:檢查并處理新的PRM報文;檢查并處理新的CFG報文;檢查并處理新的SSA報文。5、DP從設(shè)備調(diào)試方案智能DP從設(shè)備的調(diào)試是一個復(fù)雜的過程,它要求開發(fā)人員具有PROFIBUS DP系統(tǒng)的應(yīng) 用經(jīng)驗。這里提出了兩套調(diào)試方案。另外,筆者建議開發(fā)人員利用DP協(xié)議分析軟件來來分 析設(shè)備工作中發(fā)生的報文序列,以更深入了解設(shè)備的開發(fā)過程。圖示PROFIBUS DP從設(shè)備調(diào)試系統(tǒng)結(jié)構(gòu)圖5.1簡單設(shè)備調(diào)試方案系統(tǒng)構(gòu)成:PC/SIEMENS CP5611 接口卡/COMPROFIBUS 軟件方案說明:SIEMENS的PACKAGE 4開發(fā)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論