3.理论上可以屏蔽THRE 中断,但是同样也可以处理中断,处理方法是往FIFO 中填充数据
For(i=0;i<16;i++)
{
QUEUE_DATA_TYPE data;
QueueRead(&data, Buf)
U0THR = data;
}
4.同样线中断也可以屏蔽,当然也可以处理,处理的方法只需要读U0TSR 寄存器Data=U0TSR;
中断服务程序中处理了超时中断,因此设置串口中断触发字节可以设置的大些,这样可以保证数据不会丢失,同时减少系统中断次数,减小系统负荷,提高处理器的处理速度。
三、上位机软件和ARM 串口数据传送软件设计
ARM 系统中开辟了一个串口数据接收队列缓存区,因此就要求上位机串口发送软件能够配合ARM 处理能力对数据发送进行流量控制。
程序中NUM 表示文件的总字符数,在开始传送代码数据的时候作为开始发送文件的一个信号传送给ARM,同时作为文件传送结束判断依据。SUM 表示代码已经传送的字符数。其初始化值为0。
四、结论
串口设置为:波特率 115200,8位数据位,1为停止位,无奇偶校验,无流控制。通过串口调试助手,选择发送文件,发送PC机上CAM 软件CAXA 制造工程师生成的加工文件(大小182K)。通过串口发送给ARM 数控系统处理,系统能够很好的保证ARM 数控系统正确处理G 代码的情况下,高速传送G 代码数据。
测试表明:数控系统的大量G 代码可以很好的完成加工,并且已经应用到了数控系统设计当中,实践检验该方法可以提高数控系统的加工效率。