您当前的位置:首页 > 技术风向标

基于嵌入式ARM Linux步进电机驱动程序的设计

时间:2014-12-05  来源:扁平线圈电感厂家  点击:

2.2.1 开发步骤
差模电感(1)模块化驱动程序
写字符设备的驱动程序时,也要遵守模块化编程的一般规范。设备模块在用户空间的初始化和终止:
Init_mnodule()向内核注册模块提供数据结构、局部和全局变量。
Cleanup_module()取消所有init_module在内核中的注册。
(2)设备模块在内核空间的内存申请和释放
kmalloc()函数分配一段内存,这样就实现了Chrdevs向量表中指向设备驱动程序名称的指针。使用kfree释放内存。
(3)字符设备主设备号和次设备号的分配
主设备号标志设备对应的驱动程序,内核利用主设备号将设备与相应的驱动程序对应起来。主设备号的取值范围是O~255,如果不善加规划,则容易造成主设备一体成型电感器号的冲突。
次设备号由驱动程序使用,内核的其他部分并不使用它,仅将它传递给驱动程序。
(4)设备模块在内核空间的注册与注销
字符设备的注册有两种方法,一种是常用注册方法,通过系统函数registel_chrdev()将设备加入到系统设备列表中;另一种是devfs技术,通过系统函数devfs-regisrer()实现设备的注册。注销与注册相反,分别调用unregister_chrdev()函数和devfs_unregister()函数。
(5)设备模块在内核空间提供系统调用的函数设备驱动程序在注册成功以后,用户可以通过访问设备特殊文件(一般情况在/dev目录下)实现系统调用。
GPIO驱动程序只需要一个file operations数据结构体就可以了。
2.2.2 驱动开发
要写实际的驱动,就必需了解相关的硬件资源。比如:用到的寄存器、物理大电流电感地址、中断等。在这里,它用到如下硬件资源,如表2所示。

5d.JPG


要用操作所用到的IO口,就要设置他们所用到的寄存器,我们需要调用一些现成的函数或者宏,比如:
/*每个port有16个引脚,而每个引脚由两位来配置,所以你看到32×N。 32表示一个port的配置寄存器,而N代表是第几个端口。而这里的offset表示的是第几个引脚。*/

5e.JPG

S3C2440开发板中GPIO的许多引脚是和地址线、数据线、串口线等引脚复用的。所以我们必须对GPIO进行重新定义和配置。一般来说,写驱动可以在内核中找相近的驱动程序,以它为模板进行开发,有时也要从零开始,这次作者在内核Linux-2.6.13-qq2440\kernel2.6.13\drivers\char中的qq2440 l工字电感ed.c进行修改。
5f.JPG

最后定义了file_operations和各种API函数,配置了init和exit函数以及module_exit和module_init。
驱动开发完后,要进行测试。把编写好的驱动程序在PC机上进行交叉编译。然后用命令#insmod stepper.ko加载模块到内核中,通过命令#rmmod stepper.ko可以卸载模块。用mknod/dev/stepper 1000 0建立与驱动程序相应的设备节点。编写相应的应用程序。在应用程序中打开步进电机的设备文件,通过调用ioctl(fd,1&dir,O),运行应用程序,查看步进电机的转向。

3 结论
本文在电感器工作原理图S3C2440开发板下实现了步进电机的控制。给出了简单的驱动程序,实验结果表明驱动电感生产厂家运行正常、稳定。但对于实现传能激光雕刻的图形及灰度雕刻,还有待于进一步的完善。

大电流电感

半桥开关电源模态分析电压方程各位大佬,我想问一下,就是半桥开关电源模态分析,也就是拓扑变换器工作过程的各个阶段的电压方程有人知道吗,例如输入输出电压方程,或者电流方程?找了很多网站书籍都没能找到。

肖特基二极管应用应该注意什么?1.应小于肖特基二极管的正向额定电流IF。 2.应用电路的峰值工作电压应小于肖特基二极管的最高反向击穿电压VRRM。 3.应用电路内的肖特基二极管的实际工作温升应小于肖特基二

PD18W 反激电路 EMC整改分享。芯片:ME8165G+ME84PD18W,EMC整改历程,希望能给朋友们有所帮助。EMI分为传导与辐射两部分,对于EMI解决方案,相关理论书籍也很多,作为一位电源产品开发工程师,即使你看了很多EMI处理方面的书籍,但碰到

注塑加工厂


上一篇基于Windows CE.Net操作系统的故障诊断专家系统

下一篇数字电视CA原理与破解方式


  
  温馨提示
网站首页 | 产品展示 | 科技前沿 | 行业资讯
本公司专业研发、设计、生产、销售贴片电感、插件电感、功率电感、大电流电感、扁平线圈电感、一体成型电感。
专业电感生产制造商,品质优异、交期快。
在线客服
热线电话