新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種基于RS-485接口的通信方法

        一種基于RS-485接口的通信方法

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

          發送電流或電壓數據時,為i(0≦i≦47)開始的8組采集數據,每組數據為4個字節。

          采集通道啟用或禁用設置時,為6個字節,分別表示48路采集通道的狀態,其中1表示啟用,0表示禁用。

          在廣播方式時(地址為256),為電流和電壓的上、下限數據共8個字節。

          *響應幀:通過校驗后,將接受幀中的命令代碼改寫為V,回送給主節點進行二次確認,保證數據傳送無誤。

        3軟件流程和程序清單

          為保證通信暢通和從節點的本地事務順利執行,設計了限時退出的通信方法,既在收到與自己地址不匹配的數據幀時,臨時關閉通信口。這樣既保證了本地事務的執行時間,又可避免從節點常在網上可能引起的雙向干擾。因此在上、下位機的軟件設計中采用二次檢錯、重發和限時退出并重新握手建立連接等通信機制。現場調試中發現,在某些節點工作異常,甚至通信網絡完全癱瘓的情況下其他各節點也能獨立完成數據采集、異常報警和實時數據存儲等本地事務。一旦故障節點排除,既可恢復通信。

          *軟件流程如下:

          *軟件實現和主要程序清單:

          在處理器內留出以COM_REG為首地址的寄存器組,用來存放接受或發送的一幀數據包,并以COM_REG_CUNT寄存器作為一幀數據長度的計數器,利用循環結構很容易編制一幀數據包的收發通用程序了。

          TRANS_485:;收發通用程序

          BCFRC,R485_P;開啟485通信口。

          _DELAYD‘3‘

          MOVLWCOM_REG

          MOVWFFSR

          MOVLWCOM_REG_CUNT

          MOVWFCOUNT

          CALLRS_HEX_IN;一個字節收發子程序。

          BTFSCSYS_FLAGE,CONMM_ERR;通信錯誤狀態標準位。

          RETURN

          MOVWFINDF

          INCFFSR

          DECFSZCOUNT

          GOTO$-6

          RETURN

          *其他主要子程序:

          XIAO_SUB;校驗和子程序

          CLRFTEMP

          MOVFINDF,W

          ADDWFTEMP

          INCFFSR

          DECFSZCOM_REG_CUNT

          GOTO$-4

          RETURN

          ASCH;ASIIC碼轉化程序

          MOVWFTEMP

          MOVLWD‘48‘

          SUBWFTEMP,W

          BTFSSSTATUS,C

          RETLW0H

          MOVLWD‘71‘

          SUBWFTEMP,W

          BTFSCSTATUS,C



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 凤翔县| 剑河县| 科尔| 松阳县| 乐平市| 靖安县| 广东省| 黑山县| 龙口市| 防城港市| 独山县| 三门峡市| 泽普县| 平谷区| 朔州市| 延寿县| 葫芦岛市| 缙云县| 曲阳县| 乡宁县| 江川县| 博爱县| 宁城县| 湄潭县| 诏安县| 甘南县| 电白县| 连云港市| 疏附县| 宣城市| 海晏县| 无为县| 太康县| 葵青区| 天长市| 沅江市| 怀化市| 仁寿县| 乐山市| 平凉市| 连南|