新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于RS485單片機多機串行通信的電子開關設計

        基于RS485單片機多機串行通信的電子開關設計

        作者: 時間:2012-06-04 來源:網絡 收藏

        2.1.5 主從機之間地址確認

        主從機在進行數據通信之前,首先進行地址確認,其目的就是讓主機知道哪號從機向主機發送數據。主機首先發送n號從機地址編號#0FFH,所有從機接收到主機發送的地址后與各自的地址進行核對,地址不是#OFFH的從機將繼續等待主機的呼叫,核對正確的從機向主機發送本機的應答地址,主機收到從機的應答地址后進一步做出判斷,確認是否是n號從機的地址。地址確認正確之后,主機與n號從機進行數據通信,直到數據通信完畢,主機將呼叫下一號從機。

        2.1.6 避免多從機與主機通信產生數據沖突

        一個主機與多個從機進行串行通信的時候,如果當某一從機有數據時向主機發送,這時可能出現兩個,三個或者更多從機同時產生數據,需要同時向主機發送,這樣就會導致數據通信的沖突問題。該的設計采用主機輪詢從機的方式,從而有效避免了主從機數據通信沖突的問題,主機先呼叫n號從機,地址確認之后,是n號的從機應答并與主機進行通信,其余從機處于等待狀態,主機接收n號從機數據,并判斷該從機是否繼續有數據發送,此時其他從機若有數據只能處于排隊等待中,不會對主機產生干擾,主機接收完畢后將n號從機地址減1,呼叫n-1號從機,如此反復輪詢各個從機。主機輪詢的過程是很快的,從機檢測到被測信號的時候也能得到及時的處理。如圖2所示。

        基于RS485單片機多機串行通信的電子開關設計

        2.2 多RS 485串行通信模塊

        RS 485采用平衡發送和差分接收方式來實現通信:在發送端TXD將串行口的TTL電平信號轉換成差分信號A,B兩路輸出,經傳輸后在接收端將差分信號還原成TTL電平信號。兩條傳輸線通常使用雙絞線,又是差分傳輸,因此有極強的抗共模干擾的能力,接收靈敏度也相當高。如果以10 Kb/s速率傳輸數據時傳輸距離可達12 m,而用100 Kb/s速率傳輸數據時傳輸距離可達1.2 km。如果降低波特率,傳輸距離還可進一步提高。

        實現RS 485串行通信只需給主機和每個從機接各接一片MAX485芯片,其接收器的輸出端RO和驅動器的輸入端DI,只需分別與單片機的RXD和TXD相連即可;和DE端分別為接收和發送的使能端,當為邏輯0時,器件處于接收狀態;當DE為邏輯1時,器件處于發送狀態,因為MAX485工作在半雙工狀態,所以只需用單片機的一個管腳控制這兩個引腳即可;在主機中使用單片機的P3.4引腳控制MAX485的和DE兩端,如圖3所示。

        基于RS485單片機多機串行通信的電子開關設計

        A端和B端分別為接收和發送的差分信號端,當A引腳的電平高于B時,代表發送的數據為1;當A的電平低于B端時,代表發送的數據為0。在與單片機連接時接線非常簡單。只需要一個信號控制MAX485的接收和發送即可。

        可靠性措施如下:

        復位時,主從機都應該處于接收狀態。

        控制端,DE的信號的有效脈寬應該大于發送或接收一幀信號的寬度。

        同時將A和B端之間加匹配電阻,一般可選120 Ω的電阻,吸收總線上的反射信號,保證正常傳輸信號干凈、無毛刺。匹配電阻的取值應與總線的特性阻抗相當。

        接收和發送的使能端和DE的引腳控制在程序中的實現,主機部分程序如下:
          

        基于RS485單片機多機串行通信的電子開關設計

        2.3 液晶顯示模塊

        液晶顯示模塊選用1602液晶,1602液晶顯示器以其微功耗、體積小、顯示內容豐富、超薄輕巧的諸多優點,在袖珍式儀表和低功耗應用系統中得到越來越廣泛的應用。上使用1602液晶顯示,是用來顯示發送信號數據的從機編號,某一從機檢測到信號時將會顯示:

        行程開關相關文章:行程開關原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 康保县| 天气| 会理县| 威海市| 许昌县| 林周县| 平罗县| 托里县| 贵州省| 宜宾市| 林口县| 永清县| 特克斯县| 达尔| 龙门县| 中阳县| 确山县| 阳谷县| 扎囊县| 买车| 喀喇沁旗| 彰化市| 马边| 虎林市| 旺苍县| 南汇区| 区。| 邯郸县| 陈巴尔虎旗| 宝鸡市| 勃利县| 浙江省| 翼城县| 苏州市| 邯郸市| 根河市| 峨山| 亚东县| 郑州市| 宁蒗| 南岸区|