基于FPGA的PROFIBUS-DP集線(xiàn)器設計
4.2 窮舉法判斷波特率
由于DP的數據傳輸波特率為9.6 kbps~12 Mbps中有限的10種。因此,對于可靠性要求較高的DP傳輸,可以采用窮舉法來(lái)檢測傳輸的波特率。窮舉法即逐個(gè)代入法,方法是先假設一個(gè)特定的速率,然后檢驗SDl/SD2/SD3/SD4的值是否為0X10、0XA2、0X68、0XDC。在實(shí)際檢測中,若檢測到SDl、SD2、SD3、SD4中的任意一個(gè),即認為1次檢驗完成。這樣,連續完成5次便認為傳輸速率符合該波特率。如果不能解析出相應的數值,則換下一個(gè)速率,直到可以解析為止,圖2所示是窮舉法波特率檢測流程圖。本文引用地址:http://dyxdggzs.com/article/180727.htm
該方法的優(yōu)勢是可以準確而且可靠地檢測出波特率,從而明確幀的結束位置。但是,缺點(diǎn)是幀結構解析算法比較復雜,同時(shí)要占用FPGA比較多的資源。但無(wú)論如何,該方法在實(shí)際中的應用還是比較多的。
5 實(shí)現過(guò)程
本文以8路DP―HUB為例,其默認狀態(tài)為所有通道均處于接收狀態(tài)。當某一通道有數據傳輸時(shí),可將接收到的數據按位無(wú)差別的發(fā)送到其他7個(gè)通道。而當檢測到幀結束后,則將所有通道轉為接收狀態(tài),以等待新幀的到來(lái)。本模塊的功能:一是波特率檢測,二是數據轉發(fā)。由于DP協(xié)議為主從通訊方式,因此,從應用層就可以保障不會(huì )產(chǎn)生數據碰撞,而DP協(xié)議同時(shí)也有嚴格的響應時(shí)間要求,因而只能以按位轉發(fā)的方式進(jìn)行轉發(fā)。圖3所示是系統狀態(tài)機轉換圖。
6 結束語(yǔ)
通過(guò)本文的方法可以解決PROFIBUS―DP在應用中出現的故障隔離問(wèn)題。因此,將線(xiàn)性拓撲結構變?yōu)樾切位驑?shù)形結構具有一定的實(shí)用價(jià)值。
評論