网站大量收购独家精品文档,联系QQ:2885784924

嵌入式linux下基于SPI总线的数模转换设备驱动程序设计.docVIP

嵌入式linux下基于SPI总线的数模转换设备驱动程序设计.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式linux下基于SPI总线的数模转换设备驱动程序设计与实现 王艇艇 (上海理工大学 光电信息与计算机工程学院 上海 200091) 摘要:设备驱动程序是将系统外围设备和应用软件连接起来的中间环节。在嵌入式应用系统中采用SPI总线芯片越来越多,ARM芯片的标准SPI接口不够用。本文采用通用I/O引脚,在ARM9平台上linux系统中实现了SPI总线设备驱动,经实验证明符合设计要求。 关键词:ARM;linux;设备驱动;SPI总线。 Abstract: Key Words: Linux操作系统在嵌入式系统领域应用广泛,不仅因为其开源的优势,还在于良好的性能和可移植性。上海理工大学研究生创新基金项目“人声识别智能婴儿摇篮”中使用了linux操作系统。该项目中摇篮的摆动采用直流电机,改变直流电机电枢电压值,就可以改变转速。项目中采用MAX539芯片来实现这一功能。因此需要编写设备驱动程序,以使linux系统能够操作MAX539芯片。 本项目中,ARM9与MAX539连接并不用标准的SPI总线接口,而是使用通用输入输出端口与MAX539的SPI总线接口连接,主要基于以下两点考虑: 1)该项目中需要用到其他SPI总线芯片,如高速AD等,每次操作在1uS左右,这些高速SPI芯片占用了标准SPI总线接口;MAX539在本系统中属于慢速设备,用GPIO模拟SPI时序,每次操作至少需要2.5uS,可以满足电机调速的要求;这样高低速的配置,提高了系统性能。 2)采用GPIO连接SPI总线,驱动的时序、信号都用软件来模拟,这样提高了驱动程序在不同硬件平台上的可移植性。 1 硬件设计 1.1 ARM微处理器简介 该项目采用S3C2440A芯片作为主控芯片,其有2个SPI标准接口,包括2条数据线及2条控制线:主机输出从机输人(SPIMOSI);主机输人从机输出(SPIMISO);串行时钟(SPICLK);从机选择(NSS)。可实现串行数据传输,每个SPI接口各有2个移位寄存器分别负责接收和发送数据。发送数据和接收数据是同步进行的,传送的频率可由相应的控制寄存器设定。数据传输时,“主机”控制数据流,其他SPI芯片作为“从机”,主机控制数据的输人和输出。 S3C2440A有130个多用途输入输出端口GPIO(General Purpose Input/Output Ports),可以方便用户进行系统的拓展以及模拟各种总线的时序。每个端口都可以用软件来设置和配置以满足不同系统的设计需求。 1.2 DA芯片MAX539简介 MAX539是MAXIM推出的低功耗、电压输出型、12位数模转换(DACs)、单+5V电源芯片;电压失调、增益和线性度已经在内部经过修整;MAX539有+2倍的输出增益,输出范围为0~+5V;上电后重置;采用外部参考电压,参考电压值可取2~2.5V;可以连接成链式结构。 MAX539的结构框图如图1所示: 图1 MAX539结构框图 MAX539使用三线串行接口,兼容SPI总线,采用两个字节的数据就可以对DAC进行设置。16位中的最高4位是链式连接时的从芯片地址,其余12位是电压数据。MAX539输出电压与输入数字量值之间的转换关系为: VOUT=+2(VREFIN)(IN)/(4096)。(公式1) 图2 MAX539时序图 对MAX539的操作,首先要将引脚拉低,选中该芯片;然后SCLK时钟振荡16次,用来读入DIN的信号;每一位DIN要在SCLK的上升沿前准备好,并保持到SCLK上升沿后;当16位数据传送给MAX539后,升高后,VOUT端才输出模拟电压信号。因为该项目中并未使用链式连接,所以DOUT未使用。 根据标准SPI总线协议,MAX539采用的是CPOL = CPHA = 0的相序配置形式,即串行同步时钟的空闲状态为低电平在串行同步时钟的第一个跳变沿(上升或下降)数据被采样 图3 ARM9和MAX539连接图 从ARM9中选三个通用输入输出端口(GPIO:General Purpose Input/Output Ports),分别来表示MAX539的SPI总线中的片选、时钟和信号输入线。ARM9中的GPF0对应片选线,GPE12对应信号输入线DIN,GPE13对应时钟线SCLK。ARM9和MAX539 的电源线和地线各自联通,从而保证两者的数字信号电压范围一致。参考电压端,采用两个10KΩ电阻串联分压,得到2.5V左右电压作为参考电压。由于只采用一块MAX539芯片,所以没有使用链式连接,DOUT引脚接地。 2 驱动程序 2.1 设备驱动程序简介 设备驱动程序在整个系统中位于底层硬件和上层应用软件之间,是操作系统内核中用来连接硬件和应用软件的桥梁。对于硬件,驱动程序直接操作硬件的I/O端口和寄存器。对于应用程序

文档评论(0)

企业资源 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档