论文部分内容阅读
【摘 要】本文通过嵌入式体系结构的硬件开发平台S3C2410处理器与嵌入式Linux操作系统设计了光电编码器的嵌入式通讯系统。由于与处理器之间的SPI串行接口减少了总线的物理连接,从而使系统结构简单提高了系统的可靠性,更具有实时性。
【关键词】光电编码器;MCP2510;CAN总线;TJA1050
0.引言
本文采用三星公司提供的S3C2410处理器为CPU的嵌入式系统开发板为平台,在其外部总线上扩展CAN总线接口芯片-MCP2510。详细阐述了光电编码器嵌入式通讯系统在嵌入式ARM920T硬件平台体系下CAN总线的接口设计及嵌入式Linux操作系统下CAN总线的驱动程序设计。
1.光电编码器嵌入式通讯系统设计
光电编码器的信号经过一系列的组件处理后,转换成数字角度信号,通过嵌入式处理器S3C2410控制MCP2510CAN总线控制器通过TJA1050CAN总线收发器将光电编码器的数字角度信号传输到控制台中。这款通讯系统设计中,我的主要研究任务是实现该系统中MCP2510控制器与S3C2410处理器的接口设计及实现MCP2510驱动程序设计。
2.S3C2410扩展CAN总线接口
大多数嵌入式处理器都有SPI总线控制器,所以MCP2510可直接与SPI总线控制器相连,光电编码器的串行通讯系统中,S3C2410处理器下的开发板中MCP2510组成的CAN节点接口硬件电路原理图中,MCP2510使用3.3V电压供电,它可以直接与S3C2410通过SPI总线(在S3C2410的 datasheet中把这个接口叫做SIO,同步串口)连接。相关的资源如下:使用一个扩展的I/O口作为片选信号,低电平有效;使用S3C2410的外部中断6(EXINT6)作为中断引脚,低电平有效;16MHz晶体作为输入时钟,MCP2510内部有振荡电路,用晶体可直接起振;使用TJA1050作为CAN总线收发器。
3.CAN節点的软件设计
光电编码器的串行通信系统中,MCP2510CAN节点的软件设计主要包括两部分:Linux内核向ARM体系平台的移植;CAN总线驱动程序设计:MCP2510的初始化;MCP2510发送和接受数据。
CAN总线驱动程序设计。
系统中CAN总线的数据接收和发送时两个不同的线程。在驱动程序中建立数据发送和数据接收缓冲区。中断处理程序只负责填充缓冲区的数据,然后唤醒等待接受数据的任务。操作系统的中断响应时间决定了CAN总线数据的收发速度。
3.1 MCP2510的初始化
初始化MCP2510相关参数。
在Linux驱动动态加载的时候要调用初始化函数,完成以下任务:首先是软件复位,进入配置模式;设置CAN总线波特率;关闭中断,设置ID过滤器;切换MCP2510到正常状态;清空接受和发送缓冲区;开启接受缓冲区,开启中断。
3.2 MCP2510发送数据
这里的CAN总线发送格式有两种:当发送的数据缓冲区大小等于结构体CanData时,发送整个CAN总线帧的数据;当发送数据缓冲区小于8字节时,作为CAN总线数据发送,驱动程序会自动为此帧数据添加默认ID,这个ID事先通过ioctl设置好。MCP2510发送数据的程序片段如下:
3.3 MCP2510接收数据
CAN总线设备的数据接收过程中,当缓冲区中有数据时,直接读取缓冲区中的数据。对于非阻塞的情况,直接返回-EAGAIN;对于阻塞情况,通过等待队列mcp2510dev.wq等待系统接收到CAN总线数据,程序片段如下:
4.总结
本文设计的光电编码器的嵌入式通讯系统,主要针对该通讯系统的总线控制进行硬件接口设计与CAN总线处理器MCP2510的软件驱动程序设计和Linux内核移植。。实验证明,该款设计减低了系统功耗和成本、系统结构简单、提高了系统的可靠性、并且更具有实时性。这款CAN总线接口设计也可以应用到其它控制系统的CAN总线接口设计当中。
【参考文献】
[1]邹定海,叶声华,王春和.用于在线测量的视觉检测系统[J].仪器仪表学报,1995,16(4):337-340.
ZOUDH,YESHH,WANG CH H.A visual inspection system for on-line measurement[J].Chinese Journal of Scientific Instrument,1995,16(4):337-340.(in Chinese).
[2]周亘.微机在工件不圆度自动测量中的应用[J].基础自动,2001,8(6):50-53.
ZHOUG.The application of computer in automatic measure of the non-round degree of the parts[J].Basic Automation,2001,8(6):50-53.(in Chinese).
[3]郭强生,靳卫国,周庆亚.集成电路粘片机视觉检测技术研究[J].电子工业专用设备,2005,34(7):34-40.
GUOQSH,JINWG,ZHOUQY.Vision inspection technology of IC die bonder[J].Equipment for Electronic Products manufacturing,2005,34(7):34-40.(in Chinese).
[4]WEIZHZH,ZHANG G J,LI X.The application of machine vision in inspecting position-control accuracy of motor control systems[C].Proceedingsofthe Fifth International Conference on Electrical Machines and Systems,Shenyang, P.R. China: ICEMS,2001:1031-1038.
[5]SCAMANME,ECONOMIKOSL.Computer vision for automatic inspection of complex metal patterns on multichip modules(MCM-D)[J].IEEE,1995,18(4):675-684.
【关键词】光电编码器;MCP2510;CAN总线;TJA1050
0.引言
本文采用三星公司提供的S3C2410处理器为CPU的嵌入式系统开发板为平台,在其外部总线上扩展CAN总线接口芯片-MCP2510。详细阐述了光电编码器嵌入式通讯系统在嵌入式ARM920T硬件平台体系下CAN总线的接口设计及嵌入式Linux操作系统下CAN总线的驱动程序设计。
1.光电编码器嵌入式通讯系统设计
光电编码器的信号经过一系列的组件处理后,转换成数字角度信号,通过嵌入式处理器S3C2410控制MCP2510CAN总线控制器通过TJA1050CAN总线收发器将光电编码器的数字角度信号传输到控制台中。这款通讯系统设计中,我的主要研究任务是实现该系统中MCP2510控制器与S3C2410处理器的接口设计及实现MCP2510驱动程序设计。
2.S3C2410扩展CAN总线接口
大多数嵌入式处理器都有SPI总线控制器,所以MCP2510可直接与SPI总线控制器相连,光电编码器的串行通讯系统中,S3C2410处理器下的开发板中MCP2510组成的CAN节点接口硬件电路原理图中,MCP2510使用3.3V电压供电,它可以直接与S3C2410通过SPI总线(在S3C2410的 datasheet中把这个接口叫做SIO,同步串口)连接。相关的资源如下:使用一个扩展的I/O口作为片选信号,低电平有效;使用S3C2410的外部中断6(EXINT6)作为中断引脚,低电平有效;16MHz晶体作为输入时钟,MCP2510内部有振荡电路,用晶体可直接起振;使用TJA1050作为CAN总线收发器。
3.CAN節点的软件设计
光电编码器的串行通信系统中,MCP2510CAN节点的软件设计主要包括两部分:Linux内核向ARM体系平台的移植;CAN总线驱动程序设计:MCP2510的初始化;MCP2510发送和接受数据。
CAN总线驱动程序设计。
系统中CAN总线的数据接收和发送时两个不同的线程。在驱动程序中建立数据发送和数据接收缓冲区。中断处理程序只负责填充缓冲区的数据,然后唤醒等待接受数据的任务。操作系统的中断响应时间决定了CAN总线数据的收发速度。
3.1 MCP2510的初始化
初始化MCP2510相关参数。
在Linux驱动动态加载的时候要调用初始化函数,完成以下任务:首先是软件复位,进入配置模式;设置CAN总线波特率;关闭中断,设置ID过滤器;切换MCP2510到正常状态;清空接受和发送缓冲区;开启接受缓冲区,开启中断。
3.2 MCP2510发送数据
这里的CAN总线发送格式有两种:当发送的数据缓冲区大小等于结构体CanData时,发送整个CAN总线帧的数据;当发送数据缓冲区小于8字节时,作为CAN总线数据发送,驱动程序会自动为此帧数据添加默认ID,这个ID事先通过ioctl设置好。MCP2510发送数据的程序片段如下:
3.3 MCP2510接收数据
CAN总线设备的数据接收过程中,当缓冲区中有数据时,直接读取缓冲区中的数据。对于非阻塞的情况,直接返回-EAGAIN;对于阻塞情况,通过等待队列mcp2510dev.wq等待系统接收到CAN总线数据,程序片段如下:
4.总结
本文设计的光电编码器的嵌入式通讯系统,主要针对该通讯系统的总线控制进行硬件接口设计与CAN总线处理器MCP2510的软件驱动程序设计和Linux内核移植。。实验证明,该款设计减低了系统功耗和成本、系统结构简单、提高了系统的可靠性、并且更具有实时性。这款CAN总线接口设计也可以应用到其它控制系统的CAN总线接口设计当中。
【参考文献】
[1]邹定海,叶声华,王春和.用于在线测量的视觉检测系统[J].仪器仪表学报,1995,16(4):337-340.
ZOUDH,YESHH,WANG CH H.A visual inspection system for on-line measurement[J].Chinese Journal of Scientific Instrument,1995,16(4):337-340.(in Chinese).
[2]周亘.微机在工件不圆度自动测量中的应用[J].基础自动,2001,8(6):50-53.
ZHOUG.The application of computer in automatic measure of the non-round degree of the parts[J].Basic Automation,2001,8(6):50-53.(in Chinese).
[3]郭强生,靳卫国,周庆亚.集成电路粘片机视觉检测技术研究[J].电子工业专用设备,2005,34(7):34-40.
GUOQSH,JINWG,ZHOUQY.Vision inspection technology of IC die bonder[J].Equipment for Electronic Products manufacturing,2005,34(7):34-40.(in Chinese).
[4]WEIZHZH,ZHANG G J,LI X.The application of machine vision in inspecting position-control accuracy of motor control systems[C].Proceedingsofthe Fifth International Conference on Electrical Machines and Systems,Shenyang, P.R. China: ICEMS,2001:1031-1038.
[5]SCAMANME,ECONOMIKOSL.Computer vision for automatic inspection of complex metal patterns on multichip modules(MCM-D)[J].IEEE,1995,18(4):675-684.