异步通信范文

时间:2023-03-05 15:07:56

异步通信

异步通信范文第1篇

关键词:16C552;串行通讯;异步

当实现PC机与DSP的串行通讯时,通常可直接利用DSP的串行通讯接口(SCI)模块和SCI多处理器通讯协议(即空闲线路模式和地址位模式)来在同一串行线路中实现多个处理器之间的通讯,也可以采用SCI异步通讯模式实现串行通讯。这两种方式虽然都能方便地实现串行通讯,但它们都需占用系统较多的硬件和软件资源,因而不适用于对实时性要求比较高且系统资源紧张的应用场合。笔者在研制电力有源滤波实验系统中,由于采用了异步通讯芯片16C552,从而成功解决了这个问题。本文将从电路结构和软件编程两个方面介绍该方案的实现方法。

116C552简介

1.1功能特点及结构框图

16C552是TI(TL16C552)和VLSI(VL16C552)等公司生产的异步通信芯片,具有两个增强的通用异步通讯单元通道和一个增强的双向打印机端口;支持TL16C450和FIFO两种模式,其16字节的FIFO可减少CPU中断;每个通道都具有独立的发送、接收、线路状态和设置中断功能,同时具有独立的MO-DEM控制信号、可编程的串行数据发送格式(包括数据位长度、校验方式、停止位长度)和可编程波特率发生器;另外,每个通道的数据和控制总线还具有三态TTL驱动功能。

TL16C552AM是TI公司的68脚PLCC(PlasticLeadedChipCarrier)封装芯片,其管脚及功能框图如图1所示。从图中可以看出,它的串行口主要完成两个功能,一是把外设或调制解调器接收来的串行数据转换成并行数据;二是把CPU的并行数据转换成串行数据以便发送。在正常操作过程中,CPU可以随时读取16C552的状态信息,以报告16C552传输操作的类型和状态,包括各种错误状态,如奇偶校验、溢出、帧错误和FIFO错误等。此外,16C552还具有完整的MODEM控制功能,并有CTS、RTS、DSR、DTR、RI、DCD等信号端。

16C552具有一套完善的中断系统,可以自动设定优先级。它的串行口和并行口都可以独立地工作于中断和查询两种工作方式。

1.216C552的内部寄存器

16C552内部有12个单字节寄存器,这些寄存器占用了8个I/O口地址,其地址由A0~A2决定。其中有些寄存器共用一个I/O口地址,共用的I/O口可以通过读/写信号和线路控制寄存器(LCR)的D7位(DLAB)来进行区分,具体描述见表1所列,需要说明的是:只有当16C552的CS0或CS1为低电平时,串行通道才能被访问。

表1I6C552的内部寄存器

DLABA2A1A0符号寄存器

LLLLRBR接收缓冲寄存器

LLLHTHR发送保持寄存器

LLLLIER中断允许寄存器

XLHHIIR中断识别寄存器

XLHLFCRFIFO控制寄存器

XLHHLCR线路控制寄存器

XHLLMCRMODE控制寄存器

XHLHLSR线路状态寄存器

XHHLMSRMODEM状态寄存器

XHHHSCR高速缓存器寄存器

HLLLDLL除数锁存器低位

HLLHDLM除数锁存器高位

关于各寄存器内容的具体规定,限于篇幅,这里不作详述,有兴趣者可参看TI公司的相关产品资料介绍,但在串行通讯应用中,要重点搞清楚FCR、LCR、IER等几个寄存器的内容。此外,在实际应用中,有时可能会忽视MODEM控制寄存器中的D4位,该位为自测试循环回送状态控制位,利用它可以对串口的自测试进行控制,因此,在自测试进行完毕后,还应对该位进行复位,以保证系统的正常运行。

2通讯系统硬件接口电路

本系统的硬件接口电路如图2所示。其中,地址译码电路可以根据实际需要采用不同的电路实现。为了使系统使用灵活方便,本方案中采用一片CPLD来进行系统的地址分配。复位电路可以利用专用复位芯片,也可用上拉电阻方式实现。外接晶振可以自行选择,然后根据晶振频率设置除数锁存器的高位和低位,从而获得通讯系统正确的波特率,本系统中使用的晶振是8MHz。此外,由于16C552A有两个串行通道和一个标准并行口,它们相互之间的配合使用在硬件和软件上都要加以注意。建议将不用端口的片选接到高电平(16C552A的片选为低电平有效),以免出现错误。

3串行通讯软件设计

3.1通讯协议

本设计的通讯协议包括以下几点:

(1)波特率为9600。

(2)通讯命令由2个字节构成:第一个字节是同步字节0XFF;第二个字节是命令码,主要用来指示各种控制命令。

(3)每个字节包括8位数据位和1位停止位,无校验。

(4)在通讯过程中,上位机向TMS320F243发送同步命令,TMS320F243接收到后立即应答,若应答错误则重发。

(5)通讯程序向TMS320F243发送控制命令时,TMS320F243返回接收正确应答信号;通讯程序向TMS320F243查询系统参数命令时,TMS320F243按照规定格式返回所需数据。

PC机和TMS320F243均采用异步通讯方式,PC机采用事件驱动方式来接收数据,TMS320F243采用中断方式接收数据,而用查询方式发送数据。

3.2上下位机通讯软件设计

在PC机上编写串行通讯程序至少有三种方法,分别为汇编语言、C语言和Visual系列通讯控件(MSComm)。相比较而言,Visual系列通讯控件能够用少量的代码轻松高效地完成编程任务。实际应用中,可用以VisualBasic(简称VB)6.0中的通讯控件MSComm为基础编写PC机的串行通讯程序,而用汇编语言编写下位机(F243)软件。上、下位机的串口程序流程分别如图3和图4所示。16C552的初始化程序如下:

;THE16C552INITIALIZATIONPROGRAM

C552_INIT:

LDP#00h

SPLK#83h,GSR0

OUTGSR0,0E003h;设置LCR

SPLK#34h,GSR0

OUTGSR0,0E000h;设置DLL

SPLK#00h,GSR0

OUTGSR0,0E001h;设置DLM

SPLK#03h,GSR0

OUTGSR0,0E003h;设置LCR

SPLK#08h,GSR0

OUTGSR0,0E004h;设置MCR

SPLK#01h,GSR0

OUTGSR0,0E002h;设置FCR

SPLK#01h,GSR0

OUTGSR0,0E001h;设置IER

RET

图4

4结束语

异步通信范文第2篇

当实现PC机与DSP的串行通讯时,通常可直接利用DSP的串行通讯接口(SCI)模块和SCI多处理器通讯协议(即空闲线路模式和地址位模式)来在同一串行线路中实现多个处理器之间的通讯,也可以采用SCI异步通讯模式实现串行通讯。这两种方式虽然都能方便地实现串行通讯,但它们都需占用系统较多的硬件和软件资源,因而不适用于对实时性要求比较高且系统资源紧张的应用场合。笔者在研制电力有源滤波实验系统中,由于采用了异步通讯芯片16C552,从而成功解决了这个问题。本文将从电路结构和软件编程两个方面介绍该方案的实现方法。

1 16C552简介

1.1 功能特点及结构框图

16C552是TI(TL16C552)和VLSI(VL16C552)等公司生产的异步通信芯片,具有两个增强的通用异步通讯单元通道和一个增强的双向打印机端口;支持TL16C450和FIFO两种模式,其16字节的FIFO可减少CPU中断;每个通道都具有独立的发送、接收、线路状态和设置中断功能,同时具有独立的MO-DEM控制信号、可编程的串行数据发送格式(包括数据位长度、校验方式、停止位长度)和可编程波特率发生器;另外,每个通道的数据和控制总线还具有三态TTL驱动功能。

TL16C552AM是TI公司的68脚PLCC(Plastic Leaded Chip Carrier)封装芯片,其管脚及功能框图如图1所示。从图中可以看出,它的串行口主要完成两个功能,一是把外设或调制解调器接收来的串行数据转换成并行数据;二是把CPU的并行数据转换成串行数据以便发送。在正常操作过程中,CPU可以随时读取16C552的状态信息,以报告16C552传输操作的类型和状态,包括各种错误状态,如奇偶校验、溢出、帧错误和FIFO错误等。此外,16C552还具有完整的MODEM控制功能,并有CTS、RTS、DSR、DTR、RI、DCD等信号端。

16C552具有一套完善的中断系统,可以自动设定优先级。它的串行口和并行口都可以独立地工作于中断和查询两种工作方式。

1.2 16C552的内部寄存器

16C552内部有12个单字节寄存器,这些寄存器占用了8个I/O口地址,其地址由A0~A2决定。其中有些寄存器共用一个I/O口地址,共用的I/O口可以通过读/写信号和线路控制寄存器(LCR)的D7位(DLAB)来进行区分,具体描述见表1所列,需要说明的是:只有当16C552的CS0或CS1为低电平时,串行通道才能被访问。

表1 I6C552的内部寄存器

DLABA2A1A0符 号寄 存 器LLLLRBR接收缓冲寄存器LLLHTHR发送保持寄存器LLLLIER中断允许寄存器XLHHIIR中断识别寄存器XLHLFCRFIFO控制寄存器XLHHLCR线路控制寄存器XHLLMCRMODE控制寄存器XHLHLSR线路状态寄存器XHHLMSRMODEM状态寄存器XHHHSCR高速缓存器寄存器HLLLDLL除数锁存器低位HLLHDLM除数锁存器高位关于各寄存器内容的具体规定,限于篇幅,这里不作详述,有兴趣者可参看TI公司的相关产品资料介绍,但在串行通讯应用中,要重点搞清楚FCR、LCR、IER等几个寄存器的内容。此外,在实际应用中,有时可能会忽视MODEM控制寄存器中的D4位,该位为自测试循环回送状态控制位,利用它可以对串口的自测试进行控制,因此,在自测试进行完毕后,还应对该位进行复位,以保证系统的正常运行。

2 通讯系统硬件接口电路

本系统的硬件接口电路如图2所示。其中,地址译码电路可以根据实际需要采用不同的电路实现。为了使系统使用灵活方便,本方案中采用一片CPLD来进行系统的地址分配。复位电路可以利用专用复位芯片,也可用上拉电阻方式实现。外接晶振可以自行选择,然后根据晶振频率设置除数锁存器的高位和低位,从而获得通讯系统正确的波特率,本系统中使用的晶振是8MHz。此外,由于16C552A有两个串行通道和一个标准并行口,它们相互之间的配合使用在硬件和软件上都要加以注意。建议将不用端口的片选接到高电平(16C552A的片选为低电平有效),以免出现错误。

3 串行通讯软件设计

3.1 通讯协议

本设计的通讯协议包括以下几点:

(1)波特率为9600。

(2)通讯命令由2个字节构成:第一个字节是同步字节0XFF;第二个字节是命令码,主要用来指示各种控制命令。

(3)每个字节包括8位数据位和1位停止位,无校验。

(4)在通讯过程中,上位机向TMS320F243发送同步命令,TMS320F243接收到后立即应答,若应答错误则重发。

(5)通讯程序向TMS320F243发送控制命令时,TMS320F243返回接收正确应答信号;通讯程序向TMS320F243查询系统参数命令时,TMS320F243按照规定格式返回所需数据。

PC机和TMS320F243均采用异步通讯方式,PC机采用事件驱动方式来接收数据,TMS320F243采用中断方式接收数据,而用查询方式发送数据。

3.2 上下位机通讯软件设计

在PC机上编写串行通讯程序至少有三种方法,分别为汇编语言、C语言和Visual系列通讯控件(MSComm)。相比较而言,Visual系列通讯控件能够用少量的代码轻松高效地完成编程任务。实际应用中,可用以Visual Basic(简称VB)6.0中的通讯控件MSComm为基础编写PC机的串行通讯程序,而用汇编语言编写下位机(F243)软件。上、下位机的串口程序流程分别如图3和图4所示。 16C552的初始化程序如下:

;THE 16C552 INITIALIZATION PROGRAM

C552_INIT:

LDP #00h

SPLK #83h,GSR0

OUT GSR0,0E003h ;设置LCR

SPLK #34h,GSR0

OUT GSR0,0E000h ;设置DLL

SPLK #00h,GSR0

OUT GSR0,0E001h ; 设置DLM

SPLK #03h,GSR

0OUT GSR0,0E003h ; 设置LCR

SPLK #08h,GSR0

OUT GSR0,0E004h ; 设置MCR

SPLK #01h,GSR0

OUT GSR0,0E002h ; 设置FCR

SPLK #01h,GSR0

OUT GSR0,0E001h  ;设置IER

RET

图4

4 结束语

异步通信范文第3篇

关键词:并行通信 串行通信 波特率

中图分类号:TP273 文献标识码:A 文章编号:1007-9416(2013)02-0036-02

1 概述

不同的独立系统经由线路互相交换数据,便是通信,而构成整个通信的线路称之为网络(Computer Network)通信。通信的目的不外乎数据的交换,由于数据必须经过交换才能由传送的一端到达另一个设备,传送端所使用的方法就是将数据经由一定的程序与线路送出去,接收端则依协议好的方式将数据收集起来并保存或显示在画面上。

通常是数据通信的方式可以分为两种:即并行传输式的通信(Parallel Communication)和串行传输式的通信(Serial Communication)(如图1)。

2 通信

2.1 通信种类及传输

2.1.1 并行传输式的通信(并行通信)

由图1可知,所谓并行通信是指数据传输时各个位同时发送。它的特点是数据的传输处理速度快,它一次可以传输8个位(一个字节)。但是需要多条传输线。这样在传输多位数据,或者是传输距离较长时,就会造成大量的资源消耗。而且在数据发送过程中容易因线路的因素使得标准电位发生变化,从而使得传输数据发生错误。在传输线较长时,电压衰减效应及信号间相互干扰问题(CrossTalk)会更加明显,数据的错误也就比较容易发生。因此,并行通信只适合于短距离,要求处理数据必须速度快的情况下。如:计算机与打印机的连接,或者是与近距离的外设之间的连接。

2.1.2 串行传输式的通信(串行通信)

串行通信是指数据传输时按位为单位一位位的发送。相比并行通信,虽然传输速率较慢,并行通信传输N位数据需要T时间,而串行通信则需要至少N*T时间。但一次只传输一个位,处理的数据电压也只有一个标准电压,因此不容易把数据漏失,再加上一些防护措施,串行通信的抗干扰能力就变得很强。而且它占用传输线少,大大降低了经济成本,非常适合远距离通信。

2.2 数据传输

串行通信中,数据通常是在两地之间进行传输,数据的传送速度BPS(Bit per Second)往往受到通信双方配备性能和通信线路的左右,就仪器或工业场合来说,9600bps是最常见的传输速度。一般串行通信端口所传送的数据是字符型,若用来传输文件,则会使用二进制的数据型。按照数据的传输方向可分为三种基本传输模式:单工(数据流动的方向始终固定为一个方向的通信方式。或者始终发送,或者始终接收)、半双工((Half Duplex)利用一条传输线既作输入有作输出时,数据虽然可以在两个方向上传输,但通信双方不能同时收发数据的传送方式))和全工((Full Duplex)指接收数据双方可以同时接收或者发送数据,一般全双工是利用两条数据传输线来传输数据,全双工的效率是半双工的一倍,因为它不必等待对方数据是否发送或接收完,可以直接进行运做)。RS-232使用的是全双工模式进行;RS-422及RS-485则分别使用全双工、半双工模式进行。传输方式如图2。

2.3 串行通信的同步方式

2.3.1 异步通信方式

在异步通信系统中,数据传输时是以独立字节方式传输的,每个字节前有一个起始信号,字节后有一个或多个终止信号,起始位到终止位构成一桢数据。为了保证同步接收器使用起始和终止信号。传输线在标记位置是处于空闲状态,当每个字节开始传输时,它前面的起始位是从标志位到空白的一个迁移。这个迁移表示一个字节开始传输。在传输最后,利用一个或多个终止位使传输线回到标志状态。这时,发送方准备发送下一个字节。

一般,起始位占用一位,字符编码占7位(ASCII码),第8位为奇偶校验位。停止位可占用一位、一位半或两位。因此,一桢数据便由10、10.5、或11位构成。

用这样的方式表示字符,则字符可以一个接一个的传送。在异步数据传输中,CPU与外设之间必须有两项规定:

(1)字符格式,几字符的编码形式、奇偶校验形式以及起始位和停止位的约定。

(2)波特率,即在串行通信中,每秒传送数据的位数。它表示对数据传送速率的约定。

异步通信的缺点是信息传输效率低,因为每传送一个字符都要附加上一些标志信息。异步通信应用在慢速场合。异步通信双方若时钟稍有误差,两个字符信息之间的停止间隔将为这种误差提供缓冲余地。因此异步通信方式容许有较小的频率漂移,这是它的优点。

异步通信的传送速率一般为50~9600波特,它通常用于计算机与CRT及终端打印机之间的通信。

2.3.2 同步通信方式

在异步通信方式中,每一帧数据都要包括起始位和终止位作为字符开始和结束标志,着就增加了传送时间。同步通信方式把字符连续接连起来,组成一个数据块,在数据块前面加上特殊的同步字符(SYN),作为字符块的起始信号,在数据块的后面加上校验字符,用于校验通信中的错误。在同步通信中字符之间无间隔,因而通信效率较高,通常为几十~几百(千)波特,但它要有时钟实现发送端与接收端之间的同步,因而硬件复杂.通常从传输数据流中提取同步信号。

同步方式的信息传输效率高,适用于高效率、大容量的数据通信中。(如图3)

(A)异步通信字符格式(如图4)

(B)同步通信的记录格式

3 结语

要想成功地实现单片机与PC机的串行通信,必须注意三点:一是通信格式;二是波特率,这两者地设置必须一致;三是单片机与PC机之间地应答信号传递,若传送或接收数据有误,由接收机发出信号请求发送机重新传送一次。

参考文献

[1]李华,孙晓民,李红青编著.《MCS-51系列单片机实用接口技术》.北京航空航天大学出版社,1993年8月.

[2]张毅刚,修林成,胡振江编著.《MCS-51单片机应用设计》.哈尔滨工业大学出版社,1992年4月.

[3]何立民编著.《单片机应用技术选编2》.北京航空航天大学出版社,1994年5月.

[4]于英民,孙全,莫玮编著.《计算机接口技术》.电子工业出版社,1996年6月.

[5]张毅刚,彭喜源,曲春波编著.《MCS-51单片机应用设计》.哈尔滨工业大学出版社,1997年12月.

[6]马家辰,孙玉德,张颖编著.《MCS-51单片机原理及接口技术》.哈尔滨工业大学出版社,1998年9月.

异步通信范文第4篇

关键词: Ajax;XMLHttpRequest;用户登陆系统

传统的Web页面重载机制给用户一种不连贯的体验,因此,关于页面载入技术的研究日益成为Web应用程序设计的关键[1]。Ajax采用独特的远程脚本调用技术,异步实现页面数据的更新,使用全新的网页应用程序设计模式,解决了传统页面的重载问题。

本文在介绍Ajax技术组成和基本原理的基础上,给出基于Ajax技术用户登陆系统的设计和实现过程。

1 Ajax技术简介

1.1 Ajax基本组成

Ajax不是一种单一的技术,而是四种技术的集合[2],即CSS、DOM、JavaScript和XMLHttpRequest对象。其中,CSS、DOM和JavaScript被合称为DHTML,即动态HTML, XMLHttpRequest对象可以与Web服务器异步通信,为用户带来响应速度快、交互感强的体验。

1.2 异步通信工作原理

与传统的Web应用不同,Ajax技术使用XMLHttpRequest对象提供与服务器异步通信的能力。当客户端的用户操作触发XMLHttpRequest对象后,客户端向服务器发送一个异步请求。方法非常迅速地返回,只会将客户端用户界面阻塞很短的时间。如果服务器端处理好客户端请求,向客户端发送响应数据。客户端通过一个回调函数解析来自服务器的响应,并根据响应数据更新用户界面。

2用户登陆系统设计与实现

现在,B/S结构三层模型占据Web设计的主流[3]

本文阐述的系统利用B/S结构三层模型

2.1 服务器端设计

本文使用Apache的Tomcat服务器,图1展示了登陆过滤器的设计流程。

在上面设计中,应用一个过滤器检查user对象是否保存在会话中。如果是,就允许用户登陆;否则,就根据请求中提供的用户名和密码来做身份验证,然后访问数据库寻找一行匹配记录。如果没有找到匹配记录,就会返回一条指令来显示出错信息;如果找到匹配记录,则创建一个新user对象并把它保存在会话中,以便下一次请求能够通过这个过滤器。这样,在后续的请求通过过滤器的时候,不再需要在查询框中提供用户名和密码,因为user对象已经在会话中。

2.2 客户端设计

客户端用户登陆过程由两个部分组成。第一部分是可视化界面部分,第二部分是用户登陆过程部分。 如图2所示。

2.2.1可视化界面设计

在表单中放入一个文本框、一个密码字段以及一个用来将表单提交到服务器的提交按钮。创建一个标签span,这样当用户名或者密码无效时,可以在其中显示来自服务器的出错消息。通过将整个表单放在标签div和span中,对HTML实现了格式化,以便产生门户的标题。

2.2.2用户登陆过程设计

登陆过程利用Ajax异步通信机制,允许客户端只发送用户名和密码到服务器,这样,客户端无需提交整个页面,从而减小了传输的数据量[4]

登陆过程需要执行两个操作:第一个操作收集信息,第二个操作是发送请求到服务器。

在操作收集过程中,用户输入用户名、密码字段,程序将放在一个将会提交到服务器的字符串中。然后将这些值通过AjaxUpdater对象提交到服务器。

AjaxUpdater对象是本文实现Ajax异步通信的方法,它可以接受参数,包括目标URL、请求成功时调用的函数、请求失败时调用的函数、使用HTTP方法以及包含提交参数的字符串。

AjaxUpdadter对象将会等待服务器返回一个XML文档,当数据从服务器正确返回时,将调用MakeScrip()函数,MakeScrip()函数将利用从服务器端获取的数据创建登陆后的窗口界面。

3门户登陆系统实现效果

通过对服务器端和客户端的设计和实现,用户可以使用这个门户登陆系统。如图3所示,在输入框中依次输入姓名和密码,点击“登陆”按钮,此时输入框下“正在登陆”信息提示用户客户端发送客户信息(而不是提交整个页面)到服务器端。

如果服务器在数据库中找到用户信息,那么用户登陆成功。此后,服务器在数据库中寻找用户的配置信息和用户登陆的网站地址,返回给用户端的回调函数。回调函数根据返回的信息创建三个子窗口装载相关网站,作为登陆后的窗口界面。如图4示。

4结束语

本文首先简单介绍了Ajax技术的概念和基本工作原理,然后利用Ajax技术设计并实现了一个简单的门户登陆系统,从而验证了Ajax技术快速、交互性强的异步通信的优点,并且为Web应用程序的研究深化奠定了基础。

参考文献:

[1] 杨国瑞, 张思博. 基于Ajax的Web应用架构设计[J]现代电子技术,2006,15 (230):95-98.

[2] Ryan Asleson , Nathaniel T Schutta. Foundations of Ajax[M]. 第1版,北京:人民邮电出版社,2006.24-36..

[3] Philip McCarthy. 面向Java 开发人员的Ajax :构建动态的Java 应用程序[ EO/ OL ] . http :/ / www 128. ibm. com/ developerworks/ cn/ java/ jajax1. 2005. 10. 20.

异步通信范文第5篇

关键词:可见光通信;LED;STC89C52RC

1 引言

可见光通信作为一种新兴的无线通信技术具有较大的研究和应用价值,LED可见光通信利用高速闪烁的光信号实现信息的调制和传输,通过光敏检测技术实现信号的光电转换,最终完成信息的发送和接收。

当前移动互联网产业蓬勃发展,人类进入了对信息量需求巨大的“大数据、云计算”时代,无线射频通信是目前正在使用的重要无线通信技术。射频无线通信广泛用于生产、生活的各个领域,是目前最成熟的通信技术,已经在很大程度上改变了人们的生产和生活习惯。在未来的无线通信发展过程中,射频通信仍将继续起着重要作用。

与射频通信相比,基于LED的可见光通信具有保密性强、对人体无害、无电磁干扰辐射等优点。可见光通信技术是基于环保节能的LED照明光源的无线光通信技术,随着科技的飞速发展和社会的不断进步,结合了LED照明和通信的无线光通信技术,必将凭借其自身的独优势得到深入广泛的应用。

2 系统原理分析

在可见光通信系统中,在信号发生模块利用STC89C52RC单片机驱动发射电路的LED灯阵高频率闪烁发射不同信号对应的二进制代码;在信号接收处理模块利用STC89C52RC单片机处理光敏二极管检测到的二进制闪烁信号,经过译码将对应的信息经串口发送给接收端,显示为可视的原始信号,上述过程主要基于STC89C52RC单片机的点对点异步通信和点对PC的串行异步通信,整个系统的基本原理如图1所示。

2.1 单片机串口异步通信工作原理

串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。

本系统基于单片机双机串行异步通信原理,将所发信号转换为对应的二进制代码,并以此驱动LED灯阵高频闪烁,双机之间不需要连接可视化介质作为通信媒介;避免了现有机间通信采用导线信道的缺点,而且可以实现一点发射,多点接收的效果,突破了以往实物信道通信过程的瓶颈,具有较高的通信效率和较低的损耗功率。

2.2 单片机与PC间串行异步通信工作原理

单片机与PC通信同样基于串行异步通信原理,PC信号发射端借助串口调试软件将信息输入系统信息发送端,随后信号经由PC传向通过USB转串口模块相连的单片机,单片机读取缓冲区的二进制代码,并以此驱动LED灯阵高频闪烁,接着持续完成单片机双机间通信,信息接收端通信过程则与之相反。

2.3 单片机最小系统

最小系统概念:能都使单片机硬件电路正常工作的单元电路系统叫做最小系统;

最小系统构成:复位电路、时钟电路、存储器访问路径控制、ISP下载接口、电流源、显示电路;

本系统中单片机最小系统工作原理:在最小系统的基础上分别在信号发射板和接收板上增添各自的调制驱动电路,并向单片机内导入对应的程序,利用最小系统及电路的组合驱动单片机运行程序并由此实现相应的功能。

3 系统组成设计

系统组成分为两个基本模块:发射板和接收板,系统组成原理框图,如图2所示,整个系统构建设计如下。

3.1 发射端PC机

用于系统终端输入和显示发射端的发送信息。

3.2 发射板USB转串口驱动模块

PC机与单片机间通信的桥梁,连接PC机和MCU控制模块,用于将发射端串口调试软件的输入信息传送到MCU控制模块。

3.3 发射板MCU控制模块

MCU模块为超强抗干扰、高速、低功耗的STC89C52RC单片机最小系统控制模块,能利用PC机中送来的数据控制和驱动lED驱动电路。

3.4 LED驱动模块

该模块主要由MCU的LED驱动电路和LED阵列光源组成。相关研究显示,环境光照度大于1501ux时,外界环境光对传输会形成干扰,当环境光照度小于此门限值时且光源足够强时,环境光的干扰基本可以忽略哺,因此系统光源采用直径5mm的3X8LED灯阵列,利用MCU模块传送的二进制信号值,采用光强度调制将电信号转换为光信号,实现调制并发送出可见光数据。LED驱动电路中,考虑到运算放大器的工作频率比较低,而单一晶体管可以完成百兆赫兹到吉赫兹级工作,所以系统中LED阵列驱动器件选择单一晶体管。

3.5 无线光通信信道

如图3所示是无线光通信系统的线性基带传输模型。

如图所示,F(t)是发射板输入的发射光,R是接收板光敏检测元件的响应效率,h(t)是基带信道的脉冲响应,N(t)是光噪声,Y(t)是输出光电流,其表达式为:

Y(t)=RF(t) h(t)+N(t):

Y(t)跟光敏检测器表面接收到的瞬时光功率的积分成比例关系。系统信道中的室内灯光、阳光等均可视为光噪声,可以采用光学滤光片和聚光镜对光噪声进行有效削弱。凸透镜能对发射光进行聚焦增强,并且能扩大光敏检测模块的探测范围。同时利用光学滤光片滤除杂散光,进一步可以提高信道传输质量,延长通信距离。

3.6 光电检测转换模块

接收板采用光敏检测模块接收可见光数据,利用光电二极管将光信号转换为电信号。光敏检测模块采用直接检测技术,将接收到的光信号经光电二极管还原成电信号。核心器件光电二极管接收到的光强和其自身的有效接收面积成正比,在视距链路中,接收端可以采用减小接收板距离或者增加透镜折射率的方法来增加光电二极管的有效接收面积。

3.7 接收板MCU控制模块

该模块的核心器件为STC89C52RC单片机最小系统,能对光电接收模块产生的信号进行处理,并将其还原为原始数据信息。

3.8 接收板USB转串口模块

用于连接接收端MCU控制模块到接收板PC机USB接口,将MCU控制模块串口发出的数据送入PC机串口调试助手中进行显示。

3.9 接收端PC机

用于系统终端显示接收端的接收信息。

4 结语

异步通信范文第6篇

关键词:农产品信息平台;Ajax(Asynchronous JavaScript and XML);多层体系结构;异步通信

中图分类号:TP393;S126 文献标识码:A 文章编号:0439-8114(2012)16-3619-03

Designation and Implementation of Agricultural Products Information Platform

Based on Ajax

YUAN Wen-zhuo1,HOU Yan-jun2

(1. Henan Provincial Commerce Department, Zhengzhou 450003,China;

2. North China Institute of Water Conservancy and Hydroelectric Power, Zhengzhou 450011,China)

Abstract: In view of the blocked agricultural marketing channels caused by asymmetry information, a simple and efficient information service platform about agricultural products was designed using multi-tier architectures based on Ajax. The system adopted the asynchronous communication to realize updating of local data without refreshing in dynamic pages. The information issued way based on instance was provided. The matching information was realized by means of automatically querying and embedded short message service. Thereby the platform was easy, efficient and convenient to be used in countryside.

Key words: information platform about agricultural products; Ajax; multi-tier architecture; asynchronous communication

中国是一个传统的农业大国,如何解决好农产品购销,促进农民增产增收,繁荣农村经济,有效缓解农产品买难卖难问题至关重要。随着经济技术的飞速发展,信息化已成为全球经济社会发展的显著特征,电子商务是一种网络化的新型经济活动,正在逐步取代传统的商务活动,成为新的商贸活动手段。便捷高效地开展农产品电子商务已是解决以上诸多问题的有效途径。

目前在中国开展农村电子商务的基本条件已经完全具备。“十一五”期间,中国已全面实现了“村村通电话、乡乡能上网”的农村通信发展规划目标,全国近50%乡镇建成乡镇信息服务站和县、乡、村三级信息服务体系,农村信息化水平得到整体提升[1]。据中国互联网络信息中心统计,截至2011年6月底,中国农村网民规模为1.31亿[2]。农民的整体文化素质及信息化应用水平已经全面提高,满足农产品信息平台应用要求。但现运行的农村电子商务网站大多存在内容多而不精、操作程序繁琐、利用率低等弊病。

鉴于接受服务的对象为广大农民,研究旨在设计一种符合农村发展现状及农民应用水平的简单、便利、高效的农产品信息服务平台,以使农民、农产品专业合作社及农产品收购商、农产品需求者等可以根据环境特点与自身条件,灵活选择通过计算机、手机或固定电话进行农产品供求信息的、查询及交易,系统通过自动配对实现产品对接。该平台具有友好的人机交互界面、简单的操作流程和便捷的数据维护方式。

1 基于Ajax的多层体系结构

Ajax(Asynchronous JavaScript and XML)技术[3-5]最早于2005年2月由Adaptive Path公司的Garrett提出。Ajax是一种交互式的网页开发技术,其实并不是全新的技术,而是JavaScript、XMLHttpRequest、DOM、XML、XHTML及CSS等技术的综合。在Ajax中,JavaScript是主体,用于将XHTML、DOM和XML等绑定,XMLHttpRequest是核心,用于实现与服务器的异步通信,一旦数据返回到客户端就可以立刻使用DOM实现动态显示和交互,XML用于请求数据和响应数据的封装,使用XHTML和CSS标准化呈现Ajax界面。由于Ajax技术的主要方式是通过异步JavaScript实现XML客户端脚本与Web服务器数据的交换,通过这种方式实现Web页面不用打断交互过程,动态地更新页面局部数据。

异步通信范文第7篇

关键词: 视频监控; Web Services; VSIP协议; OCX控件

中图分类号: TN948.64?34; TM417 文献标识码: A 文章编号: 1004?373X(2017)03?0015?04

Design of Web?based video management system under open architecture

WANG Zhili, LI Ying

(Jilin Medical University, Jilin 132013, China)

Abstract: An open architecture platform solution based on the video management system is proposed, which can improve the scalability and compatibility of the video monitoring system, and integrate and fuse the system with other platforms and sites effectively. The rationality of the open architecture solution based on video management system was verified with the practical development and testing. The video surveillance interface developed with Web Services is used in the system to connect the sites among each platform, make each unit easy joining, and has the guidance and reference significance for the integration capability of the video monitoring system and project subsequent scalability and compatibility.

Keywords: video surveillance; Web Services; VSIP protocol; OCX component

随着数字化、网路化对于整个监控行业的推动,监控系统进入了更加高速的发展阶段,为整个安防行业的发展提供了更加广阔的发展空间,与此同时,越来越多的领域都使用了视频监控系统,特别是高科技远程视频监控系统[1]。网络视频监控的飞速发展给生活带来安全保障的同时,也出现了它自身的缺陷。因此,有必要研发一种开放的视频监控平台,完成系统之间的跨语言、跨平台对接。

1 视频开放平台的总体设计

1.1 设计思想

基于视频管理系统的开放平台使用户可以简单方便地实现对视频监控区域的实时浏览,云台控制等功能,用户也可以根据该平台给出的相关接口进行二次开发,该平台给出的接口逻辑功能部分已经实现,只需要根据接口的规定传输数据即可。整个系统的工作过程如下:用户可以在浏览器下输入对应的访问地址,按照提示输入用户名、密码和服务器IP,若三者有一项错误,则登录失败,需要重新登录;若登录成功,则可根据服务器返回的句柄进行相关操作。该平台提供的接口逻辑部分已实现,并对外部做出了接口的说明,所以平台的整个实现中并没有包括客户端前端的编写。

1.2 工作原理

在设计的开放式架构中,依托VMS服务器设计了一套Web Services接口,它能够实现平台管理,设备管理,监控业务展现,存储管理等功能,能够实现平台对接,让第三方平台通过调用Web Services接口从服务器获取数据流。在本平台下搭建的Web Services接口的服务对象只包含VMS服掌鳎并不包含前端设备。在Web Services内部逻辑实现上主要用到了异步通信机制和VSIP协议。

1.2.1 异步通信工作原理

异步通信就是当前线程在执行时,需要外部I/O设备进行硬盘读写,网络通信等,但是外部设备I/O的速度与CPU的速度相差太远,所以没有必要等待I/O操作完成后再执行后续的代码。所以当前线程就将这个I/O操作的请求交给设备驱动去处理,而本身去执行其他的任务。异步通信进行网络操作时,主线程并没有挂起,而是继续执行任务,等到网络操作完成了,给出一个网络操作完成的通知,所以异步通信是一个明显的并行操作过程[2]。异步通信模式无疑比阻塞和多线程的模式效率要高很多。

1.2.2 VSIP协议工作原理

VSIP协议不是替代现行的通信协议,IP安全标准以及压缩算法,而是将实际中使用的标准通过一套规则整合在一起使用,在该协议中涉及的概念有GUID,VSIP应用和VSIP单元。GUID是一个标识符,它以单元为单位,对VSIP网络中的单元和单元的功能进行标示,由于使用了单元的MAC地址作为标记,所以对于每一个标示符都是惟一的。VSIP应用是指通过VSIP协议开发的上层系统应用软件。VSIP单元是指利用VSIP开发的设备单元。VSIP协议实质上就是系统的应用软件通过向设备单元发出一些命令和控制请求消息,在发现设备单元之后接收设备单元响应信息的过程。

1.2.3 OCX控件工作原理

在Web Services的内部实现上封装了很多可用的视频监控客户端需要的接口信息,通过该接口的实现信息可以开发OCX控件,用于在客户端获取视频监控信号,然后在Web页面上嵌入相应的OCX控件的代码,当用户第一次用网页登录时,提示下载安装OCX控件,下载安装完成后,用户可以通过用户名、密码登陆系统,查看视频的实时浏览、实时控制等相关功能。

1.3 开发框架的选择

目前企业开发Web Services的主流框架有两种,[.NET]框架和J2EE框架[3]。针对多层的分布式应用,两种框架都能够在Web Services的设计、集成以及安全可靠性能方面提供很多的指导和规范。

由于本文主要的任务是开发一种供视频监控系统和其他应用程序或者子系统相连接的Web Services接口,所以主要看两者对Web Services的支持力度[4]。从两者对Web Services的支持力度出发,主要从四个方面来比较,即前文中提到的服务实现、服务调用和执行、服务描述、服务、发现和绑定。具体的比较信息见表1。

1.4 平台模块组成

在整个Web Services接口设计中,复杂部分逻辑主要在内部实现,外部的调用者不需要知道内部实现的具体逻辑即可调用[5]。在Web Services的设计实现中,主要包含的设计部分如图1所示。

1.4.1 异步通信模块设计

使用完成端口的机制实现异步通信,完成端口的设计当中主要包括创建Socket套接字、创建绑定完成端口,监控完成端口,接收数据,发送数据,关闭完成端口。每次通信过程实现完成端口的异步通信模式都要通过这几步来完成。

1.4.2 VSIP协议模块设计

该模块主要利用VSIP协议对接收和发出的数据进行封装、解析、加密和解密。通过解密的数据再由VSIP协议解析后发送给业务逻辑层,逻辑层将传入的数据经过VSIP进行封装,再经过加密之后交给通信层发送。

1.4.3 业务逻辑模块设计

逻辑业务模块主要包含提供给各个子模块调用的系统接口,调用这些接口可以很好地实现实时浏览、云台控制、镜头ID获取,用户管理、报警模块、参数配置、前端设备参数等。

2 频开放平台部分功能的具体实现

2.1 协议通信层的具体实现

2.1.1 协议模块的消息定义

在协议通信模块中主要通过完成端口的异步通信模式实现通信[6]。先通过VSIP协议将数据进行数据封装、加密、解密以及数据解析等操作,然后通过异步通信的方式将数据包发送出去。

2.1.2 通信模块的结构体定义

选取I/O完成端口的通信方式。实现完成端口的步骤主要包含开始连接,开启接收线程,发送数据包,接收数据包,关闭完成端口,在.NET环境下完成端口的具体实现步骤如下:

(1) 首先,创建SocketAsyncEventArgs的类对象,并通过缓冲管理中心给该对象池中的对象分配缓冲大小。

(2) 创建服务器套接字,监听并接收基于Socket?AsyncEventArgs类对象的客户端连接。

(3) 如果有来访连接,接收对象取得控制权之后就开始接收数据。

2.2 多线程的具体实现

在本开放平台中,为了保证各个模块能够很好的配合工作,使用了多线程机制以保证程序的高效性。在本开放式平台中,包含以下线程:心跳连接,消息控制,视频码流,视频解码线程,视频显示,音频码流,音频解码,音频播放,录像下载以及消息通知。各种线程都是以消息控制线程为中心,具体线程关系图如图2所示。

(1) 心跳连接。为了保证程序与服务器之间的稳定连接,需在约定的时间内由程序向服务器发送一个判断套接字连接是否正常的消息包,即心跳包[7]。服务器通过在规定的时间内是否收到心跳包来判断连接状态。通过心跳连接可以确保通信连接的可靠性和有效性。

(2) 线程控制。在程序开启之后,控制线程就立即启动。控制线程开启以后,客户可通过调用登录接口创建具体的Socket连接,连接成功之后,就可以监听视频监控服务器返回的消息。

(3) 音视频码流。在整个视频监控系统中,最重要的是视频监控画面的展示,可能还会伴随声音的输出。视频监控画面的实时展示涉及到视频流的获取,所以在视频监控系统中,需要为视频码流的获取单独开启一个线程,音频也同样如此。

(4) 消息通知。视频监控系统中,在很多情况下有很多用户登录服务器,为了保持用户数据能够同步而不发生混淆,单独开启一个消息通知线程。通过服务器及时推送某些被更改信息的通知,根据通知消息的类型做出不同的操作。

(5) 录像下载。有时用户需要看以前的录像内容,而这些内容被保存在磁盘中,所以用户会根据需要下载指定时间段的录像内容,当用户调用录像下载函数时,则会马上开启录像下载线程,线程开启之后,视频监控服务器会给用户发送录像文件码流,并根据用户设置的保存路径保存录像文件。

2.3 业务逻辑模块的具体实现

2.3.1 服务器级别模块设计

由于在本设计中,开发的Web Services主要是为外部调用,而在其内部实现方式上主要是和VMS服务器[7]交互,因此在业务逻辑部分有很多的模块设计都是与服务器相关的,主要包含服务器版本信息获取、登陆和注销服务器、服务器时间获取、得到服务器句柄和IP,获取服务器的使用模式等。与服务器相关的接口框架设计如图3所示。

2.3.2 用户管理及权限模块设计

用户管理模块主要是为了对登录的用户进行管理和权限设置,主要包括用户管理和用户权限配置两个部分。用户管理模块的主要关系如图4所示。

2.3.3 云台控制模块设计

云台控制模块是针对具有云台的IP摄像机。云台用来连接摄像机和支架,内置解码器,云台除了具有在水平和垂直方向运动的功能外,它还遵循云台控制的标准协议,通过外部信号的控制实现指定速度的水平和垂直运动,光圈和焦距调节等功能[8]。在本平台中,云台控制模块主要包含云台控制台的运动,预置位信息的设置、辅助项信息的设置以及云台的绝对运动,如图5所示。

2.3.4 报警模块设计

报警模块主要负责监听报警设备产生的报警信息,通知视频监控系统,它是视频监控系统的重要组成部分。报警模块主要包含获取报警单元、设置和获取报警单元的信息、设置开关量报警单元、添加报警计划、查询报警计划等内容。报警模块的主要组成部分如图6所示。

3 开放平台的总体测试

3.1 测试内容

3.1.1 实时浏览功能测试

本模块的测试步骤如下:

(1) 通过IE浏览器访问视频监控平台的地址。

(2) 下载OCX播放控件并安装。

(3) 登陆视频监控平台。

(4) 选择播放主界面中的一个播放通道。

(5) 双击左侧镜头列表中的一个在线镜头,在播放通道内观察是否有视频显示。

预期结果:双击镜头列表中的一个在线镜头后,在播放通道内会显示正在监控的视频画面。若镜头是离线的,则在播放通道内无结果显示。经测试,发现实际结果与预期结果一致。

3.1.2 云台控制功能测试

云台控制模块的测试步骤如下:

(1) 通过IE浏览器访问视频监控平台的地址。

(2) 下载OCX播放控件并安装。

(3) 登陆视频监控平台。

(4) 选择播放主界面中的一个播放通道。

(5) 双击左侧镜头列表中具有云台标志的在线镜头,在播放通道内观察是否有视频显示。

(6) 在左侧页面分别点击上、下、左、右四个按钮,测试云台在这四个方向上的运动并观测播放通道内视频监控场景的变化。

预期结果:选中具有云台标志的镜头后,点击上、下、左、右四个按钮,播放通道里面的视频画面会向着对应的方向运动,对于没有云台的镜头,点击云台控制按钮,视频监控场景不会发生变化。经过测试,发现实际的结果与预期结果相一致。

3.1.3 多窗口播放功能测试

多窗口播放模K的测试步骤如下:

(1) 通过IE浏览器访问视频监控平台的地址。

(2) 下载OCX播放控件并安装。

(3) 登陆视频监控平台。

(4) 选择播放主界面中的一个播放通道。

(5) 分别点击监控界面下方的1,4,9按钮。

(6) 选择没有播放视频的通道,双击监控界面左侧列表中的镜头,观测监控画面的变化。

预期结果:点击1,4,9按钮后,监控界面的播放通道会跟着变化,选择其中一个播放通道,再点击列表的一个镜头后,该播放通道就会显示对应镜头的监控场景。经过测试,发现实际的结果与预期结果相一致。

3.1.4 录像检索功能测试

录像检索模块的测试步骤如下:

(1) 通过IE浏览器访问视频监控平台的地址。

(2) 下载OCX播放控件并安装。

(3) 登陆视频监控平台。

(4) 选择播放主界面中的一个播放通道。

(5) 选择一段时间内的录像资料。

(6) 在选择好的录像资料内定位到时间点,查看录像资料。

预期结果:选取一个时间段后,通过选取该时间段内的一个时间点,可以很快定位到该时间点的画面。经过测试,发现实际的结果与预期结果相一致。

3.2 测试结果及分析

经过一段时间的系统测试以及开放平台的稳定运行,认为该开放平台的设计达到了设计目标,可以满足用户实际的基本需求。在测试的过程中,由于使用的测试客户机配置比较陈旧,因此在开启多路窗口播放监控视频时会出现画面卡顿现象,测试在任务管理器中也可以看到CPU的占用率比较高,但是当换一个配置稍高的客户机时,画面基本能够保持流畅,若九路视频同时播放还是有一定压力的,占用的压力相对来说也会比较高,但是总体来说,该开放平台的接口能够稳定的工作,可靠性较高。

4 结 论

本文对基于视频管理系统的开放式架构进行了分析设计。首先对视频监控中的常用架构做了系统的阐述,并比较各自的优缺点,以Web Services结构作为开发的技术架构,然后选择.NET框架作为系统框架对系统进行总体设计和具体实现。最后利用IE客户端对已经开发出的Web Services接口进行调用和测试,测试结果显示,开放平台的接口能够稳定有效的运行,能够很好地支持客户端实现视频监测的功能。

参考文献

[1] 杨建全,梁华,王成友.视频监控技术的发展与现状[J].现代电子技术,2006,29(21):84?88.

[2] 刘佩贤,韩海花,杨志强,等.Web Services体系结构和应用研究[J].中国科技信息,2010(18):44?45.

[3] 袁宝良,张忠能,严学道和J2EE架构开发技术分析[J].计算机工程,2004(z1):91?93.

[4] 罗玲,白晓颖.Web服务技术分析[J].计算机科学,2004(4):19?23.

[5] 容芷君,应保胜,但斌斌.基于Web Services的设备管理系统的实现[J].武汉科技大学(自然科学版),2008,31(1):108?109.

[6] 刘磊,李连彬.Windows系统网络通信层性能及方法研究[J].计算机应用,2009,29(z2):4?7.

[7] 胡东红,杜光海,贺伟,等.基于完成端口模型的应用程序实现[J].物联网技术,2014,4(3):60?62.

异步通信范文第8篇

关键词:Ajax;异步交互;Web2.0;局部刷新

中图分类号:TP31 文献标识码:A文章编号:1007-9599 (2011) 16-0000-01

AJAX Technology Application in WEB

Shen Wei

(School of Computer Science and Technology,Soochow University,Suzhou 215006,China)

Abstract:Ajax technology is currently in the Web application is very extensive,synchronous interaction to change the traditional way to interact asynchronously,so the page can demand access to data in the background,foreground partial refresh,not only saves bandwidth,but also to a large extent improve the user experience.This system for Ajax in Web applications in the analysis.

Keywords:Ajax;Asynchronous interaction;Web2.0;Partial refresh

一、引言

当前,网络正迎来Web2.0时代,这个时代出现了大量的新技术,Ajax技术就是其中具有代表性的技术。传统的Web应用模式所采用的是同步交互方式,当服务器处理页面请求时,客户端的用户必须要等待,而且需要整个页面刷新来显示处理结果。这样造成了用户的体验变得不顺畅和不连贯。Ajax技术提倡的是异步交互式,可以让客户端在不刷新整个页面的情况下与服务器交换数据,从而生成局部刷新的动态网页。

二、Web2.0

目前,Web2.0尚缺乏统一的定义。在Web1.0中是以数据为核心,而Web2.0则是以人为核心,目的在于为用户提供更具有人性化的服务。从服务的角度看,WEB2.0将原来由少数资源控制者集中控制的自上而下的互联网体系,升级为由用户的集体智慧和力量主导的自下而上的互联网体系,将互联网的主导权交还到用户手中,从而充分鼓励了用户的积极参与性,使得互联网的创造力上得到了质的飞跃。

三、Ajax技术

Ajax的全称是Asynchronous JavaScript and XML,即异步JavaScript和XML。Ajax应用在客户端脚本与Web服务器之间用来交换数据的Web应用开发方法。Ajax不是指单独的一种技术,它由几种技术以新的方式组合而成。

(一)Javascript:一种常见并通用的脚本语言,用来嵌入在应用程序之中。浏览器中已经嵌入了Javascript解释器,允许程序来读取和使用浏览器的很多内建功能。Ajax应用程序是使用Javascript编写的。

(二)CSS:使用CSS(层叠样式表)可以为页面中的各个元素提供了一种可以被重复使用的可视化样式。在Ajax应用中,用户界面中各个元素的样式通常是通过CSS进行独立编辑和修改的。

(三)DOM:DOM(文档对象模型)是一种用于HTML和XML文档的编程接口。通过使用脚本程序来修改DOM,Ajax应用程序可以实现在运行过程中改变用户界面,或者高效地重绘页面中的某个部分。

(四)XMLHttpRequest:XMLHttpRequest对象允许Web程序员以后台活动的方式从Web服务器上获取需要的数据。它是用于进行异步数据的交互,是实现Ajax应用关键的核心技术。

四、Ajax应用原理

传统的Web应用在用户填写好表单并提交表单时,向Web服务器发送一个请求,服务器接收并处理传来的请求,然后返回一个新的网页,而这前后两个网页的大部分内容往往是相同的。而Ajax应用可以单独将一些需要的数据向服务器发送并取回,并在客户端利用JavaScript编辑器来处理服务器的响应。

Ajax引擎在用户与服务器之间进行通信,将需要服务器响应的数据传回给服务器,并根据响应结果局部刷新用户所看到的界面。另外,由于Ajax只是和服务器端进行数据层面的信息交换,而对于浏览器页面显示、校验数据等功能则由Ajax引擎自己来完成。可以看出,Ajax把一些原本属于服务器端的工作,转移到了客户端,有效利用了客户端的闲置资源,从而从根本上减轻了服务器的负担。

五、通过XMLHttpRequest实现异步通信

实现异步通信关键技术是XMLHttpRequest,XMLHttpRequest实现的具体步骤如图3所示。用XMLHttpRequest进行异步通信,必须首先用JavaScript创建一个XMLHttpRequest对象实例。接着利用它的onreadystatechange属性,设定XMLHttpRequest对象的回调函数,该函数用来处理服务器响应信息。然后设置请求的属性,如用GET还是POST方式来发送请求等。将设置好的请求发送给服务器,并处理服务器的返回信息。根据服务器的返回结果来局部刷新页面,从而实现异步通信。

六、结束语

作为一种应用在客户端的技术,Ajax技术实现了客户端和服务器之间的异步数据交互,即相当于把原来C/S结构下才能实现的交互效果移植到了B/S结构的Web应用中,且这种效果的实现并没有增加C/S结构下无可避免的客户端部署工作。由于Ajax技术优秀的用户体验,使开发人员愿意编写出更加稳定高效的Ajax程序,从而推动Ajax技术的广泛应用。

参考文献:

[1]柯自聪.Ajax开发精要[M].北京:电子工业出版社,2006

[2]利.Web2.0的技术特点和信息传播思想[J].长春:现代情报,2005

[3]张桂元,贾燕凤,姜波.征服Ajax――Web2.0快速入门与项目实践(Java)[M].北京:人民邮电出版社,2006

[4]周之诚,江峰.Ajax在图书馆网站中的应用与实践[J].上海:图书馆杂志,2009,1

异步通信范文第9篇

关键词:XML WEB服务 同步通讯 异步通讯

中图分类号:TP311 文献标识码:A 文章编号:1007-9416(2012)11-0168-01

1、XML Web服务比较

我们的XML Web服务客户端应用程序已经调用了XML Web服务方法并等待相应,阻塞应用程序的处理直到Web方法返回,这种方式被称为同步通讯,是消费XML Web服务时应用的最普遍也最容易理解的方式。不过,有时候您可能想让您的客户端应用程序在等待XML Web服务的相应时继续处理其他任务或让应用程序许用户交互。异步通讯将允许您调用XML Web服务方法并立即向应用程序返回的内容。您的应用程序可以自由地承担其他任务,包括发出更多的异步请求,然后在异步操作完成后回来处理XML Web服务的响应,图1和图2对同步和异步通信做了一番比较,并显示了在通信流程上的不同之处。

在图1中,客户端在继续处理操作前必须等待XML Web服务的响应。

图1 同步通讯流程示意图

使用异步通讯时,客户端不必等待XML Web服务的响应,客户可以处理其他任务并且发起另外的异步请求,然后回来处理XML Web服务的响应。

图2 异步通讯流程示意图

异步通讯是一个强大的工具,他能够让你更好地控制应用程序的执行,不过,如果没有必要的时候,应该避免使用异步通讯。异步通讯将使您的应用程序复杂化并且难以调试。此外,异步请求不一定按照他们被提交的顺序返回。这种行为允许您的应用程序不安顺序执行操作;如果使用不当,异步请求将使您的应用程序出现异常行为,并且使用户无法适从。

2、异步XML Web服务的实现

与XML Web服务的异步通讯所必要的功能可以在客户端完全实现。您不必采取特别的行动使您的XML Web服务支持异步通讯。因此,我们目前开发的XML Web服务都能够使用使用异步通信的客户。

步骤一、在WEB Service后台代码文件的顶部插入一条语句,导入System.Threading命名空间,导入这个命名空间可以让代码访问Thread类。

3、结语

在本文中利用.NET框架,使用简单的数行代码就可以实现中XML WEB服务的异步通讯的编写。在应用程序开发中可以任意的调用该服务完成异步通讯。

参考文献

[1]孙更新,肖冰,彭玉忠.XML编程与应用教程.北京:清华大学出版社,2010.5.

异步通信范文第10篇

关键词:DZlink协议;RS232;串口编程;CRC16校验;多线程

中图分类号:TP393文献标识码:A文章编号:1009-3044(2012) 04-0796-03

Research and Application of DZlink Protocol in Serial Communication

DONG Fei1, DONG He-gang2

(1.Tongji University, Shanghai 201804, China; 2. SH.dzrcs, Shanghai 201804, China)

Abstract: The application of DZlink protocol in RS232 serial communication is presented, and displayed the experiment of DZlink proto? col between two computers via rs232 serial communication.

Key words: DZlink protocol; RS232; serial communication; CRC16 check; multithread

随着计算机技术的不断发展,利用计算机进行数据通信在现代工业生产和过程控制中得到了越来越广泛的应用。RS232串口通信接口是IBM-PC极其兼容机上的串行连接标准,适用于PC串口和设备间点对点的通信。当采用DZlink通讯协议后,可以方便快速可靠地实现对控制器的控制。

1 DZlink通信协议简介

DZlink协议定义了通过RS485串口线来实现Master设备和Slave设备间的数据交换格式,指定数据以字节形式传输,基于所交换的信息类型,每一个字节都有特定的意义。

1.1数据帧描述

开始位:每个帧的开始字节,用于区分不同的数据帧,其值总为01。地址位:其值范围0~127,即可以接128个不同的设备

控制位:可以是任意数据,但是Master和Slave中此值必须相同信息位:00表示Master帧,01表示Slave帧

命令/响应位:高低字节共同组成了这个字段发送帧:(16进制)

表2命令帧数值

数据位:包含实际传输的数据值

校验和:从第二位到最后一位,每一位之间的异或值即为此帧的校验和。DZlink协议的数据帧中必须包含校验位,如果接收端计算出的校验位跟收到的帧中的校验位不一致,那么就说明数据帧的传输过程中出现了错误,应丢弃此帧,并要求重发数据帧。

1.2 DZlink协议所支持的参数类型

DZlink协议一共支持VOID,BOOLEN,SHORT_INT, LONG_INT, UNSIGNED_SHORT_INT, UNSIGNED_LONG_INT, FLOAT_SIN? GLE_PRECISION等7种类型的数据,在数据帧中,用唯一的数据值代表和区分不同的数据类型。其中浮点型数据服从IEEE-754标准(单精度)。

2串口通信

2.1串行通信分为同步通信和异步通信两种方式

同步通信是指在约定的通信速率下,发送端和接收端的时钟信号频率和相信始终保持一致(同步),这就保证了通信双方在发送和接收数据时具有完全一致的定时关系。同步通信传送信息的位数几乎不受限制,通常一次通信传的数据有几十到几千个字节,通信效率较高。但它要求在通信中保持精确的同步时钟,所以其发送器和接收器比较复杂,成本也较高,一般用于传送速率要求较高的场合。

异步通信是指通信中两个字符之间的时间间隔是不固定的,而在一个字符内各位的时间间隔是固定的。异步通信规定字符由起始位(start bit)、数据位(data bit)、奇偶校验位(parity)和停止位(stop bit)组成。但是异步传送一个字符,要增加大约20%的附加信息位,所以传送效率比较低。异步通信方式简单可靠,也容易实现,故广泛地应用于各种微型机系统中。

2.2利用RS232进行串行通信的一般步骤如下

1)打开串口

在32位PC中,串口和其他通信设备都被作为文件进行处理,使用之前必须打开,调用GetCom()->Open(int comId)打开,串口一旦被打开后,其他的应用程序将无法打开或使用这个串口。

2)设置串口

进行串口通信前必须对其进行配置,主要对串口的波特率、数据位、停止位、奇偶校验位进行设置,通过GetCom()->Set? State(baud, byteSize, parity, stopbits)函数即可,注意,必须对串口通信双方进行相同的设置。

3)超时设置

在串口通信时,如果数据传输突然中断,对串口的读写操作可能会进入无限期的等待状态,为避免这种情况的发生,必须对串口的读写设置等待时间,如果数据在等待时间过后还没有到达,就认为发生了中断或者丢包,就再次请求发送方发送数据。这样在数据传输后如果中断或者丢包,程序也不会被挂起或阻塞,本文中采用对COMMTIMEOUTS结构体进行设置实现超时设置。

4)数据读写

在对串口进行一系列设置之后,Master和Slave端就可以通过串口进行读写操作了,对串口的读写操作可以通过查询、同步、异步和事件驱动的方式进行,主要是通过函数ReadFile和WriteFile来实现的。

5)关闭串口

在串口使用完之后应将其关闭,否则其他程序就无法打开或使用该串口,通过函数GetCom()->Close()完成

3 Master和Slave端软件的设计

3.1 Master端

在对串口进行相关设置完成并打开串口之后,就可以利用串口进行通信,Master端采用MFC界面控件编程知识,所有参数和数据都从控件中读取,读取参数和数据后进行压缩数据包,然后发送给Slave端。

3.2 Slave端程序

Slave端的串口设置信息与Master端的相同,在Slave端程序内部采用CEvent实现线程同步,当Slave端收到数据进行解析后,根据Master端发送来的命令返回相应的数据。

Cevent类提供了对事件的支持。事件是一个允许一个线程在某种情况发生时,唤醒另外一个线程的同步对象。事件告诉线程何时去执行某一给定的任务,从而使多个线程流平滑。Cevent类经常用在网络应用程序中,一个线程(记为A)负责监听通信端口,另一个线程(记为B)负责更新用户数据。通过使用CEvent类,线程A可以通知线程B何时更新用户数据,这样线程B可以尽快地更新用户数据

4实际应用

磁热理疗仪系统是具有上位机和控制器的一个系统,上位机根据具体的设置(时间,温度,强弱和腰肩标准显示等)发送给控制器,然后控制器根据相应的命令返回上位机所要读取的数据,随时监控控制器的运行。DZlink协议很好的应用到次磁热理疗系统中,图2是实际运行结果图:

图2触摸屏界面

实际情况表明:采用基于DZlink协议的RS232通信,具有稳定、可靠、实用性强的特点,有效的保证了磁热理疗系统的运行。

5结束语

通信协议是工业控制领域的基础,准确和高效是衡量一个通信协议好坏的关键。DZlink协议是一种基于串口通信的通信协议,简单有效,已经在众多项目中得到了成功的应用,当采用DZlink协议后,可以方便准确的的实现对不同生产现场的控制设备进行组网,便于集中监控。

参考文献:

[1]陈细军,谭民.VC编程中的串口通信技术[J].计算机应用,2001,21(9):94-95.

[2]肖凯,张贤斌.Modbus协议在串口通讯中的研究及应用[J].长江工程职业技术学院学报,2007,24(1):30-32.

[3] NELSON M.串行通信开发指南[M].潇湘工作室,译.北京:中国水利电力出版社,2000.

[4]李现勇.VC++串口通信技术与工程实践[M].北京:人民邮电出版社,2002.

上一篇:socket通信范文 下一篇:国人通信范文