基于Ethernet現(xiàn)場總線的多協(xié)議網(wǎng)絡(luò)通信系統(tǒng)設(shè)計與實現(xiàn)
圖7系統(tǒng)驅(qū)動程序框圖
SERCOSIII協(xié)議初始化過程包括CP0~CP4五個階段,CP0~CP3為接口初始化的階段。CP4是正常通信階段。其初始化流程圖如圖8所示。CP0的作用是檢測環(huán)路是否閉合和確定環(huán)路的延時。在CPO階段,主機通過發(fā)送同步信息來檢測環(huán)路,當(dāng)檢測環(huán)路為閉合時,系統(tǒng)進入下一通訊階段CPI,在CP0階段的主要函數(shù)為void SendCP0(),它的作用是發(fā)送CP0階段的信息,在CP0階段MDT數(shù)據(jù)區(qū)40字節(jié)。AT數(shù)據(jù)區(qū)512字節(jié)。CPI是識別所有連接在環(huán)路上的伺服裝置,主站向環(huán)路發(fā)送包含待識別的伺服裝置地址的MDT與AT電報,其中MDT與AT發(fā)送時間小于650/us(下同),當(dāng)環(huán)路上所有裝置都作出正確的應(yīng)答,則可以進入下一個通信階段CP2。CPI階段的函數(shù)主要為void SendCPl(),功能為發(fā)送CPl階段的參數(shù),在該階段MDT、AT數(shù)據(jù)區(qū)均1280字節(jié)。CP2是通過非周期數(shù)據(jù)的傳輸,完成主站向各個伺服裝置發(fā)送周期通信所需要的配置參數(shù),實現(xiàn)過程與CPl階段相同,MDT中包含每個從機的地址及配置數(shù)據(jù),配置成功從站回復(fù)主站AT包作為應(yīng)答。在CP2階段的主要函數(shù)為發(fā)送函數(shù)void SendCP2()和參數(shù)配置函數(shù)void InitCP2Idn()。CP3是通過非周期數(shù)據(jù)傳輸設(shè)置各伺服裝置的運行參數(shù),在CP3階段,主站向各從站發(fā)送MDT與AT報文,各伺服裝置都能接收本機報文后回復(fù)AT作為應(yīng)答,在CP3階段主要的函數(shù)為發(fā)送函數(shù)voidSendCP3()和參數(shù)配置函數(shù)InitCP3Idn()。CP4是正常的通訊階段,初始化CP4階段實時數(shù)據(jù)隊列函數(shù)InitCP4RTData()。在CP1~CP4的任何階段中,從站只要超過65ms沒有收到新的MDT0報文,則自動切換到CP0階段。且在CPI~CP4的任何階段中,從站收到主站發(fā)送的切換到CP0階段的MDT報文,則強制切換到CP0階段。
圖8 SERCOSIII初始化流程圖
圖9 任務(wù)調(diào)度
2.4 kernel對象設(shè)計
為實現(xiàn)實時性的要求,處理器面對多任務(wù)時能及時有效地處理各個任務(wù),因此軟件系統(tǒng)采取任務(wù)的優(yōu)化處理與調(diào)度也即核心對象所要做的工作,其任務(wù)調(diào)度機制如圖9所示。
評論