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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM 數(shù)控系統(tǒng)高速處理串口數(shù)據(jù)的研究

          ARM 數(shù)控系統(tǒng)高速處理串口數(shù)據(jù)的研究

          作者: 時(shí)間:2012-11-26 來源:網(wǎng)絡(luò) 收藏

            3.理論上可以屏蔽THRE 中斷,但是同樣也可以處理中斷,處理方法是往FIFO 中填充數(shù)據(jù)

            For(i=0;i16;i++)

            {

            QUEUE_DATA_TYPE data;

            QueueRead(data, Buf)

            U0THR = data;

            }

            4.同樣線中斷也可以屏蔽,當(dāng)然也可以處理,處理的方法只需要讀U0TSR 寄存器Data=U0TSR;

            中斷服務(wù)程序中處理了超時(shí)中斷,因此設(shè)置串口中斷觸發(fā)字節(jié)可以設(shè)置的大些,這樣可以保證數(shù)據(jù)不會(huì)丟失,同時(shí)減少系統(tǒng)中斷次數(shù),減小系統(tǒng)負(fù)荷,提高處理器的處理速度。


            圖 1 中斷服務(wù)程序流程圖

            三、上位機(jī)軟件和 傳送軟件設(shè)計(jì)

             系統(tǒng)中開辟了一個(gè)接收隊(duì)列緩存區(qū),因此就要求上位機(jī)串口發(fā)送軟件能夠配合 處理能力對(duì)數(shù)據(jù)發(fā)送進(jìn)行流量控制。


            圖2 上位機(jī)軟件和ARM 數(shù)據(jù)傳送流程圖

            程序中NUM 表示文件的總字符數(shù),在開始傳送代碼數(shù)據(jù)的時(shí)候作為開始發(fā)送文件的一個(gè)信號(hào)傳送給ARM,同時(shí)作為文件傳送結(jié)束判斷依據(jù)。SUM 表示代碼已經(jīng)傳送的字符數(shù)。其初始化值為0。

            四、結(jié)論:

            串口設(shè)置為:波特率 115200,8位數(shù)據(jù)位,1為停止位,無奇偶校驗(yàn),無流控制。通過串口調(diào)試助手,選擇發(fā)送文件,發(fā)送PC機(jī)上CAM 軟件CAXA 制造工程師生成的加工文件(大小182K)。通過串口發(fā)送給ARM 處理,系統(tǒng)能夠很好的保證ARM 正確處理G 代碼的情況下,高速傳送G 代碼數(shù)據(jù)。

            測試表明:的大量G 代碼可以很好的完成加工,并且已經(jīng)應(yīng)用到了數(shù)控系統(tǒng)設(shè)計(jì)當(dāng)中,實(shí)踐檢驗(yàn)該方法可以提高數(shù)控系統(tǒng)的加工效率。


          上一頁 1 2 下一頁

          評(píng)論


          相關(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); })();