<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > 1553B總線控制器設計與調試

          1553B總線控制器設計與調試

          作者: 時間:2009-06-25 來源:網(wǎng)絡 收藏

          (2)的重試與消息重復:當消息中出現(xiàn)狀態(tài)地址錯,字計數(shù)錯,同步類型錯,校驗錯時會進行標記,所以程序時應當打開錯誤檢測位。同時由于是多余度總線,當某一個總線出現(xiàn)差錯時,系統(tǒng)會根據(jù)設定在另外一個BUS上重試,也可以在本條總線重試,所以在程序時要靈活運用。然而對總線上的廣播消息,由于這類消息沒有狀態(tài)返回,因此總線重試的意義在這里就沒有了。
          (3)避免沖突:總線必須考慮到各個終端的響應及處理,在安排通訊時應該避免對同一終端地址連續(xù)發(fā)送總線消息(針對同一子地址的連續(xù)消息發(fā)送除外),由于大多數(shù)終端的通訊處理是在中斷情況下進行的,如果連續(xù)發(fā)送則有可能使終端丟失消息或者處理沖突,所以總線要給同一終端留下足夠的處理時間。
          下面是筆者編寫的總線程序中的部分代碼:
          ////////////中斷函數(shù)////////////////////
          ViInt32 _stdcall demo_rt_watch_function(ViUInt32 cardnum,ViUInt16 chnum,struct api_int_fifo *sIntFIFO)
          { ViUInt32 tail; // FIFO Tail index
          ViUInt32 messno,wordcount,i=0,j=0; // Message number to be updated
          ViStatus hr;
          API_BC_MBUF api_message;
          ViUInt16 rtaddr,subaddr,transrec;
          API_RT_MBUF_READ mbuf;
          /***********************************************
          * Loop on all entries in the FIFO. Get the tail pointer and extract
          * the FIFO entry it points to. When head == tail FIFO is empty
          ******************************************/
          tail = sIntFIFO->tail_index;
          while (tail != sIntFIFO->head_index )
          {
          // Extract the buffer ID from the FIFO and read the message from the board
          messno = sIntFIFO->fifo[tail].bufferID;
          if (sIntFIFO->fifo[tail].event_type==EVENT_BC_MESSAGE)
          {
          hr=Eph6273_BC_MessageRead(
          cardnum,
          // (i)card number (0 - based)
          chnum,
          // (i)channel number (0 - based)
          messno,
          // (i)index of BC message to read
          api_message);
          // (o)user's buffer to write message into
          tail++;
          // Next entry
          tail = sIntFIFO->mask_index;
          // Wrap the index
          sIntFIFO->tail_index = tail;
          // Save the index
          }
          return API_SUCCESS;
          }
          4 總線系統(tǒng)連接與
          總線采用雙鉸屏蔽線傳輸,當終端離總線很近時(0.3米)可以直接通過隔離變壓器與總線連接,當終端離總線較遠(最遠不應超過6.1米)時要在變壓器與總線之間插入耦合器。這兩種方式比較變壓器耦合具有更好的抗干擾能力,能用在長距離的通訊上,而直接耦合不利于RT故障的隔離,會因為某一個RT故障造成系統(tǒng)網(wǎng)絡的通訊不正常。圖1就是一個簡單的系統(tǒng)連接圖,當然設計者可以根據(jù)系統(tǒng)需求在總線上連接更多的終端,也可以掛總線監(jiān)視器用以監(jiān)視總線信息。


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();