日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計應(yīng)用 > RS-485的多機(jī)通信方案探究

          RS-485的多機(jī)通信方案探究

          作者: 時間:2012-12-24 來源:網(wǎng)絡(luò) 收藏

          3 軟件協(xié)議
          3.1 協(xié)議格式
          Modbus協(xié)議按功能可以劃分為:地址碼、功能碼、數(shù)據(jù)碼、CRC校驗碼。而在RTU方式下,采用CRC循環(huán)冗余校驗,具體格式如圖3所示。

          本文引用地址:http://yuyingmama.com.cn/article/153643.htm

          c.JPG


          Modbus協(xié)議長度根據(jù)用戶需求自己設(shè)定,地址碼標(biāo)識終端地址,即和網(wǎng)關(guān)節(jié)點的從機(jī)地址。功能碼則是主機(jī)告訴從機(jī)要執(zhí)行什么功能。數(shù)據(jù)碼長度由用戶自己確定,最后根據(jù)前3個功能字段,生成兩個字節(jié)的CRC校驗碼,用來驗證前面的字段是否存在傳輸錯誤。
          3.2 CRC生成算法
          CRC算法分為靜態(tài)和動態(tài)兩種,靜態(tài)的適合片內(nèi)RAM非常有限的MCU,而動態(tài)的適合RAM空間相對比較寬裕的MCU。CRC校驗碼生成步驟如下:
          ①初始化寄存器內(nèi)容為0xffff。
          ②提取第一個字節(jié)數(shù)據(jù)和寄存器內(nèi)容相異或。
          ③檢測最低有效位(LSB),如果LSB為1,寄存器單獨和預(yù)置值異或;如果LSB為0,則不進(jìn)行任何操作,然后將結(jié)果向LSB方向移動,最高有效位以0填充。
          ④重復(fù)第③步8次,直到最后一位(第8位)完成。
          ⑤提取下一個8位字節(jié),重復(fù)步驟③、④的操作,等待所有字段都執(zhí)行完,最終寄存器中的值就是所求的CRC校驗碼。
          上述步驟中,如果預(yù)置值在整個過程中不變,則為靜態(tài)的CRC校驗;在動態(tài)的CRC校驗中,存在一個動態(tài)表,預(yù)置值每次都根據(jù)動態(tài)表變化,所以準(zhǔn)確性更高,而動態(tài)表要開辟一個較大的空間來存儲。所以,根據(jù)MCU的RAM大小決定使用動態(tài)校驗還是靜態(tài)校驗。算法結(jié)束后,寄存器中存人的就是前N個字節(jié)的CRC校驗碼,運用該算法,不需要事先知道協(xié)議的整體長度,最后都同樣生成兩個字節(jié)長度的校驗碼,故可移植性好、通用性強。
          3.3 自動地址識別模式
          自動地址識別模式是經(jīng)典模式,通過設(shè)置Cortex-M054的狀態(tài)寄存器,可使UART工作在此模式下。節(jié)點在接收到地址字節(jié)時,判斷地址字節(jié)數(shù)據(jù)是否與UA_ALT_CSR[ADDR_MATCH]值相匹配,如果匹配,表示網(wǎng)關(guān)節(jié)點要與此終端,故接收下面網(wǎng)關(guān)節(jié)點發(fā)送的所有數(shù)據(jù)字節(jié)。同時,地址字節(jié)和數(shù)據(jù)字節(jié)都會被存入UART的FIFO中,否則忽略所有字節(jié),既不產(chǎn)生中斷,也不存入FIFO,直到匹配。
          串口通信中由起始位、數(shù)據(jù)位、奇偶校驗位、停止位4部分組成。當(dāng)奇偶校驗位為0時,表示傳輸?shù)氖菙?shù)據(jù)字節(jié);當(dāng)它為1時,表示傳輸?shù)氖堑刂纷止?jié)。Cortex—M054的UA_ALT_CSR是一個32位的寄存器,其ADDR_MATCH用8位來表示,故自動地址識別模式最大從機(jī)數(shù)只支持256個節(jié)點。它的優(yōu)點是:由于所有從機(jī)掛載在一根總線上,故網(wǎng)關(guān)節(jié)點發(fā)送數(shù)據(jù)時,只有地址與自己匹配的節(jié)點才會響應(yīng),其他節(jié)點可以正常執(zhí)行自己原先的任務(wù)而不被打擾,系統(tǒng)整體效率高。缺點是從機(jī)只能被主機(jī)輪詢時才能發(fā)送信息,不能主動和主機(jī)通信;一個總線上只能掛載256個節(jié)點。
          3.4 普通模式通信
          普通模式可以配置為接收所有數(shù)據(jù),也可以選擇性地忽略數(shù)據(jù),直到接收到地址字節(jié)。為了更加靈活地利用協(xié)議通信,將其設(shè)置為接收所有數(shù)據(jù),即只要網(wǎng)關(guān)節(jié)點向總線發(fā)送數(shù)據(jù),那么總線上的所有節(jié)點都會收到數(shù)據(jù),再根據(jù)協(xié)議解析內(nèi)容執(zhí)行相應(yīng)的動作,接地流程圖如圖4所示。

          d.JPG


          Cortex—M054內(nèi)部有4 KB的Data Flash給用戶存儲數(shù)據(jù),故將節(jié)點的地址存入Flash中。當(dāng)系統(tǒng)上電復(fù)位后,先從Flash中讀出節(jié)點的地址,存入全局變量address中。當(dāng)收到數(shù)據(jù)包之后,進(jìn)行CRC校驗,如果正確就接收,再根據(jù)協(xié)議解析地址地段,其值與address比較,以此判定此包是否屬于自己。
          自動地址識別模式是由芯片自動篩選地址,而此處需要軟件判斷。因此,地址長度可以由用戶自己設(shè)定。

          數(shù)字通信相關(guān)文章:數(shù)字通信原理


          通信相關(guān)文章:通信原理




          關(guān)鍵詞: 探究 方案 通信 RS-485

          評論


          相關(guān)推薦

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

          關(guān)閉