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