首页 » 技术文章 » 基于Linux激光雕刻系统步进电机驱动程序的设计

基于Linux激光雕刻系统步进电机驱动程序的设计

作者:  时间:2010-10-20 10:47  来源:EDN

  根据上面提到的步进电机的脉冲分配信号,定义它半步模式正转脉冲为:

  unsigned char pulse_table[]=

  {0x11,0x330x220x660x44Oxcc0x880x99}

  利用应用程序传递给stepper ioct1的参数arg来判断转动方向。编写ioctl函数用来接收应用程序对于步进电机的控制。以下是部分驱动程序代码:

  设备卸载与前面提到的设备注册是相反的过程。当从系统中卸载一个模块时,主设备号要得到释放。这一操作可以调用以下函数进行模块清除:

  int unregister_chrdev(unsigned int major,const char*name)

  首先,编译步进电机模块,打开内核中driverscharKonfig文件,添加如下语句:

  Config STEPPER_MODULEtristate"stepper module"depends on ARCH_S3C2440helpstepper driver module

  在终端中运行命令make menuconfig,进入内核配置主菜单,在DeviceDriver→Character device菜单中看到刚才所添加的选项了,之后编译为模块方式。

  其次,打开内核中driverscharMakefile文件,添加如下语句:

  obj-(CONFIG_STEPPER_MODELL)+=stepper_module.o

  最后,回到内核源代码根目录位置,执行make modules,就可生成系统所需要的内核模块文件stepper moduleko了。至此,完成了步进电机模块驱动的编译。之后,便可使用insmodrmmod命令分别对模块进行加载、卸载了。

  4 结论

  在嵌入式Linux系统下,设备驱动程序是内核和硬件之间的接口,本文采用字符设备的思想去实现步进电机驱动程序的开发,介绍了嵌入式Linux驱动程序的原理,归纳了驱动程序开发的一般流程,并结合步进电机的驱动阐述了驱动程序的编写。与原有通过操作PC机来控制步进电机相比,本文是在Linux操作系统支持MMU的情况下完成了对步进电机的控制。

相关推荐

Linux将进军汽车智能系统领域

Linux  汽车智能系统  2013-07-09

Android回归Linux核心怀抱

Google  Linux  Android  2012-11-01

EXT4数据损失bug影响Linux稳定版内核

EXT4  Linux  2012-10-25

Fedora Linux 18 延期至年底

Fedora Linux 18  2012-10-17

Marvell和Tuxera推出业界最快的全功能NAS解决方案

Marvell  Linux  NAS  2012-01-19

ARM-Linux嵌入式系统的BootLoader分析与设计

嵌入式系统  Linux  2011-09-19
在线研讨会
焦点