ARM 數(shù)控系統(tǒng)高速處理串口數(shù)據(jù)的研究
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ī)軟件和ARM 串口數(shù)據(jù)傳送軟件設(shè)計(jì)
ARM 系統(tǒng)中開辟了一個(gè)串口數(shù)據(jù)接收隊(duì)列緩存區(qū),因此就要求上位機(jī)串口發(fā)送軟件能夠配合ARM 處理能力對(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 數(shù)控系統(tǒng)處理,系統(tǒng)能夠很好的保證ARM 數(shù)控系統(tǒng)正確處理G 代碼的情況下,高速傳送G 代碼數(shù)據(jù)。
測試表明:數(shù)控系統(tǒng)的大量G 代碼可以很好的完成加工,并且已經(jīng)應(yīng)用到了數(shù)控系統(tǒng)設(shè)計(jì)當(dāng)中,實(shí)踐檢驗(yàn)該方法可以提高數(shù)控系統(tǒng)的加工效率。
評(píng)論