




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux设备驱动程序实现功能涉及驱动程序注册与注销、设备打开与释放、设备读写操作、设备控制操作等。当顾客需要通过设备文献与硬件通信时,必要通过调用open、read、write、close、ioctl等系统函数实现,这些函数都由file_operations构造体函数指针成员给出入口地址,file_operations构造体每一种成员名都相应一种系统函数嗍。顾客进程运用系统调用在对设备文献进行诸如read、write操作时,系统调用通过设备文献主设备号找到相应设备驱动程序,然后读取该数据构造相应函数指针,接着把控制权交给该函数。因而,编写设备驱动程序就是编写file_operations数据构造各个函数指针相应各个函数,随着Linux设备驱动程序复杂限度越来越高,fileoperations构造体成员数越来越多,但并不是每种设备驱动程序都需要运用file_operations中所有功能,大多数驱动程序只是运用其中一某些,对于驱动程序中无需提供功能,只需将相应位数值设为NULL。本系统将\o"16位250kSPS6ADC,具备并行输出、6xFIFO和6个通道"ADS8364作为字符型设备设计驱动程序,对于字符设备来说,file_operations构造体中要提供重要入口有:打开设备文献open()、释放设备文献release()、读取A/D转换数据read()、启动A/D转换和选用A/D转换读数通道号write()、A/D转换参数迅速设立ioctl()。
结合ADS8364与S3c24lO接口电路,设计驱动程序时,采用中断方式或者查询方式读取转换数据。采用查询方式在驱动程序中需将通用输入输出引脚GPF4设立成输入模式,在应用程序中重复查询GPF4输入状态,当查询到低电平时表白A/D转换器完毕一次转换,此时可调用驱动程序中read()函数读取转换成果;采用中断方式需在驱动程序中将GPF4设立中断方式,将中断触发方式设立下降沿触发,ADS8364产生EOC信号触发Linux系统外中断EINT4,应用程序只需打开ADS8364所相应设备文献,并采用write()函数启动相应通道开始转换,然后由驱动程序中中断服务函数将数据存储到一种全局变量中,应用程序通过read()函数读取数据,因而,运用中断方式采集数据速度更高、读数控制更简朴。图4为采用中断方式程序流程。
5测试成果
该系统已应用于某油田井口多参数采集装置,前端分别接压力、流量、流速、温度等传感器,用来测量采油井井口各种参数。经测试,该系统与老式基于单片机多参数测量装置相比,具备界面美观,易操作,精度高,可以便运用存储卡或U盘存储重要设立参数、系统运营状态数据和测量数据,便于使用者管理和维修等长处。表1为该系统设计所测量值与实际值对比状况。
从表1看出,该系统测量误差很小,其中所测量各种电压点,相对误差都不大于O.08%,这样精度可满足数据采集应用需求。
6结束语
本文提出基于嵌入式Linux技术便携式数据采集系统,与老式单片机或DSP技术实现数据采集系统相比较,具备功耗低、体积小、顾客操作界面和谐、采集精度高、便于扩展升级等长处。ARM片上资源丰富,Linux操作系统功能强大,该系统通过外接不同传感器可实现各种参数采集,运用系统丰富GPIO接口编程设计各种外部设备控制动作,完毕多通道PWM输出。该系统在石油钻采、工厂自动化等领域具着广泛应用前景。目录前言 21井下压力、流速数据采集系统概述 41.1设计目的 41.2设计描述 42硬件系统设计 62.1信号电路板设计 62.2压力传感器 62.2.1压力传感器定义 62.2.2压力传感器原理 62.3磁电式转速传感器 72.4信号调理电路 82.4.1.压力信号调理电路 82.4.2流速信号调理电路 82.5仪表放大器 82.5.1仪表放大器概念 82.6主机板电路设计 102.7通信电路板设计 123软件设计 143.1压力数据采集子程序 143.2流速数据采集子程序 163.3串行口设立和串行中断服务子程序 173.4IDL方式,延时等待子程序 204调试过程 214.1软件调试 214.2仿真调试 215结论 22附录 23什么是压力传感器以及其分类 23什么是磁电式传感器 23仪表放大器及应用 24参照文献 25油井压力、流速数据采集系统前言当前,国内油井测试仍以手工测试为主,半自动为辅。在测试过程中,由于外界干扰及人为因素导致测试稳定性和精确性较差等问题较为突出。因而,迫切需要研究具备高效、高性能测试办法和测试设备。计算机功能强大,可以协助咱们解决这一难题,但由于计算机过于笨重,携带不以便,对现场工况条件规定较高,抗干扰能力较差,普通无法胜任于条件较为恶劣环境。因而,咱们考虑用单片机去完毕。当前,单片机以其集成度高、运算速度快、体积小、运营可靠、价格低廉等长处,在过程控制、数据采集、机电一体化方面得到了广泛应用。在石油开采过程中,需要确切地理解油井内部原油压力和流速,这对于有效地提高油井产量有十分重要意义。本系统可以随油井钻头进一步井下,实地采集并存储第一手压力和流速数据。返回地面后,把数据送入计算机内,为分析油井状况提供精确原始资料基于上述条件,咱们设计出一种用于井下压力、流量数据采集系统,可以以便地到油田现场采集数据。1井下压力、流速数据采集系统概述1.1设计目的本系统使用89C51作为控制芯片,对来自压力及流速传感器信号进行采集,并把采集到数据存储在数据存储器中。系统可以工作在标定和实际测量两种工作状态下。标定状态是为了修正系统误差而在测量迈进行一组原则压力和流量数据测量。具备可与通用计算机连接串行通信接口。在等待状态时,系统工作在低功耗方式。系统具备工作状态显示系统,可以显示标定、测量、通信、等待等不同工作状态。1.2设计描述为获得特定油井深度下原油压力及流速数据,本系统工作时序必要与钻头进入油井时间和所到达深度相符合。在转头进入油井后拟定期间内,系统处在等待状态;当钻头到达预定深度后来,系统自动启动并开始采集第一次数据;随后进入等待状态,等待下一次数据采集。这样采集进行六次,随后系统便停止工作,处在低功耗状态;系统框图如下复位电路串行通信接口压力传感器流量传感器参照电源外部数据存储器复位电路串行通信接口压力传感器流量传感器参照电源外部数据存储器主控单元(89C51)晶振V-F变换器仪表放大器模仿电源脉冲整形、放大状态批示图1-1系统框图待重新回到地面后,再与计算机连接,把采集到数据输入计算机进行进一步解决。由于系统在工作前可以进行标定,因此解决后数据能比较精确地反映油井内原油压力和流速真实状况。由于系统处在地下高温工作环境中,对于所有芯片温度规定比较苛刻;再者受钻头尺寸大小限制,需要整个系统小型化;系统一次工作时间也许长达八小时,仅靠小型电池供电;因此规定整个系统功耗极低。选用89C51芯片,它丰富I/O功能满足了系统规定。其特有低功耗工作方式用于系统等待状态可以极大地减少功耗。2硬件系统设计2.1信号电路板设计信号电路板由压力传感器和流量传感器构成。2.2压力传感器2.2.1压力传感器定义传感器是可以感受规定被测量并按照一定转换规律转换成可用输出信号器件或装置压力传感器是以压力为被测量,进而转换为电信号装置,它具备广泛用途。2.2.2压力传感器原理电阻应变式传感器是基于这样一种原理:弹性体(弹性元件,敏感梁)在外力作用下产生弹性变形,使粘贴在她表面电阻应变片(转换元件)也随同产生变形,电阻应变片变形后,它阻值将发生变化(增大或减小),再经相应测量电路把这一电阻变化转换为电信号(电压或电流),从而完毕了将外力变换为电信号过程。由此可见,电阻应变片、弹性体和检测电路是电阻应变式称重传感器中不可缺少几种重要某些。图2-1压力传感器2.3磁电式转速传感器磁电式转速传感器,又称变磁阻式转速传感器(如下简称传感器)它和测速发电机都属于感应式转速变换器,都是运用法拉弟电磁感应原理将机械转速量转换成电量能量转换型检测器。传感器基本构造如图2-2所示。它重要由两某些构成。由磁铁1、感应线圈以(下简称线圈)2和用软铁制成极靴(又称极掌)构成固定某些。这里磁铁可以是永久磁铁,也可以是套在软铁上并通以直流电流线圈一一电磁铁。传感齿轮4是可动某些。它是用铁磁材料制成,可随被测轴转动,又称为感应齿轮或脉冲齿轮(如下简称齿轮)。传感器可动某些还可以制成叶轮、槽轮或凸轮等形状,常以制成齿轮形状为多。将线圈套在磁铁或极靴上,极靴对准齿轮轮齿并与其相隔一定工作问隙就构成一种最基本传感器。当使传感器工作时,齿轮由被测轴带动旋转。其齿顶和齿谷交替通过极靴。由于极靴与轮齿间空气间隙交替变化引起磁场中磁路磁阻Rm变化,使通过线圈磁通也交替变化,从而线圈两端就产生电势。齿轮每转过一种齿,电势正好经历一种周期T。若齿轮齿数为Z,转动数度为ns/min,则T=60/Zn(s)(2-10)电势频率为f=Zn/60(Hz)(2-11)可见传感器电势频率与被测转速成正比,故人们可以用电子计数器通过测量信号频率来拟定被测转速。图2-2磁电式转速传感器2.4信号调理电路信号电路板原理图如图3-1所示。它通过插座W与压力传感器相连,通过插座W‘与流速传感器相连。其中包括压力信号调理电路流速信号调理电路、流速信号调理电路和模仿电源控制电路。模仿电源控制电路:为了减少整个系统功耗,模仿电路电源仅在采集信号和流速信号时才开通,而在其她时间是关闭。电源开关由三极管P1(9012)担当其基极由单片机P1.0口线控制2.4.1.压力信号调理电路这里包括稳电源、仪表放大器、负电压发生电路及V—F变换电路。稳电源电路是为压力传感器桥路提供恒压源。由稳压管Z(LM136),电阻R3及运放U6构成。运放U6:B(LM224)作用是增强驱动能力。负电压发生电路重要产生一种—5V电压,为仪表放大器U4(INA118)提供负电源。电路由U7和电容C5、C6构成。仪表放大器U4(INA118)可将压力传感器桥路输出毫伏(mV)级电压放大,以适应V—F变换器U5(AD654)需要。电阻R7是调节仪表放大器放大倍数用。V—F变换电路:由V—F变换U5(AD654)/、输入电阻R10、R11及电容C3构成。输入信号范畴为0~1V,频率输出范畴在0~100kHz。频率输出信号输入单片机T0端,用定期器/计数器T0来记录脉冲数,以与传感器感受压力成比例关系。2.4.2流速信号调理电路由磁电式转速传感器输出慢变信号经电容C1隔直之后,先由运放U6:A放大,然后经运放U6:D、U6:D和有关电阻及电容整形输出到单片机T1端,用定期器/计数器来记录脉冲数,以与传感器数成比例关系。2.5仪表放大器2.5.1仪表放大器概念仪表放大器是一种具备差分输入和相对参照端单端输出闭环增益组件,具1有差分输出和相对参照端单端输出,随着电子技术飞速发展,仪表放大器也得到广泛应用。图2-3信号电路板原理图2.6主机板电路设计其中包括单片机89C51(U1)、扩展外部数据存储器6264(U2)、工作状态批示单元、复位电路及晶振等。为了减少功耗,晶振频率选很低,为了通信波计算,晶振频率选为3.686411MHz。片外数据存储器6264为8KB随机存储器,用于存储采集数据。(图2-4主机板电路原理图2.7通信电路板设计通信接口板电路原理图如图所示。当系统从井下采集完数据回到地面或进行标定实验时,该板用插座W1’与主机板上W1连接。当系统进行标定期,按下按钮S2,接通系统电源,系统将开始运营标定程序;若不压下按钮S2接通电源,系统将开始运营工作程序。在系统采集完标定数据或井下数据与PC机通信时,此时系统处在休眠状态。按下按钮S2唤醒单片机,从而开始数据传送工作。图2-5通信接口板电路原理图3软件设计主程序流程见图可以看出,整个程序分为数据采集和流速标定程序两某些;若为0,则转入流速标定程序。1数据采集程序从数据采集流程看,程序执行可以分为4个阶段:等待数据采集、数据采集、采集结束等待返回及数据回放。在等待数据采集阶段,系统处在低功耗等待状态,重要是等待油井钻头进一步地下,达到预定部位后再开始采集数据。计时采用定期器T0,IDE方式等待中断,时间约为4个小时。时间达到4个小时后,系统进入数据采集阶段。本阶段共采集6组数据,每组数据约需10min。完毕6组数据采集后,系统进入采集结束等待返回阶段,等待钻头返回地面。到达地面后,即可将系统与主机相连接。按下S2键,系统一方面处在等待串行口中断,等待主机将数据回收、存盘。至此就完毕一次数据采集任务。流速标定程序整个标定程序重要是,为了修正系统误差而测定一组原则压力和流速数据,据此计算出实际传感器压力和流速系数,作为最后数据解决根据。整个标定程序又分压力标定程序和流速标定程序两某些,标定过程与数据采集过程相似,只是起始等待时间缩短为20min,每组数据采集间隔为2min。3.1压力数据采集子程序设定定期器T1为定期方式,定期时间为20ms。晶振为3.686411MHz时,定期时间常数为0E804H。同步设定定期器T0为计数方式,所计压力脉冲写入片外RAM中。YALI:MOVTMOD,#15H;T1为定期方式,T0为计数方式MOVTL0,#00H;清计数器MOVTH0,#00HMOVTL1,#04H;时间常数为0E804H(3.686411MHz)MOVTH1,#0E8HORLIP,#08H;定期器T0中断具备最高优先权开始开始初始化初始化置P3.2为输入口关模仿电源等待置P3.2为输入口关模仿电源等待4个小时置组计数器为6开模仿电源关模仿电源延时20min置组数计数器为6延时20min置组数计数器为6开模仿电源开模仿电源P3.2-1=0??P3.2=1?延时200ms测压力640次延时200ms延时200ms延时半个小时测压力640次延时200ms关模仿电源测流速20次关模仿电源初始化串行口容许串行口中断开中断IDE方式等待串行口中断IDE方式等待中断组数-1=0?组数-1=0?组数-1=0?中断否?中断否?延时200ms延时200ms延时200ms延时半个小时测压力640次延时200ms关模仿电源测流速20次关模仿电源初始化串行口容许串行口中断开中断IDE方式等待串行口中断IDE方式等待中断组数-1=0?组数-1=0?组数-1=0?中断否?中断否?延时200ms测速4次测速4次测流速4次延时延时200ms关模仿电源关模仿电源容许外部中断容许外部中断0开中断开中断图3-1主程序流程图SETBTR0;启动计数器SETBTR1;启动定期器SETBET1;开定期中断SETBEA;开CPU中断ORLPCON,#01H;IDL方式等待定期中断CLRTR0;关闭计数器CLRET1;关定期器CLREA;关CPU中断MOVA,TH0;存压力脉冲值,高位在前MOVX@DPTR,AINCDPTRMOVA,TL0MOVX@DPTR,AINCDPTRMOVA,TL0MOVX@DPTR,AINCDPTRRET3.2流速数据采集子程序设定T0为定期器,定期时间为100ms/次,采集时间为6S=100ms/次*60次;设定T1为计数方式,所计流量脉冲写入片外RAM中LIU:MOVTMOD,#51H;T0为定期方式,T1为计数方式MOVTMOD,#51H;重复设定一次MOVTL1,#00HMOVTHI,#00H;清计数器MOVTL0,#14H;定期时间为100msMOVTH0,#88H;时间常数为8814H(3.686411MHz)ORLIP,#02H;定期器T0中断具备最高优先权SETBTR1;启动计数器T1SETBTR0;启动定期器T0MOVR2,#60;延时6s=100ms/次*60次LIUI:SETBET0;开定期中断SETBEA;开CPU中断ORLPCON,#01H;IDL方式等待定期中断DJNZR2,LIUICLRTR1;关闭计数器T1CLRTR0;关闭定期器T0MOVA,TH1;存流量脉冲值,高位在前MOVX@DPTR,AINCDPTRMOVA,TL1MOVX@DPTR,AINCDPTRRET3.3串行口设立和串行中断服务子程序串行口设立SM0(SCON.7)=1,SM1(SCON。6)=1.9位,波特率可变,SM2(SCON.5)=0,REN=1容许串行接受MOVSCON,#0D0HSETBP3.0;置P3.0口为输入状态CLRRI;清串行中断标志CLRET1;禁止定期器T1中断SETBTR1;启动比特率发生器ORLIP,#10H;串行通信中断具备最高优先权SETBES;开串行通信中断SETBEA;开CPU中断CLRP1.1;红灯亮,等待接受PC机信号ORLPCON,#01H;IDL等待串行中断CLRTR1;关波特率发生器CLRES;关串行中断CLREA;关CPU中断;SPINTI:AJIMPSPINT;串行中断服务子程序;SPINT:CLRRICLRRS1;指向1体寄存器SETBRS0CLRIE.7SPLP:MOVR2,#3H;接受来自PC机同步信号MOVA,SBUFSPLP0:CJNEA,#01H,SPRET;接受3个01HACALLSPINDJNZSPINCJNEA,#33H,SPRET;接受1个03HACALLSPINCJZEA,#33H,SPLP2;若PC机发来33H,表达发出;8192个数据区首地址MOVDPTR,#0MOVR7,#20HSPLP16:MOVR6,#0SPLP17:ACALLSPINMOVX@DPTR,AINCDPTRDJNZR6,SPLP17CPLP1.1;每接受256个字节,红灯闪一次DJNZR7,SPLP16AJMPSPRET;SPLP2:CJNEA,#55H,SPTRET;若PC机发来55H;表达将由单片机发送状态MOVR2,#0FFHSPL21:CLRRENCLRP3.0SETBP3.1DJNZR2,SPLP21MOVR2,#2;使发送处在空闲状态MOVA,#0FFHSPLP22:ACALLSPOUTDJNZR2,SPLP22MOVR2,#3;向PC机发送同步信号MOVA,#01;发送3个01HSPLP23:ACALLSPOUTMOVR2,SPLP23MOVA,#03;发送一种03HACALLSPOUTMOVDPTR,#0;指向数;据区首地址MOVR7,#20H;发送8192个数据SPLP30:MOVR6,#0SPLP3:MOVXA,@DPTRACALLSPOUTINCDPTRDJNZR6,SPLP3CPLP1.1;每发送256个字节;红灯闪一次DJNZR7,SPLP30STRET:CLRRS0;恢复0体寄存器CPLRS1RETI;串行中断返回ORG400HSPIN:JNBRI,$;串行接受子程序CLPRIMOVA,SBUFMOVC,PJNCSPINL1JBRB8,SPINRCLRCSJMPSPINRSPINL1:JBRB8,SPINRSPINE:SETBCSPINL2:RETSPOUT:MOVC,P;串行发送子程序CPLCMOVTB8,CMOVSBUF,AJNBTI,$CLRTIMOVR4,#10HSPOUT1:NOPDJNZR4,SPOUT1RET3.4IDL方式,延时等待子程序IDL方式,定期器T0定期中断,每100ms一次,晶振为3.686411MHz时,定期时间常数为8814H(34836)。IDLT0:MOVTMOD,#01H;T0为定期方式MOVTL0,#14H;定期时间常数为;8814HMOVTH0,#88HORLIP,#02H;定期器T0中断;具备最高优先权SETBTR0;启动定期器SETBET0;开定期器T0中断SETBEA;开CPU中断ORLPCON,#01H;IDL方式等待定期中断RETORG13HMOVTL0,#14H;T0中断服务子程序MOVTH0,#88H;定期时间常数为8814HCLRET0CLREARETI4调试过程4.1软件调试上电时对系统中进行检测是单片机程序中一种良好设计,在硬件设计时也应当细细考虑将各个使用到芯片、接口设计成容易使用软件进行测试模式。检测内容涉及:检测RAM中单元检测单片机与RAM之间地址数据总线。总线即没有互相短路,也没有连接到“地”上。4.2仿真调试单片机硬件仿真给单片机开发者带来了极大以便,在硬件仿真之前,必要做好下面工作:程序编完后,对代码仔细逐行检查,检查代码错误,检查代码与否符合编程规范。对各个子程序进行测试。如果代码有修改,再次对代码进行检查5结论当前,随着国内石油消耗量持续增长,石油开采设备也得到了迅速发展,需要一种可以在井下采集压力信号和流速信号采集系统。本文采用SCC“ISO”,磁电式转速传感器以及单片机技术等实现了井下压力、流速数据采集系统设计。方案在理论上是可行,并且合用广泛,成本较低。该系统基本可以实现对压力信号、流量信号采集并进一步解决,从而由单片机分析出井下压力数据和流量数据。为石油开采提供了宝贵数据。本系统还存在某些局限性之处。一是编程复杂,本人还不够纯熟。在另一方面由于没有在实际中进行测试,因此需要进一步研究与实践。附录什么是压力传感器以及其分类压力传感器是工业实践中最为惯用一种传感器,而咱们普通使用压力传感器重要是运用压电效应制造而成,这样传感器也称为压电传感器。压力传感器有好各种,重要有:1)运用晶体压电效应效应压力传感器2)利压力传感器是工业实践中最为惯用一种传感器,而咱们普通使用压力传感器重要是运用压电效应制造而成,这样传感器也称为压电传感器。在当前压力效应也应用在多晶体上,例如当前压力陶瓷,涉及钛酸钡压力陶瓷、PZT、铌酸盐系压力陶瓷、铌镁酸铅压力陶瓷等等。
压力效应是压力传感器重要工作原理,压力传感器不能用于静态测量,由于通过外力作用后电荷,只有在回路具备无限大输入阻抗时才得到保存。实际状况不是这样,因此这决定了压力传感器只可以测量动态应力。什么是磁电式传感器磁电式传感器简称感应式传感器,也称电动式传感器。它把被测物理量变化转变为感应电动势,是一种机-电能量变换型传感器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 超星尔雅学习通《艺术鉴赏(北京大学)》2025章节测试附答案
- 2025年妇幼保健员考试所需的学习工具及试题及答案
- 建立自信2025健康管理师试题及答案
- 二零二五年度企业个人借款担保合同
- 2025年度英语夏令营英语教师派遣与培训合同
- 二零二五岁以上员工劳动权益保障与薪酬福利协议
- 2025年度餐饮管理公司入股合作协议
- 2025年度新能源汽车合资项目融资合作协议
- 二零二五年度汽车经销商返利合同模板
- 二零二五年度水利工程款代付与防洪安全协议
- (二诊)成都市2022级2025届高中毕业班第二次诊断性检测生物试卷(含官方答案)
- 2025年统编版高三政治二轮复习:当代国际政治与经济 练习
- (二诊)成都市2022级2025届高中毕业班第二次诊断性检测语文试卷(含官方答案)
- GB/T 32854.4-2020自动化系统与集成制造系统先进控制与优化软件集成第4部分:信息交互和使用
- GB/T 21010-2017土地利用现状分类
- 农业社会化服务体课件
- 崩塌教学讲解课件
- 大班科学《动物之间怎样联络》课件
- 利用“水量平衡原理”分析地理问题 【思维导图+重难点突破】 高考地理 考点全覆盖式精讲 高效复习备考课件
- 营销-山城别墅全程方案
- 中医诊所医疗机构设置申请书
评论
0/150
提交评论