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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于FPGA和nRF905的挖掘機無線監(jiān)控數(shù)據(jù)傳輸系統(tǒng)

          基于FPGA和nRF905的挖掘機無線監(jiān)控數(shù)據(jù)傳輸系統(tǒng)

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

          (2) SOPC片上串口通信程序設(shè)計
          NIOSII的UART核可以設(shè)置所需的通信模式,比如波特率、偶校驗、停止位、數(shù)據(jù)位和其他控制信號。系統(tǒng)選用的串口波特率為9600bps。采用1位起始位,8位數(shù)據(jù)位和1位停止位。串口通信可以使用查詢的方式也可以使用中斷的方式。但是由于查詢的方式較為占用資源,所以本系統(tǒng)采用中斷的方式直接讀取寄存器。UART核能夠輸出一個單獨的中斷請求(IRQ)信號給Avalon總線,從而連接到Nios II處理器,通知將數(shù)據(jù)轉(zhuǎn)發(fā)至SPI接口。串口程序流程圖如圖4所示。

          本文引用地址:http://www.ex-cimer.com/article/190037.htm

          a.JPG



          3 上下位機與間的串口程序設(shè)計
          3.1 MTC方的串口通信設(shè)計
          Codesyrs進行RS232通信編程,要用到以下四個函數(shù):SysComOpen,SysComSetSettings,SysComRead,SvsComWrite。編寫程序方法類似C語言。
          SvsComOpen:打開RS232通訊端口,MTC僅可選COM2,其余皆不可用。
          Buffm Address:當(dāng)讀取到數(shù)據(jù)后拷貝到變量BUFFER_DATA指向的地址內(nèi);
          Bvtes To Read:讀取多少個bytes。
          Buffer Address:發(fā)送數(shù)據(jù)所在地址。
          3.2 PC方的串口通信設(shè)計
          PC的串口通信程序使用VC6.0編寫,使用Microsoft公司ActiveX控件MSComm。采用事件驅(qū)動的辦法,每當(dāng)有數(shù)據(jù)由串口收到時,就會觸發(fā)消息的響應(yīng)函數(shù)OnComm。即可由PC收取串口的數(shù)據(jù)。發(fā)送時可直接調(diào)用該控件發(fā)送。

          4 結(jié)束語
          本系統(tǒng)能夠低成本地設(shè)計出無線傳輸系統(tǒng),較好地完成半雙工的無線數(shù)據(jù)傳輸工作。采用SOPC設(shè)計無線傳輸模塊的控制器能夠在軟硬件設(shè)計上實現(xiàn)模塊化,能夠大量地減輕研發(fā)工作量、提高研發(fā)速度。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: FPGA 905 nRF 挖掘機

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁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); })();