没有合适的资源?快使用搜索试试~ 我知道了~
嵌入式Linux下基于光耦的步进电机控制
4 下载量 122 浏览量
2020-07-25
17:16:49
上传
评论
收藏 98KB PDF 举报
温馨提示
试读
4页
本文重点介绍嵌入式Linux下步进电机驱动程序、光耦驱动程序的编写,简单介绍使用Qt/Embedded编写应用程序控制电机的实现过程。通过验证,电机运行正常稳定,定位精准,可满足仪器高精度检测要求。
资源推荐
资源详情
资源评论
嵌入式嵌入式Linux下基于光耦的步进电机控制下基于光耦的步进电机控制
本文重点介绍嵌入式Linux下步进电机驱动程序、光耦驱动程序的编写,简单介绍使用Qt/Embedded编写应用程
序控制电机的实现过程。通过验证,电机运行正常稳定,定位精准,可满足仪器高精度检测要求。
引言
扫描式荧光定量检测仪由于能够获取更加精准的待测物浓度信息,为临床诊断提供更加准确可靠的评价依据,正成为各国大力
发展的重要POCT检测平台。
通过使用步进电机进行荧光纸条扫描检测,可以做到扫描检测定位精准,不受各种干扰因素影响,扫描检测过程中的误差不会
积累,而且控制性能十分优异,启动停止精度级别可以控制在几毫秒之内。
在扫描式荧光定量检测仪研发过程中,自主设计步进电机驱动电路,控制电机高效平稳运行,并通过光耦对电机进行精确定
位,用于控制电机停止或进行检测。扫描式荧光仪搭载嵌入式Linux系统。嵌入式Linux操作系统是将流行的Linux操作系统进
行裁剪,使之能在嵌入式计算机系统上运行的一种操作系统,嵌入式Linux既继承了Internet上无限的开放源代码资源,又具有
嵌入式操作系统的特性。嵌入式Linux的优点是免版权费,拥有全世界自由软件者开发支持,网络性能优异,代码开放,软件
移植容易[1]。
1 硬件系统设计
扫描式荧光仪以三星S3C2440微处理器为核心。S3C2440处理器是基于ARM920T的16/32位RISC嵌入式处理器。
1.1 S3C2440控制THB6128
硬件系统框图如图1所示。
图1 系统框图
S3C2440芯片控制高细分两相混合式步进电机驱动芯片THB612。S3C2440处理器通过EINT0引脚、EINT7引脚、GPB1引脚
与THB6128芯片相连。步进电机通过皮带与荧光试纸条卡槽相连接,进而带动卡槽运动。卡槽下侧安装有挡板,用于遮挡光
耦光线,在仪器固定位置处安装有两个光耦,当挡板遮挡光耦光线时,光耦触发光电信号,进而控制电机停止或开始一次荧光
检测。
1.2 电机驱动芯片电路
步进电机驱动电路如图2所示。为节约仪器研发成本,缩小仪器空间,所以自主设计步进电机驱动电路。步进电机采用
SST39C1010两相步进电机。在步进电机驱动电路中,使用高细分两相混合式步进电机驱动芯片THB6128。首先从S3C2440
芯片中连接三路控制引脚与THB6128芯片连接,EINT7用于电机使能,EINT0用于电机方向控制,GPB1用于步进电机脉冲输
出。这三路信号先经过TLP521_4光耦进行电气隔离,增加安全性,减小电路干扰。THB6128芯片工作电压为24 V。电路通过
两路降压芯片LM2596和LM2672为电机提供细分设置电压。为增加电机运动可调性,设置可调电阻RV1、RV2,分别用于电
机的细分模式控制、工作电流控制。最后输出两相电机信号OUT1A、OUT2A、OUT1B、OUT2B给步进电机,即可驱动步进
电机平稳高效运行[2]。
图2 步进电机驱动电路
2 驱动程序设计
Linux内核结构体系可分为应用程序、库函数、操作系统(内核)、驱动程序。在Linux操作系统中,驱动程序是操作系统内核与
硬件设备的直接接口,驱动程序屏蔽了硬件的细节,驱动程序是内核的一部分,它具有以下功能:对设备初始化和释放,比如
向内核注册这个程序,这样应用程序传入文件名时,内核才能找到相应的驱动程序。对设备进行管理,包括实时参数设置以及
提供对设备的操作接口。读取应用程序传送给设备文件的数据并回送给应用程序请求的数据。检测处理设备出现的错误。
应用程序通过Linux系统的调用实现与内核通信。由于Linux中将设备当做文件处理,所以对设备进行操作的调用和对文件操作
的操作类似,主要包括open()、read()、write()、ioctl()、close()等接口函数。应用程序发出系统调用命令后,会从用户态转到
内核态,通过内核将open()等的系统调用转换成对物理设备的操作。在Linux中通过分层实现对物理设备的调用,这样使得内
核的结构清晰,提高了模块化的独立性[3]。
2.1 驱动程序结构体
file_operations结构体在头文件linux/fs.h中定义,用来存储驱动内核模块提供的对设备进行各种操作的函数的指针。该结构体
的每个域都对应着驱动内核模块用来处理某个被请求的事务的函数的地址。步进电机驱动程序的file_operations结构体为:
static struct file_operations dev_fops = {
.owner=THIS_MODULE,
.ioctl=pwm_ioctl,
资源评论
weixin_38555304
- 粉丝: 2
- 资源: 994
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功