串行方式(共6篇)
串行方式 篇1
0 引 言
在工业生产、科学研究以及人们日常生活的多个领域, 经常需要对一些如温度、压力、流量等现场参数进行采集和处理, 数据采集和处理所使用的系统, 其结构与基本配制各不相同, 有时会相差甚远, 但对于每一种系统都各有特点、各具优势。其中, 单片机结合串行通信控制技术以其实现手段简单、使用方式灵活及数据传输可靠, 尤其具有数据实时处理和控制功能等优点, 目前在各类检测与控制系统中得到了很好的运用。
本文介绍一种基于单片机为基本内核, 利用串行通信技术实现数据采集与传输, 并且能对数据的采集和处理过程进行简单控制的最小智能化控制系统的实现方式。
1 系统的硬件组成
基于串行总线下最小控制系统主要由硬件和软件两部分组成, 其中硬件部分主要负责完成系统前端数据采集、控制方式的选择、控制参数的设定以及最终处理结果的显示[1], 其系统硬件组成如图1所示。
1.1 硬件系统的实现
为了保证和满足系统对数据采集的实时性要求, 系统的现场数据采集主要采用与8051单片机兼容的STC89C52RC/RD+单片机为内核, 实现对过程的简单控制, 现场参数的设置, 并在串行方式下与主机进行数据的交换, 完成控制命令的具体执行和现场控制过程的监控, 并与PC机通用串口进行通信。系统的数据交换均采用串行异步工作方式, 通过STC89C52的P3.0和P3.1 (RDX和TDX) 端口, 由电子开关4052完成状态的切换、通道的选择[2]。其具体的系统硬件连接方式如图2所示。
1.2 硬件系统的工作流程
在最小控制系统中, 前端采集的模拟信号经过传感器完成形式的转换和必要的前端处理后接入串行A/D转换器。如果采样的是多路模拟信号, 可以在外围电路中利用多路模拟开关进行通道选择, 串行A/D转换器的输出信号经光电隔离后传送到4芯插头J1, 由4052完成输入数据最终向处理器的传送。控制信号的输出, 系统采用由处理器STC89C52经电子开关4052完成通道的选择, 同样由图2中的4芯插头J1输出, 经过外围电路对信号进行隔离和数/摸转换后实现对检测对象的具体控制。在对采样数据的处理方式上, 系统采用串行口传输、上位机并行处理的方式进行。由于系统没有对存储容量进行扩展, 系统自身的存储空间较小, 使得系统对采样数据的现场处理能力受到一定影响。系统通过把现场采集的数据经过处理后采用串行工作方式, 通过P3.0和P3.1端口, 利用串行接口芯片MAX232实现与上位PC机之间的数据传输, 由上位PC机完成对数据的分析与处理。经过处理后的数据经过同一通道及时地传送给STC89C52, 由STC89C52完成数据的显示和控制信号的输出。
系统控制参数的设置、控制方式的选择以及运行状态的监控, 既可以由上位的PC机进行, 也可以在现场由最小系统自己独立完成, 为此系统对输入/输出端口了进行了必要的扩展, 通过对小建盘上功能的设定, 完成控制参数的设置和控制方式的选择。
2 系统软件结构
系统在控制方式的选择和软件的编制方面表现出极大的灵活性, 既可以根据需要在扩展一定存储空间的基础上, 利用在电路编程特性 (ICF) 使用编程器进行产品开发;同时系统还具有ISP在系统可编程功能, 用户可以在PC机上选用基于Windows的μVision 2集成开发环境下, 使用单片机C语言进行编程[3], 也可以在STC-ISP开发环境下利用MCS-51汇编语言编制控制程序, 并在此环境下控制程序下载到单片机上完成产品的开发, 从而提高硬件电路的通用性。
2.1 系统软件的实现
系统以单片机为核心, 由单片机完成数据的现场采集、过程的监控、最终结果的显示以及控制命令的输出。现场采集的数据系统采用通过串行总线传送到主控上位机, 由主控计算机完成对数据的处理。因此软件系统主要包括单片机系统和主控程序两个方面, 每一个方面根据所担负的不同任务, 依据分工划分为对应不同的标准模块。
负责现场数据采集和过程管理的单片机程序主要划分为以下几个模块:
数据采集模块 通过传感器实现对外部被测物理量的采集, 输入通道的选择, 采集数据的离散化处理。
数据处理模块 完成对采集数据状态的转换与分发, 并进行简单的现场处理。
硬件接口模块 以串行总线规定的协议为基础, 完成对采集数据的分发, 对系统控制方式及参数配置信息的设置、接收与反馈, 控制命令的输出以及最终结果的现场显示。
输入与输出管理模块 实现参数的设置, 状态的选择, 最终结果以及过程的显示。
主控上位机除了完成对由下位机传送的数据进行处理外, 还担负着对整个控制过程的管理, 在控制系统中起着主导作用。因此主控程序依据功能可以划分为以下几个模块:
过程控制管理模块 实现对各控制系统的各个单元模块的总体控制, 包括启动、暂停、结束等。
系统通信参数配置模块 实现对传送数据的有效位、倍率、串口等参数进行设定。
硬件接口模块 以串行总线规定的协议为基础。
数据处理模块 完成对接收的数据进行分析、运算。
2.2 单片机系统软件设计
系统在接收到主控程序的各种参数或者通过自身键盘设置的现场参数后, 单片机控制系统要完成对系统的初始化配置、数据的采集与收发、现场的简单处理以及控制状态和最终结果的显示。其过程的程序框图如图3所示。
2.3 主控程序软件的实现
由于系统的前端控制装置仅仅能实现对数据的简单处理, 无法满足系统进行多点实时处理这一基本要求, 系统可以在上位机的主控软件中创建主/辅线程两级管理方式来解决[4]。主线程主要用于对数据采集与传送程序的统一管理, 实现串口的初始化, 定义通信事件消息, 控制和管理辅助线程。辅助线程主要完成串口线程的监控与读写, 是数据处理系统的核心, 并且与主线程实行并行工作方式, 主要负责完成上位机的数据自动接收和实时处理, 同时向主线程发送相应的状态信息, 数据的处理结果, 在传送完毕后继续执行对串口线程状态的监控。这种并行设计不仅提高了资源的利用率, 同时也保证数据处理的实时性[5]。其主线程的程序框图如图4所示。
3 系统的扩展与改进
最小系统与PC机的通信接口在系统中采用的是标准的MAX232接口, 此种设计模式主要满足对数据处理和传输速度要求不高、数据采集点较近的场合。如果要求数据传输的速度较高, 传输的距离较远, 可以对系统进行必要的改进, 通过采用USB总线的转接芯片CH341与RS 485相结合的方式[5,6], 其连接框图如图5所示。
经过改进不仅使系统满足了数据传输的速度与距离的要求, 同时可以实现多种设备在总线的外挂, 实现大数据量远距离的高速传输。
4 结 语
基于串行总线下的数据采集与实时处理最小控制系统, 依据其自身的独特设计, 为控制过程的智能化提供良好的前端平台, 同时通过利用PC机的高速数据处理与多线程管理能力, 采用串行通信技术, 经过对相关接口的简单转换, 很好地解决了数据采集与控制过程中所遇到的数据量大、传输速度快、传输距离远等诸多问题, 目前被广泛地应用于压力与流量的采集和控制系统中, 并取得了良好的效果。
参考文献
[1]张迎新.单片微型计算机原理、应用与接口技术[M].2版.北京:国防工业出版社, 2004.
[2]李学海.标准80C51单片机基础教程——原理篇[M].北京:北京航空航天大学出版社, 2006.
[3]李朝青.PC机及单片机数据通信技术[M].北京:北京航空航天大学出版社, 2000.
[4]谭浩强.C/C++程序设计教程[M].北京:高等教育出版社, 2001.
[5]李现勇.Visual C++串口通信技术与工程实践[M].北京:人民邮电出版社, 2002.
[6]纪淑波, 刘晶.基于89C51和USB总线的数据采集系统[J].国外电子测量技术, 2005, 24 (3) :35-39.
串行方式 篇2
关键词:单片机,串行通信,电子密码锁,设计方案
实际上,电子密码锁和普通的机械密码锁存在着本质上的区别,它具有较强的安全性和可靠性,而且自身的优势更加明显。另外,在计算机技术网络化的背景下,更能为其提供安全有效、智能化的网络管理,而且它的实现过程不是特别复杂,电子锁上的密码也是复杂多变的。一般情况下,这种电子密码锁的成本都比较低,但是却具有非常昂贵的市场价格,基于此,本文对单片机与串行通信的电子密码锁的设计进行了详细的研究和分析,希望能够实现电子密码锁的良好使用。
1.传统电子密码锁和单片机与串行通信的电子密码锁的基础功能
■1.1传统电子密码锁的基础功能
对于传统的电子密码锁来说,它的设计原理如下:一定要具有相应的密码位数和数字的取值范围,因为这对电子密码锁的安全情况有着直接的影响;用户可以按照自己的意愿进行密码的设置和改变;在输入密码的过程中会给出相应的提示,如果用户输入了错误的密码,要重新输入;密码输入错误的次数一定要规定的范围内,超出就会出现相应的信号;如果用户输入了正确的密码,那么就会成功开锁;传统电子密码锁的成本比较低,具有很好的安全性和可靠性。
■1.2单片机与串行通信的电子密码锁的基础功能
对于单片机与串行通信的电子密码锁来说,它的设计原理如下:具有多样化的功能;在计算机和网络技术快速发展的背景下,电子密码锁智能化一直在不断的深入;单片机与串行通信的电子密码锁是和智能型的现场监控设施或者是中央监控设备连接在一起的;模块具有较强的集成化,而且结构相对来说比较简单,具有良好的安全性和可靠性,操作起来非常简便;人机界面具有相应的智能化、自动化以及集成化的功能。由此可知,单片机与串行通信的电子密码锁既具有传统电子密码锁的基础功能,又引进了嵌入型的技术,而且在进行电子密码锁的设计时,还减少了所使用的元器件,使电子密码锁的结构硬件变的更加简单[1]。对于单片机与串行通信的电子密码锁设计来说,它能推动电子密码锁向着智能化、自动化以及网络化的方向不断发展,使其具有了较强的扩展功能。另外,通过网络系统还能对联网的电子密码进行时刻的监控,实现动态的管理,而且单片机与串行通信的电子密码锁还具有一些延伸性的功能,比如报警功能。
2.单片机与串行通信的电子密码锁方案设计的分析
■2.1电子密码锁的方案设计
在进行电子密码锁的方案设计时,可以按照主从形式的结构,也可以按照总线型的计算机网络拓补结构和两集控制的形式。其中,键盘矩阵的排列基本上是是按照4×3的形式排列的,可以随便选取主控芯片,通常情况下使用的是型号为ATM EL的主控芯片。在进行键盘电路的扫描时,主要是按照行的方式来扫描,其中按键使用的是机械形式电子开关。在键盘电路中,一切的按键都有各自的功能,而且基本上分为功能型的按键以及数字型的按键。对于电子密码锁来说,单片机的主要工作就包括两方面,一方面输出密码,另一方面是上传密码,经过PC端来整理和选取信息,创建健全的数据库,在这种情况下就能使其成为一个比较完善的计算机网络。单片机与串行通信的电子密码锁设计,不仅能够增加电子密码锁的传输距离,还能将电子密码锁的连接方式变的更加简单,并且具有较强的操作功能,从而实现电子密码锁信息的安全传输[2]。
■2.2选择合适的软件和硬件
通过对单片机与串行通信的电子密码锁设计进行分析,可以在其具体需求的基础上来选择软件和硬件,其中软件可以使用51系列的C编译器,而硬件设备可以使用89系列的C52单片机。另外,在进行单片机与串行通信的电子密码锁的设计时,软件和硬件的组合方式主要以嵌入式为主。
■2.3创建通信协议
在进行单片机与串行通信的电子密码锁设计时,最主要的方法就是串行通信,这种串行通信的方法能够对数据进行很好的传输和管理,并且还能实时的监控电子密码锁的内部部件,从而确保内部部件的功能。在单片机与串行通信的电子密码锁设计中,ATM EL89C52单片机是总线控制部件中最重要的,在进行密码的传输和相关命令的公布时,最好是主动申请。
3.电子密码锁系统的研发
■3.1人机式交互界面的研发
在电子密码锁系统的研发中,人机界面中键盘的矩阵方式主要以4×3的方式为主,其中行线由四条I/O线组成,列线由三条I/O线组成,之后会在交叉的地方对按键进行适当的设置。对于行线来说,每一行都要设置,主要是要将其设置为低电平,之后再检查列的输入情况,产看按键有没有按下,最后进行按键的译码。电子密码锁人机界面中的显示模块可以使用WM-C1602N的液晶显示器,这样能够将人机交互界面很好的展示出来。对于双层的通信协议来说,每一层的协议基本上都是独立存在的,而且系统结构也比较简单,因此,双方系统可以采用RS-232C接口进行单片机输出引脚的定时输出,从而确保双方数据的互相通信。
■3.2密码信息存储功能的研发
该系统中使用的是52型单片机,该单片机没有在线型可写入的断电保持设备,这种情况下能够确保用户的输入密码在断电后还能进行保存,这时可以采取AT28C17作为辅助型的的存储设备。其中AT28C17 EFPROM主要具有操作简单、硬件方面没有特别的要求、不必增加编程电路或者是编程脉冲就可以进行写入处理等特点[3]。另外,可以将外面的数据信息存储空间和电子密码程序的存储空间结合在一起,利用查询手段进行AT28C17的管理和控制。在进行程序的擦写时,RDY/BUSY的引脚都显现出低电平,待完成之后就会成为高压片,之后可以使用集成性特征函数进行AT28C17的读写。在读写操作时,基本上和平常的静态RAM的读写相同。
■3.3主机之间网络通信的研发
对于总线通信的控制设备来说,它等到上电复位之后才会正式工作,采用中断方法等待串行通信情况的发生,通过全双工互锁的方式促使电子密码锁系统实现正常的通信,另外,还要使用通用型的串行通信的总线对主机进行通信控制。通常情况下,要将总线通信管理和网络中的下位电子密码锁管理设备设置在串行的通信数据链路上,进而创建完善的总线型的网路。再有,还要确保计算机网络中电子密码锁的电源接通,实现有效的工作。在电子密码锁的电路通过DC—DC模块电路的转变以后,就能为电子密码锁本身的电路提供足够的电源,实现电子密码锁系统主机之间的网络通信。
■3.4总线仲裁研发
针对总线通信,在通信协议中已经做出了规定,一定要确保所有的设备都能供总线通信使用,而且在使用之前,一定要认真检测总线的浮动电平,要在确保没有任何异常情况或者是没有发现跳跃的总线的基础上才能进行分组的发送,并且在这个过程中所出现的总线都要有特定的协议来进行保护。电瓶中的电筒是通过多功能定时器才完成的,在进行总线中电瓶跳动的计数处理时,一定要确保计数的值不能是0,如果计数时总线系统比较繁忙,要稍等一会再进行后续的处理。
■3.5下位机和服务器之间的通信
对于下位机和服务器来说,它们之间之间的通信问题是确保信号有效传输的核心,在总线对下位机和服务器之间进行通信之后,就能对数据资料进行很好的解决和分析,从而充分符合电子密码锁的保密需求[4]。下位机和服务器之间的通信主要体现在以下几方面:首先,数据帧会通过串行通信总线的接口,从而实现信息的传输。而对于数据帧中的信号传输来说,下位机和服务器之间能够很好的实现信号接收,这对下位机和服务器之间的通信具有非常重要的意义;其次,在通信模块的信息传输和接收过程中,单片机起着非常重要的作用,是一个不可缺少的设备。在进行电子密码锁的系统设计时,单片机和串行通信是最重要的,在这种情况下,数据读取就要在同口式通信的基础上进行,而且还要对数据帧的程序代码进行确定,这个过程可以由C语言来实现。
4.结束语
综上所述,在社会经济不断发展的同时,电子密码锁已经成为了人们生活中非常常见的物品,但是一些电子密码锁的安全性和可靠性比较低,会给人们的财产安全带来严重的影响。而单片机与串行通信的电子密码锁,它的设计成本比较低,而且操作起来也比较简便,还具有智能化、网络化以及集成化的特点,值得在以后的生活中推广使用。
参考文献
[1]李飞.基于单片机与串行通信的电子密码锁设计[J].电子制作,2014,06:6-7.
[2]姚龙.基于单片机与串行通信的电子密码锁设计分析[J].电子世界,2014,15:35.
[3]李晓辉.基于单片机与串行通信的电子密码锁设计[J].电子技术与软件工程,2014,22:261.
探索串行密码信号检测器 篇3
设计任务:设计一个二进制序列信号检测器, 它有一个输入X, 当接收到的序列为1001, 则在上述序列输入最后一个1的同时, 电路输出Z=1, 否则输出为0, 输入序列可以重叠 (即在一连串输入信号中检测2..5, 5..8, 10..13符合, 5是重叠的) 。例如:当输入X的序列为0100100101001 (首位在左) , 对应输出Z=0000100100001。
一、用分立触发器设计
触发器的种类很多, 其中双端输入的JK触发器和单端输入的D触发器最具代表性。由于用D触发器设计的电路更为简单, 故采用它来设计电路。
1. 逻辑抽象
由于待检测的序列为1001, 故设电路在输入0 (即电路还未接收到序列中的第一个1) 时的状态为S0, 输入一个1以后的状态为1S, 连续输入10以后的状态为S2, 连续输入100后的状态为S3, 连续输入1001后的状态为S4。于是得到状态转换表1。
选取第一、三行解释其原理:S0表示接收到的是0, 当在此基础上再接收到一个0后变为00, 而需要检测的序列是1001, 所以电路状态仍然停留在S0上;当电路在S0的基础上接收到1后表示接收到1001序列中的第一个1, 于是电路状态转为1S。同理S2表示已经接收到10, 当在此基础上接收到0后变为100, 电路转到S3, 但是接收到1后则变为101, 于是前面接收的两位代码失去作用, 只有第三位的1可作为1001的第一位, 所以电路状态转回1S。
通过观察状态转换表, 可以发现, 1S和S4在同样的输入下有同样的输出, 而且状态转移后得到同样的状态。因此它们是等价的可以合并为一个。于是, 状态转换表可以化简为表2。
从物理概念上也不难理解这种情况。当电路连续接收到1001后, 输出为1, 但序列可以重叠, 故最后一个1可作为下一个1001序列的第一位 (即状态1S) , 所以电路在连续接收到1001后的状态S4实际上就是1S。
2. 编码
由化简后的状态转换表2可知, 电路总共有4种状态 (S0~S3) , 而每一个触发器的输出Q可以用0或1表示2种状态, 于是两个触发器的输出Q1 Q0的4种00、01、10、11就可以表示这4种状态S0~S3。这个过程就是编码。
3. 列真值表并写出状态方程
把化简后的状态转换表中各状态用编码表示出来就得到了真值表 (如表3所示) 。其中Q1*Q0*表示Q1 Q0的下一状态。写出1Q*、0Q*、Z关于X, 1Q, 0Q的方程就得到电路的状态方程。
4. 作逻辑电路图
由于D触发器的特性方程为Q*=D, 从而, 根据该方程就可以做出逻辑电路图 (如图1) 。
二、将触发器接成移位寄存器来设计
上面的设计方法主要依靠电路的状态转换来实现序列码检测的, 虽然得到的电路简单, 但是设计过程比较复杂, 特别是当需要检测的序列码位数较长时, 工作量相当巨大。为此, 将触发器接成移位寄存器的方式可以大大简化电路设计, 同时也便于扩展成位数更多的序列码检测器。如图2所示电路就是用四个D触发器接成的向右移位寄存器。
由图知, 。在移位脉冲CLK作用下, 输入端X输入的二进制码依次向右移动, 每当出现一个完整的1001序列时, 输出端Z便出现高电平。这样就实现了序列码检测的功能。
三、用中规模集成电路来设计
既然用移位寄存器可以实现序列信号检测, 那么用集成移位寄存器加少量门电路同样可以实现, 而且电路可靠性更高。, 如图3所示为用4位集成移位寄存器74LS194来实现的序列1001的检测器。
四、当序列不可重叠时电路的设计
用以上三种方法设计出的电路都是序列可以重叠的序列码检测器, 若要求被检测的序列不可重叠, 则在方法1中, 只需要根据实际情况修改状态转换表即可, 后面的设计原理及步骤不变。这种设计方法存在的问题仍然是当待检测的序列位数很长时, 设计工作量巨大, 电路可靠性降低。在采用第二、第三种方法设计时, 需增加部分控
常用串行数据通信接口浅析 篇4
一、数据线通信基本原理和特点
通信接口一般有并行通信接口和串行通信接口两种。并行通信方式的并行数据通信是以字节为单位的数据传输方式, 除了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
Matlab是一种开放型程序设计语言, 拥有集计算、可视化、编程和仿真于一体的开发环境。同时它具有功能强、易学习、效率高等特点, 可以方便地应用到科学计算、算法研究、数据采集和处理、系统建模和仿真、数据分析和可视化、科学和工程绘图、图形用户界面建立等方面。
从Matlab 6.0版本开始, 软件中增加了设备控制箱 (Instrument Control Toolbox) 功能, 提供了对RS 232/RS 485通信标准的串口通信的正式支持[1]。利用该工具箱的serial类及fopen, fread等函数, 能可靠地进行实时串行通信。根据Matlab的设备控制箱功能, 将Matlab产生的数据, 例如图像数据等, 通过串口输出作为红外传输的数据源。红外传输控制电路由AT89S51单片机实现。这种方法有利于结合Matlab的数据处理和数据传输的优点, 从而增加电路的实用性[2]。
1Matlab串口通信原理
在Matlab 6.0中的设备控制工具箱可以用来负责上、下位机之间的通信。该设备控制工具箱的特点有:支持的串行接口包括有RS 232, RS 422, RS 485;支持的通信数据包括二进制和文本两种方式;支持异步通信和同步通信以及事件驱动的通信。
Matlab支持面向对象技术, 用一个对象将计算机串口封装起来, 只要创建串口对象, 对串口对象操作就是对串口操作, 非常方便[3]。首先使用serial函数创建串口对象, 并定义串口对象的属性, 如数据传输的波特率、奇偶校验位、串口类型等, 一般选用“com1”来进行数据的传送。然后用fopen, fread函数打开串口和写入串口数据, 这个数据可以是Matlab处理得到并需要传输的数据。数据传输完毕之后, 利用fclose函数来关闭对象。常用的与串口操作有关的函数如表1所示。
下面是串口通信的一个例子, 这个例子是使用Matlab来向串口发送数据0, 18, 24, 32的。
先在Matlab软件中输入函数代码, 如图1所示。
然后使用串口调试助手来接收串口发送的数据, 其中“com3”和“com4”为一对虚拟串口对, 如图2所示。可以看出, 输出的数据组00, 12, 18, 20为原来数据的十六进制显示, 证明显示正确。
由于Matlab 6.0封装的串口对象支持对串口的异步读写操作, 使得计算机在读写串口时能同时进行其他处理工作, 因而能大大提高计算机执行效率。这样就能确保实时进行红外传输。
2红外发送接收电路
2.1 红外通信原理
红外线是可见光谱中位于红色光之外的光线, 它在光谱中的波长范围在0.76~400 μm之间。由于红外线在频谱上居于可见光之外, 所以抗干扰性强, 具有光波的直线传播特性, 不易产生相互间的干扰, 是很好的信息传输媒体[4]。人们可以通过设计红外发射和接收电路来实现红外通信。红外通信具有保密性强、抗干扰能力高、结构简单、价格低廉等优点, 在无线传输领域有着广泛的应用[5]。
红外通信是采用红外线作为信息传递媒体。红外通信的发送端是将要发送的二进制数字信号调制为一定频率的脉冲序列, 一般采用38 kHz的方波作为载波信号, 然后驱动红外发射管以光脉冲的形式向外发送;红外通信的接收端采用红外接收芯片, 它能将接收到的光脉冲转换成电信号, 通过信号放大、滤波、解调处理后, 输出和发送信号一样的数字信号, 从而完成红外信号的通信。
2.2 红外发送电路设计
利用AT89S51的定时计数功能产生38 kHz红外载波信号, 载波信号由P1.1口输出, C语言程序设计如下:
由Matlab产生的数据通过P1.0口, 产生一定脉宽的方波信号, 作为红外发送的信息源。红外发送电路如图3所示。图3中, 三极管起信号放大作用, 电阻R3, R4起到限流保护的作用。通过两个三极管的级联, 能将编码调制在38 kHz载波上的二进制信号通过红外发射器发射出去。当输入信号为低电平时, 两个三极管导通, 红外发射器上有电流通过, 发射高电平信号。而当输入信号为高电平时, 两个三极管截止, 红外发射器上无电流通过, 发射低电平信号, 其中LED为红外发射二极管。
2.3 红外接收电路设计
本系统中采用的红外接收模块为TSOP4838。该接收模块是一个三端元件, 它具有功耗低、抗干扰能力强、输入灵敏度高等优点[5]。
TSOP4838的工作原理为:将接收到的调制在38 kHz的脉冲光信号转化为电信号, 再由前置放大器和自动增益控制电路进行放大处理。然后通过带通滤波器进行滤波, 滤波后的信号由解调电路进行解调。
红外接收电路如图4所示。三极管A1将TSOP4838的OUT口输出的二进制传输信号放大, 电容C1起滤波作用, 最终信号由OUT1输出。
由于OUT1输出的是串行数据, 在实际应用中可以根据需要转为并行数据输出, 为此可以在OUT1口加一个移位寄存器74LS164。
3结语
基于Matlab的红外串行通信电路的最大特点是对Matlab数据处理能力和红外通信能力的结合。红外通信的结果真实可靠、错误率低。本电路系统在一些实时传输方面, 如用Matlab将处理的图形数据、计算结果等进行无线传输, 将得到较为广泛的运用。
摘要:介绍一种基于Matlab的红外通信电路的研究设计。简要介绍了Matlab进行数据处理方面的优点, 然后分析Matlab进行串口传输的原理和方法。设计出基于AT89S51的红外发送和接收电路, 并将Matlab产生的数据作为数据源进行红外传输。这种方法有利于结合Matlab的数据处理和数据传输的优点, 有一定的实用性。
关键词:Matlab,红外,串行通信,AT89S51单片机
参考文献
[1]何英, 何强.Matlab扩展编程[M].北京:清华大学出版社, 2003.
[2]李泽光.基于单片机的红外遥控器解码器的设计[J].现代电子技术, 2007, 30 (9) :36-37, 40.
[3]方红萍, 王阳.具有学习功能的通用红外遥控系统关键技术的研究[J].计算机时代, 2009 (3) :20-21.
[4]向先波, 徐国华, 张琴.Matlab环境下PC机与单片机的串行通信及数据处理[J].单片机与嵌入式系统应用, 2004 (12) :27-31.
[5]叶晖.红外通信协议在嵌入式系统中的实现[J].电子技术应用, 2000, 26 (7) :27-30.
[6]黄涛, 褚淑杰.基于红外通信的智能家居系统[J].微计算机信息, 2005, 21 (1) :32-35.
[7]张君怡, 王海明, 裴东兴.基于USB2.0的红外数据传输系统的设计与实现[J].电子设计工程, 2009 (12) :49-50.
基于CPLD的异步串行通信设计 篇6
由于许多微处理器都没有异步串行口, 为了实现异步串行通信, 需要使用专用串行通信芯片, 电路设计比较复杂。随着复杂可编程逻辑器件 (CPLD) 的发展, 按照异步串行通信的协议, 采用VHDL语言编程, 可以将异步串行通信功能集成到CPLD内, 也就是用软件的方法实现硬件的功能, 既减少了元器件数量、简化了电路, 又提高了设计的可靠性。软件编程采用的VHDL硬件描述语言, 设计灵活, 调试简单, 可以先通过计算机进行仿真, 再投入实际使用, 可大大降低设计的风险性。
1 异步串行通信基本原理
所谓异步串行通信是指具有不规则数据段传送特性的串行数据传输。异步通信数据帧的第一位是起始位, 在通信线上没有数据传送时处于逻辑“1”状态。当发送设备要发送一个字符数据时, 首先发出一个逻辑“0”信号, 这个逻辑低电平就是起始位。起始位通过通信线传向接收设备, 当接收设备检测到这个逻辑低电平后, 就开始准备接收数据位信号。因此, 起始位所起的作用就是表示字符传送开始。当接收设备收到起始位后, 紧接着就会收到数据位。数据发送完之后, 可以发送奇偶校验位。奇偶校验位用于有限差错检测, 通信双方在通信时需约定一致的奇偶校验方式。就数据传送而言, 奇偶校验位是冗余位, 但它表示数据的一种性质, 这种性质用于检错, 虽有限但很容易实现。在奇偶位或数据位之后发送的是停止位。停止位是一个字符数据的结束标志。
2 复杂可编程逻辑器件 (CPLD)
复杂可编程逻辑器件—CPLD (Complex Programmable Logic Device) , 是从PAL的GAL器件发展出来的器件, 相对而言规范大, 结构复杂, 属于大规模集成电路范围。是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台, 用原理图、硬件描述语言等方法, 生成相应的目标文件, 通过下载电缆将代码传送到目标芯片中, 实现设计的数字系统。
3 VHDL语言
VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language, 诞生于1982年。1987年底, VHDL被IEEE和美国国防部确认为标准硬件描述语言。VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外, VHDL的语言形式、描述风格和句法十分类似于一般的计算机高级语言。
4 异步串行通信设计
4.1 总体框图
本设计规定的数据帧格式为:1位起始位, 8位数据位, 1位停止位, 无校验位;波特率为9600bps;系统时钟频率为1.8432MHz。程序主要包括波特率发生器、发送电路和接收电路三个部分。程序的功能框图如图1所示。
4.2 波特率发生器
波特率发生器实际上就是一个分频器, 主要是根据要求的串行口波特率, 将系统时钟进行分频, 分别产生发送时钟和接收时钟。发送时钟的频率与串行口波特率相同。由于串行数据帧与接收时钟是异步的, 为了实现接收时钟与接收数据帧的同步, 需要采用高速率时钟对接收数据进行采样, 一般选择16倍于波特率的时钟频率作为接收时钟。本设计中, 系统时钟 (1.8432MHz) 12次分频后得到接收时钟 (153600Hz) , 再将接收时钟16次分频后得到发送时钟 (9600Hz) 。
4.3 发送电路
4.3.1 发送电路原理
发送电路相对比较简单, 当有发送请求时, 按照发送时钟的时序, 在上升沿时刻依次发送起始位、8位数据和停止位。需要说明的是, 8位数据的发送顺序是先发送低位后发送高位。发送电路的时序图如图2所示。
4.3.2 发送电路设计
发送电路采用Moore型状态机的方式设计, 包括:空闲、发送起始位、发送数据位和发送停止位四个状态。发送电路的状态图如图3所示。
空闲状态:初始状态为空闲状态, 只有在空闲状态下, 才能检测是否有发送请求, 当检测到有发送请求时, 将8位数据装入发送移位寄存器, 进入发送起始位状态。
发送起始位状态:发送一位起始位, 进入发送数据位状态。
发送数据位状态:依次发送8位数据, 当8位数据全部发送完成后, 进入发送停止位状态。
发送数据位状态:发送一位停止位, 表示一帧数据发送完成, 再次进入空闲状态。
4.4 接收电路
4.4.1 接收电路原理
接收时钟在每个时钟周期都对接收数据进行采样, 当检测到当前数据位为“0”而前一个数据位为“1”时, 即表示检测到了起始位。为了保证读取数据的可靠性, 每个数据位均在中间点进行采样, 在检测到起始位后, 延迟8个接收时钟周期, 开始依次读取起始位、数据位和停止位, 两次读取的间隔为16个接收时钟周期。为了能够接收连续两帧数据中的后一帧, 读取到停止位的下一个时钟周期 (而不是延迟8个时钟周期) 即开始检测起始位。接收电路的时序图如图4所示。
4.4.2 接收电路设计
接收电路同样采用Moore型状态机的方式设计, 包括:空闲、接收起始位、接收数据位和接收停止位四个状态。接收电路的状态图如图5所示。
空闲状态:初始状态为空闲状态, 不断对数据进行采样, 检测起始位, 一旦检测到起始位, 即进入接收起始位状态。
接收起始位状态:接收一位起始位, 并对起始位的有效性进行判别, 若为虚假起始位, 则返回空闲状态, 若确认起始位有效, 则进入接收数据位状态。
接收数据位状态:依次接收8位数据, 当8位数据全部接收后, 进入接收停止位状态。
接收停止位状态:接收一位停止位, 表示一帧数据接收完成, 将8位数据送接收缓存, 再次进入空闲状态。
5 结语
本文对异步串行通信的工作原理、电路设计进行了分析, 采用VHDL语言编程, 在CPLD上实现了异步串行通信功能。该设计为固定波特率和数据帧结构, 无需微处理器进行额外设置, 操作简单, 使用方便。在实际工程应用中, 还可以根据需求, 在此基础上增加波特率设置、数据帧结构设置、地址译码等电路, 实现多路、波特率和数据帧结构可设置的异步串行通信。
摘要:异步串行通信技术在电子通信设备中被广泛使用。随着复杂可编程逻辑器件 (CPLD) 的发展, 按照异步串行通信的协议, 采用VHDL语言编程, 可以将异步串行通信功能集成到CPLD内, 也就是用软件的方法实现硬件的功能, 既减少了元器件数量、简化了电路, 又提高了设计的可靠性。