免费预览已结束,剩余55页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于vb实现pc机与单片机远距离通信的研究摘要在现代工业数据通信中,串口通信应用比较广泛;单片机以其体积小、价格低、抗干扰性能好等优点,在现场监控和数据采集系统中也得到广泛的应用;vb由于使用方便,容易掌握,设计软件方便,工作量较小,在通信程序的编写中,也深受工程人员喜爱。基于以上三个原因,本文研究了通过vb实现的pc机与单片机的远程通信系统。在本通信系统中,硬件电路采用rs-232串口通信;并通过电平转换实现单片机与pc机的数据连接;通过rs-232/485转换器,实现数据的远距离传输;并且对系统运行的可靠性进行了分析。软件程序中,上位机采用vb编程,实现vb操作界面和相应的功能;下位机采用c语言编程,以实现上位机对下位机的控制。最后运用proues软件对整个系统进行了虚拟仿真,验证了系统的可行性。 关键词:pc机,单片机,远距离通信,vb,protuesbased on vb realize pc and single-chip microcomputer long distance communication researchabstractin the modern industrial data communications, serial interface communication is widely used; single-chip microcomputer with its small size, low price, anti-jamming performance are also widely used on the site supervisory control and data acquisition system; vb due to use convenient, easy to master, design software is convenient, the workload is lesser, in write communication program, also is favored by engineering personnel. based on the above three reasons, this paper studied the pc via vb realize remote communication system with mcu.in this communication system, hardware circuit uses rs - 232 serial interface communication; multilevel conversion is used to realize data connection between mcu and pc; rs - 232/485 switch is used to realize the data transmission over a long distance; and the operation reliability of the system is analyzed. in software program, pc use vb programming to realize the vb interface and the corresponding function; lower level computer programmed use c language to realize the control between pc and lower level computer. finally proues software is used to simulate the whole system, verify the feasibility of the system . key words: pc, single-chip microcomputer, long distance communication, vb, protues目录摘要 abstract 1 绪论11.1 课题背景11.2 工业自动化的通信方式11.3 串行通信的详细介绍21.3.1串行通信的介绍21.3.2 串行通信的基本概念21.3.3 串行通信的制式31.3.4 通信速度与通信距离31.3.5 串行接口标准42 单片机串行通信原理52.1 单片机串行通信接口52.1.1 串行接口的基本特点52.1.2 串行控制寄存器(scon)52.1.3 电源控制寄存器(pcon)62.1.4 串行口的工作方式62.1.5 波特率的设定72.2 通讯协议的制定83 通信系统的总体设计93.1通信系统设计的要求93.2 通信系统的总体设计93.2.1 pc机的串行接口93.2.2 rs-232/485转换电路103.2.3 单片机接口电平转换电路104 通信系统的硬件设计124.1单片机及其外围电路124.1.1 mcs-51单片机介绍124.1.2 单片机外围电路124.2 通信接口的设计144.2.1 rs-232/485转换电路的设计144.2.2 单片机接口电路的设计155通信系统的软件设计165.1 pc机vb程序的设计165.1.1 vb语言的介绍165.1.2 vb中mscomm控件介绍165.1.3 mscomm控件的基本属性介绍175.1.4 pc机vb界面的设计175.1.5 vb程序编写225.2 单片机程序的设计225.2.1 单片机编程语言的选择225.2.2 c语言程序设计的流程图235.2.3 单片机程序编写246 单片机系统的可靠性设计256.1 硬件可靠性设计256.1.1 单片机硬件系统人-环境特性256.1.2硬件可靠性设计256.2 软件可靠性设计266.2.1、单片机软件系统人-环境特性266.2.2 软件可靠性设计267 通信系统的软件仿真287.1 proteus软件介绍287.2 keil软件介绍297.3configure virtual serial port driver软件介绍297.4 proteus 与keil 联机307.5 仿真电路图与仿真结果308 总结33参考文献35致谢36外文原文37中文翻译47561 绪论1.1 课题背景在现代工业应用中,常常需要进行数据通信,特别是在一些工业控制系统中尤其重要,工业自动化的通信方式主要包括以太网,现场总线,串口通信等,其中串口通信应用最为广泛。早期,人们习惯使用汇编语言来编制通信程序,随着win-dows和可视化编程开发环境的出现,如微软的vb、vc等等,给传统的程序开发模式带来了深刻的变化。其中visual basic由于使用方便,一般工程人员容易掌握、设计软件方便、工作量较小,深受工程人员喜爱。适用于一些对实时性要求不高的情况下使用,其中mscomm通信控件提供了一系列标准通信命令的接口,它允许上位机与其他通信设备(如modem)建立串口连接,还可以发送命令、进行数据交换以及监视和响应在通信过程中可能发生的各种错误和事件,从而可以利用它创建高效实用的串行通信程序。另外,单片机以其体积小、价格低、抗干扰性能好等优点,在现场监控和数据采集系统中得到广泛的应用,单片机采集到的数据和现场状态通过串行通讯,传送到pc机,进行分析、存储或显示,pc机的命令和控制通过串行口传送到单片机,以监控其他设备的运转。因此,串行通讯成为了现场监控系统与上位机联系的桥梁。1.2 工业自动化的通信方式 现代工业自动化的通信方式主要包括以太网,现场总线,串口通信等,现将他们的特点与应用场合介绍如下:1、以太网以太网最早由xerox(施乐)公司创建,在1980年,dec、lntel和xerox三家公司联合开发成为一个标准。以太网是应用最为广泛的局域网,包括标准的以太网(10mbit/s)、快速以太网(100mbit/s)和10g(10gbit/s)以太网,采用的是csma/cd访问控制法,它们都符合ieee802.3。以太网的拓扑结构包括总线型和星型,并且可以采用多种连接介质,包括同轴缆、双绞线和光纤等。其中双绞线多用于从主机到集线器或交换机的连接,而光纤则主要用于交换机间的级联和交换机到路由器间的点到点链路上。2、现场总线现场总线是指以工厂内的测量和控制机器间的数字通讯为主的网络,也称现场网络。也就是将传感器、各种操作终端和控制器间的通讯及控制器之间的通讯进行特化的网络。原来这些机器间的主体配线是on/off、接点信号和模拟信号,通过通讯的数字化,使时间分割、多重化、多点化成为可能,从而实现高性能化、高可靠化、保养简便化、节省配线(配线的共享)。现场总线的特点和优点是:全数字化通信,开放型的互联网络,互可操作性与互用性,现场设备的智能化,系统结构的高度分散性,对现场环境的适应性。主要用于制造业、流程工业、交通、楼宇、电力等方面的自动化系统中。3、串口通信串口是计算机上一种非常通用设备通信的协议。大多数计算机包含两个基于rs232的串口。串口同时也是仪器仪表设备通用的通信协议;很多gpib兼容的设备也带有rs-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。串口通信的概念非常简单,串口按位(bit)发送和接收字节。它很简单并且能够实现远距离通信,串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。在本设计中,要求实现pc机与单片机的远程通信,基于pc机,单片机与串口通信的特点,选择串口通信以实现数据传送。1.3 串行通信的详细介绍串口通信之所以应用于工业控制系统中如此广泛,那是因为串口通信有不同于其他通信的特点。1.3.1串行通信的介绍串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。串行通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使用串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。其特点是:节省传输线,尤其是在远程通信时,此特点尤为重要。这也是串行通信的主要优点,但数据传送效率低,这也是串行通信的主要缺点。1.3.2 串行通信的基本概念1、同步通信同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。它们均由同步字符、数据字符和校验字符(crc)组成。其中同步字符位于帧开头,用于确认数据字符的开始。数据字符在同步字符之后,个数没有限制,由所需传输的数据块长度来决定;校验字符有1到2个,用于接收端对接收到的字符序列进行正确性的校验。同步通信的缺点是要求发送时钟和接收时钟保持严格的同步。2、异步通信异步通信中,在异步通行中有两个比较重要的指标:字符帧格式和波特率。数据通常以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。 接收端检测到传输线上发送过来的低电平逻辑0(即字符帧起始位)时,确定发送端已开始发送数据,每当接收端收到字符帧中的停止位时,就知道一帧字符已经发送完毕。因为本通信系统用于工业控制中,对于数据通信的质量要求不高,所以,在本设计中采用异步串行通信。1.3.3 串行通信的制式串行通信按照数据传送方向可分为三种制式:1、单工制式(simplex) 单工制式是指甲乙双方通信时只能单向传送数据,发送方和接收方固定。2、半双工制式(half duplex) 半双工制式是指通信双方都具有发送器和接收器,既可发送也可接收,但不能同时接收和发送,发送时不能接收,接收时不能发送。3、全双工制式(full duplex) 全双工制式是指通信双方均设有发送器和接收器,并且信道划分为发送信道和接收信道,因此全双工制式可实现甲乙双方同时发送和接收数据,发送时能接收,接收时也能发送。 在本设计中,要求实现pc机与单片机之间的双向通信,并且485总线是异步半双工的通信总线,所以采用半双工制式来发送数据。1.3.4 通信速度与通信距离在串口通信中中最为关键,也最受工业控制者关心的两个问题就是串口通信的通信速率和通信距离。1、通信速率在串行通信中,用“波特率”来描述数据的传输速率。所谓波特率,即每秒钟传送的二进制位数,其单位为 bps ( bits per second )。它是衡量串行数据速度快慢的重要指标。有时也用“位周期”表示传输速率,位周期是波特率的倒数。国际上规定了一个标准波特率系列: 110 、300 、 600 、 1200 、 1800 、 2400 、 4800 、 9600 、 14.4kbps 、 19.2kbps 、 28.8kbps 、 33.6kbps 、 56kbps 。 例如: 9600bps ,指每秒传送 9600 位,包含字符的数位和其它必须的数位,如奇偶校验位等。 大多数串行接口电路的接收波特率和发送波特率可以分别设置,但接收方的接收波特率必须与发送方的发送波特率相同。通信线上所传输的字符数据(代码)是逐为位传送的, 1 个字符由若干位组成,因此每秒钟所传输的字符数(字符速率)和波特率是两种概念。在串行通信中,所说的传输速率是指波特率,而不是指字符速率,它们两者的关系是:假如在异步串行通信中,传送一个字符,包括 12 位(其中有一个起始位, 8 个数据位, 2 个停止位),其传输速率是 1200b/s ,每秒所能传送的字符数是 1200/(1+8+1+2)=100 个。2、通信距离 串行通信中,数据位信号流在信号线上传输时,要引起畸变,畸变的大小与以下因素有关: 波特率 信号线的特征(频带范围) 传输距离 信号的性质及大小(电平高低、电流大小) 当畸变较大时,接收方出现误码。 在规定的误码率下,当波特率、信号线、信号的性质及大小一定时,串行通信的传输距离就一定。为了加大传输距离,必须加调制解调器。1.3.5 串行接口标准串行接口按电气标准来分包括rs-232c、rs-422、rs485等。rs-232-c、rs-422与rs-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。现对它们分别介绍如下:1、rs-232c接口标准rs-232-c是美国电子工业协会eia(electronic industry association)制定的一种串行物理接口标准。rs是英文“推荐标准”的缩写,232为标识号,c表示修改次数。rs-232-c总线标准设有25条信号线,包括一个主通道和一个辅助通道。在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。 rs-232-c标准规定的数据传输速率为每秒50、75、 100、150、300、600、1200、2400、4800、9600、19200波特。rs-232-c标准规定,驱动器允许有2500pf的电容负载,通信距离将受此电容限制,例如,采用150pf/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。传输距离短的另一原因是rs-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。2、rs-485接口标准 rs-485总线,在要求通信距离为几十米到上千米时,广泛采用rs-485 串行总线标准。rs-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。加上总线收发器具有高灵敏度,能检测低至200mv的电压,故传输信号能在千米以外得到恢复。rs-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。rs-485用于多点互连时非常方便,可以省掉许多信号线。应用rs-485 可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。 3、rs-422接口标准 rs422总线,rs485和rs422电路原理基本相同,都是以差动方式发送和接受,不需要数字地线。rs422和rs485在19kpbs下能传输1200米。用新型收发器线路上可连接台设备。 差动工作是同速率条件下传输距离远的根本原因,这正是二者与rs232的根本区别,因为rs232是单端输入输出,双工工作时至少需要数字地线 发送线和接受线三条线(异步传输),还可以加其它控制线完成同步等功能。rs422通过两对双绞线可以全双工工作收发互不影响,而rs485只能半双工工作,发收不能同时进行,但它只需要一对双绞线。在本通信系统中要求实现pc机与单片机的通信,而pc机的通信接口为rs-232接口,所以在本设计中采用rs-232接口标准。2 单片机串行通信原理2.1 单片机串行通信接口2.1.1 串行接口的基本特点串行接口serial interface是指数据一位位地顺序传送,其特点是通信电路简单,只要一对传输线就可以实现双向通信,并可以利用电话线,从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成;成本低但送速度慢。串行通讯的距离可以从几米到几千米;根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。2.1.2 串行控制寄存器(scon)mcs-51的串行口是可编程接口,通过对串行口控制寄存器的初始化编程,可以实现对串行口的控制。cson是一个可位寻址的专用寄存器,其单元地址为98h,位地址为98h9fh。其内容及位地址如表2-1所示:表2-1 scon内容及地址表位 序d7d6d5d4d3d2d1d0位地址9fh9eh9dh9ch9bh9ah99h98h位 名sm0sm1sm2rentb8rb8tiri1、 sm0、sm1:串行口工作方式选择位。其状态组合所对应的工作方式如表2-2所示:表2-2 串口工作方式对应表sm0 sm1工作方式功能描述波特率0 0方式08位同步移位寄存器fosc/120 1方式110位uatr可变1 0方式211位tarrfosc/64或 fosc/321 1方式311位uatr可变 2、sm2:多机通信控制位。因多机通信是在方式2和方式3下进行,因此sm2主要用于方式2和方式3。当串行口以方式2或方式3接收时,若sm2=1,只有当接收到得第九位数据(rb8)位1才将接收的前8位数据送入sbuf,并置接收中断标志(ri=1),产生中断请求;否则,将接收到得前8位数据丢弃。而当sm2=0时,则不论第九位数据(rb8)为0还是1,都将前8位数据装入sbuf中,并产生中断请求。在方式0中,sm2必须为0。3、ren:接收使能位。ren位用于对串行口数据的接收进行控制,该位由软件置位或清除。当ren=0时,禁止接收;ren=1时,允许接收。4、tb8:发送数据的第九位。在方式2和方式3中,根据需要有软件进行置位和复位。双机通信时该为可作奇偶检验位;在多机通信中可作为区别地址帧或数据帧的标识位。一般约定tb8=1时位地址帧,tb8=0时位数据帧。5、rb8:接收数据的第九位。在方式2和方式3中,rb8存放接收到的第九位数据。其功能类似于tb8。6、ti:发送中断标志位。在方式0中,发送完8位数据后,由硬件置位:在其他方式中,在发送停止位之前由硬件置位。ti=1时,表示帧发送结束,其状态可申请中断,也可供软件查询使用。ti位必须由软件置0。7、ri:接收中断标志位在方式0中,接收完8位数据后,由硬件置位:在其他方式中,在接收停止位之前由硬件置位。ri =1时,表示帧接收结束,其状态可申请中断,也可供软件查询使用。ri位必须由软件置0。2.1.3 电源控制寄存器(pcon)pcon 寄存器主要是为chmos型单片机的电源控制而设的专用寄存器,单元地址为87h,其格式如表2-3所示:表2-3 pcon格式表位 序d7d6d5d4d3d2d1d0位 名smod/gf1gf0pdidl 在hmos单片机中,该寄存器中除最高位之外,其他位都是虚设。最高位smod是串行口波特率倍增位。当smod=1时,串行口波特率加倍。系统复位时。smod=0。2.1.4 串行口的工作方式 根据需要,mcs-51单片机的串行口可设置四种工作方式,可有8位、10位或11位帧格式。1、方式0 在方式0下,串行口是作为同步移位寄存器使用。这时以rxd(p3.0)端作为数据移入的入口和出口,而由txd(p3.1)端提供移位脉冲。移位数据的发送和接收以8位为一帧,不设起始位和停止位,低位在前高位在后。这种方式常用于扩展i/o口。2、方式1 工作方式1真正用于串行发送和接收,为10位通用异步接口。txd(p3.1)用于发送数据,rxd(p3.0)用于接收数据。接收或发送一帧数据的格式为:1为起始位,8位数据位和1位停止位,其波特率可调。发送时,数据从txd(p3.0)引脚输出。当数据写入发送缓冲器sbuf时。就启动发送。发送完一帧数据后,由硬件将ti允许接收,通知cpu可以发送下一个数据。接收时,由软件使ren置1允许接收,串行口采样引脚rxd(p3.0)。当采样到由1至0的跳变时,确认是起始位“0”,就开始接收一帧数据。当停止位来到之后将停止位送入rb8位,由硬件将ri置1,并申请中断,通知cpu从sbuf取走接收到得一个数据。3、方式2在工作方式2下,串行口位11位帧格式的异步通信接口。接收或发送一帧数据的格式为:1个起始位,8位数据位,1位可编程位和1位停止位。波特率与smod有关。发送前,先根据通信协议由软件设置tb8,然后将要发送的数据写入sbuf即能启动发送,“写sbuf”指令把8位数据位装入sbuf的同时,还把tb8装入发送移位寄存器的第9位上,然后从txd(p3.1)端输出。一帧数据发送完后,由硬件将ti置1,并申请中断。接收时,先将ren置1,使串行口处于允许接收状态,同时还要将ri清0.在满足此条件的前提下,在根据sm2的状态和所接收到得rb8的状态决定串行口在数据到来后是否使ri置1,并申请中断,接收信息。4、方式3 方式3同样是11位为一帧的串行通信方式,其通信过程与方式2完全相同,所不同的仅仅是波特率。2.1.5 波特率的设定在串口通信中,收发双方对发送或接收的数据速率(即波特率)的数值要有一定的约定,这样才能正常通信。通过软件对串口编程可约定位4中工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器1的溢出率来控制。1、方式0的波特率在方式0中,每个机器周期接收或发送一位数据,因此波特率的数值固定为时钟频率数值()的1/12,且不受smod的影响。方式0的波特率=2、方式2的波特率串行口方式2的波特率取决于pcon中smod的值,当smod=0时,波特率为的1/64;若smod=1.则波特率位的1/32.即:方式2的波特率=3、方式1和方式3的波特率方式1和方式3的波特率由定时器t1的溢出率与smod的值决定,即:方式1和方式3的波特率=其中,t1的溢出率取决于计数速率和定时器的预置值。计数速率与tmod寄存器中的位的状态有关。当时,计数速率=;当时。计数速率取决于外部输入时钟频率。2.2 通讯协议的制定本系统串行通信采用异步通信方式。协议如下:1、一帧数据由1位起始位、8位数据位、无奇偶校验位、1位停止位共10位组成。2、波特率设为96000bps。单片机串行口按方式1工作,波特率由定时器t1控制,pc机串口波特率通过vb通讯控件的settings属性设置,为保证数据传送的准确性,两者的波特率必须一致。3 通信系统的总体设计3.1通信系统设计的要求1、通信系统的可靠性 在本通信系统中,要实现远距离通信,但由于rs-232的通信距离短,故采用rs-485通信,但485通信存在自适应、自保护功能脆弱、通信效率低等缺点,若使用不当,485接口会出现器件经常损坏,有时几次连续的开关机操作之后,通信电路失控,数据传输出现误码等,所以提高485通信的运行可靠性至关重要。2、通信系统要实现的功能 本通信系统是为了实现pc机与单片机的数据通信,为了证明通信系统的可用性,我设计了如下一个演示例子:通过对pc机端界面内的checkbox控件进行选择,来控制单片机端led灯得显示与关闭。3.2 通信系统的总体设计3.2.1 pc机的串行接口pc机的串行接口也叫rs-232接口,现在的pc 机一般有两个串行口com 1 和com 2 。通常com 1 使用的是9 针d 形连接器,也称之为rs-232接口,而com 2 有的使用的是老式的db25 针连接器,也称之为rs-422接口,不过目前已经很少使用。在本设计中,我们使用db9连接器。db9的实物图如图3-1所示,各阵脚功能如下:图3-1 db9实物图1 、dcd :载波检测。主要用于modem通知计算机其处于在线状态,即modem检测到拨号音, 处于在线状态。 2 、rxd:此引脚用于接收外部设备送来的数据;在你使用modem时,你会发现rxd指示灯在闪烁,说明rxd引脚上有数据 进入。3 、txd:此引脚将计算机的数据发送给外部设备;在你使用modem时,你会发现txd指示灯在闪烁,说明计算机正在通过txd引脚发送数据。 4 、dtr:数据终端就绪;当此引脚高电平时,通知modem可以进行数据传输,计算机已经准备好。5 、gnd:信号地;此位不做过多解释。 6 、dsr:数据设备就绪;此引脚高电平时,通知计算机modem已经准备好,可以进行数据通讯了。 7 、rts:请求发送;此脚由计算机来控制,用以通知modem马上传送数据至计算机;否则,modem将收到的数据暂时放入缓冲区中。 8 、cts: 清除发送;此脚由modem控制,用以通知计算机将欲传的数据送至modem。 9 、ri : modem通知计算机有呼叫进来,是否接听呼叫由计算机决定3.2.2 rs-232/485转换电路pc机是基于标准的rs-232接口设备,但由于rs-232有以下缺点:1、 接口的信号电平值较高,易损坏接口电路的芯片,又因为与ttl 电平不兼容故需使用电平转换电路方能与ttl 电路连接。2、 传输速率较低,在异步传输时,波特率为20kbps。3、 接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。4、 传输距离有限,最大传输距离标准值为50 英尺,实际上也只能 用在50 米左右。相当于rs-232,rs-485有以下优点:1、 rs-485 的电气特性:逻辑“1”以两线间的电压差为+(26)v 表示;逻辑“0”以两线间的电压差为-(26)v 表示。接口信号电平比rs-232-c 降低了,就不易损坏接口电路的芯片,且该电平与ttl 电平兼容,可方便与ttl 电路连接。2、 rs-485 的数据最高传输速率为10mbps3、 rs-485 接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。4、 rs-485 接口的最大传输距离标准值为4000 英尺,实际上可达 3000 米,另外rs-232-c接口在总线上只允许连接1 个收发器,即单站能力。而rs-485 接口在总线上是允许连接多达128 个收发器。即具有多站能力,这样用户可以利用单一的rs-4855、接口方便地建立起设备网络。因rs-485 接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。因为rs485 接口组成的半双工网络,一般只需二根连线,所以rs485 接口均采用屏蔽双绞线传输。所以为了实现远距离通信,必须在rs-232接口与传输线之间加rs-232/485转换电路,以实现pc机与单片机之间的远距离通信。3.2.3 单片机接口电平转换电路rs-23通讯接口是一种标准化的串行接口,是为远程通讯连接终端设备dte(data terminal equipment)与数据,通讯设备dce(data communication equipment)定义的物理接口。为了提高抗干扰能力和增加传送距离,rs 232的每个脚线的信号和电平规定采用负逻辑电平。由于单片机的输入、输出电平为t tl电平,与pc机rs 232标准串行接口的电气规范不一致,因此要实现单片机与pc机之间的数据通读,必须进行电平转换。一般常用的电平转换器件有m c1488,m c1489及m a x232等,相比于其他芯片,max232芯片是美信公司专门为电脑的rs-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。故在本系统采用max232芯片来实现电平转换。max232芯片如图3-2所示,其各部分引脚功能如下:图3-2 max232芯片及原理图第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给rs-232串口电平的需要。第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(r1in)、12脚(r1out)、11脚(t1in)、14脚(t1out)为第一数据通道。8脚(r2in)、9脚(r2out)、10脚(t2in)、7脚(t2out)为第二数据通道。ttl/cmos数据从t1in、t2in输入转换成rs-232数据从t1out、t2out送到电脑dp9插头;dp9插头的rs-232数据从r1in、r2in输入转换成ttl/cmos数据后从r1out、r2out输出。第三部分是供电。15脚dng、16脚vcc(+5v)。4 通信系统的硬件设计 本通信系统的硬件电路设计包括单片机及其外围电路,单片机接口电路,及通信接口电路的设计。4.1单片机及其外围电路4.1.1 mcs-51单片机介绍mcs51是指由美国intel公司(对了,就是大名鼎鼎的intel)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼mcs51系列单片机 mcs51单片机的内部总体结构其基本特性如下:8位cpu、片内振荡器、4k字节rom、128字节ram、21个特殊功能寄存器、32根i/o线、可寻址的64k字节外部数据、程序存贮空间、2个16位定时器、计数器中断结构:具有二个优先级、五个中断源一个全双口串行口位寻址(即可寻找某位的内容)功能,适于按位进行逻辑运算的位处理器。除128字节ram、4k字节rom和中断、串行口及定时器模块外,还有4组i/o口p0p3,余下的就是cpu的全部组成。把4krom换为eprom就是8751的结构,如去掉rom/eprom部分即为8031,如果将rom置换为flash存贮器或eeprom,或再省去某些i/o,即可得到51系列的派生品种,如89c51、at89c2051等单片机。单片机各部分是通过内部的总线有机地连接起来的。4.1.2 单片机外围电路 单片机要正常工作,必须给以正确的时钟频率,并且能在出错后复位,所以必须在单片机外围附加时钟,复位等电路。1、时钟电路mcs-51单片机芯片内部有一个高增益反相放大器,用于构成时钟振荡电路,xtal1为该放大器的输入端,xtal2为该放大器的输出端,但要形成时钟还需附加其他电路。mcs-51的时钟电路包括内部时钟方式和外部时钟方式,由于外部时钟方式主要用于多机系统中,以便各个单片机能同步工作。所以在本设计中采用内部时钟方式。内部方式的时钟电路如图4-2所示。利用msc-51内部的高增益反相放大器,在xtal1和xtal2引脚上外接定时原件,内部振荡电路便产生自激振荡。定时原件一般采用石英晶体和电容组成的并联谐振电路,晶体可以在1.212mhz之间任选,电容可以在530pf之间选择,电容c1和c2的大小可起频率微调的作用,电容大小要和晶体的容性负载阻抗相匹配,否则不易起振。图4-2 单片机时钟电路2、复位电路 计算机在启动运行时都需要复位,使cpu和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。mcs-51单片机有一个复位引脚rst,当振荡器起振后,只要该引脚上出现2个机器周期以上的高电平时即可确保使期间复位。复位完成后,如果rst端继续保持高电平,mcs-51就一直处于复位状态,rst端得外部复位电路有两种复位操作方式:上电自动复位和按键手动复位。由于本通信系统由于数据采集等场合,不需要人为控制,所以在本设计中采用上电自动复位方式。上电自动复位方式的电路图如图4-3所示。对于hmos型单片机,只要在rst复位端接一个电容至vcc和一个电阻至vss。就能实现上电自动复位,在加电瞬间,电容通过电阻充电,就在rst端出现一定宽度的高电平,只要高电平时间足够长,就可以使mcs-51有效复位。当晶振频率为12mhz时,典型值为c=10uf,r=8.2k。图4-3 单片机复位电路4.2 通信接口的设计本系统中通信接口的设计主要包括单片机接口电路的设计和rs-232/485转换电路的设计。4.2.1 rs-232/485转换电路的设计rs232/485转换器电路如图4-4所示,在本设计中,rs232/485转换器主要包括了电源、232电平转换、485电路三部分。本电路的232电平转换电路采用了nih232或者也可以直接使用max232集成电路,485电路采用了max485集成电路。为了使用方便,电源部分设计成无源方式,整个电路的供电直接从pc机的rs232接口中的dtr(4脚)和rts(7脚)窃取。pc串口每根线可以提供大约9ma的电流,因此两根线提供的电流足够供给这个电路使用了。经实验,本电路只使用其中一条线也能够正常工作。使用本电路需注意pc程序必须使串口的dtr和rts输出高电平,经过d3稳压后得到vcc,经过实际测试,vcc电压大约在4.7v左右。因此,电路中要说d3起的作用是稳压还不如说是限压功能。max485是通过两个引脚re(2脚)和de(3脚)来控制数据的输入和输出。当re为低电平时,max485数据输入有效;当de为高电平时,max485数据输出有效。在半双工使用中,通常可以将这两个脚直接相连,然后由pc或者单片机输出的高低电平就可以让max485在接收和发送状态之间转换了。由于本电路dtr和rts都用于了电路供电,因此使用tx线和hin232的另外一个通道及q1来控制max485的状态切换。平时nih232的9脚输出高电平,经q1倒相后,使max485的re和de为低电平而处于数据接收状态。当pc机发送数据时,nih232的9脚输出低电平,经q1倒相后,使max485的re和de为高电平而处于数据发送状态图4-4 rs-232/485转换电路4.2.2 单片机接口电路的设计 在本通信系统中,单片机的接口电路如图4-5所示,主要包括电平转换电路的设计,电平转换电路采用max232芯片,具体的电路图如图3-4所示,单片机的p3.0(rxd)接max232的r1out,p3.1(txd)接max232的t1in,然后r1in和t1out分别接rs485总线的输出和输入线。图4-5 单片机接口电路5通信系统的软件设计5.1 pc机vb程序的设计5.1.1 vb语言的介绍vb是visual basic的简称,是由美国微软公司于1991年开发的一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发 windows 环境下的各类应用程序。它简单易学、效率高,且功能强大可以与 windows 专业开发工具sdk相媲美。在visual basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用windows内部的广泛应用程序接口(api)函数,动态链接库(dll)、对象的链接与嵌入(ole)、开放式数据连接(odbc)等技术,可以高效、快速地开发windows环境下功能强大、图形界面丰富的应用软件系统。5.1.2 vb中mscomm控件介绍1、mscomm控件处理通信的方式mscomm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。 (1)、事件驱动方式事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者 carrier detect (cd) 或 request to send (rts) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 mscomm 控件的 oncomm 事件捕获并处理这些通讯事件。oncomm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 commevent 属性。在编程过程中,就可以在oncomm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个mscomm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 mscomm 控件。(2)、查询方式查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查 commevent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。由于事件驱动方式实时性较强,而查询方式是在程序通过查询commevent属性的值来判断通信过程中的事件或错误这种方式适合于应用程序较小、实时性要求不高的系统中。本通信系统由于用于实时性采集数据,所以mscomm控件采用时间驱动方式。 2、mscomm控件进行串行通信的步骤(1)设置通信对象、通信端口号及其他属性;(2)设定通信协议;(3)打开通信端口,进行数据的传送;(4)关闭通信端口5.1.3 mscomm控件的基本属性介绍mscomm控件的主要属性以及响应事件的类型如下:1、commport:设置或返回串行端口号,其取值范围199,缺省值为1。2、setting:设置或返回串行通信口的波特率、奇偶校验位、数据位数、停止位数。3、portopen:串行口打开与否,为布尔量。4、inbuffersize:设置或返回缓冲区的大小,缺省值为1024字节。5、inbuffercount:返回缓冲区等待读取字节数。6、rthreshold:该属性为一个阈值,当查询到接收缓冲区内字节个数达到或超过该设置值时就产生o n c o m m事件。7、inputlen:设置或返回接收缓冲区内用input读入的个数。8、input:表示从接收缓冲区内读出的一串字符。9、outbuffersize:设置或返回缓冲区,缺省值为512字节。10、outbuffercounter:返回发送缓冲区内等待发送的字节数,可用来清空缓冲区。11、eofenable:若设置为true,则当输入中出现eol时,就停止输入并产生oncomm事件5.1.4 pc机vb界面的设计1、vb6.0的编程环境vb6.0的程序开发界面图如图6-1所示。图5-1 vb6.0编程环境图(1)、标题栏标题栏中的标题为“ microsoft visusal basic 设计”说明此时集成开发环境处于设计模式,在进入其他状态时,方括号中的文字将被做相应的变化。vb有三种工作模式:设计模式:可进行用户界面的设计和代码的编制,来完成应用程序的开发。运行模式:运行应用程序,这时不可编辑代码,也不可编辑界面。中断模式:应用程序运行暂停中断,这时可以编辑代码,但是不可编辑界面。按f5键或单击“继续”按扭程序继续运行,单击“结束”按扭停止程序的运行。在此模式回弹出“立即”窗口,在窗口内可输入简短的命令,并立即执行。(2)、菜单栏vb6.0菜单栏中包括13个下拉式菜单,这是程序开发过程中需要的命令。(1) 文件(file):用于创建、打开、保存、显示最近的工程以及生成可执行文件的命令。(2) 编辑(edit):用于程序源代码的编辑。(3) 视图(view):用于集成开发环境下程序源代码、控件的查看。(4) 工程(project):用于控件、模块和窗体等对象的处理。(5) 格式(form
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肛周脓肿及肛瘘患者炎症因子的临床研究
- 内蒙古通辽市法治化营商环境建设研究
- 流量变现路径对互联网企业盈利能力的影响机制研究
- 绿色技术创新驱动新质生产力的作用机制研究
- 河道保洁服务方案
- 心理健康情绪管理研修心得体会
- 高中语文必修教材“单元学习任务”使用研究
- 老师读书心得读《为言语智能而教》有感
- 简单施工合同
- 酒店装修合同范本
- 科技成果转化:新质生产力的路径
- 中级经济师人力资源试题及答案
- GB/T 45355-2025无压埋地排污、排水用聚乙烯(PE)管道系统
- 新婚培训知识课件
- DB52∕T 1633-2021 山地风电场风机微观选址技术规程
- 露天矿山作业安全操作规程
- 《无粘结钢绞线体外预应力束》(JT∕T 853-2013)
- 第四章煤的结构
- 第七章 人员配备
- 2021邢台银行招聘笔试考试参考题库含答案详解
- 人大换届选举培训提纲
评论
0/150
提交评论