ARM数控系统高速处理串口数据的研究._第1页
ARM数控系统高速处理串口数据的研究._第2页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、引言现代数控加工都是先采用 CAD/CAM 软件画出零件的加工草图, 然后根据草图做适当的属性设置,生成G 代码,生成 G 代码之后通过某种方式将 G 代码传送给数控系统进行解释转化成实际的轴运动。但是由于实际生成的 G 代码数据量相对于 ARM 嵌入式数控系统存储资源而言很大,不可能将 G 代码全部传给 ARM 数 控系统存储起来之后再一条一条来解释、加工,因此在数据传输的过程中应该有一个流量控制的问题。虽 然 PC 机 G 代码到ARM 数控系统代码传送方式很多,但 ARM 的串口相对而言,操作方便,因此本设计采用 串口来传送数据。虽然串口方便操作,但是在数据传送过程中也存在一些问题,比如

2、说,PC 机向 ARM 传送9 个数据,却只收到 8 个,如果数据传送的很大,就会丢失的更多,并且如果数据量大,就需要传送的波 特率大,但是波特率大不仅会使数据产生遗漏,而且会使传送过来的G 代码得不到数控系统的及时处理,如果波特率太低,传送的时间肯定会很长,降低了加工效率。岀现这么多问题是什么原因呢, 经过分析,提岀一种方法,能够保证数据正确的情况下提高数据传输速 度和数控系统代码处理能力。以 LPC 系列为主的 32 位 ARM 控制器具有速度快,容量大,性能稳定,在线 调试方便等优点,ARM 作为智能控制器应用于工业控制领域具有广阔的前景。ARM 在工控领域的应用中,与上位机软件进行数据

3、传输和处理是经常需要解决的问题。二、ARM 串口初始化设置及中断服务程序16 字节接收 FIFO 和 16 字节发送 FIFO,寄存器位置符合I6C550 工业标准,接收器 FIFO 触发点可以设置成为 1、4、8、14 字节触发,内置波特率发生器。有四种中断:数据可用中断,字符接受超时中断, 计了一个缓冲队列用来存储接收到的数据。(1)数据缓存队列数据结构设计typedef struct QUEUE_DAIA_TYPEQUEUE_DAIA_TYPE*In:QUEUE_DAIA_TYPE*Eiid:unit 16NData:unit 16MaxData:uintS(* ReadEuiprT)O

4、;umt8(* WriteFvillJO;QUEUE_DATA_TYPEBufll;其中 QUEUE_DATA_TYPE 表传输的数据类型,每当有数据从串口传入ARM 的时候,通过 In 指针使数据入队列,有数据需要处理的时候,利用Out 指针来出队列,至于队列大小,要根据波特率的大小、串口中断频率等因素决定。还需要实现两个函数uint8 QueueWrite(void *Buf, QUEUE_DATA_TYPE Data) ,和uint8QueueReadQUEUE_DATA_TYPE *Ret, void *Buf),主要是用来往数据队列里写数据和从数据队列里取 数据,采用的是先进先出(F

5、IFO)的方式.LPC2292 处理器有两个串口,每个串口有THRE 中断,Rx 线状态中断。串口在进行数据接受的时候,设/*描向放拥输出位置/*插向数拯输入位置*/指向 Buf 的绪束位置*/*队列中数据亍数*/*队列申允许存储的坡据个故*/严读空处理函数/*写满处理函数*/*存储数据的空间判(2)串口初始化程序:uintS UART0Iiiit(uiiit32 bps)uuitl6 Fdiv;PINSELO = (PINSELO & OxfiffiEESD) | 0 x05;/选择管脚为 UARTO*/U0LCR=0 xS0;/*允许访何分频因子寄存器*/Fdiv = (Fpclk

6、 16) bps:- *K 戌牲牟bps *U0DLM = Fdiv/256;UODLL = Fdiv % 256:U0LCR = 0 x03;严 禁止访问分频因子寄存器/U0FCR = 0 x87:/* 且设 fit为 8.1.11*/UOIER = 0 x05; /*允许接收和发送中断*/(3)中断服务程序中断处理函数具体实现1 数据可用中断处理For(i=0;i8;i+)/ 因为串口初始化是 8 字节中断QueueWrite (Buf,UARBR); 2数据超时中断处理:WhileIf (UALSR&0X0000000 仁=1)QueueWrite (Buf,UARBR);Els

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论