專利名稱:一種rs485總線防沖突控制器的制作方法
技術(shù)領(lǐng)域:
本實(shí)用新型涉及數(shù)據(jù)通信技術(shù),尤其涉及一種RS485總線防沖突控制器。
背景技術(shù):
RS485總線通信技術(shù)是比較成熟應(yīng)用的技術(shù),它主要使用RS485收發(fā)器通過平衡發(fā)送和差分接收的方式在RS485總線上進(jìn)行數(shù)據(jù)傳輸。以工作模式來說,一般的RS485總線工作方式主要是主從模式,如圖1所示,整個(gè)通信總線系統(tǒng)由一個(gè)主節(jié)點(diǎn)(主機(jī)12)和若干個(gè)從節(jié)點(diǎn)(從機(jī)14)組成,由主節(jié)點(diǎn)不斷地輪流查詢從節(jié)點(diǎn)是否有通信需求,如果有則將RS485總線控制權(quán)交給某一從節(jié)點(diǎn),從節(jié)點(diǎn)發(fā)送完畢后立刻交還總線控制權(quán)。另外還有一種“輪主輪從”的工作方式,即讓總線控制權(quán)在各個(gè)節(jié)點(diǎn)間以類似令牌環(huán)的方式傳遞,得到控制權(quán)的節(jié)點(diǎn)成為主節(jié)點(diǎn),其它節(jié)點(diǎn)成為從節(jié)點(diǎn),一個(gè)節(jié)點(diǎn)在發(fā)送完數(shù)據(jù)的同時(shí),將總線控制權(quán)交給相鄰的節(jié)點(diǎn),而這個(gè)節(jié)點(diǎn)在處理完本節(jié)點(diǎn)的通信需求后再把控制權(quán)向下傳遞。RS485總線以雙絞線為物理介質(zhì),工作在半雙工的通信狀態(tài)下,即同一時(shí)刻,總線上只能有一個(gè)節(jié)點(diǎn)成為主節(jié)點(diǎn)而處于發(fā)送狀態(tài),其他所有節(jié)點(diǎn)必須處于接收狀態(tài),如果同一時(shí)刻有兩個(gè)以上的節(jié)點(diǎn)處于發(fā)送狀態(tài),將導(dǎo)致所有發(fā)送方的數(shù)據(jù)發(fā)送失敗,即所謂總線沖突。上面提到的兩種總線工作方式在很多對(duì)實(shí)時(shí)性、可靠性要求高的工業(yè)控制場(chǎng)合有較大的局限性,主要原因是主從式總線的從節(jié)點(diǎn)無(wú)發(fā)起通信的權(quán)利,相互之間的通信需要通過主節(jié)點(diǎn)中轉(zhuǎn),總線的使用權(quán)完全由主單元分配,各子單元不能擅自占領(lǐng)總線。如果系統(tǒng)的單元較多,主單元循環(huán)采集一周的時(shí)間就很長(zhǎng),子單元信息變化時(shí)不能及時(shí)發(fā)送給主單元,導(dǎo)致系統(tǒng)對(duì)突變事件的反應(yīng)處理速度慢。而“輪主輪從”方式總線上的各個(gè)節(jié)點(diǎn)由于等待總線控制權(quán)的時(shí)間未知,實(shí)時(shí)性也無(wú)法保證。同時(shí),如果主從式的主節(jié)點(diǎn)或者是“輪主輪從”式的獲取令牌的節(jié)點(diǎn)出現(xiàn)故障,整個(gè)總線的工作將癱瘓,風(fēng)險(xiǎn)過于集中。現(xiàn)在針對(duì)RS485總線沖突的問題,已經(jīng)有一些方法來進(jìn)行處理,其中有軟件上的查詢判斷總線的占有,但是系統(tǒng)的資源會(huì)有很大的浪費(fèi),同時(shí),如果一個(gè)總線上并接很多個(gè)RS485節(jié)點(diǎn)時(shí),考慮到軟件計(jì)算上的時(shí)間不夠精確,往往也會(huì)造成通信失??;另外還有一些方法是通過增加一些外圍電路來檢測(cè)總線,但是改變了總線的電氣性能,無(wú)法完全滿足 RS485總線標(biāo)準(zhǔn),影響了總線的運(yùn)行質(zhì)量。
發(fā)明內(nèi)容本實(shí)用新型的目的在于給出一種RS485總線防沖突控制器,使每一個(gè)節(jié)點(diǎn)都具有能夠發(fā)起通信的權(quán)利,同時(shí)又盡量減少發(fā)聲沖突的機(jī)會(huì),提高系統(tǒng)的數(shù)據(jù)吞吐量。本實(shí)用新型技術(shù)方案是本實(shí)用新型提供了一種RS485總線防沖突控制器,其包括[0011]串并轉(zhuǎn)換器,用于接收處理器發(fā)送的目標(biāo)地址并進(jìn)行串并轉(zhuǎn)換獲得偵測(cè)結(jié)構(gòu);目標(biāo)地址訪問序列寄存器,用于存儲(chǔ)所述偵測(cè)結(jié)構(gòu);回讀信息序寄存器,用于存儲(chǔ)RS485總線防沖突控制器從總線上讀回的數(shù)據(jù);雙線開關(guān),連接于處理器與RS485收發(fā)器之間,控制其間的數(shù)據(jù)傳輸;判別比較器,用于比較目標(biāo)地址訪問序列寄存器與回讀信息序寄存器的內(nèi)容,并根據(jù)比較結(jié)果控制上述雙線開關(guān)的通斷。所述的RS485總線防沖突控制器,其中,所述偵測(cè)結(jié)構(gòu)包括偵測(cè)總線字段、呼叫對(duì)話/獲取總線字段、總線等待字段以及通信字段。所述的RS485總線防沖突控制器,其中,所述總線等待字段的時(shí)長(zhǎng)等于終端地址與總線等待片段之積。所述的RS485總線防沖突控制器,其中,所述總線等待片段為4Bit。本實(shí)用新型提供了一種RS485總線防沖突控制器,通過其對(duì)總線的通信情況進(jìn)行實(shí)時(shí)檢測(cè),在傳輸數(shù)據(jù)受到干擾時(shí)自動(dòng)等待,總線一旦空閑就開始數(shù)據(jù)傳輸,可以有效提高數(shù)據(jù)吞吐量并避免總線出現(xiàn)沖突。
圖1是現(xiàn)有的主從模式RS485總線結(jié)構(gòu)示意圖;圖2是本實(shí)用新型RS485總線防沖突控制器較佳實(shí)施方式的原理圖;圖3是本實(shí)用新型較佳實(shí)施方式中偵測(cè)結(jié)構(gòu)的示意圖。
具體實(shí)施方式
為了使本實(shí)用新型的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,
以下結(jié)合附圖及實(shí)施例,對(duì)本實(shí)用新型進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本實(shí)用新型,并不用于限定本實(shí)用新型。參考圖2,本實(shí)用新型的原理是在現(xiàn)有的處理器22與RS485收發(fā)器M的基礎(chǔ)上添加一個(gè)RS485總線防沖突控制器30,上述RS485總線防沖突控制器30可以由CPLD來構(gòu)成,通過RS485總線防沖突控制器30來管理處理器22的數(shù)據(jù)發(fā)送和接收,從而避免總線沖突。所述RS485總線防沖突控制器30包括串并轉(zhuǎn)換器31、目標(biāo)地址訪問序列寄存器 33、回讀信息序寄存器35、判別比較器37和雙線開關(guān)39,所述串并轉(zhuǎn)換器31用于接收處理器22發(fā)送的要訪問目標(biāo)的地址,進(jìn)行串并轉(zhuǎn)換后產(chǎn)生一個(gè)訪問的偵測(cè)結(jié)構(gòu);所述目標(biāo)地址訪問序列寄存器33用于存儲(chǔ)所述偵測(cè)結(jié)構(gòu);所述回讀信息序寄存器35用于存儲(chǔ)RS485總線防沖突控制器30從總線上讀回的數(shù)據(jù);所述判別比較器37用于比較目標(biāo)地址訪問序列寄存器33與回讀信息序寄存器35的內(nèi)容,并根據(jù)比較結(jié)果控制雙線開關(guān)39 ;所述雙線開關(guān)用于控制處理器22與RS485收發(fā)器M之間的數(shù)據(jù)傳輸。其中R0腳是RS485收發(fā)器M的接收數(shù)據(jù)輸出腳;RE腳是RS485收發(fā)器M的接收數(shù)據(jù)的使能腳,在本實(shí)施例中,RS485總線防沖突控制器30直接把RS485收發(fā)器M的RE 腳控制為低,使其時(shí)刻處在接收數(shù)據(jù)的狀態(tài),就算本身在發(fā)送數(shù)據(jù)時(shí),同時(shí)也接收,從而實(shí)現(xiàn)了數(shù)據(jù)的回讀校驗(yàn);DE腳是RS485收發(fā)器M的發(fā)送數(shù)據(jù)使能腳;DI腳是RS485收發(fā)器M要發(fā)送的數(shù)據(jù)的輸入腳。上述RS485總線防沖突控制器30的工作流程如下首先,把處理器22要訪問的目標(biāo)地址,通過串并轉(zhuǎn)換器31進(jìn)行串并轉(zhuǎn)換后生產(chǎn)一個(gè)訪問的偵測(cè)結(jié)構(gòu),放到目標(biāo)地址訪問序列寄存器33中;然后,由RS485總線防沖突控制器30讀取一定長(zhǎng)度的總線數(shù)據(jù)(可以為 8位),判別這段數(shù)據(jù)是否全為1,如果不是,則判定總線上有數(shù)據(jù)在傳輸,繼續(xù)偵測(cè),直到發(fā)現(xiàn)讀取的數(shù)據(jù)全部為1時(shí),即意味著總線空閑;然后,由RS485總線防沖突控制器30呼叫目標(biāo)地址,將呼叫目標(biāo)地址的數(shù)據(jù)發(fā)送到總線上,同時(shí),把總線上的數(shù)據(jù)讀回來,放在回讀信息序列寄存器35中;最后,由判別比較器37比較目標(biāo)地址訪問序列寄存器33與回讀信息序列寄存器35的內(nèi)容,如果相同就意味著總線沒有出現(xiàn)爭(zhēng)搶的情況,總線可用,此時(shí)判別比較器37控制開通雙線開關(guān)37,處理器22就可以通過RS485收發(fā)器M在RS485總線上進(jìn)行通信;如果目標(biāo)地址訪問序列寄存器33與回讀信息序列寄存器35的內(nèi)容不相同,說明發(fā)出去的數(shù)據(jù)在總線上受到了干擾,也就是說,有別的終端也在嘗試往總線上發(fā)數(shù)據(jù),在這種情況下,則由RS485總線防沖突控制器30控制進(jìn)行總線等待,等待的時(shí)間跟本終端的地址有關(guān),相關(guān)的計(jì)算如下先約定一個(gè)最少的總線等待片段(這里的最少的總線等待片段,不能太少,太少解決不了不同終端之間獲取總線的競(jìng)爭(zhēng),太長(zhǎng)則會(huì)導(dǎo)致等待的時(shí)間過長(zhǎng),總線效率不高,優(yōu)選4個(gè)Bit位的長(zhǎng)度),具體每個(gè)終端等待的時(shí)間=終端地址*最少的總線等待片段,因?yàn)榈却臅r(shí)間跟本身的終端地址有關(guān)系,而每個(gè)終端的地址是不相同的,所有, 在總線的爭(zhēng)奪上,把不同的終端需求從時(shí)間上分開了,在經(jīng)過等待后,再由RS485總線防沖突控制器30偵測(cè)總線現(xiàn)在是否有空。參考圖3,上述RS485總線防沖突控制器30的偵測(cè)結(jié)構(gòu)包括偵測(cè)總線字段、呼叫對(duì)話/獲取總線字段、總線等待字段以及通信字段,其中,偵測(cè)字段代表對(duì)總線數(shù)據(jù)進(jìn)行讀取,如果總線空閑,在一定的時(shí)間內(nèi),總線上是沒有數(shù)據(jù)的變化的,可以認(rèn)為總線可以使用;呼叫對(duì)話,獲取總線字段代表在這段時(shí)間內(nèi),把包含目標(biāo)地址的訪問序列按正常RS485 通信的格式發(fā)送到總線上,同時(shí)讀回總線上的數(shù)據(jù);總線等待字段代表總線被占用,需要等待;通信字段代表正常進(jìn)行數(shù)據(jù)傳輸。在正常情況下,如果RS485總線是空閑的,總線只要提出申請(qǐng)就能獲取到,此時(shí)總線等待字段為空;在RS485總線繁忙時(shí),則需要在總線等待字段到來時(shí)進(jìn)行等待。應(yīng)當(dāng)理解的是,以上所述僅為本實(shí)用新型的較佳實(shí)施方式而已,并不用以限制本實(shí)用新型的保護(hù)范圍,對(duì)本領(lǐng)域普通技術(shù)人員來說,根據(jù)上述說明所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本實(shí)用新型的保護(hù)范圍之內(nèi)。
權(quán)利要求1. 一種RS485總線防沖突控制器,其特征在于,包括串并轉(zhuǎn)換器,用于接收處理器發(fā)送的目標(biāo)地址并進(jìn)行串并轉(zhuǎn)換獲得偵測(cè)結(jié)構(gòu);目標(biāo)地址訪問序列寄存器,用于存儲(chǔ)所述偵測(cè)結(jié)構(gòu);回讀信息序寄存器,用于存儲(chǔ)RS485總線防沖突控制器從總線上讀回的數(shù)據(jù); 雙線開關(guān),連接于處理器與RS485收發(fā)器之間,控制其間的數(shù)據(jù)傳輸; 判別比較器,用于比較目標(biāo)地址訪問序列寄存器與回讀信息序寄存器的內(nèi)容,并根據(jù)比較結(jié)果控制上述雙線開關(guān)的通斷。
專利摘要本實(shí)用新型提供了一種RS485總線防沖突控制器,包括串并轉(zhuǎn)換器,用于接收處理器發(fā)送的目標(biāo)地址并進(jìn)行串并轉(zhuǎn)換獲得偵測(cè)結(jié)構(gòu);目標(biāo)地址訪問序列寄存器,用于存儲(chǔ)所述偵測(cè)結(jié)構(gòu);回讀信息序寄存器,用于存儲(chǔ)RS485總線防沖突控制器從總線上讀回的數(shù)據(jù);雙線開關(guān),連接于處理器與RS485收發(fā)器之間,控制其間的數(shù)據(jù)傳輸;判別比較器,用于比較目標(biāo)地址訪問序列寄存器與回讀信息序寄存器的內(nèi)容,并根據(jù)比較結(jié)果控制上述雙線開關(guān)的通斷。上述控制器通過對(duì)總線的通信情況進(jìn)行實(shí)時(shí)檢測(cè),在傳輸數(shù)據(jù)受到干擾時(shí)自動(dòng)等待,總線一旦空閑就開始數(shù)據(jù)傳輸,可以有效提高數(shù)據(jù)吞吐量并避免總線出現(xiàn)沖突。
文檔編號(hào)G06F13/40GK202041950SQ20102069213
公開日2011年11月16日 申請(qǐng)日期2010年12月30日 優(yōu)先權(quán)日2010年12月30日
發(fā)明者黃劍堅(jiān) 申請(qǐng)人:Tcl集團(tuán)股份有限公司