串行数据

2024-10-27

串行数据(共10篇)

串行数据 篇1

在计算机控制与网络技术不断推广和普及的今天, 串行接口技术简单成熟, 性能可靠价格低廉, 软硬件环境条件要求不高, 广泛用于计算机、PLC、单片机、监控模块等领域。在现代通信技术和网络通信中发挥重要作用, 如何实现计算机控制系统各种接口技术。本文对RS-232、RS-422A和RS-485三种常见接口数据线工作方式、基本参数和选择应用进行深入分析, 供在实际工作中参考使用。

一、数据线通信基本原理和特点

通信接口一般有并行通信接口和串行通信接口两种。并行通信方式的并行数据通信是以字节为单位的数据传输方式, 除了8根或16根数据线、一根公共线, 还需要通信双方联络用的控制线。其特点是传送速度快, 传送线根数多;但是, 抗干扰能力差, 一般用于短距离数据传送。串行通信方式的串行数据通信是以二进制的位 (bit) 为单位的数据传输方式, 每次只传送一位, 最少需要两根线 (双绞线) 就可以连接多台设备, 组成控制网络。其特点是串行通信需要信号线少, 具有一定抗干扰能力, 适用于距离较远的场合。计算机和PLC都有通用的串行通信接口, 两者连接方便, 为数据传送和网络化远程控制提供良好的环境条件, 而且工业控制计算机之间的通信一般采用串行通信方式, 所以, 串行通信广泛用于自动化控制系统。

串行口通讯的工作过程, 1.接收数据的过程。通信时, 首先确定串行口的工作状态, 当REN为1时, RXD端允许串行口接收串行数据;当REN为0时, 禁止串行口接收数据。所以通讯时该口处于允许接受数据状态;其次, 在接收端收到一个起始信号 (低电平信号) 后, 数据采样、接收标志位置位, 向CPU发出中断申请, CPU响应中断, 取走数据, 经清零后完成一帧数据的接收。接着启动下一轮的输入过程, 直到所有数据输入完毕。2.发送数据的过程。CPU发送数据时, 在发送控制器的作用下, TXD端首先发送一个起始信号, 其次由低到高逐位发送数据, CPU发出中断申请, 完成一帧数据发送。CPU响应中断, 接着启动下一轮的发送过程, 直到所有数据发送完毕。

二、常用串行通信数据接口线的工作方式

1. RS-232C。

RS-232C是RS-232发展而来, 是美国电子工业联合会 (EIC) 在1969年公布的通信协议, 至今任在计算机和其它相关设备通信中得到广泛使用。当通信距离较近时, 通信双方可以直接连接, 在通信中不需要控制联络信号, 只需要3根线, 即发送线 (TXD) 、接收线 (RXD) 和信号地线 (GND) , 便可以实现全双工异步串行通信。工作在单端驱动和单端接收电路。计算机通过TXD端子向PLC的RXD发送驱动数据, PLC的TXD接受数据后返回到计算机的RXD数据端子保持数据通信。如图1所示, 由系统软件通过数据线传输数据;如“三菱”PLC的设计编程软件FXGP WIN-C和“西门子”PLC的STEP7-Micro/WIN32编程软件等可方便实现系统控制通信。其工作方式简单, RXD为串行数据接收信号, TXD为串行数据发送信号, GND接地连接线。其工作方式是串行数据从计算机TXD输出, PLC的RXD端接收到串行数据同步脉冲, 再由PLC的TXD端输出同步脉冲到计算机的RXD端, 反复同时保持通信。从而实现全双工数据通信。

2. RS-422A。

RS-422A采用平衡驱动、差分接收电路, 如图2所示, 从根本上取消信号地线。平衡驱动器相当于两个单端驱动器, 其输入信号相同, 两个输出信号互为反相信号。外部输入的干扰信号是以共模方式出现的, 两根传输线上的共模干扰信号相同, 因此接收器差分输入, 共模信号可以互相抵消。只要接收器有足够的抗共模干扰能力, 就能从干扰信号中识别出驱动器输出的有用信号, 从而克服外部干扰影响。在RS-422A工作模式下, 数据通过4根导线传送, 因此, RS-422A是全双工工作方式, 在两个方向同时发送和接收数据。两对平衡差分信号线分别用于发送和接收。

3. RS-485。

RS-485是RS-422A的基础上发展而来的, RS-485许多规定与RS-422A相仿;RS-485为半双工通信方式, 只有一对平衡差分信号线, 不能同时发送和接收数据。使用RS-485通信接口和双绞线可以组成串行通信网络, 如图3所示。工作在半双工的通信方式, 数据可以在两个方向上传送, 但是同一时刻只限于一个方向传送。计算机端发送PLC端接收, 或者PLC端发送计算机端接收。

三、性能参数分析

1. 主要参数含义。

(1) 传输距离, 信号传递中不衰减的最小距离, 反映信号传输距离的基本性能。在选择中分为近距离数据线和远距离线, 在实际中视具体情况而定。 (2) 数据传输速率是指单位时间内, 在数据传输系统的相应设备之间实际传递的平均数据量, 或者说单位时间内传输的信息量, 又称有效数据传输率, 单位:b/s或Mb/s;数据传输数据反映了终端设备之间的信息传输能力, 是衡量系统传输性能的主要指标, 实际中数据传输速率越高越好。 (3) 输入输出阻抗, 要求数据线输入阻抗要高, 信号损失小, 输出阻抗要低, 带负载能力强。 (4) 输入电压阀值, 即数据线接口工作的最低电压。

2. 三种通信接口数据线性能参数比较。详见表1。

四、接口应用

1. RS-232/232C

RS-232数据线接口简单方便, 但是传输距离短, 抗干扰能力差。为了弥补RS-232的不足, 改进发展成为RS-232C数据线, 典型应用有:计算机与Modem的接口, 计算机与显示器终端的接口, 计算机与串行打印机的接口等。主要用于计算机之间通信, 也可用于小型PLC与计算机之间通讯。如三菱PLC等。

2. RS-422/422A,

RS-422A是RS-422的改进数据接口线, 数据线的通信口为平衡驱动, 差分接收电路, 传输距离远, 抗干扰能力强, 数据传输速率高等, 广泛用于小型PLC接口电路。如与计算机链接。小型控制系统中的可编程序控制器除了使用编程软件外, 一般不需要与别的设备通讯, 可编程控制器的编程接口一般是RS-422A或RS-485, 用于与计算机之间的通讯;而计算机的串行通讯接口是RS-232C, 编程软件与可编程控制器交换信息时需要配接专用的带转接电路的编程电缆或通讯适配器。网络端口通讯, 如主站点与从站点之间, 从站点与从站点之间的通讯可采用RS-485。

3. RS-485是在RS-422A基础上发展而来的;

主要特点, (1) 传输距离远, 一般为1200m, 实际可达3000m, 可用于远距离通信。 (2) 数据传输速率高, 可达10Mbit/s;接口采用屏蔽双绞线传输。注意平衡双绞线的长度与传输速率成反比。 (3) 接口采用平衡驱动器和差分接收器的组合, 抗共模干扰能力增强, 即抗噪声干扰性能好。 (4) RS-485接口在总线上允许连接多达128个收发器, 即具有多站网络能力。注意, 如果RS-485的通讯距离大于20m时, 且出现通讯干扰现象时, 要考虑对终端匹配电阻的设置问题。RS-485由于性能优越被广泛用于计算机与PLC数据通讯, 除普通接口通信外, 还有如下功能;一是作为PPI接口, 用于PG功能、HMI功能TD200 OP S7-200系列CPU/CPU通信。二是作为MPI从站, 用于主站交换数据通信, 三是作为中断功能的自由可编程接口方式用于同其它外部设备进行串行数据交换等。

结束语

以上是几种常见通信数据接口线, 还有一些比较特殊通信数据接口线, 如RS-423、RS-449等, 虽然形状插接形式不同, 但它们的工作方式基本相似;又如配有USB接口转接数据线等, 另外, 不同的PLC使用通讯连接线内部是不同的, 比如西门子S7-200的PLC与欧姆龙的PLC的连接线外部封装相同, 但连接线内部接线是完全不同的, 所以不能相互替代使用只要掌握它们性能特点应用对象和通信功能方式等, 就能更好使用它;数据线通信是计算机与设备之间, 设备与设备之间不可缺少信息联络线, 是实现各种自动化控制接口的桥梁和纽带, 在计算机控制系统中发挥着不可替代的作用。

参考文献

[1]赵伟, 宫国顺, 韩雪松.计算机应用基础[M].北京:北京交通大学出版社, 2011.

[2]谢丽萍, 王占富, 岂兴明.PLC快速入门与实践[M].北京:人民邮电出版社, 2010.

[3]张梦欣.单片机原理与接口技术[M].北京:中国劳动社会保障出版社, 2009.

[4]乔桂红.数据通信[M].北京:人民邮电出版社, 2011.

[5]李江全, 刘荣, 李华, 等.西门子S7-200PLC数据通信及测控应用[M], 北京:电子工业出版社, 2011.

说说串行这件事 篇2

关于《何以笙箫默》是否真的很烂,抑或真的是经纪人黄斌导致的“烂” 果,这是个见仁见智的问题,不是我们今天要讨论的重点。我们更有兴趣了解的是,一个经纪人究竟是怎样变成一个导演?而且,似乎当下票房好的电影,几乎都不是真正的导演的作品,有作家,有歌手,有演员,所谓外来的和尚好念经,真的是串行的买卖才能挣钱么?

渊源:反串

说起串行,表演行业自古有之,最早是起源于中国的传统戏曲表演中,只是过去正式的说法叫“反串”,但这个反串并非现在人们通常所理解的那种男扮女或女扮男的反串,而是指演出与自身本工的行当不同的戏的情形,譬如说演小生的演员去演花旦,或者演花脸的演员去演老旦,这叫反串,是与演员以及剧中人的性别无关的。说个最简单的例子,譬如梅兰芳本身是男的,但他工旦行青衣,所以他在《贵妃醉酒》里演女性角色杨贵妃不叫反串,而他在《辕门射戟》里扮演男性角色吕布就叫反串了。

戏曲演员中,有很多人都是有这种反串能力的。譬如著名京剧演员李慧芳,正行是唱青衣的,但人家戏路宽广,一专多能,除了青衣,老生、小生、花旦、刀马旦、老旦等各行全能,形成她特有的“杂家”风格,经常在一个剧目中扮演两个不同行当的角色,如在《四郎探母》中,前饰公主,后饰四郎;在《吕布与貂蝉》中,前饰貂蝉,后饰吕布。这种表演在戏曲行还有个通常的说法叫“一赶N”,就是指一个人在一出戏里扮演多个不同行当或身份的角色;还有种说法叫“一脚踢”,常常会说某个演员“四大名旦一脚踢”,意思是指这个演员梅(兰芳)派、尚(小云)派、程(砚秋)派、荀(慧生)派的风格都会唱,指的是一种表演能力。

这种表演形式并不只出现在中国戏曲里,话剧表演里也常常会有这种情况,尤其是在实验性质的小剧场话剧里,譬如著名导演孟京辉的名作《盗版浮士德》中,演员陈建斌和杨婷就在戏中分别扮演了十几个不同的角色,但这个时候,也基本上不再是原来戏曲中反串的定义了。

兴起:春晚

串行也不仅局限于同一个表演体系内,现在我们比较多见到的串行,往往都是跨表演领域的,譬如改革开放后最早的串行,应该算是1983年央视首届春节联欢晚会上,相声演员姜昆跨行担任了主持人,而电影演员刘晓庆则跨行唱了两首歌(当然人家本身就是音乐学院毕业的),另一位电影演员斯琴高娃还表演了舞蹈。后来这种表演形式在历年的春节晚会上都大受欢迎,譬如歌手李谷一唱京剧、唱花鼓戏,影视演员刘晓庆、张国立担任主持人,主持人朱军唱歌演小品,歌手韦唯唱京剧,京剧演员尚长荣唱流行歌,几乎每年的春晚都会有这样的安排,今年的春晚甚至专门安排了这么一个环节,就叫“反串”,很显然观众也都很喜欢,因为首先是表演形式充满新鲜和惊喜,而另一方面,也让人们看到了喜爱的明星不为人知的其他表演能力,是一个各方加分皆大欢喜的事情。

一件事,有一个人做成功了,马上就会有无数人赶紧效仿,这是几千年不变的中国国情,串行这种风潮,大抵也就是从这里风生水起并蔚然成风的。

发展:跨界

1 有一种串行是因“优”而串

串行这件事情,偶尔为之,可以叫做玩票,主要是图开心图个即时效果,譬如朱军在春晚被人起哄,唱了一嗓子西北民歌,其实唱得很专业也很惊艳,但朱军并没有因此在歌唱方面做专门的发展,这就只叫玩票,甚至包括戏曲频道主持人白燕升都出了几张流行专辑,都只在玩票的范畴。但也有变成职业行为的,那就是真的串行了。港台演员在这方面一直走在前列,一个艺人同时兼具歌手、演员、主持人甚至是其他行当的身份,在港台演艺圈是再正常不过的事情,譬如香港歌手谭咏麟、张国荣、梅艳芳、刘德华、郭富城、张学友、叶倩文、郑秀文,都演过电影,其中不少还是影帝影后级的人物;台湾歌手中演过电影的也不在少数,但相比演电影,台湾歌手们在主持领域显然表现更为精彩,譬如我们现在所熟悉的综艺主持人吴宗宪、陶晶莹都是歌手出身,而庾澄庆、张宇、张清芳等也都曾是综艺节目的著名主持人。娱乐圈曾经特别流行两个词叫“唱而优则演”或“演而优则唱”,说的就是这种现象。

“演而优则导”的在电影圈中也特别常见,像国外的克林特·伊斯特伍德、梅尔·吉布森、罗伯特·雷德福、西恩·潘等影帝级人物同时也都是优秀的电影导演,而华人演员中,周星驰、姜文、张艾嘉、尔冬生等也都是从演员转型导演的成功代表。可能好多人不曾了解,大导演张艺谋也曾经是演员,1988年就曾以电影《老井》拿下过第2届东京国际电影节的影帝大奖。

这里提到的串行,无论是“唱而优则演”“演而优则唱”“唱而优则说(主持)”还是“演而优则导”,当中都少不了一个“优”字,这个“优”字代表了两层含义:一是当事者在自身首先被主要认定的行业中已经做到了“优”,而串行之后的他们,在串起的行业中依然干得相当出色,或者至少是在往出色的方向努力,串行者自身的能力是足以驾驭不同行业素质要求的,所以人们对于这种串行往往是更多持肯定和赞许态度的,也因此在一个时期里,人们只要一看到某位在某个行当已经取得杰出成就和广泛肯定的明星宣布要尝试另一个不同的行当时,很多人其实是充满期待的。

2 有一种串行是因“工”而串

当然也有的串行并非是因为艺人本身具备了串行的优质潜力,而仅仅是工作需要,只不过有的是因为具体的表演需要,有的就是因为长远事业打算的。前者如影坛天后张曼玉和章子怡都先后上过春晚唱歌,但那就是为了完成一个节目。再如很多话剧演出中,常常就有角色需要现场歌唱,像孟京辉的经典话剧《恋爱的犀牛》中,主演郭涛就得有大段的演唱,这个时候的串行就是一种角色行为,同样的,姜文和张艺谋都曾为电影《红高梁》演唱过《妹妹你大胆地往前走》,这种行为,其实就是另一种方式的角色表演,没有人会在乎他们到底唱的如何,符合角色需要即是成功。

但也有的这种串行并没有只停留在一次性的角色行为上,譬如前面我们就提到,在港台地区,艺人基于职业全面性发展的要求,即便再不会唱,他们也得按照公司的要求出唱片或演电影,譬如刘嘉玲、吴君如、周润发等都是出过专辑的,而且也都有一两首经典作品,林忆莲也是演过电影的,这些都是演艺经纪公司为了拓宽艺人事业发展增加艺人的市场占有率而设计的行为。就拿影视演员出歌这件事来说,很多人这样做就是为了多获得一些演出机会,因为对于演员来说,你只有能拿出一两首自己的歌,才能堂而皇之地去走商演挣钱,毕竟没有哪一场商演能接受一个演员就是出来亮个相而已,总还得表演一个节目吧?演小品需要人配合,跳舞需要专业技术,当然就是唱歌来得更容易,就算不会唱还可以还音(假唱)对口型,然后轻轻松松就把几万几十万的劳务挣到了,人家当然得时不时就出一两张专辑几首新歌;还有的歌手,唱歌就是红不了,那不如串行演戏吧,没准儿换个场地就能火起来呢,这不,吴秀波和柳云龙都是活生生的例子,如此,这能不让其他的人眼馋着就赶紧也各自串起来么?

演变:“窜”行

1 明星出书

上面所说的这些串行,无论是歌手串到影视行,还是影视演员串到歌手行,好歹都还是在表演领域内串,毕竟表演是相通的,而且很多科班出身的演员,无论是歌手还是演员,基础的声乐和形体训练都还是会有的。但后来有些串行,就慢慢有些偏离轨道了。

还记得宋丹丹和赵本山演的那个著名小品《昨天·今天·明天》中白云的一段话不?“人倪萍不是都出了一本书,叫做《日子》,我寻思着那我也出本书,就叫《月子》”;赵本山演的黑土接着说:“那我也出一本,就叫《伺候月子》!”这段戏讲的就是一直盛行到现在的一种串行:明星出书。

没有具体资料可以考证明星出书热是始于哪一年哪个明星的哪本书,倪萍1997年出版的纪实散文集《日子》只是其中比较著名的一本,有报道曾提过1998年和2003年是各类演艺明星出书的高潮年,如今看来,还没有出过书的演艺明星通常只有两种原因:一种是正在准备出,另一种就是实在没有名气没得可出。名人出书与以往我们所理解的名人传记不一样,名人传记很多时候是请人撰写的明星生平经历和感悟,而明星出书虽然当中很多也都是请人捉刀的,只是署着名人自己的名字,而且书的种类也远远突破了个人传记这一领域,从散文、诗歌、摄影、美食、化妆、美容、旅行甚至是特殊专业领域一应俱全,而其中相当一部分明星出的书,其实就是明星写真集配上几行简短的文字。明星出的书当中,当然不乏真的文笔出众或才思妙趣的,譬如伊能静、高晓松、倪萍、宋丹丹出的几本书,可读性都还是挺强的,而柴静去年出的一本《看见》还登上了亚马逊2014年度图书榜的第9名,另外一位MTV台的主持人杨杨出版的《你是最好的自己》则排在第28名,白岩松的《行走在爱与恨之间》、乐嘉的《本色:写的是我,说的是你》以及高晓松的《鱼羊野史第1卷》都进入了年度TOP100的名单。但更多明星所出的书,其实就是一种粉丝消费品,别说什么文采才情了,不是流水账单,就是莫名其妙的外星文字,除了粉丝,是没有人会愿意浪费时间多看一眼的。

2 明星当导演

还有一种串行也成为了近几年的大热门,那就是明星串行做导演。这里我们强调的是明星串行做导演而不是演员串行做导演,这当中还是有区别的。演员“演而优则导”的例子,我们前面已经提到过,不少杰出的演员积累了一定的经验后,加上本身就是学习电影行业的,是具备一定的条件做一个优秀导演的。但明星不一样,好的演员可以成为明星,但好的明星却未必都是好的演员。内地第一个明星导演,大概应该从徐静蕾算起吧, 2004年徐静蕾自编、自导、自演的电影《我和爸爸》获得第四届华语电影大奖最佳编剧、最佳新导演提名、内地最受欢迎女演员奖、金鸡奖最佳处女作奖。同年9月由徐静蕾自编、自导、自演的电影《一个陌生女人的来信》获得第52届西班牙圣塞巴斯蒂安电影节最佳导演奖。放眼整个电影圈,即便是一些名震全球的著名导演,1年之内导两部电影都不是很常见的事情,何况人家一名初出茅庐的小女子,同时还兼任编剧和主演,这是何等的创举!所以2005年6月,美国《时代周刊》在其名为《中国新革命》一文中,将徐静蕾作为中国唯一导演及演员入选,并称其为“中国电影界有革命性的代表人物”。

徐静蕾对中国电影界的影响确实是革命性的。2010年,徐静蕾导演的第四部影片《杜拉拉升职记》在中国大陆票房突破1亿,成为内地首个破亿女导演,这与徐静蕾本身的女明星效应是不可分割的,其商业的成功让很多人看到了明星做导演的商机。而同时圈内还一直流传着一种说法,说徐静蕾所谓的导演成功,不过是成功地在镜头和大众面前扮演了一个导演的角色,有一个曾经请过徐静蕾担任电视剧导演的制作人透露说,等徐静蕾进了组之后才发现,她连导演的分镜头剧本都根本不会写,还得要王朔帮她写,只好赶紧与这位明星导演说byebye。

但不管会不会写分镜头剧本,徐静蕾以一个女明星的身份串行导演所取得的无论是声名上的还是商业上的成功,无疑是对其他明星有着无与伦比的刺激性和感召力的。在她之后,另一位四小花旦的成员赵薇也踏上了导演之路,同样取得了商业上的巨大成功,但是电影的口碑和质量如何呢?赵薇的《致青春》略好一点,豆瓣网平均得分是6.7(满分为10分),其中给出两星(满分是五星)及以下评价的观众比例占21.9%,而徐静蕾今年的新片《有一个地方只有我们知道》的豆瓣网平均得分是5.0,给出两星及以下评价的观众比例占51.7%。今年,又一位明星加入导演行列,就是苏有朋,他导演的青春片《左耳》豆瓣平均得分5.5分,但亦是今年五一小长假的票房赢家之一。

除了电影明星外,歌手转行做导演的在这些年也有很多,像周杰伦、王力宏、陶喆这几位天王现在都在尝试当电影导演,歌手戴佩妮也串行为其他歌手当过MV导演,甚至得到了金曲奖最佳导演奖的提名,但真正凭歌手身份转行导演且获得一致好评的,目前也就歌手阿牛导演的电影《初恋红豆冰》、歌手卢庚戌导演的《怒放之青春再见》等少数几人而已(但是票房都不是太好哦)。摇滚教父崔健也曾先后导演过《成都我爱你》和《蓝色骨头》等电影,但反响嘛,前者没有获得公映的机会,后者,很多人看过了也就只能“呵呵”而已。

五 恶化:串的莫名其妙,烂到匪夷所思

这都不可怕,可怕的是那些曾经被明星们呛了行的作家们也开始往电影界报复性地反扑了,前有郭敬明后有韩寒,这对一直在文坛相爱相杀的作家伙伴在本行里没杀够,又前赴后继地转入电影圈继续相爱相杀,郭敬明导演了《小时代》系列,韩寒导演了《后会无期》,都成了轰动整个影坛乃至整个娱乐圈的大事件,无论是话题还是票房的成功都令人咋舌,但口碑呢?只能说,一个是华丽丽的烂,一个是乱糟糟的烂,一个是用一堆明星来扮演奢靡,一个是用一堆明星来扮演颓迷。有人曾用“丧尽天良”来形容郭敬明导演的《小时代》系列,也有人用“PPT电影”或“幻灯片电影”来形容他们的“电影作品”,意即这些电影里,只有一帧一帧的精美画面,却无非都是在卖弄导演本人的恶趣味罢了,跟故事,跟表演,跟电影,其实没有半毛钱关系。后来人们发现,郭敬明其实还算是有良心的,这当然是要跟后面出现的《何以笙箫默》的导演相比的,因为《小时代》虽烂,好歹还有些精美的布景和衣妆,《何以笙箫默》里甚至连这个都没有!连韩寒自己都说,看了最近一些导演拍出的片子,他更有信心做导演了!但偏偏这样的电影票房还都出奇地好,反倒是那些口碑出众的电影却个个票房惨败,有的甚至连放映的机会都被剥夺了。

歌坛的恶化甚至比电影界开始的还早。先是演员串进歌坛唱歌出专辑,但毕竟演员当中还是有很多的确唱得不错的,后来就直接演变成各行各业各种年龄的人,不管你会不会唱歌,只要你想唱又敢唱,去参加个选秀,马上就可以一夜成名成为最当红的歌星,而真正会唱歌的歌手却几乎没有了出头机会,直到近几年才找到了翻身的机会。

很多业内人士和真正爱好演艺、追求艺术水准的人也在反思,为什么演艺行业会乱成这样?有人指出,其中关键的原因在于,过去的演艺行业已经完全变成了当下的娱乐行业,演艺的规则逐步被娱乐的需要所彻底取代,一切为了娱乐,而娱乐的核心价值是消遣和消费,其主要实现手段是刺激,对眼球或对身心的刺激。所有的演艺作品在这个娱乐时代里,其娱乐消费品的属性就必然被放到了第一位。而娱乐消费品大多是流行快销产品,其商品的属性决定了它的成功更多是来自于营销而并非完全出版产品本身,因此那些具有娱乐营销爆点的产品自然就成了易销好卖的产品,而什么东西能够有效地产生营销爆点呢?几个有影响力的明星,一连串爆炸性的话题、一堆有刺激性的画面和一些让人意料不到的结果,就譬如说,一个导演导一部片子和一个经纪人导一部片子哪个更让你意外更令你好奇?当然是后者!娱乐消费时代,很多人往往就是因为好奇和意外而决定消费的。而娱乐消费时代又是与当下互联网时代相重合的,互联网时代的显著特征是什么?就是满足大众的吐槽欲,把一个原本高高在上的人或物拉进网络里,吐他个满头满脸的口水,这是网友们最喜闻乐见也是最愿意积极参与的事情。于是人们发现,越是烂的东西越有人愿意看,因为只有看过了他才有对象和资本对其进行吐槽,从而获得一种心理战胜了对方的优越感和满足感,更何况获得这种对象和资本的成本往往很低――一场电影最贵票价也不过120元,看电视和听音乐完全就是免费的,所以人们越来越热衷于发现烂、然后投入烂、最后怒骂烂的这种狂欢娱乐中,聪明的营销者正是抓住了大众这种畸形的消费心理,投其所好对症下猛药。譬如《何以笙箫默》的导演黄斌在回应为什么这部片子会遭到大众如此吐槽时就坦言:“很多槽点就是我们事先故意预埋的。”而且他也知道大众当下这种嗜烂如狂的消费心理,因此他也敢说:“你只有看了我们的影片才有资格骂我们烂,而那些看都没有看就说我们烂的人就是流氓。”

串行数据 篇3

1 系统硬件设计

本文研究的是一种基于TLK2711的高速串行传输方案, 在实现高速实时数据传输的基础上进行数据信号处理。系统中的关键组成部分包括PCI Express总线接口模块、FPGA数据处理控制模块、DDR3 SDRAM存储模块以及TLK2711高速串/并转换接口模块, 系统框图如图1所示。系统的工作原理:发送端PC通过PCI Express总线接口与发送板进行数据通信, 将PC模拟的卫星成像数据源通过缓存DDR3 SDRAM由TLK2711高速串/并转接口发送给数据信号处理器;经过数据信号处理器处理的数据再通过TLK2711高速串/并转接口发送给接收板, 接收板通过缓存DDR3 SDRAM由PCI Express总线接口上传给接收端PC, 最后在接收端PC中进行数据校验和相应处理。

2 系统逻辑设计

2.1 总体逻辑设计

作为系统的控制核心, FPGA起着前端TLK2711发送/接收控制、数据链路多路转换控制、DDR3 SDRAM控制器、PCI Express总线DMA传输控制的作用。发送端的PC将数据源在发送板总线主控DMA控制器的控制下, 通过PCIE-8x通道将数据传入FPGA存储到片外的DDR3 SDRAM, FPGA通过内部逻辑对DDR3 SDRAM中缓存的数据进行必要的时序控制和相关处理, 处理过后的并行数据流在FPGA内部进行重组, 形成满足TLK2711数据格式要求的16 bit数据流。这个过程主要是同步字符、帧头、帧尾以及控制信号的添加等。TLK2711根据参考时钟对输入的并行数据进行8B/10B编码, 然后以20倍的参考时钟频率将数据以高速差分串行输出的方式通过铜缆传送给数据信号处理器。

经过数据信号处理器处理过的数据以串行差分方式通过铜缆传送给接收板的TLK2711, TLK2711在参考时钟下完成高速串行输入数据的串/并转换, 转换后的20 bit并行数据经过内部同步到恢复时钟, 然后利用8B/10B解码格式将20 bit并行数据解码为原始的16 bit并行数据输出到FPGA进行数据处理, FPGA通过内部逻辑对高速数据进行必要的时序控制和相关处理。这个过程主要是去除帧头、帧尾、同步字符, 同时检测控制信号并对数据进行处理。处理过后的数据缓存到片外的DDR3 SDRAM, 在总线主控DMA控制器的控制下, 通过PCIE-8x通道将缓存的数据写入计算机硬盘。FPGA内部逻辑示意图如图2所示。

2.2 TLK2711传输协议

TLK2711高速串行协议是一种基于点对点的单工协议, 它以16 bit为一个基本的传输单位, 数据被分成了高8位和低8位, 因此每个控制字符都定义成了2 B (分别由D码和K码组成) , 编码方式由2个控制信号TKMSB/RKMSB和TKLSB/RKLSB决定。协议的工作过程如图3所示。

系统上电或复位后, 收发双方处于失步状态 (在发送端复位后要保证接收端已处于接收状态) , 发送端首先发送同步字符且时间长度不小于1 ms, 1 ms结束后认为系统完成同步过程, 发送端开始数据帧的发送。在每一帧数据发送结束后和下一帧数据开始发送前, 发送端要发送同步字符来保持数据传输链路的同步状态。在同步状态建立后, 接收端不断检测输出控制信号RKLSB和RKMSB, 根据RKLSB和RKMSB的状态判断数据类型, 舍去帧头、帧尾和同步字符, 锁存真正需要的数据。接收端在数据帧传输过程中如果失步, 则依靠数据帧间的同步字符重新建立起收发间的同步关系, 同步关系建立后立刻转入正常数据接收状态。根据协议工作过程, 定义TLK2711芯片用作发送通路时的6个状态分别是:空闲、建立同步、发送帧头、发送数据、发送帧尾、发送同步字符, 其发送通路的状态转换如图4所示。

2.3 带宽动态分配

系统采用6片TLK2711并行工作, 接收端要根据发送端的速率适时调整接收端TLK2711的工作数量, 以实现带宽的动态分配。当接收端的6片TLK2711同时接收数据时, FPGA需要在一个时钟周期内将96 bit并行数据转换为与PCI Express总线位宽匹配的64 bit并行数据, 然后才能进行相应处理。考虑到调用FPGA内部的RAM IP核或者FIFO IP核无法实现该位宽转换, 因此设计了一个输入位宽可变的RAM来处理数据位宽, 从而实现接收端TLK2711工作数量可调。

首先FPGA在接收板TLK2711的恢复时钟下将重构的并行数据锁存一个周期, 然后根据伴随着数据流的输入控制信号判断是否有有效数据到来, 当接收到有效数据后, 将数据写入异步FIFO进行不同时钟域的数据处理。当一个信号从一个时钟域传递到另外一个时钟域时经常会出现亚稳态问题, 解决这一问题可以使用一个异步FIFO使得另外一个时钟域的信号足够稳定。将接收端TLK2711从串行数据流中提取的恢复时钟作为FIFO的写时钟, 将PCIE总线250 MHz分频产生一个同相的125 MHz时钟作为FIFO的读时钟。当FIFO半满信号有效时, 读写控制逻辑开始将FIFO中的数据读出来作为位宽可调的RAM的输入, 从而实现位宽转换。该RAM的接口如图5所示, 其中adjust为通道选择信号, wr为异步FIFO的读使能。

考虑到RAM的读写时钟以及输入/输出数据位宽, 可以发现RAM的写数据速度远小于其读取数据的速度, 故系统采用乒乓操作对接收板TLK2711的数据进行处理。FIFO读出的数据首先写进ram0, ram0写满之后开始向ram1写数据, 同时将ram0写入的数据读取出来。由于ram的写数据速度远小于其读取数据的速度, 所以当ram0中的数据读取完时ram1还未写满, 此时ram0停止读取数据并且处于等待状态直至ram1中写满数据。当ram1中写满数据时开始写ram0, 同时紧接着读取ram1中的数据。同理, 当ram1中的数据读取完时ram0还未写满, 所以此时ram1同样停止读取数据并且处于等待状态, 直至ram0中满数据。当ram0写满数据时, 立即开始写ram1读取ram0中的数据, 如此循环。该乒乓操作示意图如图6所示。

按照设计思路将模块功能在Xilinx公司的FPGA设计平台ISE 14.2上进行代码编译综合、功能仿真和时序仿真等, 通过JTAG口将程序下载到FPGA中进行实际运行, 然后利用ISE 14.2自带的逻辑分析仪采集所要观察的数据信号并进行在线调试。图7为使用ISE 14.2中Chipscope采集的对单通道TLK2711接收到的数据进行不同时钟域处理和乒乓操作的时序图。从图中可以看出整个工作情况与以上描述一致, 证明该模块从代码设计和时序约束到功能实现全部通过, 数据传输速率在TLK2711芯片内可以达到194.74 MB/s。

2.4 设计中应注意的问题

高速数据传输系统要求有高稳定性和高精度的时钟源, 抖动和频偏是衡量时钟源的两个重要指标。TLK2711内部对输入参考时钟进行20倍频, 同时TLK2711的时钟稳定度要求小于±10 ppm, 在设计时不能使用FPGA内部的MMCM模块倍频生成参考时钟。因为经过MMCM模块倍频的时钟容易引起比较大的抖动, 导致TLK2711接收锁相环无法稳定地锁定发送时钟从而产生误码。考虑到时序的设计要求, 系统选用125 MHz的有源晶振作为TLK2711的时钟源, 并将其输出时钟接至FPGA的全局时钟引脚, 同时使用IBUFG+BUFG对该全局时钟进行处理后作为6路TLK2711的输入参考时钟。为了保证高速差分信号的传输质量, 差分线对的两根线应尽可能靠近并且远离其他信号, 在进行PCB布线时, TLK2711的16 bit并行总线与伴随时钟也要进行等长处理, 以保证输入数据的同步和一致性[3,4,5]。

对于高速串化解串器TLK2711, 当它只用作发送通路时, 应将LCKREFN引脚置低, 这样接收通道的RXD[0:15]、RXCLK、RKLSB、RKMSB等引脚都会处于高阻抗状态;当只用作接收通路时, 发送端不用的TXD[0:15]、TKLSB、TKMSB等引脚应当拉高或拉低使其处于一个稳定的状态。

基于TLK2711的高速串行传输系统的设计大大降低了高速数据传输过程中的互联复杂程度, 同时保证了信号传输的实时性和准确性。基于此设计的6通道串行传输系统工作稳定可靠, 各项指标达到设计要求。本系统创新点在于采用输入位宽可调的RAM对接收端进行带宽动态分配, 对于解决高速多通道TLK2711的串行传输系统设计有较高的参考价值。

参考文献

[1]任建岳.空间光学遥感器专题文章导读[J].光学精密工程, 2008, 16 (10) :1852-1852.

[2]曹小涛, 徐抒岩, 赵运隆.空间相机连续调焦地面仿真测试系统设计[J].液晶与显示, 2011, 26 (3) :409-412.

[3]张达, 徐抒岩.高速CCD图像数据光纤传输系统[J].光学精密工程, 2009, 17 (3) :670-675.

[4]Texas Instruments.TLK2711 1.6 to 2.7 Gb/s transceiver datasheet[Z].2001.

无线串行通信技术总结 篇4

与传统的有线串行(RS232)通信不同,无线串行通信具有设备移动方便(特别在通信设备空间相互隔离不便连线的情况下)、通信距离远(可达几十km)等特点。

无线串行通信应用领域非常广,常用的有:无线抄表;工业遥控、遥测;无线数据传输;银行POS系统;无线数据采集;楼宇自动化、无线监控、门禁系统;智能家居、工业控制;汽车检测设备;无线LED显示屏系统。

目前,比较常用的无线串行通信技术有红外、蓝牙、ZigBee和无线数传等四种。四种方式都有不少公司推出了标准模块,价廉物美,特别适用于嵌入式系统及PC机之间的串行通信。

1、红外串行通信,符合IrDA1.x标准,利用950 nm近红外波段的红外线作为传递信息的载体,通过红外光在空中的传播来传递信息,由红外发射器和接收器实现。其最大优点是:不易被人发现和截获,保密性强;几乎不会受到电气、天电、人为干扰,抗干扰性强。此外,红外线通信机体积小、重量轻、结构简单、价格低廉。不足之处在于它必须在视距内通信,且收发端必须是直线对射。

红外转RS232模块有武汉波士电子的IR232、北京水木行的SMH-IR220等,波特率可达115.2Kbps,通信距离在1m以上。

2、蓝牙串行通信,符合蓝牙协议(BlueTooth)V1.x,使用2.4GHz的ISM(工业、科学、医学)频段。频道共用23个或79个,频道间隔均为 1MHz,采用时分双工方式,调制方式为BT= 0.5的GFSK。蓝牙的数据传输率可达1Mbs,与红外一样,蓝牙的传输距离也较短。

生产蓝牙转RS232模块的公司也有不少,例如:南京国春电气设备有限公司的GC-232-1,深圳蓝色飞舞科技的BF10等。

3、ZigBee串行通信,Zigbee是IEEE 802.15.4协议的代名词,这个协议规定的技术是一种短距离、低功耗的无线通信技术。其特点是近距离、低功耗、低成本。主要适合用于无线测控、无线抄表、智能家电、安防报警等领域,可以嵌入各种设备。其最高波特率可达384K,传输距离在1000m以内。

ZigBee转RS232典型产品有:赫立讯科技(北京)公司的IP-Link 2220H,深圳市鼎泰克电子有限公司的DTK系列等。

串行通信与重叠I/O 篇5

关键词:串行通信;RS232;重叠;I/O;Win API

中图分类号:TN914文献标识码:A文章编号:1007-9599 (2010) 06-0000-02

Serial Communication and Overlapping I/O

Yu Lu,Li Qing

(PLA 91550 Troop,Dalian116023,China)

Abstract:The serial communication to facilitate easy,widely used in both military and civilian.In combination with the hardware described in detail in the Windows environment,use the Win API for asynchronous serial communication method.

Keywords:Serial communication;RS232;Overlap;I/O;Win API

一、前言

串行通讯在通讯领域被广泛应用,标准的RS232接口已成为计算机、计算机外设、交换机和许多通讯设备的标准接口。微机与微机、微机与外设、微机与程控交换机等都可以通过RS232接口进行方便的连接,以实现控制外设和传输数据等目的。

在Windows应用程序的开发中,我们常常需要面临与外围数据源设备通信的问题。笔者在实际工作中积累了一些经验,现结合硬件、软件,及需要注意的要点作一番探讨。希望对各位需要编写串口通信程序的朋友有一些帮助。

二、RS232串口标准

EIA-RS-232是美国电子工业协会正式公布的串行总线标准,也是目前最常用的串行接口标准。该标准规定:直接连接的最大物理距离为15m,通讯速率低于20kbps。

由于RS232并未定义连接器的物理特性,因此,出现了DB-25、DB-15和DB-9各种类型的连接器,其引脚的定义也各不相同。表1介绍了其中两种连接器(DB-25,DB-9)。

RS232标准接口有25条线,4条数据线、11条控制线、3条定时线、7条备用和未定义线,但常用的只有9根。

目前较为常用9针串口和25针串口,当通信距离较近时,可以用电缆线直接连接,若距离较远,须附加Modem。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连。表2列举了RS232串口通信接线方法。

EIA-RS-232对电气特性、逻辑电平和各种信号线功能都作了规定。

在TxD和RxD上:

逻辑1(MARK)=-3V~-15V。

逻辑0(SPACE)=+3V~+15V。

在RTS、CTS、DSR、DTR和DCD等控制线上:

信号有效:(接通,ON状态,正电压)=+3V~+15V。

信号无效:(断开,OFF状态,负电压)=-3V~-15V。

三、Win32串口应用程序

(一)打开串口

Win32系统把文件的概念进行了扩展。无论是文件、通信设备、命名管道、邮件槽、磁盘、还是控制台,都是用API函数CreateFile来打开或创建的。该函数的声明为:HANDLE CreateFile(LPCTSTR lpFileName,//文件名DWORD dwDesiredAccess,//访问模式DWORD dwShareMode,//共享模式LPSECURITY_ATTRIBUTES lpSecurityAttributes,//通常为NULL

DWORD dwCreationDistribution,//创建方式

DWORD dwFlagsAndAttributes,//文件属性和标志

HANDLE hTemplateFile // 临时文件的句柄,通常为NULL

);

如果调用成功,那么该函数返回文件的句柄,如果调用失败,则函数返回INVALID_HANDLE_VALUE。

(二)串口配置和串口属性

在打开通信设备句柄后,常常需要对串口进行一些初始化工作。这需要通过一个DCB结构来进行。DCB结构包含了诸如波特率、每个字符的数据位数、奇偶校验和停止位数等信息。在查询或配置串口的属性时,都要用DCB结构来作为缓冲区。

调用GetCommState函数可以获得串口的配置,该函数把当前配置填充到一个DCB结构中。一般在用CreateFile打开串口后,可以调用GetCommState函数来获取串口的初始配置。要修改串口的配置,应该先修改DCB结构,然后再调用SetCommState函数用指定的DCB结构来设置串口。

除了在DCB中的设置外,程序一般还需要设置I/O缓冲区的大小和超时。Windows用I/O缓冲区来暂存串口输入和输出的数据,如果通信的速率较高,则应该设置较大的缓冲区。调用SetupComm函数可以设置串口的输入和输出缓冲区的大小。

(三)串口读写

在用ReadFile和WriteFile读写串口时,既可以同步执行,也可以重叠(异步)执行。在同步执行时,函数直到操作完成后才返回。这意味着在同步执行时线程会被阻塞,从而导致效率下降。在重叠执行时,即使操作还未完成,调用的函数也会立即返回。费时的I/O操作在后台进行,这样线程就可以干别的事情。例如,线程可以在不同的句柄上同时执行I/O操作,甚至可以在同一句柄上同时进行读写操作。“重叠”一词的含义就在于此。

ReadFile函数只要在串口输入缓冲区中读入指定数量的字符,就算完成操作。而WriteFile函数不但要把指定数量的字符拷入到输出缓冲中,而且要等这些字符从串口送出去后才算完成操作。

ReadFile和WriteFile函数是否为执行重叠操作是由CreateFile函数决定的。如果在调用CreateFile创建句柄时指定了FILE_FLAG_OVERLAPPED标志,那么调用ReadFile和WriteFile对该句柄进行的读写操作就是重叠的,如果未指定重叠标志,则读写操作是同步的。

函数ReadFile和WriteFile的参数和返回值很相似。这里仅列出ReadFile函数的声明:

BOOL ReadFile(

HANDLE hFile,//文件句柄

LPVOID lpBuffer,//读缓冲区

DWORD nNumberOfBytesToRead,//要求读入的字节数

LPDWORD lpNumberOfBytesRead,//实际读入的字节数

LPOVERLAPPED lpOverlapped//指向一个OVERLAPPED结构

);//若返回TRUE则表明操作成功

需要注意的是如果该函数因为超时而返回,那么返回值是TRUE。参数lpOverlapped在重叠操作时应该指向一个OVERLAPPED结构,如果该参数为NULL,那么函数将进行同步操作,而不管句柄是否是由FILE_FLAG_OVERLAPPED标志建立的。

当ReadFile和WriteFile返回FALSE时,不一定就是操作失败,线程应该调用GetLastError函数分析返回的结果。例如,在重叠操作时如果操作还未完成函数就返回,那么函数就返回FALSE,而且GetLastError函数返回ERROR_IO_PENDING。

在使用重叠I/O时,线程需要创建OVERLAPPED结构以供读写函数使用。OVERLAPPED结构最重要的成员是hEvent,hEvent是一个事件对象句柄,线程应该用CreateEvent函数为hEvent成员创建一个手工重置事件,hEvent成员将作为线程的同步对象使用。如果读写函数未完成操作就返回,就那么把hEvent成员设置成无信号的。操作完成后(包括超时),hEvent会变成有信号的。

如果GetLastError函数返回ERROR_IO_PENDING,则说明重叠操作还为完成,线程可以等待操作完成。有两种等待办法:一种办法是用象WaitForSingleObject这样的等待函数来等待OVERLAPPED结构的hEvent成员,可以规定等待的时间,在等待函数返回后,调用GetOverlappedResult。另一种办法是调用GetOverlappedResult函数等待,如果指定该函数的bWait参数为TRUE,那么该函数将等待OVERLAPPED结构的hEvent事件。GetOverlappedResult可以返回一个OVERLAPPED结构来报告包括实际传输字节在内的重叠操作结果。

如果规定了读/写操作的超时,那么当超过规定时间后,hEvent成员会变成有信号的。因此,在超时发生后,WaitForSingleObject和GetOverlappedResult都会结束等待。WaitForSingleObject的dwMilliseconds参数会规定一个等待超时,该函数实际等待的时间是两个超时的最小值。注意GetOverlappedResult不能设置等待的时限,因此如果hEvent成员无信号,则该函数将一直等待下去。

在调用ReadFile和WriteFile之前,线程应该调用ClearCommError函数清除错误标志。该函数负责报告指定的错误和设备的当前状态。

调用PurgeComm函数可以终止正在进行的读写操作,该函数还会清除输入或输出缓冲区中的内容。

(四)超时设置

在用ReadFile和WriteFile读写串口时,需要考虑超时问题。如果在指定的时间内没有读出或写入指定数量的字符,那么ReadFile或WriteFile的操作就会结束。要查询当前的超时设置应调用GetCommTimeouts函数,该函数会填充一个COMMTIMEOUTS结构。调用SetCommTimeouts可以用某一个COMMTIMEOUTS结构的内容来设置超时。

有两种超时:间隔超时和总超时。间隔超时是指在接收时两个字符之间的最大时延,总超时是指读写操作总共花费的最大时间。写操作只支持总超时,而读操作两种超时均支持。用COMMTIMEOUTS结构可以规定读/写操作的超时,该结构的定义为:

typedef struct_COMMTIMEOUTS {

DWORD ReadIntervalTimeout;//读间隔超时

DWORD ReadTotalTimeoutMultiplier;//读时间系数

DWORD ReadTotalTimeoutConstant;//读时间常量

DWORD WriteTotalTimeoutMultiplier;//写时间系数

DWORD WriteTotalTimeoutConstant;//写时间常量

} COMMTIMEOUTS,*LPCOMMTIMEOUTS;

COMMTIMEOUTS结构的成员都以毫秒为单位。总超时的计算公式是:总超时=时间系数×要求读/写的字符数+时间常量

例如,如果要读入10个字符,那么读操作的总超时的计算公式为:读总超时=ReadTotalTimeoutMultiplier×10+ReadTotalTimeoutConstant

可以看出,间隔超时和总超时的设置是不相关的,这可以方便通信程序灵活地设置各种超时。

如果所有写超时参数均为0,那么就不使用写超时。如果ReadIntervalTimeout为0,那么就不使用读间隔超时,如果ReadTotalTimeoutMultiplier和ReadTotalTimeoutConstant都为0,则不使用读总超时。如果读间隔超时被设置成MAXDWORD并且两个读总超时为0,那么在读一次输入缓冲区中的内容后读操作就立即完成,而不管是否读入了要求的字符。

在用重叠方式读写串口时,虽然ReadFile和WriteFile在完成操作以前就可能返回,但超时仍然是起作用的。在这种情况下,超时规定的是操作的完成时间,而不是ReadFile和WriteFile的返回时间。

四、结束语

以上给出了用Win32 API设计串行通信的基本思路,这个重叠(异步)I/O操作的串行通信程序,曾多次应用于大型任务,表现出良好的性能。在实际应用中,可以以此为模型稍加改造,设计出满足需要的各种串行通信程序。

参考文献:

[1]李现勇.Visual C++串口通信技术与工程实践[M].人民邮电出版社,2004,7

串行数据 篇6

整个数据传输系统如图1所示。由于数据传输是双向的, 信号处理板和PCI板都有并/串转换发送模块和串/并转换接收模块 (均在FPGA内实现) , 两块板卡通过平衡电缆连接。此外, 在信号处理板上, DSP处理机通过外部总线向FPGA发送缓存区内写入数据, FPGA通过DSP的主机口完成与DSP存储空间的数据交换。在PCI板上, FPGA通过PCI控制器和主机进行数据交换。系统工作原理可表述如下:DSP处理机将处理结果通过外部总线输出到FPGA缓冲存储器内, 在FPGA内完成数据的并/串转换, 并通过LVDS串行接口发送出去。数据通过平衡电缆传输至上位机接收卡。在上位机接收卡内, 数据经串/并转换后, 送至PCI接口控制电路。上位机输出数据到DSP处理板的过程则相反。由于系统要求数据传输上行数据率小于下行数据率, 设计中上行数据传输通道数为1, 下行数据通道数是4。在传输距离大于8m的情况下, 实际单通道数据传输速率达到264Mbps。

LVDS并/串转换实现

由于FPGA是通过DSP处理机的外部总线获得数据的, 其数据形式是并行的, 所以发送前应将其转换为串行比特流。FPGA内实现并/串转换和串行发送功能的模块HSTX的原理框图如图2所示

由图2可以看出, 该模块有3个输入信号。分别为时钟输入CLK、帧同步信号TFR和并行数据TCH1[7:0]。其中, CLK频率为33MHz, 经过数字时钟管理器 (DCM) 锁相倍频后得到串行模块内部时钟CLK1X (33MHz) 、CLK4XR (33×4=132MHz) 和CLK4XF (33×4=132MHz) , 其中CLK4XR与CLK4XF反相, 与CLK1X同相。输出为三组差分信号, 分别为串行数据TCH1[P:N]、串行时钟TCLK[P:N]和串行帧同步信号TFR[P:N]。输入时钟CLK信号上升沿有效, 时钟上升沿时, 若帧同步信号为高电平, 则锁存输入数据TCH1[7:O], 延时一个时钟周期开始发送。输出的发送时钟TCLK[P:N]为132MHz, 双沿有效。输出串行数据采用小终端模式, 数据低位LSB在前, 帧同步信号TFR[P:N]输出比特序列11110000, 用于供接收端同步。

串行发送模块主要由LOAD_GEN、OUT_DATA、OUT_FR、OUT_CLK4个模块组成。LOAD_GEN模块用来产生并/串转换时加载数据的选通脉冲。OUT_DATA模块采用移位寄存器实现数据并/串转换。而OUT_FR和OUT_CLK模块分别用来产生串行帧同步信号和串行时钟信号。这些模块均使用硬件描述语言VHDL设计完成。

LVDS传输电路设计

由于LVDS总线的传输速率达到264Mbps, 对PCB布线等方面要求特别高。本文利用高速电路仿真分析工具———Mentor Graphics公司的HyperLynx, 对LVDS传输电路进行了仿真设计, 包含传输线阻抗设计、端接匹配、差分信号布线。同时考虑了接插件和传输电缆的选择对数据传输的影响。

LVDS信号的电压摆幅只有350mV, 为电流驱动的差分信号工作方式, 最长的传输距离可以达到10m以上。为了确保信号在传输线中传播时, 不受反射信号的影响, LVDS信号要求传输线阻抗受控, 差分阻抗为100。本系统应用中, 利用高速电路仿真分析工具, 通过合理的设置层叠厚度和介质参数, 调整走线的线宽和线间距, 计算出单线和差分阻抗结果, 来达到阻抗控制的目的。

差分信号的布线是整个传输电路设计的难点。一般来说, 按照阻抗设计规则进行差分信号布线, 就可以确保LVDS信号质量。在实际布线当中, LVDS差分信号布线应遵循以下原则:

1差分对应该尽可能地短、走直线、减少布线中的过孔数, 差分对内的信号线间距必须保持一致, 避免差分对布线太长, 出现太多的拐弯。

2差分对与差分对之间应该保证10倍以上的差分对间距, 减少线间串扰。必要时, 在差分对之间放置隔离用的接地过孔。

3 LVDS差分信号不可以跨平面分割。尽管两根差分信号互为回流路径, 跨分割不会割断信号的回流, 但因为缺少参考平面而导致阻抗的不连续。

4尽量避免使用层间差分信号。在PCB板的实际加工过程中, 由于层叠之间的层压对准精度大大低于同层蚀刻精度, 以及层压过程中的介质流失, 层间差分信号不能保证差分线之间间距等于介质厚度, 因此会造成层间差分对的差分阻抗变化。因此建议尽量使用同层内的差分。

5在设计阻抗时, 尽量设计成紧耦合方式, 即差分对线间距小于或等于线宽。

此外, 在LVDS传输电路设计当中应当选用适合差分信号的高速接插件, 一方面, 接插件的特征参数能够与LVDS信号阻抗匹配, 通过接插件的信号畸变很小;另一方面, 能够提供足够的布线空间, 设计PCB走线宽度和间距。例如AMP公司的Z-PACK HS3系列接插件, 在电气性能方面, 比较适合高速LVDS信号互连。

本系统采用平衡电缆实现长距离传输, 然而, 由于LVDS特殊的阻抗匹配要求和极低的时序偏置要求, 传统的电缆不能用于LVDS数据传输。试验证实双绞线电缆性能最优。短距离 (大约0.5m) 应用时CAT3平衡双绞线电缆效果最佳。而高于0.5m以及数据率大于500MHz时, CAT5平衡电缆效果最好。

结语

本文实现的高速数据传输系统, 已成功应用于某处理机和上位机之间的数据传输, 传输距离大于8m, 单个通道数据传输速率达到264Mbps, 5个数据通道传输速率总共达1.32GbpS, 传输过程稳定。

摘要:本文提出了一种采用LVDS高速串行总线技术的传输方案。该方案既满足了长距离和高数据传输速率的要求, 又降低了互连总线的复杂度和系统成本。完成了基于FPGA的LVDS高速串行传输电路设计。

串行数据 篇7

关于防尘呼吸器的技术要求和检测方法, 国标GB/T2626-1992经整合、修订后作为强制性标准GB2626-2006《呼吸防护用品——自吸过滤式防颗粒物呼吸器》于2006年5月正式颁布实施。防尘面罩粒子阻隔效率测试是评价防尘面罩防尘性能的关键指标。目前国内外厂家通常使用美国TSI公司的自动滤料测试设备TSI CERTITEST MODEL 8130, 该设备同时具有氯化钠和DOP过滤效率检测和随弃式面罩阻力的检测能力。

但上述检测设备并没有提供良好的用户界面接口, 没有附带数据获取和处理软件, 检测结果仅通过附带的操作面板和针式打印机显示过程数据及最终指标, 不便于对实验过程数据进行自动处理和分析。但设备提供了串行数据通信的底层接口, 这使自动化的数据处理和分析成为可能。

通过微软提供的串行接口组件对设备发送的数据进行处理和存储, 并进一步采用EXCEL程序的公式功能对数据进行计算和分析。从而实现粒子阻隔效率测试过程的自动化数据处理, 提高了检测效率, 并方便了进一步的科研工作。

2粒子阻隔效率测试仪器

CERTITEST MODEL 8130 (如图1) 是美国TSI公司在1994年研制, 用于检测呼吸防护用品防尘性能关键指标的测试。该设备主要分气溶胶发生系统、检测系统和过滤系统三大部分。测试用粒子在气溶胶发生器中发生后在混合罐中与纯净的空气混合稀释, 进入被测样品检测室, 其中Nacl气溶胶要经过静电中和器后进入检测室, 通过定时采样, 由检测仪分别得到上游、下游部分粒子浓度, 余下部分进入过滤器过滤后排放, 其具体流程见图2所示。其中气溶胶发生方式采用喷雾法:即液体从喷雾嘴高速射出并撞击管道一端管壁, 撞击破碎产生粒子, 大颗粒粒子沉降到瓶内, 小粒子则延管道进入气体混合罐内;而粒子浓度测试采用光度计进行, 在粒子气流通过面罩前和通过面罩后由真空泵采样, 光度计测定粒子浓度。

实验数据和结果通过集成在仪器上的一个操作面板和一个便携打印机来获取, 基本不具备数据存储和处理功能。而实际应用中, 检测效率相关的检测和科研工作往往需要对阻隔效率动态过程进行连续检测和分析, 这就需要对实验过程中的数据进行实时获取、存储和计算。从这一点来讲, 8130没有提供良好的用户界面接口。虽然8130从硬件底层提供了串行数据通信接口, 但数据处理程序并未提供给用户。对于一般用户而言, 从8130设备背部的串行接口, 只能得到二进制电平信号, 不能直接用于检测结果分析。因此需要开发独立的串行接口程序, 自动由串口获取数据, 并对数据进行存储和计算, 进而实现对测量结果的实时处理和分析。

3串行通信接口系统方案

一般通用计算机都带有一个或多个串行端口, 这些串口提供了外部设备与PC进行数据传输和通信的通道。串口在主机和外设之间充当解释器的角色。当字符数据从CPU发送给外设时, 这些字符数据将被转换成串行比特流数据;当接收数据时, 比特流数据被转换为字符数据传递给CPU。在操作系统层面, Windows用通信驱动程序调用API函数发送和接收数据, 当用通信控件或声明调用API函数时, 它们由驱动程序解释并传递给设备驱动程序, 在通信程序中。只需知道通信控件提供给Windows通信AP1函数的接口即可, 也即设定和监视通信控件的属性和事件。

3.1基于MSCOMM控件的串行通信

Microsoft Communications Control (以下简称MSComm) 是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件, 它为应用程序提供了通过串行接口收发数据的简便方法。MSComm控件通过串行端口传输和接收数据, 为应用程序提供串行通讯功能, 在VB、Delphi等语言中均可使用。MSComm提供了两种处理通信问题的方法:一是事件驱动方法, 二是查询法。本研究采用了事件驱动方法。

事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下, 在事件发生时需要得到通知, 例如, 在串口接收缓冲区中有字符, 或者CD或RTS线上一个字符到达或一个变化发生时。在这些情况下, 可以利用MSComm控件的OnComm事件捕获并处理这些通讯事件, OnComm事件还可以检查和处理通讯错误。在编程过程中, 可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时, 可靠性高。

使用的每个MSComm控件都与一个串口对应。如果在应用程序中需要访问多个串口, 必须使用多个MSComm控件。可以在Windows控制面板中修改串口地址的中断地址。

更详细的控件开发参考见微软的MSDN开发帮助。

3.2EXCEL VB脚本开发

通过EXCEL的宏功能, 可以采用VB脚本程序开发基于MSComm控件的串口通信程序。创建控件后, 只需采用控件提供的对Windows通讯驱动程序的API函数的接口, 也就是设置MSComm控件的属性, 并监视MSComm控件的事件。发生通讯事件或错误时, 将触发OnComm事件, CommEvent属性的值将被改变, 应用程序检查CommEvent属性值并作出相应的反应。

在本研究的EXCEL VB脚本中采用的关键串口代码如下:

设定串口号:Worksheets (“SerialPort”) .MSComm1.CommPort=4

设定串口通信方式:Worksheets (“SerialPort”) .MSComm1.Settings=“9600, n, 7, 1”

设定串口缓冲:Worksheets (“SerialPort”) .MSComm1.InBufferSize=4096

打开串口:Worksheets (“SerialPort”) .MSComm1.PortOpen=True

串口事件相应函数为MSComm1_OnComm () , 在响应函数中读取串口通讯获得的数据如下:

MyData=MyData+Worksheets (“SerialPort”) .MSComm1.Input

4测试过程及结果

通过上述VB脚本程序, 实时获取粒子阻隔效率测量过程中的数据, 并通过EXCEL的计算功能得到所需的检测指标, 进而做出更深入的分析。表2是某品牌的纱布口罩过滤效率测试的部分数据。根据测试过程中的数据, 可以进一步通过EXCEL的图形功能方便地实现表格数据的直观显示 (如图3) 。

5结论

针对装置的串行数据通信的底层接口, 所开发的基于EXCEL VB脚本的串行通信数据处理系统, 实现数据通信及处理的自动化操作, 提高检测效率, 为更好的进行实粒子阻隔效率测定及相关的科研工作提供了便利条件。用EXCEL直接处理过程数据, 可以通过程序附带的公式计算功能直接求取所需指标数据, 并进一步应用图表功能, 实现数据表格的实时绘制, 便于对整个动态测试过程进行直观监测。基于串行通信控件的开发方案具有直观、便于使用的优点, 给类似检测设备的串行通信数据处理技术提供了借鉴。

摘要:在GB2626-2006《呼吸防护用品——自吸过滤式防颗粒物呼吸器》中防尘面罩粒子阻隔效率测定是一项评价防尘面罩性能的关键指标。为实现数据通信及处理的自动化操作, 提高检测效率, 本研究针对装置的串行数据通信的底层接口, 开发基于EXCELVB脚本的串行通信数据处理系统。该系统为更好地研究实粒子阻隔效率测定方法和阻隔效率相关规律提供了便利条件。

关键词:防尘面罩,阻隔效率,串行通信,接口,VB脚本

参考文献

[1]GB2626-2006《呼吸防护用品——自吸过滤式防颗粒物呼吸器》[S]GB2626-2006“Respirator Protective Equipment-Non-Powered Air-Purifying Particle Respirator”[S]

[2]田军, 张明明, 李双会, 刘宝龙.防尘面罩粒子阻隔效率测试仪器及测试原理[J].中国安全生产科学技术, 2008, 4 (5) :114~117TIAN Jun, ZHANG Ming-ming, LI Shuang-hui, LIU Bao-long.Respirator Filter Efficiency Tester and Testing Principle[J].Journal of Safety Science and Technology, 2008, 4 (5) :114~117

[3]黄大勇, 王萍.基于MSCOMM控件的微机与单片机多机通信[J].自动化与仪表, 2008, (10) HUANG Da-yong, WANG Ping.Communication Between PC and Multi-MCU Based on MSCOMM[J].Automation&Instrumentation, 2008, (10)

串行数据 篇8

在现代电子技术应用领域, A/D转换器是模拟信号转换数字信号的中介, 数据采集系统中, 一般由单片机或其他微控制器对高精度A/D转换器进行控制, 通常采用软件模拟A/D转换器时序的方法, 增加了CPU的负担, 降低了CPU的工作效率, 现场可编程门阵列FPGA (Field Programmable Gate Array) 的高集成度和高速特性, 使之相对于单片机和微控制器更适合用于高速A/D器件的采样控制[1,2,3,4]。另外, 在电磁干扰较大的环境中, 单片机会出现程序跑飞的问题, 在利用看门狗复位的过程中, 对采集的数据流而言, 会存在数据的丢失问题。相对的, 触发沿或电平控制的FPGA, 通过设计可靠的驱动, 系统采集数据更为可靠。

本文是以一个3通道低频小型数据记录仪为研究背景, 设计了以Actel公司FPGA为控制器的系统, 对串行输出A/D转换器ADS8341进行控制, 提高了系统集成度和稳定性。

1 ADS8341功能介绍

ADS8341是Burr Brown公司推出的一款低功耗, 高性能的4通道, 16位A/D转换器, 其串行接口降低了系统开发的成本, SSOP-16的小体积封装适合微型设备使用。

1.1 ADS8341的功能

CH0~CH3:4个通道为模拟输入端, 可以设置为单通道输入方式, 也可以构成CH0-CH1, CH2-CH3, 两组差分输入。

undefined:引脚低电平有效, A/D转换器进入低功耗模式。

Vref:参考电压输入端。

DCLK:系统的外部时钟输入端, 最高输入为2.4 MHz, 此时芯片A/D转换速度达到最大值, 为100 ksa/s。

undefined:A/D转换器的片选端, 低电平有效, 高电平时其他引脚呈高阻态。

DIN:串行数据输入端, 片选信号有效时, 在DCLK的上升沿, 串行数据按位输入A/D。

DOUT:串行数据输出端, 片选信号有效时, 在DCLK的下降沿, 将A/D转换后的数字信号按位输出。

BUSY:片选有效时, A/D转换器输出一个时钟周期高电平信号。

VCC和GND引脚分别为电源和数字接地端。

1.2 ADS8341的控制字及转换时序

ADS8341的控制字如表1所示:

ADS8341的控制字为8位, S为起始标志位, A2, A1, A0控制通道选择, 可以提供单通道或差分输入方式不同通道选择。undefined高电平为单通道输入方式, PD1, PD0为电源控制模式位, 若为“11”, 电源始终处于开启模式。

ADS8341转换的基本时序如图1所示。

由图1可以看出, ADS8341完成一次转换需要24个DCLK时钟, 其中在前8个时钟的上升沿, DIN控制字输入, 控制字输入完成后, 在DCLK的上升沿时刻, BUSY信号输出一个高电平, 在这个时钟的下降沿, 转换数据按位输出。经过一次完整的转换后, 在第25个时钟上升沿, DIN可以再次输入控制字高位, 保证了当DCLK外部时钟取得最高频率2.4 MHz时, A/D转换器的频率达到最高100 ksa/s。

2 基于FPGA的ADS8341控制器设计

本记录仪系统记录采集信号的频率范围500Hz以下, 在系统实际应用中, 对被测信号采用过采样方式, 采样频率为被采集信号频率的5~10倍。系统采用A/D转换器3通道快速循环采样, 近似实现了通道同步采样, 是一种准同步采样的方式。经过72个DCLK周期, 实现了CH0~CH2通道的顺序切换, 当A/D转换器以最大采样频率100 ksa/s工作时, 记录仪系统采样的频率相当于单通道频率的1/3, 通道1与通道3之间同步误差最大为48clk, 如图2所示, 最小误差时间约为undefined (此时采样频率最快) , 满足系统对较低频率信号采集的要求。

系统采用了基于FLASH架构的Actel公司ProASIC3系列A3P100, 使用Libero集成开发环境, FPGA的A/D控制模块主要包含以下功能:

● 时钟控制器

记录仪系统FPGA的外部时钟频率为48 MHz, 对系统时钟20分频得到时钟DCLK即可提供A/D转换器的最大工作时钟。另外通过逻辑控制, 时钟控制器提供几个低于2.4 MHz的时钟频率, 系统可以选择更低的采样频率。

● 不等占空比时钟

本系统设计A/D控制模块中引入clk_div时钟信号, 占空比为2∶3, 做为din的控制电平, 当clk_div信号为低电平时, din输出数据, clk_div信号为高电平, din为低电平。

clk_div # (.duty_factor (duty_factor1) , counter_top (counter1) ) .div_clk1 (.reset (clk1_reset) , .clk_in (clk_in1) , clk_out (clk_out1) ) ; //任意占空比分频时钟模块调用

● 控制字状态机

记录仪上电以后的工作状态为3个通道循环采样, 控制字状态发生器循环生成ch0=“1001_1111”, ch1=“1101_1111”, ch2=“1010_1111”, 并将控制字转换成串行数据从din引脚输出, 实现A/D转换器通道切换。

● 控制字并行转串行模块

控制字ch0, ch1, ch2需要转化成串行数据, 通过din输入至AD, 控制通道选择, 循环输入控制字则循环选择3通道。将状态控制字ch0、ch1、ch2传输至寄存器, 在DCLK时钟下降沿, 提取第7位 (高位) , 此时数据比较稳定, 然后寄存器向左位移。在DCLK时钟上升沿传输至AD, 实现控制目的。

● 信号采集模块

A/D转换器采集数据串行输入FPGA后, 转换成并行数据, 传输至系统的数据总线。根据A/D转换器采样的基本时序可知, 在dout引脚串行输出数据时, din引脚应保持低电平, 为了3个采样通道近似同步数据采集, 在经过24个DCLK时钟周期, 对一个通道数据采集转换输出完成后, 要在DCLK的第25个时钟的上升沿, 进入第二个通道的采集和转换。最终实现记录仪在72个DCLK时钟周期的状态循环时序是A/D模块控制的关键。

3 计算机仿真分析与系统实现

系统FPGA使用Actel公司基于FLASH结构单元的芯片, 进一步的降低了系统的功耗, 缩小了系统的体积, ActelFPGA的集成开发环境Libero集成了仿真工具modelsim。以AD最高采样频率为例试验, 仿真时序波形如图4。

A/D控制模块中, 在“clk_div”高电平时, 实现寄存器“shuru”至寄存器“A”的数据传递, 在“clk_div”低电平实现并行数据到串行数据的转换, 并通过“din”输出, 图4中显示了“din”输出引脚3个控制字状态的变化。

示波器显示din引脚控制字串行输出三组控制字的循环变化, 如图5。

4 结论

系统运用FPGA电平控制多通道A/D转换器不同通道的选通, 相比较单片机而言, 更为稳定可靠, 采集数据流完整, 使用基于FLASH架构的Actel公司FPGA进一步降低了微型数据记录仪系统的功耗, 同时提高了系统在电磁干扰较强环境的稳定性。

参考文献

[1]周朝阳, 许建平, 徐国卿.基于FPGA的多通道串行A/D转换器的控制器设计[J].现代电子技术, 2008 (20) :55-58.

[2]KirianakiN V.Data Acquisition and Signal Processing forSmart Sensors[M].England:John Wiley&Sons Ltd, 2001:51-58.

[3]张东升, 张东来, 秦海亮, 等.基于FPGA的高速采集系统设计与实现[J].电子技术应用, 2006 (5) :76-77.

[4]张耀政, 王文廉, 张志杰.基于单路FIFO的多通道同步采集存储系统的研究[J].电力系统保护与控制, 2010, 38 (8) :101-103.

串行数据 篇9

1 I2C总线技术

I2C总线是一种用于IC器件之间连接的二线制总线。它通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。图1为I2C总线系统硬件结构图,总线上的每个器件均可设置一个唯一地址,在执行数据传输时,器件可以被设定为主控器和被控器。由主控器启动总线上的数据传输,并产生数据传输所需的时钟信号。

2 I2C串行总线协议

I2C总线传输数据必须遵循规定的数据传输格式,其基本要求如下:

1)

数据线SDA的电平状态必须在时钟线SCL处于高电平期间保持稳定不变。SDA的电平状态只有在SCL处于低电平期间才允许改变。但是在I2C总线的起始和结束时例外。

2)

I2C总线总是以字节(Byte)为单位收发数据。每次传输的字节数量没有严格限制。首先传输的是数据的最高位(MSB,第7位),最后传输的是最低位(LSB,第0位)。另外,每个字节之后还要跟一个响应位,称为应答。

3)起始条件:

当SCL处于高电平期间时,SDA从高电平向低电平跳变时产生起始条件。总线在起始条件产生后便处于忙的状态。

4)停止条件:

当SCL处于高电平期间时,SDA从低电平向高电平跳变时产生停止条件。总线在停止条件产生后处于空闲状态。

5)从机地址:

I2C总线不需要额外的地址译码器和片选信号。多个具有I2C总线接口的器件都可以连接到同一条I2C总线上,它们之间通过器件地址来区分。主机是主控器件,它不需要器件地址,其它器件都属于从机,要有器件地址。一般从机地址由7位地址位和一位读写标志R/W组成,7位地址占据高7位,读写位在最后。读写位是0,表示主机将要向从机写入数据;读写位是1,则表示主机将要从从机读取数据。

6)应答信号:

在I2C总线传输数据过程中,每传输一个字节数据(含地址及命令字),都要跟一个应答状态位,以确定数据传送是否被对方收到。应答信号由接收设备产生,在SCL信号为高电平期间,接收设备将SDA拉为低电平,表示数据准确,产生应答。

3 AT24CXX系列串行EEPROM

AT24CXX系列串行EEPROM是Atmel公司生产的一种采用CMOS工艺制成的EEPROM,支持I2C串行总线及传输规则。采用这类芯片可解决掉电数据保存问题,并可多次擦写,擦写次数可达10万次以上。型号及参数如表1所示。

AT24CXX系列EEPROM的寻址字节如表1所示。其中前4位是芯片地址1010,A2、A1和A0是可编程地址选择位,A2、A1和A0引脚接高、低电平后得到确定的三位编码,与1010形成7位编码,即为该器件的地址码。第8位为读写控制位,R/W=1表示读操作,R/W=0表示写操作。

4 单片机对AT24C系列的读写操作

4.1 硬件电路

MCS51系列单片机没有专门的I2C串行总线,需要用两条I/O线来实现。以89C52单片机与AT24C02连接为例,电路如图2所示。将P2.0连接到SDA脚,将P2.1连接到SCL脚,由于AT24C02是漏极开路,图中R1、R2为上拉电阻。A0、A1和A2三只引脚都接地,芯片地址选择位全都为0。

4.2 I2C总线的软件编程

由前述分析和图2的硬件电路,只有按照I2C总线数据传送时序和操作格式设计模拟子程序,我们编制了EEPROM的读写子程序。(限于篇幅,只给出部分详细程序)

5 结束语

I2C串行总线虽然没有并行总线那么快的数据传输能力,但其硬件接口简单,因而简化了电路的设计,扩展方便并且可靠性高,在实际电路设计中经常使用,如I2C接口EEPROM芯片用于存放系统重要的参数,I2C接口时钟芯片用于产生系统精密时钟等。本文通过给出单片机与AT24C系列连接电路图和部分编程程序,证明51单片机基于I2C串行总线数据的读写稳定可靠,在main函数中可直接引用,适用于工程实践。

摘要:简要介绍了I2C串行总线原理及AT24CXX系列串行EEPROM的特点。着重阐述了利用I2C串行总线和AT24CXX系列串行EEPROM实现数据存储的技术,给出了单片机与串行EEPROM硬软件实现方法和实用的读/写子程序。

关键词:单片机,I2C串行总线,EEPROM

参考文献

[1]郭天祥.新概念51单片机C语言教程——入门、提高、开发、拓展全攻略[M].北京:电子工业出版社,2009.

[2]董艳锋,田海峰,秦文华,等.I2C串行总线存储技术在单片机系统中的应用[J].山西电子技术,2007,(4):19-20.

串行数据 篇10

关键词:数据截取器,波特率,AT89C51,GM8123,MAX232

0 引 言

目前,我国的装备技术水平和发达国家相比还有一定的差距,对于国外引进的先进设备,如何才能在没有任何技术资料的情况下破解其技术瓶颈,实现装备技术水平的跨越式发展是我国普遍面临的技术难题。为此作者认为获取设备与控制计算机之间的通信数据,分析其通信协议是解决这个难题的基础。基于此,本文设计了数据截取器。

很多设备和其控制计算机之间采用的是RS 232标准串行接口进行通信,本文设计和实现了RS 232串行通信数据截取器,能有效地截取设备与其控制计算机之间的通信数据。

1 截取器硬件部分设计

1.1 总体框图及原理

系统原理框图如图1所示。

原理分析:具体设备与其控制计算机之间的通信线路通过电平转换分两路。一路是直接相连,保证截取器加入后不会影响它们之间的正常通信。另一路经过扩展的串口1和2,同单片机相连,保证了它们之间的通信数据能够被单片机捕获,这些数据经过单片机处理以后通过另一个扩展串口传输到上位机,实现对通信数据的截取[1,2]。

1.2 器件选择

系统以常用的AT89C51单片机为处理核心,选取成都国腾公司生产的GM8123芯片将AT89C51单片机的1个全双工异步串行通信接口扩展成为3个全双工异步串行通信接口[3,4,5,6,7,8],采用MAX232芯片实现RS 232电平与TTL电平之间的相互转换[9]。

1.3 硬件电路

系统完整的电路原理图如图2所示。系统电路包括三个部分:单片机最小系统、串口扩展电路和电平转换电路。

单片机最小系统,包括电源电路、时钟电路和复位电路,S1,S2做波特率控制开关,分别控制P0.0,P0.1的值从00~11,对应波特率为1 200~9 600 b/s。

串口扩展电路由GM8123构成,其时钟电路采用12 MHz的石英晶体振荡器构成内部时钟方式。 GM8123的母串口接收引脚RXD0和发送引脚TXD0分别同单片机串口的发送引脚TXD和接收引脚RXD相连接。GM8123的复位引脚同单片机P3.6脚相连接,由P3.6控制GM8123系统复位,它的模式控制引脚MS同P3.7相连接,由P3.7进行模式选择。GM8123的发送地址线引脚STADD0,STADD1,接收地址引脚SRADD0,SRADD1依次同单片机P1口的P1.0~P1.3相连接,由单片机P1口判断是哪个子串口接收数据和选取某个子串口发送数据[8]。

电平转换电路由两片MAX232芯片完成,实现J1,J2,J3的RS 232电平与TTL电平之间的相互转换[9]。

2 软件设计

系统软件有两种工作模式,模式1的软件设计是实现截取数据的实时发送,截取器工作时不能脱离上位机。模式2的软件设计是实现截取数据的存储转发,截取器可以脱离上位机工作。

2.1 主程序流程设计

模式1和模式2的主程序基本相同,其主要功能有:对单片机串行中断相关寄存器的配置,对串口收发数据波特率设定及相关定时器的配置[1,2],对GM8123芯片的复位操作和工作方式的相关配置[8]。主程序流程图如图3所示。

其中由S1,S2控制波特率设置的程序流程图如图4所示。

2.2 中断服务程序

模式1的中断服务程序完成的功能是接收具体设备(J1)和其控制计算机(J2)发送的数据,并把数据实时地发送到上位计算机(J3)上显示。模式1中断服务程序流程图如图5所示。

模式2中断服务程序主要完成的功能是接收具体设备(J1)和其控制计算机(J2)发送的数据,并把接收到的数据存储到单片机的RAM中,当接收到上位机(J3)的发送数据命令时,向上位计算机发送存储的数据。其流程图如图6所示。

3 功能测试

借助串口调试助手软件[10]在不同的波特率下对截取器进行功能测试,如图7是在波特率为9 600 b/s,模式2下的测试结果。其中COM1,COM2和COM4分别对应具体设备、控制计算机和上位机。上位机接收数据中“s:”标号后的数据是设备发送的,“k:”标号后的数据是控制计算机发送的,这些数据是按照时间的先后顺序被截取器所截取。利用截取器对某一具体设备和其控制计算机之间的实际通信数据进行截取时,就可以通过分析截取的数据,找出它们之间通信数据的对应关系,从而分析其通信协议。

4 结 语

本文讨论了RS 232串行数据截取器的设计方案,并做出了产品,进行了实验。系统稳定、可靠,可以有效地截取串行通信数据。该系统可以为有相关需求的人员提供帮助。

上一篇:结核药物性肝病下一篇:保护计算