欢迎来到天天文库
浏览记录
ID:57741064
大小:279.93 KB
页数:4页
时间:2020-03-26
《信号发生模块的Linux驱动程序设计.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、研究与应用化工自动化及仪表,2010,37(11):88—9lContmlandInstnJmentsjnChemiralIndustT了信号发生模块的Linux驱动程序设计陈涛,余学才,朱良销,王世阳,苏柯,梁锡宁(屯子科技大学光电信息学院,成都610054)摘要:设计中的信号发生电路主要是由数模转换芯片DAC7725U发出模拟信号.以控制激光器按照一定规律工作。首先介绍嵌入式驱动程序的作用及模型,通过对信号发生电路原理的介绍,以基于0MAP.L137的工业控制开发板为平台,详细地阐述了基于嵌入式Lin慨操作系统的
2、信号发生模块的驱动程序设计及其测试程序的编写,并实现了设计中所需的±10V方波信号的输出,为以后更深一步地学习驱动开发奠定了基础。关键词:嵌入式;字符设备驱动;信号发生模块;方波中图分类号:TP39文献标识码:A文章编号:1000.3932(20lO)11JD088JD41引言随着电子技术的快速发展,特别是大规模集成电路的产生而出现的微型机,使现代科学研究得到了质的飞跃,而嵌入式微控制器技术的出现则是给现代工业控制领域带来了一次新的技术革命。嵌入式Linux在近几年发展迅速,它没有昂贵的版权费,完全开放源代码,具有可
3、裁减性与可移植性,是开发嵌入式产品的优秀操作系统平台。设备驱动程序是Linux内核的重要组成部分,运行在Linu】【内核底层,在内核源代码中占有很大比例,驱动程序开发逐渐成为嵌入式软件开发中一项重要的工作。应项目设计的需要,我们完成了嵌入式Linux下的信号发生模块的驱动程序设计。2Linux下设备驱动程序驱动程序从字面上可以理解为一类程序,这类程序的目的一般是驱动硬件正常工作,所以通常所说的驱动程序都是针对特定的硬件来编写的。Linux设备驱动程序是为特定的硬件提供给用户程序的一组标准化接口,它隐藏了设备工作的细节
4、一1。设备驱动程序从总体上看分为两部分:驱动程序与操作系统内核的接口、驱动程序与设备的接口。其代码结构大致可以分为如下几个部分:驱动程序的注册与注销、设备的打开与释放、设备的读写操作、设备的控制操作、设备的中断和轮询处理。Linux系统中,用户对设备的操作需要unux系统中虚拟文件系统的支持,用户采用标准的文件操作访问设备,虚拟文件系统将用户的这种文件访问转化成对驱动程序的调用。为了实现这种用户文件操作到设备操作的转换,虚拟文件系统为设备驱动提供了一个标准化的文件操作实现接口,并由file一叩erations结构定义
5、:21。“nux系统的设备分为三种类型,即字符设备、块设备和网络设备。本文所介绍的信号发生模块驱动属于字符型设备驱动程序。在对字符设备发出读、写请求时,实际的硬件L/O一般就紧接着发生了。应用程序可以用与存取文件相同的系统调用来打开、读写及关闭。字符设备驱动程序一般要包含open、close、read、write等几个系统调用。“nux下,设备文件使用主设备号和次设备号来标识。主设备号指明对应哪些设备驱动,次设备号区分被一个设备驱动控制下的某个独立的设备。33。在启动设备驱动程序之前,需要先注册到内核上,Linux下
6、注册设备驱动程序就是在内核上注册file一叩erations结构体的变量。为了在内核上注册或注销nle—operations结构体,一般使用下面两个函数。注册函数定义为:#include撑includeintregister—chrdev(unsignedintmajor,constch盯}姗e,8呻ct6le-operations}fops);类似地,字符设备注销函数定义为:intunregister_ch—ev(uTlsignedintmajor,coIlstcha
7、r奉删)其中,—彻jor是主设备号,n锄e是设备名称,设备是以文件的形式存在的,设备注册时需要使用文件结构stmctfile_operations定义‘41。3信号发生模块驱动程序设计3.1信号发生模块硬件电路信号发生模块的核心器件是12位四路电压输出数模转换器DAc7725u。在计算机的测控系统中,常要用到模拟输出,数模转换器(DAc)就是一收稿日期:2叭O旬8旬6(修改稿)基金项目:国家“863”计划项目(2010AAJ206)第ll期陈涛等.信号发生模块的“nux驱动程序设计·89·种将数字信号转换成模拟电信号
8、的器件。DAc根据输入数据的格式一般分为并行和串行两种,并行的DAc通常有8位、10位、12位和16位等。DAC7725u为并行的12位数模转换器,输出电压范【I2JEMA—1)10:l1JDllIJlOJ9I)8I)71)6D5围为一10一+10V,可输出四路电压。它还支持双缓冲数据输入,使数据输入更加快速。DAc7725U的运行是由主处理器
此文档下载收益归作者所有