文档库 最新最全的文档下载
当前位置:文档库 › NDIS中间层驱动实现网页跳转

NDIS中间层驱动实现网页跳转

NDIS中间层驱动实现网页跳转
NDIS中间层驱动实现网页跳转

在编写windows网络驱动之前,需要具备一定的计算机网络知识。包括OSI/ISO 七

层体系结构,常见的网络协议TCP/TP, UDP,ICMP,HTTP,FTP,SMTP/POP3等。因为整个windows网络驱动就是建立在网络协议栈基础之上的。

Windows网络驱动有两个重要的规范:TDI,NDIS。

TDI(Transport Driver Interface)传输层接口,顾名思义,这个技术是建立在传输层之上的。传输层位于七层协议的第三次,常见的TCP/UDP协议就属于传输层。我们知道,传输层提供的服务包括:连接管理、差错检测、按端口号寻址。事实上,TDI驱动主要作用就是过滤端口。

TDI是即将被淘汰的技术,微软宣布,vista之后的操作系统将不再提供TDI支持,取代它的是Windows Filter Platform和Winsock Kernel,有兴趣的朋友可以搜集一下相关的资料。这里注重分析一下NDIS驱动框架。

NDIS(Network Driver Interface Specification)网络驱动接口标准,相比TDI,它位于七层协议的更低层次。能够捕获更详细的信息。可以做更多的事。它是微软联合3com公司发布的一个标准。NDIS网络驱动有3种表现形式:协议驱动、中间层驱动、小端口驱动。它们的作用范围大致按照传输层、网络层、数据链路层依次往下排。小端口驱动miniport,一般是网卡厂商提供,协议层驱动一般用来捕获数据包,大名鼎鼎的winpcap就是基于协议层驱动编写,而本文主要关心中间层驱动。

WDK文档的例子中,提供了一个中间层驱动,我的电脑中的路径是C:\WinDDK\6001.18002\src\network\ndis\passthru。

Passthru位于协议驱动和小端口驱动之间,比较灵活。类似于它们两个的综合体。它能捕获所有流入流出本机的数据,非常强悍。常见的个人防火墙基本都是用中间层驱动写的。它可以做的事情包括,过滤IP和端口号,禁止某类协议(ping/arp),加密解密数据流等,基本上你能想到的事它都可以干。在我做的一个项目中,用到了中间层驱动,来实现一个网址跳转的功能。下面免费贡献出我的经验。整个跳转是在passthru的基础上稍加改动实现的。所以,一定要多看看passthru。

要想实现网址跳转,比如ie中你输入https://www.wendangku.net/doc/2810017376.html,,结果页面打开的是腾讯的首页,你就必须对从地址栏键入https://www.wendangku.net/doc/2810017376.html,开始,到最终网页呈现出来的过程非常了解。在了解了整个过程后,我们就可以伪装,篡改,让客户端和服务器都被蒙蔽。

现在的java语言,php语言等,都能实现页面跳转,而且极其简单,基本上就是一条代码的事儿。这个做法是在应用层实现的,不靠谱,很容易被360视作非法操作,被强制干掉。因为应用层ring3的东西没有内存保护,谁都可以去探测。

回到正题上,从请求到回送页面,这个过程包括两个阶段:发送和接收。发送是这样走的:http-》tcp-》ip-》ether。接收正好相反。分别对应驱动中MpSend和PtReceive/PtReceivePacket。接收比较复杂,有可能调用PtReceive,也有可能调用PtReceivePacket,这个最后再做讨论,现在先把整个流程捋清楚。

好,既然流程就是这样,我们要做的东西就很明确了。一句话,篡改发送时候的目的ip。将121.194.0.239改为59.64.114.98.(现在大多数网站的ip不一定只有一个,这里把这个问题留到最后再说)。篡改的对象是发送包中目的ip为121.194.0.239的包。于是,又来一个问题,怎么解析包?MpSend的时候,数据的参数是PNDIS_PACKET。这个东西叫做包描述符。描述符描述符,它不是真正的数据。要想获得连续的数据,就要从它描述的内存中一块块拼接起来。事实上的确是这样,NDIS_PACKET实际上包含了一个链式数据缓冲区,利用head,tail,next等联系起来。好,获取连续包的代码如下:

VOID PMgrGetPktData(IN PNDIS_PACKET Packet, OUT PUCHAR pDst, IN ULONG length)

{

PNDIS_BUFFER pNdisBuffer;

UINT BytesA vailable;

UINT BytesRemaining = length;

PUCHAR pSrc;

pNdisBuffer = NDIS_PACKET_FIRST_NDIS_BUFFER(Packet);

while (BytesRemaining && (pNdisBuffer != NULL))

{

NdisQueryBuffer(pNdisBuffer, (PVOID*)&pSrc, &BytesA vailable);

if (BytesA vailable)

{

ULONG BytesToCopy = MIN(BytesA vailable, BytesRemaining);

NdisMoveMemory (pDst, pSrc, BytesToCopy);

BytesRemaining -= BytesToCopy;

pDst += BytesToCopy;

}

NdisGetNextBuffer(pNdisBuffer, &pNdisBuffer);

}

}

其中pDst是预先用NdisAllocateMemoryWithTag分配好的一块内存。

这样,我们就把包装进pDst中了。下面开始进行包的解析。以太网包格式多种多样,不过绝大多数都是ETHER V2格式。这里以我要处理的http请求包为例说明,格式大致如下:

源mac地址+目的mac地址+ip头+tcp头+http数据。

其中ip头格式:

typedef struct IPHeader

{

UCHAR versionLen;//version和首部长度决定是否有option字段

UCHAR serviceType;

USHORT ipPackLen;//

USHORT flag;

USHORT pieceFlag;

UCHAR ttl;

UCHAR protocol;

USHORT headerCheckSum;

UCHAR srcIpAddr[4];

UCHAR dstIpAddr[4];

}IPHeader;

看到没有,只要修改ip头的最后四个字节dstIpAddr,就可以实现以假乱真。在实际项目中,我修改了这个地址后,用wireshark抓包工具发现,服务器根本没有响应,也就是说,

这个包在客户端就被丢弃了。原因是什么?原因是没有进行校验和。Ip,tcp,udp三个协议,哪怕修改一点点,它都要重新校验,将结果写回到headerCheckSum。修改校验和字段后,果然,腾讯有反应了,给回送包了。这里再贴出校验算法,c语言版的:

USHORT CheckSum(USHORT *buff, int size)//计算校验和

{

USHORT* buffer = buff;

unsigned long cksum=0;

while(size >1)

{

cksum += * buffer++;

size -= sizeof(USHORT);

}

if(size)

{

cksum += *(UCHAR*)buffer;

}

cksum = (cksum >> 16) + (cksum & 0xffff);

cksum += (cksum >>16);

return (USHORT)(~cksum);

}

到这里,tcp连接开始了第一次握手,并且腾讯有回应了。可是,客户端自己有问题了。它收到腾讯的回应包后,不再进行第二次握手,而是选择了关闭连接。这个问题困扰了我很久。后来在一个英文资料中发现一些蛛丝马迹,大致意思是说,tcp在发生数据前,回记住目的ip,等它收到回应包后,将包的源ip和它保存的目的ip进行对比,如果发现不一致,它会认为是不安全的,直接丢弃了。Tcp的事儿真多。没办法,这个东西是协议规定的,绕不过去,只能继续伪造了。怎么伪造,继续篡改回送包的源ip。Tcp是传输层的东西,PtReceive 是链路层的东西,还好,在到达传输层之前,我们就收到了这个包,来得及。将源ip修改后,重新发出去。这个时候,tcp终于消停了,三次握手可以顺利进行,连接正式建立。

到这个时候,用wireshark抓包可以发现,客户端已经发出http的get请求包了。可是,腾讯这个时候又出问题了,它没有回应任何包,单方面把连接关掉了(FIN,ACK)!什么情况!

没办法,只能硬着头皮上了。仔细查看这个http包,发现host字段是https://www.wendangku.net/doc/2810017376.html,。而正确的请求腾讯时该字段是https://www.wendangku.net/doc/2810017376.html,。难怪它关掉连接,原来它认为客户端在捉弄它,你ip请求是对的,http却不对,我就不给你回应。好了,继续伪装吧。客户端在发送时,如果有http包头,就篡改包头里面host字段。篡改之后,一定要重新校验,将校验和写回tcp的checkSum字段。Tcp头格式:

Tcp头格式:

typedef struct TCPHeader

{

USHORT srcPort;

USHORT dstPort;

UINT seqNum;

UINT ackNum;

UCHAR rsvLen;//首部长度

UCHAR rsvFlag;//Flag

USHORT windowSize;

USHORT checkSum;

USHORT urgentPointer;

}TCPHeader;

好了,见证奇迹的时刻到了,我在IE中轻轻键入https://www.wendangku.net/doc/2810017376.html,,刷的一下,腾讯的页面出来了!可是没等我高兴太久,又出问题了。我把ie关了,重开,重新键入,发现打不开。不该啊!第一次可以打开,第二次打不开,是不是cookie啥的问题?果然,wireshark 验证了我的猜测,虽然host里面sina改成qq了,可cookie却是sina的东西。怎么办,果断丢掉cookie!重新校验。我们知道,cookie的用处主要有加速页面载入速度,保存用户名密码等,去掉后影响也就只有这些。

网址重定向大致就这些东西了。在实际测试中发现,有很多问题,包括不是顶级域名怎么办?有些网址还要求必须有cookie,有些网站本身也有自跳转功能,http协议也有1.1,1.0之分。由于我的项目是在遇到某些网址时,弹出一个固定页面,所有情况都是可预知的,不存在前面的问题。

看来,要想在驱动级完美实现网页跳转,要走的路还很长。

现在回过头来聊下前面的问题。一是不固定ip,而是passthru在接收时的处理。第一个问题,没办法,只能让应用程序传参数的时候,将域名和ip一块传过来。第二个问题比较麻烦。慢慢展开。

根据网卡型号不同,PtReceive和PtReceivePacket都会被调到。我也不知道原因,反正在windbg中看的时候,发现两个都可能被调用。所以这两个都要处理。后者接收到的都是完整的包描述符,处理起来较为简单。前者可能取到完整的,也可能取不到完整Packet = NdisGetReceivedPacket(pAdapt->BindingHandle, MacReceiveContext);

如果Packet不为空,说明取到了完整的包描述符,下面该咋处理就咋处理,否则就不是一个完整的描述符,需要等。它要调用NdisTransferData,然后就等,知道返回的status 不是NDIS_STA TUS_PENDING为止。

本人对网络驱动开发有着浓厚的兴趣,在阅读本文过程中如果有疑问,欢迎随时和我联系。

监控软件设备驱动程序的编程与实现

监控软件设备驱动程序的编程与实现 0 前言 在专业监控软件出现以前,自动控制系统集成人员的一个重要任务就是编写专门的系统上位监控程序。但是,在实际工程中我们发现:一方面,由于各编程人员的水平参差不齐,许多软件的功能和可靠性都存在问题;另一方面,由于每个编程人员的编程习惯和编程思路都不同,程序的可读性和功能的扩展性都比较差。因此,功能强大、实用面广的专业监控软件就应运而生。如MCGS监控软件、组态王控软件等。由于现场智能仪表、采集板的多种多样,监控软件自带的设备驱动程序毕竟有限,因此编制设备驱动程序就成了自控系统集成工程师的重要工作之一。 本文以北京昆仑通态公司开发的MCGS为例来说明监控软件设备驱动程序的一般思路。MCGS是基于Windows95和WindowsNT平台,为用户提供了从数据采集到数据处理、报警处理、流程控制、动画显示、报表输出等解决实际工程问题的完整方案和操作工具。MCGS允许用户在VisualBasic中操作MCGS中的对象,提供了一套开放的可扩充接口,用户可根据自己的需要用VB编制特定的功能构件来扩充系统的功能。 1接口原理 许多组态软件提供了设备驱动程序软件开发包,支持用户用VB、VC、Delphi等高级编程语言编制设备驱动程序。MCGS组态软件驱动程序编程原理框图如图1所示: 几乎所有的PLC、智能仪表、采集板卡都提供了驱动软件,有的在说明书中还提供了驱动软件的核心代码、函数或数据结构。而监控软件也提供了开放性的可扩充接口,一般包括属性函数、方法函数、IO端口操作函数和串口操作函数等。在运行模式下,监控软件定时或在事件激发时调用设备驱动程序,而设备驱动程序根据需要,再调用设备核心函数。例如,MCGS在组态模式下按在线帮助按钮就会调用GetDevHelp接口,显示设备构件的在线帮助;按内部属性按钮时就会调用SetDevPage接口,显示设备构件的特定属性页。在运行环境下,MCGS首先调用一次InitDevRun接口对设备进行一些必须的初始化工作。

MOS管工作原理及其驱动电路

功率场效应晶体管MOSFET 技术分类:电源技术模拟设计 | 2007-06-07 来源:全网电子 1.概述 MOSFET的原意是:MOS(Metal Oxide Semiconductor金属氧化物半导体),FET(Field Effect Transistor场效应晶体管),即以金属层(M)的栅极隔着氧化层(O)利用电场的效应来控制半导体(S)的场效应晶体管。 功率场效应晶体管也分为结型和绝缘栅型,但通常主要指绝缘栅型中的 MOS型(Metal Oxide Semiconductor FET),简称功率MOSFET(Power MOSFET)。结型功率场效应晶体管一般称作静电感应晶体管(Static Induction Transistor——SIT)。其特点是用栅极电压来控制漏极电流,驱动电路简单,需要的驱动功率小,开关速度快,工作频率高,热稳定性优于GTR,但其电流容量小,耐压低,一般只适用于功率不超过10kW的电力电子装置。 2.功率MOSFET的结构和工作原理 功率MOSFET的种类:按导电沟道可分为P沟道和N沟道。按栅极电压幅值可分为;耗尽型;当栅极电压为零时漏源极之间就存在导电沟道,增强型;对于N(P)沟道器件,栅极电压大于(小于)零时才存在导电沟道,功率MOSFET 主要是N沟道增强型。 2.1功率MOSFET的结构 功率MOSFET的内部结构和电气符号如图1所示;其导通时只有一种极性的载流子(多子)参与导电,是单极型晶体管。导电机理与小功率mos管相同,但结构上有较大区别,小功率MOS管是横向导电器件,功率MOSFET大都采用垂直导电结构,又称为VMOSFET(Vertical MOSFET),大大提高了MOSFET 器件的耐压和耐电流能力。

网页自动跳转代码

某网页网址变更以后,为方便不知道网址变更的朋友访问,可让原来的网页自动跳转到新的网址,代码如下: 一、普通HTML页面的跳转代码: 1. 说明: 1、上面的代码,放在网页头部的“”上面; 2、数字5,是5秒以后自动跳转,可自己按照需要设置; 3、网址https://www.wendangku.net/doc/2810017376.html,,就是自动跳转到的新的网址。 4.网页需要加载完毕后才能跳转。 2.利用Javascript语言 说明: 本代码是网页一打开就直接跳转到https://www.wendangku.net/doc/2810017376.html,/rr91上面去了! 二、PHP跳转代码: 三、ASP跳转代码: <% 'asp 自带 Response.Redirect("https://www.wendangku.net/doc/2810017376.html,/rr91") %> 自动转向,也叫自动重定向。自动跳转,指当访问用户登陆到某网站时,自动将用户转向其它网页地址的一种技术。转向的网页地址可以是网站内的其它网页,也可以是其它网站。通常情况下,浏览器会收到一个网页,该页面含有自动加载一其它网页的代码。该页面有可能在服务器端被转换,这样的话,浏览器只收到一个页面,而自动转向往往意味着浏览器收到的页面具有自动将访问用户送至其它页面的功能。 对自动转向技术的合理应用包括:将用户转向到指定浏览器的网页版本;当网站的域名变更或删除后将人们转向到新域名下,等等。但现在这种技术却往往被搜索引擎优化人士用来作为提高网站的搜索引擎排名的一种手段。例如,先专门针对搜索引擎做一个高度优化的网页,也就是我们通常所说的“桥页”,然后把这个网页提交给搜索引擎来获得好的排名。

驱动桥的工作原理

驱动桥的工作原理 驱动桥处于动力传动系的末端,其基本功能有如下三个方面: 1、增大由传动轴或变速器传来的转矩,并将动力传到驱动轮,产生牵引力。 2、通过差速器将动力合理的分配给左、右驱动轮,使左右驱动轮有合理的转速 差,使汽车在不同路况下行驶。 3、承受作用于路面和车架或车身之间的垂直力、纵向力和横向力。 驱动桥的组成: 驱动桥一般由主减速器、差速器、车轮传动装置和驱动桥壳等组成。 1-后桥壳;2-差速器壳;3-差速器行星齿轮;4-差速器半轴齿轮;5-半轴;6-主减速器从动齿轮;7-主减速器主动锥齿轮 对一些载重较大的载重汽车,要求较大的减速比,用单级主减速器传动,则从动齿轮的直径就必须增大,会影响驱动桥的离地间隙,所以采用两次减速。通常称为双级减速器。双级减速器有两组减速齿轮,实现两次减速增扭。 A、在主减速器内完成双级减速 为提高锥形齿轮副的啮合平稳性和强度,第一级减速齿轮副是螺旋锥齿轮。二级齿轮副是斜齿圆柱齿轮。 主动圆锥齿轮旋转,带动从动圆银齿轮旋转,从而完成一级减速。第二级减速的主动圆柱齿轮与从动圆锥齿轮同轴而一起旋转,并带动从动圆柱齿轮旋转,进行第二级减速。因从动圆柱齿轮安装于差速器外壳上,所以,当从动圆柱齿轮转动时,通过差速器和半轴即驱动车轮转动 B、轮边减速: 将二级减速器设计在轮毂中,其结构是半轴的末端是小直径的外齿轮,周围有一组行星齿轮(一般5个),轮毂内有齿包围这组行星齿轮,以达到减速驱动的目的。 优点: a、由于半轴在轮边减速器之前,所承受扭矩减小,减速性能更好(驱动力加大); b、半轴、差速器等尺寸减小,车辆通过性能大大提高。 缺点: a、结构复杂,成本增加。 b、载质量大、平顺性小(故只用于重型车)。

多台电机同步驱动

多台电机同步驱动 图片: 摘要:在涂装行业中,由于传动链一般为几百米至上千米不等,因此传动链驱动通常采用几台电机同时驱动,要求几台电机速度同步才能保证传动链的正常运行,否则就会产生链条堆积或断裂,使系统不能很好的运行。同时本文将重点介绍安邦信G11变频器在传动链多台电机同步控制的应用。 关键词:传动链、同步控制、变频调速 一、前言 目前在涂装行业中由于涂装加工工艺流程较多,且规模较大,机械化生产线取代人工生产线。被加工工件多数采用吊空线或地盘线输送,在整个加工工艺流程中循环运行。传动链一般都很长,几百米至几千米不等。这样,一台电机驱动根本实现不了,就要求几台电机同时驱动一条传动链,就必须让电机实现同步控制,否则链条就容易堆积或断裂。 二、控制方式及控制要求 解决多台马达作同步控制时多数厂家大都采用两种控制方式。 1、采用滑差调速电机拖动(俗称VS马达控制器或速比控)。利用行程开关调整滑差。VS马达控制器是一种相当简单的带电压负反馈的,单相晶闸管整流控制器,其控制器输出一个直流供应给VS马达的励磁线圈。此控制系统的负载特性相当差,低速时速度极不稳定,容易造成系统链条堆积或断裂,且故障率很高。 2、采用变频器加异步电机拖动,利用行程开关调整速差。其控制原理是:在链条的每一传动段中,安装一个驱动座和一个调整座。调整座是可以移动的,可以用于存储过多的链条,当链条区段速度不一致时,链条会伸长和收紧。这样调整座的移动会让其行程开关发生状态

变化,从而调整马达的速度,使之达到平衡输送的目的。此系统工作时,调整是靠行程开关来检测,各区段链条的伸长和收紧。我们知道调整座不可能做得太长,行程开关也不能安装太多。因此,马达的速度调整是有级的、跳变的。调整幅度较大,调整座不断调整,导致系统频繁动作。机械磨损快,且传动链运行速度 下面我向大家介绍一种,性能更优越,成本更低的传动链自动化驱动方案。 首先我们采用深圳市安邦信电子有限公司生产的G11系列多功能矢量控制变频器,因为此变频器在传动链的自动化驱动方面有以下优势。 a、矢量控制技术,稳速精度是开环无速度传感器矢量控制:±0.5% ,闭环有速度传感器矢量控制:±0.02% b、低频转矩大,0.5HZ 满转矩输出。 c、功能强大特有频率源选择模式及给定模式,X、Y模式 d、过程PID控制系统。 只需从模拟量输入端口(0- +10V/0-20MA)引入反馈信号,即可实现过程PID系统的自动化控制。 因此在整个系统中,无需PLC等自动化产品作过程PID系统和其它功能,只要简单的线路联接,就可以实现整个传动链的自动化控制。 (1)各驱动马达基本同步,传动链条不堆积,不断裂。 (2)最高线速度可达到10m/min (3)调整座调整量越小越好. (4)调整座需安装极限保护. 三、控制原理: 1、在调整座的定滑轮上加装一个角位移传感器,将链条的伸长或收紧变化率通过传感器检测,并转换为0-10V/0-20mA的模拟信号,作为PID的反馈信号,送回变频器。 2、通过变频器的键盘设置,调整座的平衡点,系统根据反馈信号与PID给定的平衡点作比较,决定马达的调整方向和速率。 3、由于PID系统反应,调整座与平衡点稍微发生偏移时系统立刻做调整,这样,保证了在高速时能有效调整。 4、由于变频器采用矢量控制保证了速度不随负载的变化而变化。同时,克服低速时速度不稳定的缺陷。 5、采用主-从式结构,所有变频器的控制模式均为开环矢量控制模式,其速度可以通过面板设定或外置电位器给定。将一台E11矢量变频器作为主驱动输出,从驱动均采用G11系列产品,多台从驱动可以共用一台主驱动。 6、主驱动的运行频率通过AO模拟口输出,作为从驱动变频器的初始同步转速,其偏差可以通过模拟量输出口AO的零偏及增益的定义来修正。 7、从驱动的辅助频率源来自于PID。这样,从驱动马达的速度就靠调整座的信号来追踪主驱动马达的速度,达到同步的目的。 8、在每一个调整座安装极限开关,防止意外情况发生。 简易线路图:(见附件) 四、结束语 本系统在优化参数值之后,传动链的运行非常稳定。而且本系统电气器件配置简炼,逻辑清晰,与原老式系统相比,省去了价格昂贵的同步控制板和PLC,成本有较大的降幅。在行

顾客价值及其驱动因素

顾客价值及其驱动因素 企业竞争说到底可以归结为顾客之争——顾客份额和顾客知识之争,而企业拥有的唯一战略武器就是:创造和交付优异的顾客价值。 (一)顾客价值的层次性与动态性 Zeithaml在1988年指出,感知价值是主观的,随顾客的不同而不同。顾客对某一产品的期望价值不仅在不同顾客之间会所有差别,而且同一顾客在不同时间的期望价值也会不同。这表明顾客价值的性质及影响因素在顾客与公司交往的不同阶段可能会发生变化。换句话说,激发顾客最初购买某种产品的属性可能不同于顾客购买后使用过程中的价值标准,后者可能又不同于长期使用过程中的价值决定因素。此外,引发顾客离弃的缺陷,也并不必然发生在顾客在使用产品时对主导价值评价的标准上。类似地,Ravald在1996年做出了这样论述:“不同顾客具有不同的价值观念、需求、偏好和财务资源,而这些资源显然影响着顾客的感知价值”。事实上,在明确了顾客价值内涵的基础上,不难理解上述论断的科学性。例如,感知所得可能因顾客而异(如有的可能要数量,另一些要高质量,还有的要便利),付出也可能有所不同(如一些顾客只关心所付出的金钱,一些则关心所付出的时间和努力)。同时,顾客价值也可能因适用环境的不同而有所差异,顾客在不同时间对价值的评估可能有所不同,例如,在购买决策之前、实际购买过程之中和产品使用之后,顾客对价值的评估可能存在重大差异,因为在不同的时间阶段,顾客评判的标准可能会有所不同。在购买阶段,顾客需要比较不同的产品或服务,并选出自己最喜欢的;而在产品的使用中或之后,顾客更关心的是所选产品的效用。值得指出的是,这种现象实际上已得到证实:Gardial,Clemons,Woodruff,Schumann及Burns(1994)的研究表明:顾客在购买产品过程中对价值的感知与使用过程中或之后截然不同。即不同顾客可能有不同的价值感知,而同一顾客在不同时刻也会有不同的价值感知,即顾客价值具有明显的层次性和动态性。 后来,Flint等人在1997又进一步描述了顾客价值的动态特征,列出了能够改变顾客价值感知的一些“触发事件”(Trigger event);而Woodruff(1997)教授基于信息处理的认知逻辑,提出了顾客价值的层次模型;在对 Woodruff(1997)文章的一篇评论中,Parasueaman(1997)指出,随着顾客从第一次购买到短期顾客再到长期顾客的转变,他们的价值评价标准可能会变得越来越全面、抽象:第一次购买的顾客可能主要关注属性层次的标准,但是短期和长期顾客可能关注的是结果层次和全局层次的标准。他还进一步提出了一个系统监测模型,把顾客区分为初次顾客、短期顾客、长期顾客和离弃顾客4种基本类型,并形象地论述了各自的动态变化。在对上述研究进行总结与提升的基础上,图1描述了顾客价值的动态层次模型——随着时间的推移和与供应商关系的深化,构成顾客金字塔的、具有不同特征的不同顾客细分市场上的顾客对价值感知所表现出的动态层次性。该模型认为,顾客以途径—结果(means-end)模式形成期望价值,从最低一层开始,顾客首先会考虑产品的特定属性及其效能;在购买和使用产品时,顾客根据特定产品属性对实现期望结果的贡献,而形成一种期望和偏好,反映在顾客价值上就是使用和拥有价值(第二层);同时,顾客也会根据产品属性对实现自身目标和目的的贡献,形成对特定使用结果的期望(最

触摸屏接口硬件编写驱动程序

尽管触摸屏正在迅速普及开来,但大多数开发人员以前从来没有开发过触摸屏产品。本文详细介绍了触摸屏产品的设计步骤,指导读者了解使触摸屏首次工作需要的软硬件细节。 触摸屏如今随处可见。工业控制系统、消费电子产品,甚至医疗设备上很多都装备了触摸屏输入装置。我们平时不经意间都会用到触摸屏。在ATM机上取款、签署包裹,办理登机手续或查找电话号码时都可能会用到触摸屏。 本文介绍了二种较新的CPU,它们都内建了对触摸屏输入的支持。本文将介绍如何编写软件驱动程序,从而能够使用这些微处理器配置、校准触摸屏以及对触摸屏输入持续响应。最终将提供可免费下载和使用的工作代码,作为读者进一步设计的基础。 触摸屏作为输入手段的优点和缺点 没有一种输入方式是十全十美的,对某些特定的应用和产品类型来说,触摸屏不是最好的输入手段。为了让读者清楚的了解触摸屏的特性,下面先概括使用触摸屏作为输入手段的优点和缺点。 首先是优点:触摸屏不可否认的具有酷的感觉,立刻就能使产品的使用变得更有乐趣。同时触摸屏也非常直观。当用户想要选择A选项时,他伸出手指碰一下A 选项就可以了。这还不够直观吗?连两岁的婴儿都知道怎样伸手去触摸他(或她)想要的东西。 最后要说的是,触摸屏作为输入装置和系统固定在了一起。如果用户忘记遥控器或鼠标放的位置,就会无法进行输入。而如果具有触摸屏的设备放在用户前面,用户马上就可以用触摸屏进行输入。 再说缺点,触摸屏可能会在不合适的场合下被错误的使用。这里我是指对安全性要求严格的设备,对于这些设备,如果没有适当的预防措施,使用触摸屏会非常危险。下面我将概括一些最明显的潜在的问题,如果读者想作更进一步的了解,可以参考更多的资料。 第一个问题是视差,即屏幕上看到的对象的位置与其在触摸面板上的实际有效位置之间的差异。图1说明了这个问题。我能想到的最佳例子是典型的“免下 车”ATM机。这种ATM机不会根据汽车的高度升高或降低自己的高度,因此如果你坐在较高的SUV或卡车里,那么你就会从抬高的位置俯视显示屏。为了保护昂贵的显示器件免受恶意破坏,ATM机都会在用户和显示屏之间放置几层强化玻璃。 触摸屏是不能这样保护的。如果真这样做的话,用户就无法进行触摸了。因此触摸屏放在表层上,而显示屏放在表层下的几层玻璃后面。这就造成了触摸层和显示层之间的物理隔离。如果用户以某个角度观看屏幕,就意味着用户按压触摸屏进行选择的位置会与用户接口软件预期的输入位置之间存在一定的距离偏差。

Linux驱动程序工作原理简介

Linux驱动程序工作原理简介 一、linux驱动程序的数据结构 (1) 二、设备节点如何产生? (2) 三、应用程序是如何访问设备驱动程序的? (2) 四、为什么要有设备文件系统? (3) 五、设备文件系统如何实现? (4) 六、如何使用设备文件系统? (4) 七、具体设备驱动程序分析 (5) 1、驱动程序初始化时,要注册设备节点,创建子设备文件 (5) 2、驱动程序卸载时要注销设备节点,删除设备文件 (7) 参考书目 (8) 一、linux驱动程序的数据结构 设备驱动程序实质上是提供一组供应用程序操作设备的接口函数。 各种设备由于功能不同,驱动程序提供的函数接口也不相同,但linux为了能够统一管理,规定了linux下设备驱动程序必须使用统一的接口函数file_operations 。 所以,一种设备的驱动程序主要内容就是提供这样的一组file_operations 接口函数。 那么,linux是如何管理种类繁多的设备驱动程序呢? linux下设备大体分为块设备和字符设备两类。 内核中用2个全局数组存放这2类驱动程序。 #define MAX_CHRDEV 255 #define MAX_BLKDEV 255 struct device_struct { const char * name; struct file_operations * fops; }; static struct device_struct chrdevs[MAX_CHRDEV]; static struct { const char *name; struct block_device_operations *bdops; } blkdevs[MAX_BLKDEV]; //此处说明一下,struct block_device_operations是块设备驱动程序内部的接口函数,上层文件系统还是通过struct file_operations访问的。

同步整流电路的驱动方式综述

同步整流电路的驱动方式综述 预研部余恒23343 一、问题提出: 为了适应电子、通信设备和大规模集成电路的供电要求,DC/DC 模块电源输出电压越来越低,而输出电流却越来越大。传统的肖特基整流方式逐渐被同步整流方式所取代。用低导通电阻MOSFET代替常规肖特基整流/续流二极管,可以大大降低整流部分的功耗,提高变换器的性能,实现电源的高效率,高功率密度。同步整流已经相当流行。但是用MOS代替肖特基二极管势必带来这样一个问题:同步整流MOS管如何驱动?因为二极管不需要驱动,而MOS管是需要驱动的。对于同步整流管的驱动方式,本人收集了部分资料,做了总结,向各位专家学习。 二、驱动方式探讨: 从总的来说同步整流管的驱动方式分为自驱和外驱。 1、外驱:利用原边等驱动信号来控制整流管的开关,优点是可减 小整流管的死区,而且很容易实现时序。不足之处也是显然的,增加了电路的复杂性、成本和可靠性。 *例如,单端正激谐振复位电路,副边续流管可以由原边信号驱动 (如图),也可以整流管由OUT1控制开通,续流管由OUT2控 *又例如图2,这种电路是为了设计原副边的时序。Driverl为正时,Q1导通,副边Qs2处于工作状态。由于Qs12的导通,Qs1 处于关断状态。死区时间Driverl和Driver2为0,则Qs11、Qs21 导通,Q12、Q22的关断,那么Qs1和Qs2均导通,工作在续流状态。当 Driver2为正时,Qs1导通,Qs2关断,Q2延时导通,这样Qs2处于工作状态,Qs1处于关断状态。同样死区时间Qs1 和Qs2同时续流。 可见通过外驱方式实现了原副边时序,使得在死区时间整流管处于工作状态,就不会经过整流管的体二极管续流,从而减小了续流损耗。

驱动程序的接口设计

驱动程序的接口设计 WinCE下的驱动皆以动态链接库的形式存在。驱动实现中可以调用所有的标准API。WinCE的两种驱动模型——本机驱动模型和流接口驱动模型——其中本机驱动模型用于低级、内置设备,实现一组特定的接口函数;而流接口驱动模型是基本的驱动类型,提供一组通用设备接口,适用于多种设备。本设计采用的ADC驱动为数据采集驱动,是整个数据采集系统的核心。首先介绍几个流接口驱动的接口函数: (1)ADC_Init: 函数原型:DWORD ADC_Init(LPCTSTR Identifier) 功能描述:软件资源初始化,硬件地址空间映射,硬件初始化,中断注册。 参数描述:Identifier为字符串指针,指向本驱动在注册表标识符路径键值。 实现要点:本函数的关键部分在于对硬件地址空间的映射,通Virtualalloc,Viirtualcopy将I/O寄存器、中断寄存器、PWM寄存器和存储器地址空间映射到系统内存空中去;此外还要对硬件进行系统启动后的第一次初始化,包括中断硬件初始化和注册、fifo的清零和采集的禁止等。注意为保证系统的稳定和低功耗,在本函数运行后,数据采集器处于禁止中断和电源关闭状态。 具体使用:ADC_Init会把设备内容指针传递给ADC_Open。 (2)ADC_Deinit: 函数原型:BOOL ADC_Deinit(PADC_Info pContext) 功能描述:软件资源释放,硬件反初始化,中断屏蔽。 参数描述:pContext是驱动软件结构体指针。 实现要点:本函数为ADC_Init的逆向操作。 具体使用:释放了ADC_Init中分配的资源。 (3)ADC_Open: 函数原型:DWORD ADC_Open(DWORD pContext,DWORD AccessCode,DWORD ShareMode) 功能描述:打开设备,AD上电,禁止中断,禁止触发,清除FIFO,数据缓冲区初始化。 参数描述:pContext是驱动软件结构体指针;AccessCode为读写访问权限。 制模式码:ShareMode为共享访问权限控制模式码。 应用接口:CreateFile 实现要点:本函数主要功能是开启设备电源,并确保其初始化状态可靠,因此其中部分操作与系统初始化阶段类似。注意在本操作结束后,采集器仍处于禁

伺服驱动器的工作原理

伺服驱动器的工作原理 随着全数字式交流伺服系统的出现,交流伺服电机也越来越多地应用于数字控制系统中。为了适应数字控制的发展趋势,运动控制系统中大多采用全数字式交流伺服电机作为执行电动机。在控制方式上用脉冲串和方向信号实现。 一般伺服都有三种控制方式:速度控制方式,转矩控制方式,位置控制方式。 速度控制和转矩控制都是用模拟量来控制的。位置控制是通过发脉冲来控制的。具体采用什么控制方式要根据客户的要求,满足何种运动功能来选择。 如果您对电机的速度、位置都没有要求,只要输出一个恒转矩,当然是用转矩模式。 如果对位置和速度有一定的精度要求,而对实时转矩不是很关心,用转矩模式不太方便,用速度或位置模式比较好。如果上位控制器有比较好的死循环控制功能,用速度控制效果会好一点。如果本身要求不是很高,或者,基本没有实时性的要求,用位置控制方式对上位控制器没有很高的要求。就伺服驱动器的响应速度来看,转矩模式运算量最小,驱动器对控制信号的响应最快;位置模式运算量最大,驱动器对控制信号的响应最慢。 对运动中的动态性能有比较高的要求时,需要实时对电机进行调整。那么如果控制器本身的运算速度很慢(比如PLC,或低端运动控制器),就用位置方式控制。如果控制器运算速度比较快,可以用速度

方式,把位置环从驱动器移到控制器上,减少驱动器的工作量,提高效率(比如大部分中高端运动控制器);如果有更好的上位控制器,还可以用转矩方式控制,把速度环也从驱动器上移开,这一般只是高端专用控制器才能这么干,而且,这时完全不需要使用伺服电机。换一种说法是: 1、转矩控制:转矩控制方式是通过外部模拟量的输入或直接的地址的赋值来设定电机轴对外的输出转矩的大小,具体表现为例如10V 对应5Nm的话,当外部模拟量设定为5V时电机轴输出为2.5Nm:如果电机轴负载低于2.5Nm时电机正转,外部负载等于2.5Nm时电机不转,大于2.5Nm时电机反转(通常在有重力负载情况下产生)。可以通过实时的改变模拟量的设定来改变设定的力矩大小,也可通过通讯方式改变对应的地址的数值来实现。应用主要在对材质的受力有严格要求的缠绕和放卷的装置中,例如饶线装置或拉光纤设备,转矩的设定要根据缠绕的半径的变化随时更改以确保材质的受力不会随着缠绕半径的变化而改变。 2、位置控制:位置控制模式一般是通过外部输入的脉冲的频率来确定转动速度的大小,通过脉冲的个数来确定转动的角度,也有些伺服可以通过通讯方式直接对速度和位移进行赋值。由于位置模式可以对速度和位置都有很严格的控制,所以一般应用于定位装置。应用领域如数控机床、印刷机械等等。 3、速度模式:通过模拟量的输入或脉冲的频率都可以进行转动速度的控制,在有上位控制装置的外环PID控制时速度模式也可以进行

客户驱动与服务驱动相结合的软件营销模式探讨

客户驱动与服务驱动相结合的软件营销模式探讨 摘要:文章以短短不到5年的时间成长起来的奇虎360公司为例子,对客户驱动和服务驱动相结合的软件营销模式进行了探讨。文章认为传统的营销模式在互联网的冲击下,必然面临着重大的变革。当今软件营销的重点在于增加用户基数与服务客户。而客户驱动和服务驱动相结合的软件营销模式是进入互联网时代后软件营销模式发展的必然趋势。 关键词:客户驱动;服务驱动;软件;营销 随着网络的日益地普及,软件消费文化正在逐渐地发生着改变,而这种变化更是严重地冲击了软件行业的销售模式。在巨大的市场和文化的冲击之下,各个软件制造商、销售商纷纷开始采取战略措施来维护自身利益,开拓更大的发展空间。 从市场营销的角度看,可以将软件产品分为四类:消费类软件产品、嵌入式软件产品、系统软件产品和应用软件产品。文献认为只有第三类软件产品适于采用免费赠送、开放技术等营销战略。系统软件产品包括计算机操作系统软件、杀毒软件等,是保证计算机系统正常运行和基本应用的软件产品。这类软件产品是消费者在使用计算机时必不可少的,它在互联网的冲击下的营销模式会有怎样的改变? 1传统软件营销模式 试想一下10多年前,如果公司开发出了一套不错的通用型软件,会如何去销售?首选是将软件的版权卖给大公司,因为“品牌效应”与商业发展同行,站在巨人的肩膀上可以看得更远。可能公司也会考虑在各类媒体上花钱打广告,或者与连邦公司这样的通用软件连锁商谈判。或者公司会选择自己开发销售渠道,直接找报刊亭、书店或音像店谈判。那么7、8年前呢?如果软件足够优秀,可能公司会去和几大PC厂商谈判,因为那个年代“捆绑营销”的概念正蒸蒸日上。 传统通用软件的销售模式与其他产品的销售模式趋于一致,但当互联网时代席卷而来的时候,传统软件仅仅在分销渠道方面就面临翻天覆地的变化。 软件分销渠道,也称软件营销渠道或配销通路,指软件产品从开发者手中转至消费者所经过的各中间商连接起来形成的通道。它由位于起点的开发者和位于终点的消费者以及二者之间的中间商组成。

嵌入式系统接口设计与Linux驱动程序开发

嵌入式系统接口设计和Linux驱动程序开发 书名:嵌入式系统接口设计和Linux驱动程序开发 作者:刘淼 出版社:北京航天航空大学出版社 ISBN:9787810778619 定价:39.00 元 出版日 2006-5-1 期: 编辑推荐 Linux是源码开放的操作系统,它发展迅速,爱好者众多,同时也是主流的嵌入式操作系统之一。以ARM 为核心的处理器使用广泛,成本低廉,软件支持好,也是当今市场占有率最高的32位嵌入式处理器。本书Linux和ARM处理器平台为例,结合两大主流软件和硬件,讲述嵌入系统开发的相关知识,是对深入学习嵌入式系统很有借鉴意义的书。 内容简介 本书针对ARM处理器为核心的主流嵌入式系统平台,主要讲述嵌入式Linux驱动程序的设计和开发过程。内容同时涵盖嵌入式系统的软硬件两个方面:一方面是嵌入式系统常用的硬件接口时序、电气特性等内容的分析;另一方面讲述对应硬件的Linux驱动程序实现方法。本书共分为16章。第1、2章介绍嵌入式系统和Linux驱动程序的基础性知识。从第3章开始,详细讲述硬件平台及其对应的Linux驱动程序。硬件包括I/O口、CAN总线、触摸屏、I2CPS/2、异步串口、音频、显示、IDE、PCMCIA、USB、以太网以及Flash 的使用等内容。软件涉及针对上述硬件的各种驱动程序在Linux下的体系结构,Linux的字符设备、块设备和网络设备驱动程序,ARM Linux的中断处理,BootLoader和内核的启动过程等。 本书可作为机器人技术、机电控制系统、信息家电、工业控制、手持设备、智能玩具、医疗仪器等方面嵌入式系统开发和使用的参考书,也可作为高等院校有关嵌入式系统教学的本科生或研究生的教材。 作者简介 刘焱,吉林省吉林市人。2000年开始从事嵌入式系统方面的研发工作,参加过多项国家863、自然基金研究项目,熟练掌握ARM等RISC微处理器系统的硬件设计及LinuxWinCEVxWorks等操作系统的软件设计.尤其擅长硬件接口和驱动程序等系统底层架构设计。先后主持过基于S3C4480、S3C2410、PXA270等多款嵌入式教学实验平台及基于HMS30C7202.AT91 RM9200的工业测控系统的开发工作,作为主要研究人员完成的嵌入式数控系统已在企业成功使用。曾担任过清华大学软件学院、北京航空航天大学软件学院嵌入式系统课程的实验教学工作及南开大学软件学院的嵌入式系统专业课程教学工作。现任中国电子学会嵌入式系统培训中心ESTC认证讲师。 目录 第1章典型的嵌入式系统体系结构 1.1嵌入式系统概述1 1.2嵌入式系统的组成1 1.2.1嵌入式平台的硬件架构2 1.2.2板级支持包和嵌入式系统2 1.2.3嵌入式系统上的使用程序3 1.3嵌入式系统的开发流程和优势3 1.4嵌入式系统的方案选择5

开关磁阻电机驱动系统的运行原理及应用

开关磁阻电机驱动系统的运行原理及应用(二) (低轴阻发电机参考资料) 1 引言 开关磁阻电机驱动系统(SDR)具有一些很有特色的优点:电机结构简单、坚固、维护方便甚至免维护,启动及低速时转矩大、电流小;高速恒功率区范围宽、性能好,在宽广转速和功率访问内都具有高输出和高效率而且有很好的容错能力。这使得SR电机系统在家用电器、通用工业、伺服与调速系统、牵引电机、高转速电机、航空航天等领域得到广泛应用。 SR电机是一种机电能量转换装置。根据可逆原理,SR电机和传统电机一样,它既可将电能转换为机械能—电动运行,在这方面的理论趋于成熟;也可将机械能转换为电能—发电运行,其内部的能量转换关系不能简单看成是SR电动机的逆过程。本文将从SR电机电动和发电运行这两个角度阐述SR电机的运行原理。 2 电动运行原理 2.1 转矩产生原理 控制器根据位置检测器检测到的定转子间相对位置信息,结合给定的运行命令(正转或反转),导通相应的定子相绕组的主开关元件。对应相绕组中有电流流过,产生磁场;磁场总是趋于“磁阻最小”而产生的磁阻性电磁转矩使转子转向“极对极”位置。当转子转到被吸引的转子磁极与定子激磁相相重合(平衡位置)时,电磁转矩消失。此时控制器根据新的位置信息,在定转子即将达到平衡位置时,向功率变换器发出命令,关断当

前相的主开关元件,而导通下一相,则转子又会向下一个平衡位置转动;这样,控制器根据相应的位置信息按一定的控制逻辑连续地导通和关断相应的相绕组的主开关,就可产生连续的同转向的电磁转矩,使转子在一定的转速下连续运行;再根据一定的控制策略控制各相绕组的通、断时刻以及绕组电流的大小,就可使系统在最隹状态下运行。 图1 三相sr电动机剖面图 从上面的分析可见,电流的方向对转矩没有任何影响,电动机的转向与电流方向无关,而仅取决于相绕组的通电顺序。若通电顺序改变,则电机的转向也发生改变。为保证电机能连续地旋转,位置检测器要能及时给出定转子极间相对位置,使控制器能及时和准确地控制定子各相绕组的通断,使srm能产生所要求的转矩和转速,达到预计的性能要求。 2.2 电路分析

5种网页跳转方法详解

5种网页跳转方法详解 网页自动跳转,是指当用户访问某个网页时,被自动跳转到另一个网页中去。网页自动跳转的主要作用是 ,当域名变更后,或者网站里的一个或多个网页被删除后,可以使用这种方式将用户引导到其它正常的网页 中去,从而留住用户。 不过,现在有许多人利用网页自动跳转来进行作弊,欺骗搜索引擎,从而实现提高网站搜索引擎排名的目的 。比较典型的方式是:先做一个“桥页”,当搜索引擎收录了这个桥页,并有较高排名时,桥页中再使用网 页自动跳转方式,将用户引导到用户本来无意访问的其它网页中去。 下面介绍一下5种常见的网页自动跳转方法,以及搜索引擎对这些跳转方法的辨识能力。 第一种网页自动跳转方法:Meta Refresh自动跳转法 在网页的head区域的Meta Refresh标签中,加入自动跳转代码,可实现网页的立即或延时自动跳转。 示例如下: (META http-equiv=Refresh content=10;url=https://www.wendangku.net/doc/2810017376.html,/) 上述html代码中的“10”是延时跳转的时间,单位是秒。如果设为0,就表示立即跳转。 “https://www.wendangku.net/doc/2810017376.html,”是跳转的目标地址,可以是同一域名下的站内相对路径,也可以是不同域名的 站外地址。 由于搜索引擎能够读取HTML,所以对于这种自动跳转方法,搜索引擎是能够自动检测出来的。

至是会不会被视为作弊,则主要看跳转时间。如果跳转时间为0,就可能会被视为作弊,从而受到惩罚。如 果有时间延迟(一般3秒以上),就会被视为正常应用。 第二种网页自动跳转方法:body onload自动跳转法 在网页加载时通过onload事件指定parent.location进行自动跳转。 示例如下: 这种方法与第一种方法一样,能够被搜索引擎识别。 第三种网页自动跳转方法:javascript自动跳转法 javascript可以实现网页的自动跳转,如果要实现立即跳转,将跳转代码放在网页的head区域即可。 示例如下: (SCRIPT language=javascript> location.replace("https://www.wendangku.net/doc/2810017376.html,/html/gov2/") 其中的“https://www.wendangku.net/doc/2810017376.html,/html/gov2/”是重定向目标地址。 由于搜索引擎无法解析javascript,所以搜索引擎便无法识别用javascript 脚本进行的自动跳转。 第四种网页自动跳转方法:表单自动跳转法 对于表单大家都很熟悉,就是将表单中填写的内容,提交到action参数中指定的URL地址中,目标URL再对接 收到的数据进行处理。利用这一点,我们可间接的实现网页跳转,只不过,我们并不需要提交任何表单内容 。再结合javascript脚本,可以对表单进行自动提交。 示例如下: (FORM name=form1

驱动桥的拆装实验报告

驱动桥的拆装 一、实训目的 1、掌握主减速器与差速器的功用、构造和工作原理 2、熟悉主减速器与差速器的拆装顺序,以及一些相关的检测与维修知识 二、实验原理 根据驱动桥的种类、结构特点、工作原理和组成部分,以及主减速器与差速器的结构特点、工作原理和组成部分,进行驱动桥总成的分拆装实训。 三、设备和实训用具 1、驱动桥总成1个(非断开式驱动桥) 2、工作台架1个 3、常用、专用工具全套 4、各式量具全套 四、实验步骤 1、用专用工具从驱动桥壳中拉下左、右两边 半轴主减速器 2、松下主减速器紧固螺栓,卸下主减速器总成 3、松开差速器支撑轴承的轴承盖紧固螺栓,卸下轴承盖,并做好记号 4、卸下支撑轴承,并做好标记,以及分解出差速器总成 5、从主减速器壳中,拉出主减速器双曲面主动齿轮(可视需要进行分拆装) 6、分解差速器总成,直接卸下一边半轴锥齿轮,接着卸下行星齿轮,以及另一边半轴锥齿轮 7、观察各零部件之间的结合关系,以及其工作原理

8、装配顺序与上述顺序相反

五、注意事项 1、拆卸差速器轴承盖时,应做好左、右两边轴承盖的相应标记 2、驱动桥为质量大部件,需小心操作,必要时用吊装,切忌勿站在吊装底下 3、严格按照技术要求及装配标记进行装合,防止破坏装配精度,如差速器及盖、调整垫片、传动轴等部位。行星齿轮止推垫片不得随意更换 4、差速器轴承的预紧度要按标准调整 5、差速器侧盖与变速器壳体的接合面装复时要涂密封 6、侧盖固定螺栓要按规定的扭矩拧紧 7、从动锥齿轮的固定螺栓应按规定的扭矩拧紧 &差速器轴承装配时可用压床压入 六、实验结果与分析 1、驱动桥的动力传递路线: 从万向传动轴到主减速器小齿轮,到从动锥齿轮,差速器壳T十字轴T行星齿轮T半轴齿轮T左右半轴。 2、主减速器、差速器等的支撑方式,及轴承预紧度调整: (1)主动锥齿轮与轴制成一体,主动轴前端支承在相互贴近而小端相向的两个圆锥滚子轴承上,后端支承在圆柱滚子轴承上,形成跨置式支承。其轴承预紧度可通过相对两个锥齿轮中加减垫片进行调整。 (2)从动锥齿轮连接在差速器壳上,而差速器壳则用两个圆锥滚子轴承支承在主减速器壳的座孔中。 (3)在从动锥齿轮背面,装有支承螺栓,以限制从动锥齿轮过度变形而影响齿轮的正常工作。装配时,一般支承螺栓与从动锥齿轮端面之间的间隙为0.3~0.5mm。 3、齿轮啮合间隙调整方法:

实时数据库与驱动程序开发接口-解析

实时数据库与驱动程序开发接口 V1.0 2006/12/29发布 1引言 根据整个组态的结构描述,在驱动程序与实时数据库之间交换的内容包括采集的实时数据及由实时数据库向驱动发送的控制命令串,驱动程序要求实时数据库或其他驱动支持的功能。 2实现方式 具体的实现方式是能过共享内存的方式进行数据传送。系统驱动所使用的共享内存全部编号使用,编号从0开始顺序递增,不同的驱动使用不同的共享内存编号,一般一个驱动使用一个共享内存,特殊情况下一个驱动可以使用一个以上的共享内存号。系统提供若干函数对共享内存的创建及使用进行支持。并且提供完整的温巡驱动程序,使用纯C语言编写。二次开发人员可以阅读,参照完成其他驱动的编写工作。另外对每一个驱动的开发需要在drive目录下建立一个单独的文件存储驱动的应用程序与设置文件.以omron为例,需在drive下建立omron 目录.对每一个驱动程序写一个readme.txt文件和一个config.txt文件来描述开发的目的及驱动的用法及驱动程序的参数设置. 系统占用的共享享内存编号有如下几个, 其他程序请不要占用. 100 声音驱动使用 102 短信程序使用 103 电话语音报警使用 80web驱动使用 3驱动程序编写说明

3.1 数据区 驱动程序采集的量一般分为两种形式一种是实时数据量如遥信,遥测与遥脉等. 另一种类型是结构量,如SOE, 保护动作记录等。 实时数据量采用0 - 1999进行编号, 驱动程序开发人员可自行安排其中的某一段为遥信,遥测或遥脉, 例如0 - 100 为遥信, 101-200 为遥脉, 201 - 300 为遥测.对于遥信多的,将更多的编号分配给遥信,对于遥测多的将更多的编号分配给遥测。采集上来的量在组态的参数配置中按驱动编写的情况进行配置. 3.2 上传结构变量 结构型变量采用如下方法进行传送,系统提供若干个结构串位置,当将指定形式的若干个结构串放入结构串中时,同时将串个数告诉实时数据库。则实时数据库程序读入所有的串,并根据指定的格式进行存盘操作或命令操作。结构串的格式一般为一个特征码附加若干有效字串参数。 3.3 命令区 驱动程序从实时数据库中接收的内容一般是命令串,命令串中包括命令特征码及命令附带的数据,当收到退出命令时驱动程序应自动安全地退出. 退出命令是命令字符串"EXIT"。 3.4 下行结构变量 下传结构变量一般是由实时数据库传送到驱动程序的下行结构变量。接收下行结构变量的程序一般有声音报警,电话报警,及调度程序等。 4类接口说明 4.1 支持函数文件列表 1)ramdrive.h 2)ramdrive.c 4.2 使用步骤 1)使用方法bool CreateRam( int ramid ); 完成共享内存的建立,参数为数据共享区的编号. 2)设置实时数据 void SetValue( int id, int iValue ) id 编号iValue 实时值

手机浏览网页自动跳转移动版js

JS判断 百度APP的跳转代码。 function uaredirect(murl){ try { if(document.getElementById("bdmark") != null){ return; } var urlhash = window.location.hash; if (!urlhash.match("fromapp")){ if ((https://www.wendangku.net/doc/2810017376.html,erAgent.match(/(iPhone|iPod|Android|ios|iPad)/i))) { location.replace(murl); } }

相关文档
相关文档 最新文档