中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種實(shí)現(xiàn)載波監(jiān)聽(tīng)多點(diǎn)接入/沖突檢測(cè)的多主RS485總線

        一種實(shí)現(xiàn)載波監(jiān)聽(tīng)多點(diǎn)接入/沖突檢測(cè)的多主RS485總線

        作者: 時(shí)間:2012-04-18 來(lái)源:網(wǎng)絡(luò) 收藏


        2.3 驅(qū)動(dòng)器無(wú)延遲自動(dòng)切換邏輯

          為了實(shí)現(xiàn)驅(qū)動(dòng)器的無(wú)延遲自動(dòng)切換,TXD信號(hào)反相后接到驅(qū)動(dòng)器使能,而驅(qū)動(dòng)器輸入直接接地,如圖5所示。這樣處理使驅(qū)動(dòng)器只在數(shù)據(jù)為0時(shí)打開(kāi),把數(shù)據(jù)0發(fā)出去。而當(dāng)數(shù)據(jù)為1或者無(wú)數(shù)據(jù)時(shí)立刻關(guān)閉,縮短了切換時(shí)間。但是這樣做,使得數(shù)據(jù)1無(wú)法被正常發(fā)送出去。為使串行數(shù)據(jù)能被正確地接收,有兩個(gè)辦法產(chǎn)生數(shù)據(jù)中的1。第一個(gè)辦法,使用總線判斷電路中的正向接收器的輸出端?穴OUT+?雪作為RXD信號(hào),該信號(hào)在總線空閑、開(kāi)路和短路時(shí)輸出邏輯1,并且與RXD信號(hào)同相。第二個(gè)辦法,使用類似MAX3080自帶故障保護(hù)(fail-safe)功能的芯片作為接收器。MAX3080將接收器的觸發(fā)門限電壓從-200mv~+200mv調(diào)整為-200mv~-50mv,也能夠在總線空閑、開(kāi)路和短路時(shí)輸出邏輯1。如果總線上的每一個(gè)節(jié)點(diǎn)都使用這些方法,那么所有節(jié)點(diǎn)都可以實(shí)現(xiàn)驅(qū)動(dòng)器無(wú)延遲自動(dòng)切換而不必?fù)?dān)心數(shù)據(jù)中的1不能被正確接收。

        2.4 軟件的實(shí)現(xiàn)

          發(fā)送數(shù)據(jù)方面,只需將標(biāo)準(zhǔn)串口函數(shù)putc()封裝成一個(gè)函數(shù)RS485PutString()發(fā)送數(shù)據(jù)即可。在RS485PutString()函數(shù)中,能夠方便地實(shí)現(xiàn)各種總線狀態(tài)判斷策略,甚至是CSMA/CD協(xié)議,實(shí)現(xiàn),邊發(fā)送邊監(jiān)聽(tīng)。也可以在此函數(shù)的基礎(chǔ)上進(jìn)行諸如定義不同數(shù)據(jù)包的實(shí)時(shí)性級(jí)別、定義總線超時(shí)判斷等高級(jí)編程。

          該函數(shù)的主要流程如圖6。

          判斷總線狀態(tài)就是簡(jiǎn)單地讀取總線狀態(tài)判斷電路的輸出,高為空閑,低為總線已被占用。為了減少誤判,通常在判斷總線狀態(tài)為空閑后還要繼續(xù)判斷一段時(shí)間,具體的總線狀態(tài)判斷策略要根據(jù)通信協(xié)議進(jìn)行調(diào)整。

          如果判斷總線空閑,即可進(jìn)行數(shù)據(jù)發(fā)送。在發(fā)送過(guò)程中可以方便地繼續(xù)讀取總線狀態(tài)以進(jìn)行邊發(fā)送邊監(jiān)聽(tīng)的。一旦發(fā)現(xiàn)沖突發(fā)生,發(fā)送方放棄本次數(shù)據(jù)傳輸而轉(zhuǎn)入強(qiáng)化沖突流程(繼續(xù)發(fā)送幾個(gè)0x00以使各方都確認(rèn)發(fā)生了總線沖突),然后再進(jìn)入總線偵聽(tīng)流程。以往的處理機(jī)制是通過(guò)對(duì)自己所發(fā)送的數(shù)據(jù)進(jìn)行監(jiān)聽(tīng)接收,然后比較接收到的數(shù)據(jù)與發(fā)送的數(shù)據(jù)是否相符,判斷是否發(fā)生總線沖突,在軟件實(shí)現(xiàn)上比較復(fù)雜。而本系統(tǒng)的非常簡(jiǎn)單:發(fā)送完一個(gè)字節(jié)就讀取一次總線狀態(tài)指示管腳的狀態(tài),如果發(fā)現(xiàn)總線被占用,就是發(fā)生了總線沖突。

          接收程序方面,因?yàn)榻邮掌鞒i_(kāi),所以仍然可以使用串行接收器的中斷服務(wù)程序,將接收到的數(shù)據(jù)放入緩沖區(qū),然后由命令解釋程序處理接收到的命令。本質(zhì)上與RS232的串口通信程序完全一樣,只是如果接收器是常開(kāi)的話,在自己發(fā)送數(shù)據(jù)時(shí),要記住將串行接收器中斷關(guān)閉,發(fā)送完畢后再打開(kāi),以避免運(yùn)行不必要的中斷服務(wù)程序。

          另外,還可以結(jié)合驅(qū)動(dòng)器和總線狀態(tài)判斷邏輯對(duì)總線進(jìn)行開(kāi)路和短路的檢測(cè)/報(bào)警。具體說(shuō)就是某一個(gè)節(jié)點(diǎn)使能總線驅(qū)動(dòng)器,然后判斷總線狀態(tài),如果仍然顯示總線空閑,說(shuō)明總線短路或者總線到總線狀態(tài)判斷邏輯之間開(kāi)路了。


        2.5 存在的不足之處

          該方法中的總線狀態(tài)判斷邏輯對(duì)邏輯0狀態(tài)的要求比較高,需要B線電平比A線高約1.1V才能得到低電平。如果采用總線判斷電路中的正向接收器的輸出端(OUT+)作為RXD信號(hào),就會(huì)因?yàn)閷?duì)邏輯0的要求而不滿足RS485的-200mV門限電平標(biāo)準(zhǔn)。若采用另一個(gè)具有故障保護(hù)功能的接收器并聯(lián)的話,固然能滿足-200mV門限電平標(biāo)準(zhǔn),但整個(gè)節(jié)點(diǎn)的輸入阻抗將降低到6kΩ。

          以上不足之處都在于無(wú)法完全滿足標(biāo)準(zhǔn)標(biāo)準(zhǔn),但在特定條件下是不會(huì)影響工作效果的。例如阻抗雖然降低了,但是當(dāng)節(jié)點(diǎn)數(shù)不超過(guò)16時(shí),是能夠很好地工作的。

          實(shí)驗(yàn)表明,這種實(shí)現(xiàn)了CSMA/CD的多主式工作穩(wěn)定,可靠性高,大大提高了實(shí)時(shí)性。特別適合于強(qiáng)調(diào)實(shí)時(shí)性的分布式控制系統(tǒng),能夠方便地實(shí)現(xiàn)點(diǎn)與點(diǎn)之間的控制信息實(shí)時(shí)交換。


        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉